/* ============================================================
   Weingut Hafner & Tschank — webshop restyling
   Odoo website_sale ships its own Bootstrap-based templates; we
   don't replace them (upgrade-safe), we recolor and re-type them
   under #wrapwrap.o-hafner so /shop, product pages, cart and
   checkout read as part of the site.
   ============================================================ */

.o-hafner #wrap .oe_website_sale { font-family: var(--hf-font-body); }

/* serif product titles everywhere in the shop */
.o-hafner .oe_website_sale h1,
.o-hafner .oe_website_sale h2,
.o-hafner .oe_website_sale h3,
.o-hafner .oe_website_sale h4,
.o-hafner .oe_website_sale h5,
.o-hafner .oe_website_sale h6,
.o-hafner .oe_website_sale .h4,
.o-hafner .oe_website_sale .h5,
.o-hafner .oe_website_sale .h6 {
  font-family: var(--hf-font-display);
  color: var(--hf-ink);
}

/* Bootstrap primary → logo red. Odoo 19's compiled bootstrap bakes the
   mauve #714B67 in as literal background-color (NOT via --bs-btn-bg), so the
   real properties must be overridden too. */
.o-hafner .oe_website_sale .btn-primary,
.o-hafner .modal .btn-primary,
.o-hafner #wrap .btn-primary {
  --bs-btn-bg: var(--hf-red);
  --bs-btn-border-color: var(--hf-red);
  --bs-btn-hover-bg: var(--hf-red-dark);
  --bs-btn-hover-border-color: var(--hf-red-dark);
  --bs-btn-active-bg: var(--hf-red-deep);
  --bs-btn-active-border-color: var(--hf-red-deep);
  --bs-btn-color: #fff;
  --bs-btn-hover-color: #fff;
  --bs-btn-active-color: #fff;
  background-color: var(--hf-red);
  border-color: var(--hf-red);
  color: #fff;
  border-radius: var(--hf-radius);
  font-weight: 600;
  letter-spacing: 0.06em;
}
.o-hafner .oe_website_sale .btn-primary:hover,
.o-hafner .oe_website_sale .btn-primary:focus,
.o-hafner .modal .btn-primary:hover {
  background-color: var(--hf-red-dark);
  border-color: var(--hf-red-dark);
  color: #fff;
}
.o-hafner .oe_website_sale .btn-primary:active,
.o-hafner .oe_website_sale .btn-primary.active {
  background-color: var(--hf-red-deep);
  border-color: var(--hf-red-deep);
  color: #fff;
}
/* Shop pagination — same baked-in mauve as .btn-primary. */
.o-hafner .oe_website_sale .pagination .page-link {
  color: var(--hf-ink);
}
.o-hafner .oe_website_sale .pagination .page-item.active .page-link {
  background-color: var(--hf-red);
  border-color: var(--hf-red);
  color: #fff;
}

.o-hafner .oe_website_sale .btn-secondary,
.o-hafner .oe_website_sale .btn-outline-primary {
  --bs-btn-color: var(--hf-ink);
  --bs-btn-border-color: var(--hf-ink);
  --bs-btn-hover-bg: var(--hf-ink);
  --bs-btn-hover-border-color: var(--hf-ink);
  --bs-btn-hover-color: #fff;
  color: var(--hf-ink);
  border-radius: var(--hf-radius);
}
.o-hafner .oe_website_sale .btn-outline-primary:hover {
  background-color: var(--hf-ink);
  border-color: var(--hf-ink);
  color: #fff;
}
/* other places the stock mauve leaks through */
.o-hafner .oe_website_sale .bg-primary,
.o-hafner .oe_website_sale .badge.text-bg-primary {
  background-color: var(--hf-red) !important;
}
.o-hafner .oe_website_sale .form-check-input:checked {
  background-color: var(--hf-red);
  border-color: var(--hf-red);
}
.o-hafner .oe_website_sale .text-primary { color: var(--hf-red-dark) !important; }
.o-hafner .oe_website_sale a:not(.btn) { color: var(--hf-red-dark); }

/* price accents */
.o-hafner .oe_website_sale .oe_currency_value,
.o-hafner .oe_website_sale .product_price {
  color: var(--hf-red-dark);
  font-family: var(--hf-font-display);
  font-weight: 700;
}

/* ---------- /shop grid ---------- */

.o-hafner .o_wsale_products_page { background: var(--hf-paper); }
.o-hafner .o_wsale_products_grid_table_wrapper .oe_product_cart {
  background: var(--hf-card);
  border: 1px solid var(--hf-line);
  border-radius: var(--hf-radius);
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.o-hafner .o_wsale_products_grid_table_wrapper .oe_product_cart:hover {
  transform: translateY(-4px);
  box-shadow: var(--hf-shadow-lg);
}
.o-hafner .oe_product_cart .o_wsale_product_information { padding: 0.6rem 1rem 1rem; }
.o-hafner .oe_product_cart .o_wsale_products_item_title a {
  font-family: var(--hf-font-display);
  font-size: 1.22rem;
  font-weight: 600;
  color: var(--hf-ink);
  line-height: 1.25;
}
.o-hafner .oe_product_cart .o_wsale_products_item_title a:hover { color: var(--hf-red-dark); }

/* category sidebar */
.o-hafner .o_wsale_products_categories_list a { color: var(--hf-ink); }
.o-hafner .o_wsale_products_categories_list .active > a {
  color: var(--hf-red-dark);
  font-weight: 700;
}

.o-hafner .oe_website_sale .breadcrumb { background: transparent; font-size: 0.9rem; }

/* ---------- product page ---------- */

.o-hafner #product_detail .o_wsale_product_page_variants,
.o-hafner #product_detail #product_details { font-size: 1rem; }
.o-hafner #product_detail h1 { font-size: clamp(1.9rem, 3.2vw, 2.6rem); }
.o-hafner #product_detail .o_wsale_product_page_main_picture img {
  border-radius: var(--hf-radius-lg);
}

/* the notes under add-to-cart (shop.xml) */
.o-hafner .hf-shop-note {
  margin-top: 0.9rem;
  font-size: 0.86rem;
  color: var(--hf-muted);
  border-left: 3px solid var(--hf-sand);
  padding-left: 0.85em;
}

/* ---------- cart + checkout ---------- */

.o-hafner .oe_website_sale .o_cart_product .o_cart_product_information,
.o-hafner .oe_website_sale table#cart_products td { vertical-align: middle; }
.o-hafner .oe_website_sale .o_total_card,
.o-hafner .oe_website_sale #o_cart_summary_container {
  background: var(--hf-card);
  border: 1px solid var(--hf-line);
  border-radius: var(--hf-radius-lg);
}
.o-hafner .oe_website_sale .o_wizard_step_active { color: var(--hf-red-dark); }
.o-hafner .o_wsale_sticky_button_container .btn-primary { border-radius: var(--hf-radius); }
