/* =====================================================================
   Beauty Hub — Warm Beauty CSS Overlay
   Palette: cream / charcoal / warm taupe + dusty rose
   Typography: Playfair Display (headings) + Inter (body)
   ===================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');

:root {
  --bh-cream: #FAF6F1;
  --bh-cream-deep: #F2EBDF;
  --bh-warm-white: #FFFEFB;
  --bh-charcoal: #2C2620;
  --bh-text: #3A332D;
  --bh-muted: #8A7F75;
  --bh-taupe: #A89484;
  --bh-rose: #C99B98;
  --bh-rose-deep: #B17F7D;
  --bh-rose-soft: #E8C8C5;
  --bh-border: #E8DFD3;
  --bh-shadow-sm: 0 1px 3px rgba(60, 45, 35, 0.06), 0 1px 2px rgba(60, 45, 35, 0.04);
  --bh-shadow-md: 0 4px 12px rgba(60, 45, 35, 0.08), 0 2px 4px rgba(60, 45, 35, 0.04);
  --bh-shadow-lg: 0 8px 24px rgba(60, 45, 35, 0.12), 0 4px 8px rgba(60, 45, 35, 0.06);
  --bh-radius-sm: 6px;
  --bh-radius-md: 10px;
  --bh-radius-lg: 14px;
  --bh-radius-pill: 999px;
}

/* ---------- Base ---------- */

body {
  background: var(--bh-cream) !important;
  color: var(--bh-text) !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 15px;
  line-height: 1.6;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: 'Playfair Display', Georgia, serif !important;
  color: var(--bh-charcoal) !important;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.25;
}

h1, .h1 { font-size: 2.5rem; }
h2, .h2 { font-size: 2rem; }
h3, .h3 { font-size: 1.5rem; }

a {
  color: var(--bh-rose-deep);
  text-decoration: none;
  transition: color 0.2s ease;
}
a:hover {
  color: var(--bh-charcoal);
  text-decoration: none;
}

/* ---------- Top announcement bar ---------- */

.bh-top-bar {
  background: var(--bh-charcoal);
  color: var(--bh-warm-white);
  text-align: center;
  font-family: 'Inter', sans-serif;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.6rem 1rem;
  font-weight: 500;
  line-height: 1.4;
}

.bh-top-bar a {
  color: var(--bh-rose-soft);
  text-decoration: none;
  font-weight: 600;
}

.bh-top-bar a:hover {
  color: white;
}

/* ---------- Header ---------- */

#header {
  border-bottom: 1px solid var(--bh-border);
  box-shadow: var(--bh-shadow-sm);
  position: sticky;
  top: 0;
  z-index: 1020;
  backdrop-filter: saturate(180%) blur(10px);
  -webkit-backdrop-filter: saturate(180%) blur(10px);
  background: rgba(255, 254, 251, 0.92) !important;
  transition: box-shadow 0.25s ease, background 0.25s ease;
}

.header-top {
  padding: 1rem 0 !important;
}

#_desktop_logo a,
.header-top .logo {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--bh-charcoal);
}

/* Menu strip — sits at the bottom of the sticky header */
.bh-menu-strip {
  width: 100%;
  background: var(--bh-warm-white);
  border-top: 1px solid var(--bh-border);
  padding: 0;
}

.bh-menu-strip #_desktop_top_menu {
  display: block !important;
  width: 100%;
}

.bh-menu-strip .top-menu,
.bh-menu-strip ul.top-menu {
  display: flex !important;
  justify-content: center !important;
  flex-wrap: wrap;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0.25rem;
}

.bh-menu-strip .top-menu > li {
  display: flex;
  align-items: center;
  margin: 0 !important;
  padding: 0 !important;
}

/* Top menu link styling */
.top-menu,
.top-menu li,
.top-menu a {
  background: transparent !important;
  border: none !important;
}

.top-menu .top-menu__inline,
.top-menu .menu-content {
  background: transparent !important;
}

.top-menu a[data-depth="0"] {
  color: var(--bh-charcoal) !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  text-transform: uppercase;
  letter-spacing: 0.1em !important;
  font-size: 0.8rem !important;
  padding: 0.9rem 1.25rem !important;
  position: relative;
  transition: color 0.2s ease;
  display: inline-block;
}

.top-menu a[data-depth="0"]:hover,
.top-menu a[data-depth="0"]:focus {
  color: var(--bh-rose-deep) !important;
  background: transparent !important;
  text-decoration: none;
}

.top-menu .sub-menu {
  background: var(--bh-warm-white) !important;
  border: 1px solid var(--bh-border);
  border-radius: var(--bh-radius-md);
  box-shadow: var(--bh-shadow-md);
  padding: 0.5rem 0;
}

.top-menu .sub-menu a {
  color: var(--bh-text) !important;
  font-size: 0.85rem;
  padding: 0.5rem 1.25rem !important;
  text-transform: none;
  letter-spacing: 0;
}

.top-menu .sub-menu a:hover {
  color: var(--bh-rose-deep) !important;
  background: var(--bh-cream) !important;
}

/* User cart and search */
#_desktop_user_info a,
.user-info a {
  color: var(--bh-charcoal);
  font-size: 0.85rem;
  font-weight: 500;
}

.blockcart .header {
  color: var(--bh-charcoal) !important;
  font-weight: 500;
}

#search_widget input[type="text"] {
  border-radius: var(--bh-radius-pill) !important;
  border: 1px solid var(--bh-border) !important;
  background: var(--bh-cream) !important;
  padding: 0.5rem 1rem !important;
  font-size: 0.85rem;
  transition: all 0.2s ease;
}

#search_widget input[type="text"]:focus {
  background: var(--bh-warm-white) !important;
  border-color: var(--bh-rose) !important;
  box-shadow: 0 0 0 3px rgba(201, 155, 152, 0.12);
  outline: none;
}

/* ---------- Hero / Slider ---------- */

#index .carousel,
.imageslider {
  margin-bottom: 3rem;
}

.imageslider .slick-slide img,
.carousel-item img {
  border-radius: 0;
}

.imageslider .carousel-caption {
  background: rgba(255, 254, 251, 0.92);
  color: var(--bh-charcoal);
  padding: 1.5rem 2rem;
  border-radius: var(--bh-radius-md);
  max-width: 480px;
  bottom: 8%;
}

.imageslider .carousel-caption h2 {
  font-family: 'Playfair Display', serif !important;
  font-size: 1.75rem !important;
  margin-bottom: 0.5rem;
}

.imageslider .carousel-caption p {
  color: var(--bh-text);
  font-size: 0.95rem;
  margin: 0;
}

/* ---------- Section titles ---------- */

.products-section-title,
.featured-products .products-section-title,
h2.h2 {
  font-family: 'Playfair Display', serif !important;
  font-size: 2.25rem !important;
  text-align: center !important;
  margin: 4rem 0 2.5rem !important;
  font-weight: 600;
  color: var(--bh-charcoal) !important;
  letter-spacing: -0.01em;
  position: relative;
}

.products-section-title::after,
.featured-products .products-section-title::after {
  content: '';
  display: block;
  width: 36px;
  height: 1.5px;
  background: var(--bh-rose);
  margin: 1.25rem auto 0;
}

/* ---------- Product cards ---------- */

.product-miniature,
.js-product-miniature {
  background: var(--bh-warm-white);
  border-radius: var(--bh-radius-lg);
  border: 1px solid transparent;
  padding: 0.75rem 0.75rem 1.25rem;
  margin-bottom: 2rem;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.product-miniature:hover,
.js-product-miniature:hover {
  transform: translateY(-4px);
  box-shadow: var(--bh-shadow-md);
  border-color: var(--bh-border);
}

.product-miniature .thumbnail-container {
  border-radius: var(--bh-radius-md);
  overflow: hidden;
  background: var(--bh-cream);
  margin-bottom: 1rem;
}

/* Lock the card thumbnail to a 4:5 portrait so every card is the same height,
   regardless of the source image's aspect ratio.
   Source photos vary (some portrait, some landscape, some tall composites);
   object-fit: cover crops to a centered 4:5 frame. Click the image → product page,
   where the full gallery + native aspect ratios are shown. */
.product-miniature .product-thumbnail {
  display: block;
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--bh-cream);
  border-radius: var(--bh-radius-md);
}

.product-miniature .product-thumbnail picture,
.product-miniature .product-thumbnail picture img,
.product-miniature .product-thumbnail > img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center;
  display: block;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.product-miniature:hover .product-thumbnail picture img,
.product-miniature:hover .product-thumbnail > img {
  transform: scale(1.05);
}

.product-miniature .product-title,
.product-miniature h2.h3,
.product-miniature h3 {
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  font-size: 0.92rem !important;
  text-align: center;
  margin: 0.75rem 0 0.5rem;
  letter-spacing: 0;
}

.product-miniature .product-title a,
.product-miniature h3 a {
  color: var(--bh-charcoal) !important;
  text-decoration: none;
}

.product-miniature .product-title a:hover {
  color: var(--bh-rose-deep) !important;
}

.product-miniature .product-price-and-shipping,
.product-miniature .price {
  text-align: center;
  font-family: 'Inter', sans-serif !important;
  font-weight: 600;
  color: var(--bh-charcoal);
  font-size: 1rem;
  margin: 0;
}

.product-miniature .regular-price {
  color: var(--bh-muted);
  text-decoration: line-through;
  font-size: 0.85rem;
  margin-right: 0.5rem;
}

.product-miniature .discount-percentage,
.product-miniature .discount {
  background: var(--bh-rose-deep);
  color: white;
  border-radius: var(--bh-radius-pill);
  padding: 0.2rem 0.65rem;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.04em;
}

/* Product flags / "new" / "sale" badges */
.product-flags {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 2;
}

.product-flag {
  background: var(--bh-rose-deep) !important;
  color: white !important;
  border-radius: var(--bh-radius-pill) !important;
  padding: 0.25rem 0.75rem !important;
  font-size: 0.7rem !important;
  font-weight: 500 !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.4rem;
}

.product-flag.new {
  background: var(--bh-charcoal) !important;
}

/* ---------- Buttons ---------- */

.btn,
button.btn {
  border-radius: var(--bh-radius-pill) !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.82rem !important;
  padding: 0.78rem 1.85rem !important;
  transition: all 0.2s ease !important;
  box-shadow: none !important;
}

.btn-primary,
.btn.btn-primary,
button.btn-primary,
.add-to-cart,
button.add-to-cart {
  background: var(--bh-charcoal) !important;
  border: 1px solid var(--bh-charcoal) !important;
  color: var(--bh-warm-white) !important;
}

.btn-primary:hover,
.btn.btn-primary:hover,
.add-to-cart:hover {
  background: var(--bh-rose-deep) !important;
  border-color: var(--bh-rose-deep) !important;
  transform: translateY(-1px);
  color: white !important;
}

.btn-secondary,
.btn.btn-secondary {
  background: transparent !important;
  border: 1px solid var(--bh-charcoal) !important;
  color: var(--bh-charcoal) !important;
}

.btn-secondary:hover {
  background: var(--bh-charcoal) !important;
  color: white !important;
}

/* Tertiary / link buttons */
.btn-link {
  color: var(--bh-rose-deep) !important;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
}

/* ---------- Forms ---------- */

input.form-control,
textarea.form-control,
select.form-control,
.form-control {
  border-radius: var(--bh-radius-sm);
  border: 1px solid var(--bh-border);
  padding: 0.7rem 1rem;
  background: var(--bh-warm-white);
  color: var(--bh-charcoal);
  font-size: 0.95rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

input.form-control:focus,
textarea.form-control:focus,
select.form-control:focus {
  border-color: var(--bh-rose);
  box-shadow: 0 0 0 3px rgba(201, 155, 152, 0.12);
  outline: none;
}

label, .form-control-label {
  color: var(--bh-charcoal);
  font-weight: 500;
  font-size: 0.85rem;
  letter-spacing: 0.02em;
}

/* ---------- Page wrapper ---------- */

#wrapper {
  background: var(--bh-cream);
  padding-top: 1rem;
  padding-bottom: 2rem;
}

main {
  margin-top: 1rem;
}

/* ---------- Breadcrumb ---------- */

.breadcrumb {
  background: transparent !important;
  padding: 1.25rem 0 !important;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.breadcrumb a,
.breadcrumb li,
.breadcrumb li a {
  color: var(--bh-muted) !important;
}

.breadcrumb li:last-child,
.breadcrumb li.active,
.breadcrumb li[aria-current="page"] {
  color: var(--bh-charcoal) !important;
}

.breadcrumb li + li::before {
  color: var(--bh-muted) !important;
  content: "·" !important;
  padding: 0 0.5rem;
}

/* ---------- Category / product list page ---------- */

#category .block-category {
  background: var(--bh-warm-white);
  padding: 2.5rem 2rem;
  border-radius: var(--bh-radius-lg);
  border: 1px solid var(--bh-border);
  margin-bottom: 2.5rem;
}

#category .block-category h1 {
  font-family: 'Playfair Display', serif !important;
  font-size: 2.5rem;
  margin-bottom: 0.5rem;
  color: var(--bh-charcoal);
}

#category .block-category .category-description,
#category .block-category .category-cover {
  color: var(--bh-text);
  font-size: 0.95rem;
  line-height: 1.65;
}

#products .total-products,
.total-products {
  color: var(--bh-muted);
  font-size: 0.85rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

#js-product-list-top {
  padding: 1rem 0;
  border-bottom: 1px solid var(--bh-border);
  margin-bottom: 2rem;
}

/* ---------- Product detail page ---------- */

.product-information h1,
.product-detail .h1,
#product .h1 {
  font-family: 'Playfair Display', serif !important;
  font-size: 2.4rem !important;
  font-weight: 600 !important;
  margin-bottom: 0.5rem !important;
  letter-spacing: -0.01em;
  color: var(--bh-charcoal);
}

.product-prices,
.product-information .product-prices {
  margin: 1.5rem 0;
}

.product-prices .current-price,
.current-price span {
  font-size: 1.75rem !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal) !important;
  font-family: 'Inter', sans-serif !important;
}

.product-information .product-description,
#description .product-description {
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--bh-text);
}

.product-variants .product-variants-item label.form-control-label,
.product-variants label {
  font-weight: 500;
  font-size: 0.85rem;
  color: var(--bh-charcoal);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.5rem;
}

.product-variants select,
.product-variants .input-color {
  border-radius: var(--bh-radius-sm);
  border-color: var(--bh-border);
  padding: 0.65rem 1rem;
}

.product-quantity .qty,
.product-quantity .input-group {
  border-radius: var(--bh-radius-sm);
}

.product-quantity .qty input {
  border-radius: var(--bh-radius-sm);
  border-color: var(--bh-border);
  text-align: center;
  font-weight: 500;
}

.product-add-to-cart {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--bh-border);
}

.product-add-to-cart .add-to-cart {
  width: 100%;
  padding: 1.1rem 2rem !important;
  font-size: 0.92rem !important;
  letter-spacing: 0.08em;
}

/* Tabs (description, details) */
.tabs,
.product-tabs {
  background: var(--bh-warm-white);
  padding: 2rem;
  border-radius: var(--bh-radius-lg);
  border: 1px solid var(--bh-border);
  margin-top: 3rem;
}

.nav-tabs {
  border-bottom: 1px solid var(--bh-border);
  margin-bottom: 1.5rem;
}

.nav-tabs .nav-link {
  color: var(--bh-muted);
  border: none !important;
  background: transparent !important;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.78rem;
  padding: 1rem 1.5rem;
  margin: 0;
}

.nav-tabs .nav-link.active {
  color: var(--bh-charcoal);
  background: transparent !important;
  border-bottom: 2px solid var(--bh-rose) !important;
}

/* ---------- Newsletter ---------- */

.block_newsletter,
#blockEmailSubscription_displayFooterBefore .block_newsletter {
  background: var(--bh-warm-white) !important;
  padding: 3.5rem 2rem !important;
  margin: 3rem auto !important;
  border-radius: var(--bh-radius-lg);
  border: 1px solid var(--bh-border);
  text-align: center;
  max-width: 720px;
}

.block_newsletter p,
.block_newsletter h3 {
  font-family: 'Playfair Display', serif !important;
  font-size: 1.6rem !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--bh-charcoal) !important;
  font-weight: 600 !important;
  margin-bottom: 0.65rem !important;
}

.block_newsletter form {
  margin-top: 1.5rem;
  display: flex;
  justify-content: center;
  gap: 0;
}

.block_newsletter input[type="email"] {
  border-radius: var(--bh-radius-pill) 0 0 var(--bh-radius-pill) !important;
  padding: 0.85rem 1.5rem !important;
  border: 1px solid var(--bh-border) !important;
  background: var(--bh-cream) !important;
  min-width: 280px;
}

.block_newsletter button,
.block_newsletter .btn {
  border-radius: 0 var(--bh-radius-pill) var(--bh-radius-pill) 0 !important;
  background: var(--bh-charcoal) !important;
  border: 1px solid var(--bh-charcoal) !important;
  color: white !important;
  padding: 0.85rem 1.75rem !important;
}

.block_newsletter button:hover {
  background: var(--bh-rose-deep) !important;
  border-color: var(--bh-rose-deep) !important;
}

/* ---------- Footer ---------- */

.footer-container {
  background: var(--bh-cream-deep) !important;
  color: var(--bh-text) !important;
  padding: 4rem 0 2rem !important;
  margin-top: 4rem !important;
  border-top: 1px solid var(--bh-border);
}

.footer-container h3,
.footer-container .h3,
.footer-container .links h3 {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.82rem !important;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 600;
  color: var(--bh-charcoal) !important;
  margin-bottom: 1.25rem !important;
}

.footer-container a,
.footer-container li a {
  color: var(--bh-text) !important;
  font-size: 0.88rem;
  font-weight: 400;
  transition: color 0.2s ease;
}

.footer-container a:hover {
  color: var(--bh-rose-deep) !important;
}

.footer-container .links ul li {
  padding: 0.3rem 0;
}

.footer-after,
.footer-bottom {
  border-top: 1px solid var(--bh-border);
  padding-top: 1.5rem;
  margin-top: 2rem;
  font-size: 0.8rem;
  color: var(--bh-muted);
}

/* ---------- Cart ---------- */

.cart-grid .card,
.cart-summary,
.cart-detailed {
  border-radius: var(--bh-radius-lg);
  border-color: var(--bh-border) !important;
  background: var(--bh-warm-white) !important;
}

.cart-summary-line .label,
.cart-summary-line .value {
  font-size: 0.95rem;
}

.cart-summary-line.cart-total {
  font-family: 'Playfair Display', serif;
  font-size: 1.25rem;
  color: var(--bh-charcoal);
  font-weight: 600;
}

/* ---------- Misc PrestaShop tweaks ---------- */

.alert {
  border-radius: var(--bh-radius-md);
}

.dropdown-menu {
  border-radius: var(--bh-radius-md);
  border-color: var(--bh-border);
  box-shadow: var(--bh-shadow-md);
}

hr {
  border-top: 1px solid var(--bh-border);
}

.page-header {
  margin-bottom: 1.5rem;
}

/* Banner / promo bands */
.featured-products,
.featured-category,
.products,
.featured-products.clearfix {
  padding: 1rem 0;
}

/* Login / register pages */
#authentication .form-control,
#registration .form-control {
  margin-bottom: 1rem;
}

/* Search page */
.search-widget__group {
  margin-bottom: 1rem;
}

/* ---------- Apple-grammar homepage ----------
   Phase 1 of Apple-style site rewrite. CSS targets sections that homepage.js
   injects into #content.page-home. The legacy carousel is hidden on the home
   page only; the new hero takes its place. To restore the carousel: remove
   the `#index #carousel { display: none }` rule below. */

#index #carousel { display: none !important; }

.bh-home {
  display: block;
}

/* Hero — Apple-style: big headline + huge product photo below */
.bh-hero {
  position: relative;
  padding: clamp(3.5rem, 9vw, 7rem) 1.5rem clamp(3rem, 6vw, 5rem);
  text-align: center;
  background:
    radial-gradient(ellipse at top, var(--bh-rose-soft) 0%, transparent 55%),
    linear-gradient(180deg, var(--bh-cream) 0%, var(--bh-cream-deep) 100%);
  border-radius: var(--bh-radius-lg);
  overflow: hidden;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.bh-hero__inner {
  max-width: 920px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

/* Big product hero image — sits below the headline + subtitle, Apple-iPhone-page style */
.bh-hero__media {
  display: block;
  max-width: clamp(320px, 60vw, 620px);
  width: 100%;
  margin: clamp(2.5rem, 5vw, 4rem) auto 0;
  border-radius: var(--bh-radius-lg);
  overflow: hidden;
  background: var(--bh-warm-white);
  box-shadow: var(--bh-shadow-lg);
  aspect-ratio: 4 / 5;
  position: relative;
  z-index: 2;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.bh-hero__media:hover { transform: translateY(-4px); }
.bh-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.bh-hero__media:hover img { transform: scale(1.04); }

.bh-hero__eyebrow {
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bh-rose-deep);
  font-weight: 600;
  margin-bottom: 1.2rem;
}

.bh-hero__title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(2.5rem, 7.5vw, 5.5rem) !important;
  line-height: 1.04 !important;
  letter-spacing: -0.025em !important;
  color: var(--bh-charcoal) !important;
  font-weight: 600;
  margin: 0 0 1.5rem !important;
}

.bh-hero__subtitle {
  font-family: 'Inter', sans-serif;
  font-size: clamp(1.05rem, 1.6vw, 1.35rem);
  line-height: 1.5;
  color: var(--bh-text);
  max-width: 640px;
  margin: 0 auto 2.5rem;
  font-weight: 400;
}

.bh-hero__ctas {
  display: flex;
  gap: 0.85rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* Pill CTAs reused across the page */
.bh-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.95rem 2.1rem;
  border-radius: var(--bh-radius-pill);
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-decoration: none !important;
  transition: all 0.25s ease;
  border: 1.5px solid transparent;
  cursor: pointer;
}

.bh-cta--primary {
  background: var(--bh-charcoal);
  color: var(--bh-warm-white) !important;
  border-color: var(--bh-charcoal);
}
.bh-cta--primary:hover {
  background: var(--bh-rose-deep);
  border-color: var(--bh-rose-deep);
  color: var(--bh-warm-white) !important;
  transform: translateY(-1px);
}

.bh-cta--secondary {
  background: transparent;
  color: var(--bh-charcoal) !important;
  border-color: var(--bh-charcoal);
}
.bh-cta--secondary:hover {
  background: var(--bh-charcoal);
  color: var(--bh-warm-white) !important;
}

.bh-cta--inline {
  background: transparent;
  color: var(--bh-charcoal) !important;
  border: 0;
  padding: 0;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.bh-cta--inline::after {
  content: '\2192';
  transition: transform 0.25s ease;
}
.bh-cta--inline:hover { color: var(--bh-rose-deep) !important; }
.bh-cta--inline:hover::after { transform: translateX(4px); }

/* Feature sections — alternating image/text */
.bh-feature {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
  padding: clamp(3rem, 7vw, 6rem) clamp(1.25rem, 4vw, 3rem);
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
  border-radius: var(--bh-radius-lg);
  overflow: hidden;
  background: var(--bh-warm-white);
}

.bh-feature--cream { background: var(--bh-cream-deep); }
.bh-feature--charcoal { background: var(--bh-charcoal); }
.bh-feature--charcoal .bh-feature__title { color: var(--bh-warm-white) !important; }
.bh-feature--charcoal .bh-feature__lede { color: rgba(255,254,251,0.82); }
.bh-feature--charcoal .bh-feature__eyebrow { color: var(--bh-rose-soft); }
.bh-feature--charcoal .bh-cta--inline { color: var(--bh-warm-white) !important; }
.bh-feature--charcoal .bh-cta--inline:hover { color: var(--bh-rose-soft) !important; }

.bh-feature--reverse > .bh-feature__media { order: 2; }

.bh-feature__media {
  display: block;
  border-radius: var(--bh-radius-md);
  overflow: hidden;
  background: var(--bh-cream);
  aspect-ratio: 4 / 5;
  position: relative;
}
.bh-feature__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  display: block;
}
.bh-feature:hover .bh-feature__media img { transform: scale(1.03); }

/* Typographic media block — used when no product photo is available */
.bh-feature--typographic .bh-feature__media {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--bh-rose-soft) 0%, var(--bh-cream-deep) 100%);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.75rem, 4.2vw, 3.25rem);
  color: var(--bh-charcoal);
  text-align: center;
  padding: 2rem;
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-weight: 500;
}

.bh-feature__copy { padding: 1rem 0; }

.bh-feature__eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bh-rose-deep);
  font-weight: 600;
  margin-bottom: 1rem;
  display: block;
}

.bh-feature__title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(2rem, 4.5vw, 3.5rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.02em !important;
  color: var(--bh-charcoal) !important;
  margin: 0 0 1.25rem !important;
  font-weight: 600;
}

.bh-feature__lede {
  font-family: 'Inter', sans-serif;
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  color: var(--bh-text);
  line-height: 1.55;
  margin: 0 0 1.75rem;
  max-width: 38ch;
}

/* Feature carousel — single hero section that rotates through the four
   category features. homepage.js builds it from the FEATURES array. Each
   slide is a .bh-feature reused inside .bh-carousel__slide. */
.bh-carousel {
  position: relative;
  /* Break out of the Bootstrap container so the hero spans the full viewport
     width (Apple-style full-bleed). The negative margins pull it left/right
     by half the gap between the container and viewport edges. */
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  max-width: 100vw;
  border-radius: 0;
  overflow: hidden;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
  background: var(--bh-warm-white);
  /* Hero fits the viewport below the sticky header, no scroll required on a
     standard laptop (1366×768 / 1440×900 / 1920×1080). The CSS variable
     accounts for the header stack (announcement bar + nav row + logo row +
     menu strip ≈ 165px on desktop). Floor 520px so it's never tiny;
     ceiling 880px so it's never absurd on 4K. */
  height: clamp(520px, var(--bh-carousel-h, calc(100vh - 165px)), 880px);
}
/* Mobile collapses the menu strip + slim nav, so subtract less */
@media (max-width: 991px) {
  .bh-carousel { --bh-carousel-h: calc(100vh - 130px); }
}
@media (max-width: 575px) {
  .bh-carousel { --bh-carousel-h: calc(100vh - 110px); }
}
/* Hard-stop horizontal scroll the breakout could cause on Windows scrollbars */
html, body { overflow-x: hidden; }

/* Inner content scales with viewport HEIGHT so it never overflows a viewport-
   sized carousel. Replaces the previous, larger spacing rules. */
.bh-carousel__slide > .bh-hero {
  padding-block: clamp(1.5rem, 4vh, 3.5rem) !important;
}
.bh-carousel .bh-hero__title {
  font-size: clamp(1.85rem, 5.5vh, 4rem) !important;
  margin-bottom: clamp(0.6rem, 1.6vh, 1.4rem) !important;
}
.bh-carousel .bh-hero__subtitle {
  font-size: clamp(0.9rem, 1.5vh, 1.2rem) !important;
  margin-bottom: 0 !important;
}
.bh-carousel .bh-hero__eyebrow {
  margin-bottom: clamp(0.5rem, 1.2vh, 1rem) !important;
}
/* Hero product photo: cap height (not width) so it always fits the slide.
   Aspect-ratio 4/5 stays — width derives from the chosen height. */
.bh-carousel .bh-hero__media {
  max-width: none;
  max-height: clamp(220px, 36vh, 440px);
  width: auto;
  margin-top: clamp(0.75rem, 2.5vh, 2.25rem) !important;
  flex: 0 0 auto;
}

/* Feature slides — same vh-scaling */
.bh-carousel .bh-feature {
  padding-block: clamp(1.5rem, 4vh, 4rem) !important;
}
.bh-carousel .bh-feature__title {
  font-size: clamp(1.5rem, 4.5vh, 3rem) !important;
  margin-bottom: clamp(0.6rem, 1.6vh, 1.25rem) !important;
}
.bh-carousel .bh-feature__lede {
  font-size: clamp(0.9rem, 1.5vh, 1.15rem) !important;
  margin-bottom: clamp(0.85rem, 2vh, 1.75rem) !important;
}
.bh-carousel .bh-feature__media {
  align-self: center;
  max-height: 100%;
}
.bh-carousel .bh-feature--typographic .bh-feature__media {
  font-size: clamp(1.5rem, 4.5vh, 3rem);
}
.bh-carousel__viewport {
  overflow: hidden;
}
.bh-carousel__track {
  display: flex;
  transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}
.bh-carousel__slide {
  flex: 0 0 100%;
  min-width: 0;
}
/* Reused .bh-feature / .bh-hero inside the carousel drop their outer card chrome
   (the carousel container provides the rounded corners + breathing room). */
.bh-carousel .bh-feature,
.bh-carousel .bh-hero {
  margin-bottom: 0;
  border-radius: 0;
}
/* Stretch slide content so all slides share the height of the tallest one
   (or the carousel min-height, whichever wins). Slide content stays centered. */
.bh-carousel__slide {
  display: flex;
  min-height: inherit;
}
.bh-carousel__slide > .bh-feature,
.bh-carousel__slide > .bh-hero {
  flex: 1 1 auto;
  width: 100%;
}
.bh-carousel__slide > .bh-hero {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* Cap inner content at ~1440px on ultrawide displays while keeping the slide
   background full-bleed. The padding-inline grows to fill leftover viewport
   space, so text/imagery never stretches beyond a comfortable reading width. */
.bh-carousel .bh-feature {
  padding-inline: max(clamp(1.25rem, 4vw, 3rem), calc((100vw - 1440px) / 2)) !important;
}
.bh-carousel .bh-hero {
  padding-inline: max(1.5rem, calc((100vw - 1100px) / 2));
}

.bh-carousel__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 254, 251, 0.85);
  border: 0;
  cursor: pointer;
  z-index: 5;
  font-size: 1.4rem;
  line-height: 1;
  font-weight: 600;
  color: var(--bh-charcoal);
  transition: all 0.25s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: var(--bh-shadow-sm);
}
.bh-carousel__arrow--prev { left: 1rem; }
.bh-carousel__arrow--next { right: 1rem; }
.bh-carousel__arrow:hover {
  background: var(--bh-warm-white);
  box-shadow: var(--bh-shadow-md);
}
.bh-carousel__arrow:focus-visible {
  outline: 2px solid var(--bh-rose-deep);
  outline-offset: 2px;
}

/* Persistent CTA overlay — sits above every slide image, regardless of which
   slide is currently showing. Bottom-centered, just above the dots. */
.bh-carousel__cta-overlay {
  position: absolute;
  left: 50%;
  bottom: clamp(3rem, 6vw, 5.5rem);
  transform: translateX(-50%);
  display: flex;
  gap: 0.85rem;
  flex-wrap: wrap;
  justify-content: center;
  z-index: 4;
  padding: 0 1rem;
  max-width: min(720px, calc(100% - 2rem));
}
/* Subtle backdrop chip behind the buttons so they're readable on busy images.
   Pure-cream slides: no visible plate. Pure-image slides (future): plate shows. */
.bh-carousel__cta-overlay::before {
  content: '';
  position: absolute;
  inset: -0.5rem -0.75rem;
  border-radius: var(--bh-radius-pill);
  background: rgba(255, 254, 251, 0.0);
  pointer-events: none;
  transition: background 0.4s ease;
  z-index: -1;
}
/* Inverted palette while sitting on a charcoal slide so both buttons stay legible */
.bh-carousel.is-on-dark .bh-carousel__cta-overlay .bh-cta--primary {
  background: var(--bh-warm-white);
  color: var(--bh-charcoal) !important;
  border-color: var(--bh-warm-white);
}
.bh-carousel.is-on-dark .bh-carousel__cta-overlay .bh-cta--primary:hover {
  background: var(--bh-rose-soft);
  border-color: var(--bh-rose-soft);
}
.bh-carousel.is-on-dark .bh-carousel__cta-overlay .bh-cta--secondary {
  background: transparent;
  color: var(--bh-warm-white) !important;
  border-color: var(--bh-warm-white);
}
.bh-carousel.is-on-dark .bh-carousel__cta-overlay .bh-cta--secondary:hover {
  background: var(--bh-warm-white);
  color: var(--bh-charcoal) !important;
}

.bh-carousel__dots {
  position: absolute;
  bottom: 1.25rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.5rem;
  z-index: 5;
}
.bh-carousel__dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(60, 45, 35, 0.3);
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
  transition: all 0.3s ease;
}
.bh-carousel__dot.is-active {
  background: var(--bh-charcoal);
  width: 26px;
}
.bh-carousel__dot:focus-visible {
  outline: 2px solid var(--bh-rose-deep);
  outline-offset: 2px;
}
/* Light dots when the active slide has a charcoal background (set on the carousel by JS) */
.bh-carousel.is-on-dark .bh-carousel__dot { background: rgba(255,254,251,0.4); }
.bh-carousel.is-on-dark .bh-carousel__dot.is-active { background: var(--bh-warm-white); }
.bh-carousel.is-on-dark .bh-carousel__arrow {
  background: rgba(44, 38, 32, 0.55);
  color: var(--bh-warm-white);
}
.bh-carousel.is-on-dark .bh-carousel__arrow:hover {
  background: rgba(44, 38, 32, 0.85);
}

@media (max-width: 768px) {
  .bh-carousel__arrow { display: none; }
}

/* Scroll-reveal — homepage.js toggles .is-visible via IntersectionObserver */
.bh-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}
.bh-reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Closing brand band */
.bh-brand-band {
  background: var(--bh-charcoal);
  color: var(--bh-warm-white);
  text-align: center;
  padding: clamp(4rem, 8vw, 6rem) 1.5rem;
  border-radius: var(--bh-radius-lg);
  margin: clamp(3rem, 6vw, 5rem) 0;
}
.bh-brand-band h2 {
  color: var(--bh-warm-white) !important;
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  letter-spacing: -0.015em !important;
  margin: 0 0 1rem !important;
  font-weight: 500;
}
.bh-brand-band p {
  color: rgba(255, 254, 251, 0.85);
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  max-width: 580px;
  margin: 0 auto 2rem;
  line-height: 1.55;
}
.bh-brand-band .bh-cta--primary {
  background: var(--bh-warm-white);
  color: var(--bh-charcoal) !important;
  border-color: var(--bh-warm-white);
}
.bh-brand-band .bh-cta--primary:hover {
  background: var(--bh-rose-soft);
  border-color: var(--bh-rose-soft);
  color: var(--bh-charcoal) !important;
}

/* Featured products grid breathes on home */
#index .featured-products {
  margin-top: clamp(3rem, 6vw, 5rem);
  padding: 0 0.5rem;
}
#index .featured-products .products-section-title {
  margin-top: 0 !important;
}

/* ---------- Apple-grammar auth + account (phase 7) ----------
   Targets body#authentication, #registration, #my-account, #history,
   #identity, #addresses, #address, #order-detail, #password,
   #guest-tracking, #order-follow. Stacks the default 3-col PrestaShop
   form rows into a label-over-input rhythm; pill submits; account
   dashboard becomes a clean tile grid. CSS-only. */

/* Common page-content card */
#authentication #content.card,
#registration #content.card,
#my-account #content.card,
#history #content.card,
#identity #content.card,
#addresses #content.card,
#address #content.card,
#order-detail #content.card,
#password #content.card,
#order-follow #content.card,
#guest-tracking #content.card {
  background: var(--bh-warm-white) !important;
  border: 1px solid var(--bh-border) !important;
  border-radius: var(--bh-radius-lg) !important;
  box-shadow: var(--bh-shadow-sm) !important;
  padding: clamp(1.5rem, 4vw, 2.5rem) !important;
  margin-bottom: 2rem;
}

/* Editorial page header for every auth/account page */
#authentication .page-header h1,
#registration .page-header h1,
#my-account .page-header h1,
#history .page-header h1,
#identity .page-header h1,
#addresses .page-header h1,
#address .page-header h1,
#order-detail .page-header h1,
#password .page-header h1,
#order-follow .page-header h1,
#guest-tracking .page-header h1 {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(1.8rem, 4vw, 2.5rem) !important;
  font-weight: 600 !important;
  letter-spacing: -0.015em !important;
  color: var(--bh-charcoal) !important;
  text-align: center;
  margin: clamp(2rem, 4vw, 3rem) 0 1.5rem !important;
  text-transform: none !important;
  line-height: 1.15 !important;
}

/* Narrow login + register + password-recovery cards */
#authentication #content.card,
#password #content.card {
  max-width: 540px;
  margin: 0 auto 2rem;
}
#registration #content.card { max-width: 720px; margin: 0 auto 2rem; }

/* Stack form rows: label on top, input below, comment beneath. The default
   PS layout is .col-md-3 / .col-md-6 / .col-md-3 horizontal. */
#authentication .form-group.row,
#registration .form-group.row,
#identity .form-group.row,
#address .form-group.row,
#password .form-group.row {
  margin: 0 0 1.1rem !important;
  display: block !important;
}
#authentication .form-group.row > .form-control-label,
#registration .form-group.row > .form-control-label,
#identity .form-group.row > .form-control-label,
#address .form-group.row > .form-control-label,
#password .form-group.row > .form-control-label {
  display: block !important;
  width: 100% !important;
  flex: none !important;
  max-width: none !important;
  text-align: left !important;
  margin: 0 0 0.4rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  color: var(--bh-charcoal) !important;
  padding: 0 !important;
}
#authentication .form-group.row > .js-input-column,
#registration .form-group.row > .js-input-column,
#identity .form-group.row > .js-input-column,
#address .form-group.row > .js-input-column,
#password .form-group.row > .js-input-column {
  width: 100% !important;
  flex: none !important;
  max-width: none !important;
  padding: 0 !important;
}
#authentication .form-group.row > .form-control-comment,
#registration .form-group.row > .form-control-comment,
#identity .form-group.row > .form-control-comment,
#address .form-group.row > .form-control-comment,
#password .form-group.row > .form-control-comment {
  width: 100% !important;
  flex: none !important;
  max-width: none !important;
  padding: 0 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.78rem !important;
  color: var(--bh-muted) !important;
  margin-top: 0.3rem !important;
}

/* Inputs */
#authentication .form-control,
#registration .form-control,
#identity .form-control,
#address .form-control,
#password .form-control,
#order-detail .form-control,
#order-follow .form-control,
#guest-tracking .form-control {
  border: 1.5px solid var(--bh-border) !important;
  background: var(--bh-warm-white) !important;
  border-radius: var(--bh-radius-md) !important;
  padding: 0.7rem 1rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.95rem !important;
  color: var(--bh-charcoal) !important;
  height: auto;
  box-shadow: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
#authentication .form-control:focus,
#registration .form-control:focus,
#identity .form-control:focus,
#address .form-control:focus,
#password .form-control:focus,
#order-detail .form-control:focus,
#order-follow .form-control:focus,
#guest-tracking .form-control:focus {
  border-color: var(--bh-charcoal) !important;
  box-shadow: 0 0 0 3px rgba(60, 45, 35, 0.08) !important;
  outline: none !important;
}

/* Password show/hide button */
#authentication .input-group .input-group-btn .btn,
#registration .input-group .input-group-btn .btn {
  border: 1.5px solid var(--bh-border) !important;
  background: var(--bh-cream) !important;
  border-radius: var(--bh-radius-md) !important;
  padding: 0.6rem 1rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  color: var(--bh-charcoal) !important;
  height: auto;
  margin-left: 0.5rem;
}

/* Submit pill */
#authentication .form-footer,
#registration .form-footer,
#identity .form-footer,
#address .form-footer,
#password .form-footer {
  text-align: center !important;
  margin-top: 1.5rem !important;
  padding: 0 !important;
}
#authentication #submit-login,
#authentication .form-footer .btn-primary,
#registration .form-footer .btn-primary,
#identity .form-footer .btn-primary,
#address .form-footer .btn-primary,
#password .form-footer .btn-primary {
  background: var(--bh-charcoal) !important;
  color: var(--bh-warm-white) !important;
  border: 0 !important;
  border-radius: var(--bh-radius-pill) !important;
  height: 52px;
  padding: 0 2.5rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  min-width: 200px;
  transition: all 0.25s ease !important;
  box-shadow: var(--bh-shadow-sm) !important;
}
#authentication #submit-login:hover,
#authentication .form-footer .btn-primary:hover,
#registration .form-footer .btn-primary:hover,
#identity .form-footer .btn-primary:hover,
#address .form-footer .btn-primary:hover,
#password .form-footer .btn-primary:hover {
  background: var(--bh-rose-deep) !important;
  transform: translateY(-1px);
  box-shadow: var(--bh-shadow-md) !important;
}

/* Forgot-password link below the login form */
#authentication .forgot-password {
  text-align: center;
  margin: 1rem 0 0 !important;
  padding: 0 !important;
}
#authentication .forgot-password a {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.85rem !important;
  color: var(--bh-rose-deep) !important;
  font-weight: 500;
  text-decoration: none !important;
}
#authentication .forgot-password a:hover {
  color: var(--bh-charcoal) !important;
}

/* "No account? Create one" link below the login form */
#authentication #content > hr { display: none; }
#authentication #content > a[href*="registration"],
#authentication a[data-link-action="display-register-form"] {
  display: block;
  text-align: center;
  margin-top: 1.25rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.9rem !important;
  color: var(--bh-charcoal) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
#authentication #content > a[href*="registration"]:hover {
  color: var(--bh-rose-deep) !important;
}

/* "Already have an account? Log in instead" line on /registration */
#registration .register-form > p {
  text-align: center;
  margin: 0 0 1.75rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.9rem !important;
  color: var(--bh-muted) !important;
}
#registration .register-form > p a {
  color: var(--bh-rose-deep) !important;
  font-weight: 600 !important;
}

/* Custom radio + checkbox tweak (gender, terms, newsletter opt-in) */
#registration .custom-radio,
#authentication .custom-radio {
  display: inline-block !important;
  width: 18px !important;
  height: 18px !important;
  border: 1.5px solid var(--bh-border) !important;
  border-radius: 50% !important;
  position: relative;
  margin-right: 0.4rem;
  vertical-align: middle;
  background: var(--bh-warm-white) !important;
}
#registration .custom-radio input,
#authentication .custom-radio input {
  opacity: 0;
  position: absolute !important;
  inset: 0 !important;
  margin: 0 !important;
  cursor: pointer;
}
#registration .custom-radio input:checked + span,
#authentication .custom-radio input:checked + span {
  display: block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--bh-charcoal);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

#registration label.radio-inline {
  display: inline-flex;
  align-items: center;
  margin-right: 1.5rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.95rem;
  color: var(--bh-text);
}

#registration .custom-checkbox,
#authentication .custom-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-family: 'Inter', sans-serif;
  font-size: 0.85rem;
  color: var(--bh-text);
  margin: 0.5rem 0 !important;
  cursor: pointer;
}
#registration .custom-checkbox input[type="checkbox"],
#authentication .custom-checkbox input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-top: 0.15rem;
  accent-color: var(--bh-charcoal);
  flex: 0 0 auto;
}

/* ---------- Account dashboard (/my-account) ---------- */

#my-account #main { max-width: 980px; margin: 0 auto; }
#my-account .links {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
  gap: 1rem !important;
  list-style: none;
  padding: 0 !important;
  margin: 0 !important;
}
#my-account .links > a,
#my-account a.link-item {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: var(--bh-warm-white);
  border: 1.5px solid var(--bh-border);
  border-radius: var(--bh-radius-md);
  padding: 2rem 1.25rem;
  text-align: center;
  text-decoration: none !important;
  color: var(--bh-charcoal) !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  font-size: 0.95rem !important;
  transition: all 0.2s ease;
  min-height: 150px;
  flex: none !important;
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
}
#my-account .links > a:hover,
#my-account a.link-item:hover {
  border-color: var(--bh-charcoal) !important;
  transform: translateY(-2px);
  box-shadow: var(--bh-shadow-md);
  color: var(--bh-charcoal) !important;
}
#my-account .links > a i.material-icons,
#my-account a.link-item i.material-icons {
  font-size: 2.2rem !important;
  color: var(--bh-rose-deep);
  margin-bottom: 0.35rem;
}
#my-account .logout {
  display: inline-block;
  margin-top: 1.5rem;
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  color: var(--bh-muted) !important;
  text-decoration: none !important;
  font-weight: 500;
}
#my-account .logout:hover { color: var(--bh-rose-deep) !important; }

/* ---------- Order history table ---------- */

#history table.table {
  border: 0 !important;
  background: transparent !important;
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  margin: 0 !important;
}
#history table thead {
  background: var(--bh-cream-deep);
}
#history table thead th {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.75rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal) !important;
  border: 0 !important;
  padding: 1rem !important;
}
#history table tbody td {
  padding: 1rem !important;
  border-top: 1px solid var(--bh-border) !important;
  vertical-align: middle;
  color: var(--bh-text);
  font-family: 'Inter', sans-serif !important;
}
#history .label,
#history .badge {
  display: inline-block;
  padding: 0.3rem 0.85rem;
  border-radius: var(--bh-radius-pill);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* ---------- Address cards ---------- */

#addresses .addresses-footer { margin-top: 1.5rem; }
#addresses .addresses-footer a,
#addresses .add-address {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: var(--bh-charcoal) !important;
  color: var(--bh-warm-white) !important;
  padding: 0.65rem 1.5rem !important;
  border-radius: var(--bh-radius-pill) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em;
  text-decoration: none !important;
  transition: background 0.2s ease, transform 0.2s ease;
}
#addresses .addresses-footer a:hover,
#addresses .add-address:hover {
  background: var(--bh-rose-deep) !important;
  transform: translateY(-1px);
}
#addresses .address {
  background: var(--bh-warm-white);
  border: 1px solid var(--bh-border);
  border-radius: var(--bh-radius-md);
  padding: 1.5rem;
  margin-bottom: 1rem;
  font-family: 'Inter', sans-serif;
  font-size: 0.92rem;
  color: var(--bh-text);
  line-height: 1.55;
}
#addresses .address h4,
#addresses .address-alias {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.15rem !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal) !important;
  margin: 0 0 0.5rem !important;
}
#addresses .address footer {
  margin-top: 1rem;
  display: flex;
  gap: 1rem;
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
}
#addresses .address footer a {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  color: var(--bh-charcoal) !important;
  text-decoration: none !important;
}
#addresses .address footer a:hover {
  color: var(--bh-rose-deep) !important;
}

/* Mobile auth/account */
@media (max-width: 768px) {
  #authentication #content.card,
  #registration #content.card,
  #password #content.card { padding: 1.5rem !important; }
  #my-account .links { grid-template-columns: 1fr 1fr !important; }
  #my-account .links > a,
  #my-account a.link-item { padding: 1.25rem 0.75rem; min-height: 120px; font-size: 0.85rem !important; }
  #my-account .links > a i.material-icons { font-size: 1.7rem !important; }
}

/* ---------- Apple-grammar search + 404 (phase 6) ----------
   Restyles body#search and body#pagenotfound. The default PrestaShop placeholder
   copy on the 404 ("No products available yet / Stay tuned!") is hidden via CSS
   and replaced by a friendlier line via ::before on the page-not-found section. */

/* ---- Search results page ---- */

#search h1#js-product-list-header.h2 {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(2rem, 4.5vw, 3rem) !important;
  font-weight: 600 !important;
  text-align: center;
  margin: clamp(2rem, 5vw, 4rem) 0 clamp(1.5rem, 3vw, 2rem) !important;
  letter-spacing: -0.02em !important;
  text-transform: none !important;
  color: var(--bh-charcoal) !important;
}

/* No-results state on /search */
#search .page-not-found {
  background: linear-gradient(180deg, var(--bh-cream) 0%, var(--bh-cream-deep) 100%);
  border: 0;
  border-radius: var(--bh-radius-lg);
  padding: clamp(3rem, 7vw, 5rem) clamp(1.5rem, 4vw, 3rem) !important;
  text-align: center;
  margin: 0 auto;
  max-width: 720px;
}
#search #product-search-no-matches,
#search .page-not-found h4 {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(1.5rem, 3vw, 2rem) !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal) !important;
  margin: 0 auto 0.75rem !important;
  text-transform: none !important;
}
#search .page-not-found p {
  font-family: 'Inter', sans-serif !important;
  font-size: 1rem !important;
  color: var(--bh-muted) !important;
  margin: 0 auto 2rem !important;
  max-width: 440px;
  line-height: 1.55;
}

/* ---- 404 page ---- */

#pagenotfound #content-wrapper { padding: 0 1rem; }
#pagenotfound section#main {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}
#pagenotfound .page-header {
  margin-bottom: 0;
  padding: 0;
  background: transparent;
}
#pagenotfound .page-header h1 {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(1.6rem, 3.5vw, 2.25rem) !important;
  font-weight: 600 !important;
  letter-spacing: -0.015em !important;
  color: var(--bh-charcoal) !important;
  margin: clamp(2rem, 5vw, 3rem) 0 0.75rem !important;
  text-transform: none !important;
  line-height: 1.15 !important;
}
/* Big "404" mark above the heading */
#pagenotfound .page-header::before {
  content: '404';
  display: block;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(5rem, 14vw, 9rem);
  line-height: 0.85;
  letter-spacing: -0.045em;
  color: var(--bh-rose-soft);
  margin: clamp(3rem, 6vw, 5rem) 0 0;
  text-align: center;
  font-weight: 600;
}
/* Hide PrestaShop's default placeholder copy ("No products available yet / Stay tuned!") */
#pagenotfound .page-content.page-not-found > h4,
#pagenotfound .page-content.page-not-found > p:not(:has(input)) {
  display: none !important;
}
/* Replace it with a friendlier line and tighten the page-content card */
#pagenotfound .page-content.page-not-found {
  background: transparent;
  border: 0;
  padding: 0 !important;
  margin: 1rem auto 3rem;
  max-width: 520px;
}
#pagenotfound .page-content.page-not-found::before {
  content: "You\2019ve wandered off the path. Try a search, or use the menu above to find your way back.";
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: clamp(0.95rem, 1.3vw, 1.05rem);
  color: var(--bh-muted);
  text-align: center;
  margin-bottom: 1.75rem;
  line-height: 1.55;
}
/* Page-footer that PS sometimes injects on this page — hide it */
#pagenotfound .page-footer:empty,
#pagenotfound footer.page-footer {
  display: none;
}

/* ---- Search widget (used on /search no-results AND /pagenotfound) ---- */

#search .page-not-found #search_widget,
#pagenotfound #search_widget {
  max-width: 480px;
  margin: 0 auto;
}
#search .page-not-found #search_widget form,
#pagenotfound #search_widget form {
  position: relative;
  display: flex !important;
  align-items: center;
  background: var(--bh-warm-white);
  border: 1.5px solid var(--bh-border);
  border-radius: var(--bh-radius-pill);
  padding: 0.45rem 1.1rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
#search .page-not-found #search_widget form:focus-within,
#pagenotfound #search_widget form:focus-within {
  border-color: var(--bh-charcoal);
  box-shadow: 0 0 0 3px rgba(60, 45, 35, 0.06);
}
#search .page-not-found #search_widget input[type="text"],
#pagenotfound #search_widget input[type="text"] {
  flex: 1 1 auto;
  border: 0 !important;
  background: transparent !important;
  padding: 0.5rem 0.5rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.95rem !important;
  color: var(--bh-charcoal) !important;
  outline: none !important;
  box-shadow: none !important;
  height: auto !important;
}
#search .page-not-found #search_widget input[type="text"]::placeholder,
#pagenotfound #search_widget input[type="text"]::placeholder {
  color: var(--bh-muted);
}
#search .page-not-found #search_widget .material-icons.search,
#pagenotfound #search_widget .material-icons.search {
  color: var(--bh-muted);
  font-size: 1.25rem !important;
  margin-right: 0.4rem;
}
#search .page-not-found #search_widget .material-icons.clear,
#pagenotfound #search_widget .material-icons.clear {
  color: var(--bh-muted);
  cursor: pointer;
  font-size: 1.1rem !important;
}

/* ---------- Apple-grammar cart + checkout (phase 5) ----------
   Restyles body#cart and body#checkout. CSS-only — PrestaShop's checkout JS,
   form validation, and order-form posting flow remain untouched. */

/* ---- Cart page (body#cart) ---- */

#cart .cart-grid {
  margin: 0 -0.75rem;
  align-items: flex-start;
}
#cart .cart-grid > [class*="col-"] { padding: 0 0.75rem; }

#cart .cart-container.card,
#cart .cart-summary.card {
  background: var(--bh-warm-white) !important;
  border: 1px solid var(--bh-border) !important;
  border-radius: var(--bh-radius-lg) !important;
  box-shadow: var(--bh-shadow-sm) !important;
}
#cart .cart-container .card-block { padding: 2rem 2rem 1rem !important; }
#cart .cart-container hr.separator {
  border: 0;
  border-top: 1px solid var(--bh-border);
  margin: 0;
}

/* Editorial cart heading */
#cart .cart-container h1.h1 {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(2rem, 4vw, 2.75rem) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  margin: 0 !important;
  color: var(--bh-charcoal) !important;
  text-transform: none !important;
}

/* Empty state */
#cart .cart-overview .no-items {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 1.05rem;
  color: var(--bh-muted);
  text-align: center;
  padding: 3rem 1rem;
}

/* Line items (when cart is non-empty) */
#cart .cart-items {
  list-style: none;
  padding: 0;
  margin: 0;
}
#cart .cart-item {
  padding: 1.5rem 2rem !important;
  border-bottom: 1px solid var(--bh-border);
}
#cart .cart-item:last-child { border-bottom: 0; }
#cart .product-line-grid-left img {
  border-radius: var(--bh-radius-md);
}
#cart .product-line-info .label,
#cart .product-line-info {
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
}
#cart .product-line-grid-body .product-line-info.product-title,
#cart .product-line-grid-body .product-line-info.product-title a {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal) !important;
  text-transform: none !important;
  letter-spacing: -0.005em !important;
}
#cart .product-line-grid-right .price {
  font-family: 'Inter', sans-serif !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal);
}

/* Quantity stepper */
#cart .input-group.bootstrap-touchspin {
  display: inline-flex;
  align-items: center;
  border: 1.5px solid var(--bh-border);
  border-radius: var(--bh-radius-pill);
  overflow: hidden;
  background: var(--bh-warm-white);
}
#cart .input-group.bootstrap-touchspin input.form-control {
  border: 0 !important;
  background: transparent !important;
  width: 50px;
  text-align: center;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  color: var(--bh-charcoal) !important;
  padding: 0.55rem 0 !important;
  height: auto;
  box-shadow: none !important;
}
#cart .input-group-btn-vertical button {
  background: transparent !important;
  border: 0 !important;
  color: var(--bh-charcoal) !important;
  padding: 0.45rem 0.85rem !important;
}
#cart .input-group-btn-vertical button:hover {
  background: var(--bh-cream) !important;
}

/* Continue shopping link */
#cart > main a.label,
#cart .cart-grid-body a.label {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-family: 'Inter', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--bh-charcoal) !important;
  margin: 1rem 0;
  letter-spacing: 0.02em;
}
#cart .cart-grid-body a.label:hover { color: var(--bh-rose-deep) !important; }

/* Right summary card — sticky on desktop */
@media (min-width: 992px) {
  #cart .cart-grid-right { position: sticky; top: 130px; }
}
#cart .cart-summary .card-block { padding: 1.75rem !important; }

#cart .cart-summary-line {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.5rem 0;
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  color: var(--bh-text);
}
#cart .cart-summary-line .label { color: var(--bh-muted); font-weight: 500; }
#cart .cart-summary-line .label.sub,
#cart .cart-summary-line .value.sub { font-size: 0.85rem; }
#cart .cart-summary-line.cart-total {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.35rem !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal) !important;
  margin-top: 0.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--bh-border);
}
#cart .cart-summary-line.cart-total .label,
#cart .cart-summary-line.cart-total .value {
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  color: var(--bh-charcoal) !important;
}

/* Big checkout pill */
#cart .checkout {
  padding: 1.25rem 1.75rem 1.75rem !important;
}
#cart .checkout .btn-primary {
  width: 100%;
  height: 56px;
  background: var(--bh-charcoal) !important;
  color: var(--bh-warm-white) !important;
  border: 0 !important;
  border-radius: var(--bh-radius-pill) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  transition: all 0.25s ease !important;
}
#cart .checkout .btn-primary:hover:not(.disabled):not([disabled]) {
  background: var(--bh-rose-deep) !important;
  transform: translateY(-1px);
}
#cart .checkout .btn-primary.disabled,
#cart .checkout .btn-primary[disabled] {
  background: var(--bh-border) !important;
  color: var(--bh-muted) !important;
  cursor: not-allowed;
}

/* Reuse the slim PDP reassurance row for the cart-side reassurance */
#cart .blockreassurance_product {
  margin-top: 1.5rem;
  background: transparent;
  padding: 1.25rem 0 0;
  border-top: 1px solid var(--bh-border);
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.5rem;
}
#cart .blockreassurance_product .item-product { display: none; }
#cart .blockreassurance_product .block-title {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--bh-charcoal) !important;
  display: block;
  margin-bottom: 0.2rem;
}
#cart .blockreassurance_product p {
  font-size: 0.82rem !important;
  color: var(--bh-muted) !important;
  line-height: 1.45;
  margin: 0 !important;
}

/* Empty-cart upsell heading hidden — feels like clutter on an empty page */
#cart.cart-empty section#products h1 { display: none; }

/* ---- Checkout page (body#checkout) ---- */

#checkout .page-wrapper--checkout,
#checkout #wrapper {
  background: var(--bh-cream);
}

#checkout .checkout-process .checkout-step {
  background: var(--bh-warm-white) !important;
  border: 1px solid var(--bh-border) !important;
  border-radius: var(--bh-radius-lg) !important;
  box-shadow: var(--bh-shadow-sm) !important;
  margin-bottom: 1.25rem !important;
  overflow: hidden;
}
#checkout .checkout-step .step-title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(1.25rem, 2vw, 1.6rem) !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal) !important;
  letter-spacing: -0.01em !important;
  margin: 0 !important;
  padding: 1.5rem 2rem !important;
  text-transform: none !important;
  display: flex !important;
  align-items: center;
  gap: 0.85rem;
  cursor: pointer;
}
#checkout .checkout-step .step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 50%;
  background: var(--bh-charcoal);
  color: var(--bh-warm-white);
  font-family: 'Inter', sans-serif !important;
  font-size: 0.85rem;
  font-weight: 600;
}
#checkout .checkout-step.-current .step-title { background: transparent; }
#checkout .checkout-step.-reachable.-complete .step-number,
#checkout .checkout-step.done .step-number {
  background: var(--bh-rose-deep);
}
#checkout .checkout-step .content {
  padding: 1.5rem 2rem 2rem !important;
}
#checkout .checkout-step:not(.-current) .content {
  display: none;
}
#checkout .checkout-step.-current .content {
  display: block;
}

/* Form inputs */
#checkout input[type="text"],
#checkout input[type="email"],
#checkout input[type="tel"],
#checkout input[type="password"],
#checkout select,
#checkout textarea {
  border: 1.5px solid var(--bh-border) !important;
  background: var(--bh-warm-white) !important;
  border-radius: var(--bh-radius-md) !important;
  padding: 0.7rem 1rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.95rem !important;
  color: var(--bh-charcoal) !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  height: auto;
  box-shadow: none !important;
}
#checkout input[type="text"]:focus,
#checkout input[type="email"]:focus,
#checkout input[type="tel"]:focus,
#checkout input[type="password"]:focus,
#checkout select:focus,
#checkout textarea:focus {
  border-color: var(--bh-charcoal) !important;
  box-shadow: 0 0 0 3px rgba(60, 45, 35, 0.08) !important;
  outline: none !important;
}
#checkout label,
#checkout .form-control-label {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  color: var(--bh-charcoal) !important;
  margin-bottom: 0.4rem !important;
}

/* Continue / Place Order pill */
#checkout .continue.btn-primary,
#checkout button.continue,
#checkout #payment-confirmation .btn-primary,
#checkout button[name="confirmDeliveryOption"] {
  background: var(--bh-charcoal) !important;
  color: var(--bh-warm-white) !important;
  border: 0 !important;
  border-radius: var(--bh-radius-pill) !important;
  height: 52px;
  padding: 0 2rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  transition: all 0.25s ease !important;
  min-width: 200px;
}
#checkout .continue.btn-primary:hover,
#checkout button.continue:hover,
#checkout #payment-confirmation .btn-primary:hover {
  background: var(--bh-rose-deep) !important;
  transform: translateY(-1px);
}

/* Delivery / payment option cards */
#checkout .delivery-option,
#checkout .payment-option {
  background: var(--bh-warm-white);
  border: 1.5px solid var(--bh-border);
  border-radius: var(--bh-radius-md);
  padding: 1rem 1.25rem;
  margin-bottom: 0.75rem;
  transition: all 0.2s ease;
  cursor: pointer;
}
#checkout .delivery-option:hover,
#checkout .payment-option:hover {
  border-color: var(--bh-charcoal);
}
#checkout .delivery-option:has(input:checked),
#checkout .payment-option:has(input:checked) {
  border-color: var(--bh-charcoal);
  background: var(--bh-cream);
}
#checkout .carrier-name {
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal);
}
#checkout .carrier-price {
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal);
}

/* Right summary on checkout */
#checkout #cart-summary,
#checkout .cart-summary,
#checkout .checkout-summary {
  background: var(--bh-warm-white) !important;
  border: 1px solid var(--bh-border) !important;
  border-radius: var(--bh-radius-lg) !important;
  box-shadow: var(--bh-shadow-sm) !important;
  padding: 1.5rem !important;
}
#checkout .cart-summary-products,
#checkout .cart-summary-totals {
  font-family: 'Inter', sans-serif;
  font-size: 0.92rem;
}
#checkout .cart-summary-line.cart-total {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal) !important;
  border-top: 1px solid var(--bh-border);
  margin-top: 0.5rem;
  padding-top: 1rem;
}

/* Order confirmation */
#order-confirmation #content,
.page-order-confirmation #content {
  background: var(--bh-warm-white);
  border: 1px solid var(--bh-border);
  border-radius: var(--bh-radius-lg);
  padding: clamp(2rem, 4vw, 3rem) !important;
}
#order-confirmation h3,
.page-order-confirmation h3 {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal) !important;
}

/* Mobile cart/checkout */
@media (max-width: 991px) {
  #cart .cart-grid-right { position: static !important; }
}
@media (max-width: 768px) {
  #cart .cart-container .card-block { padding: 1.5rem !important; }
  #cart .cart-container h1.h1 { font-size: 1.65rem !important; }
  #cart .cart-summary .card-block { padding: 1.25rem !important; }
  #checkout .checkout-step .step-title { padding: 1.15rem 1.25rem !important; font-size: 1.1rem !important; }
  #checkout .checkout-step .content { padding: 1rem 1.25rem 1.5rem !important; }
}

/* ---------- Apple-grammar nav + footer (phase 4) ----------
   Slims the multi-row header into a tighter, lighter Apple-style strip and
   regroups the footer into clean evenly-distributed columns with subdued
   typography. Pure CSS — no DOM moves. */

/* Slimmer top announcement bar */
.bh-top-bar {
  font-size: 0.7rem !important;
  padding: 0.45rem 1rem !important;
  letter-spacing: 0.14em !important;
}

/* The contact link in the nav row duplicates the announcement bar's contact CTA */
#_desktop_contact_link { display: none !important; }

/* Compact secondary nav row (where Sign in / Cart live) */
.header-nav {
  padding: 0.25rem 0 !important;
  background: rgba(255, 254, 251, 0.6);
  border-bottom: 1px solid var(--bh-border);
  min-height: 0 !important;
}
.header-nav .row { min-height: 0; }
.header-nav .right-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.25rem;
  padding: 0;
}

/* Hide verbose text labels on desktop — show icons only (cart count badge stays) */
@media (min-width: 768px) {
  #_desktop_user_info .user-info a > span.hidden-sm-down,
  #_desktop_cart .blockcart .header > span.hidden-sm-down {
    display: none !important;
  }
}
#_desktop_user_info .user-info a,
#_desktop_cart .blockcart .header {
  display: inline-flex !important;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.85rem;
  color: var(--bh-charcoal) !important;
  padding: 0.4rem 0.5rem;
  border-radius: var(--bh-radius-pill);
  transition: background 0.2s ease;
}
#_desktop_user_info .user-info a:hover,
#_desktop_cart .blockcart .header:hover {
  background: var(--bh-cream);
}
#_desktop_user_info .material-icons,
#_desktop_cart .material-icons {
  font-size: 1.25rem !important;
}
#_desktop_cart .cart-products-count {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--bh-rose-deep);
}

/* Header-top row — keep its ~65px footprint but let the logo fill it. The
   row holds only the logo on the left now (search lives in #search_widget,
   menu lives in .bh-menu-strip, user/cart in .header-nav). */
.header-top {
  padding: 0.25rem 0 !important;
}
.header-top > .container,
.header-top .row { align-items: center; }
#_desktop_logo .logo,
#_desktop_logo a img.logo {
  max-height: 60px !important;
  width: auto !important;
  height: auto;
  display: block;
}
#_desktop_logo h1 { margin: 0 !important; line-height: 1; padding: 0 !important; }
#_desktop_logo a { display: inline-block; line-height: 0; }

/* Tighter menu strip + smaller items */
.bh-menu-strip { padding: 0.1rem 0; }
.top-menu a[data-depth="0"] {
  font-size: 0.74rem !important;
  letter-spacing: 0.16em !important;
  padding: 0.7rem 1rem !important;
}

/* ---------- Footer ---------- */

#footer {
  background: var(--bh-cream-deep) !important;
  border-top: 1px solid var(--bh-border);
  margin-top: clamp(2.5rem, 5vw, 4rem);
}

/* Newsletter band sits at the top of the footer; tighten + center it.
   Overrides the older .block_newsletter "card" treatment so it sits inline. */
#blockEmailSubscription_displayFooterBefore,
#blockEmailSubscription_displayFooterBefore.block_newsletter {
  background: transparent !important;
  border: 0 !important;
  max-width: none !important;
  width: 100% !important;
  padding: 2.5rem 0 1.5rem !important;
  margin: 0 !important;
  border-radius: 0 !important;
  text-align: left !important;
}
#blockEmailSubscription_displayFooterBefore .row { margin: 0; align-items: center; }
#blockEmailSubscription_displayFooterBefore .col-md-7,
#blockEmailSubscription_displayFooterBefore .col-md-5 { padding: 0; }
#blockEmailSubscription_displayFooterBefore form { display: block; margin: 0; }

/* Email + button sit side-by-side (replaces the float-xs-right layout) */
#blockEmailSubscription_displayFooterBefore form .col-xs-12 { padding: 0; }
#blockEmailSubscription_displayFooterBefore form .col-xs-12:first-child {
  display: flex;
  align-items: stretch;
  gap: 0.5rem;
  flex-wrap: wrap;
}
#blockEmailSubscription_displayFooterBefore form .input-wrapper {
  flex: 1 1 220px;
  min-width: 220px;
}
#blockEmailSubscription_displayFooterBefore form .btn-primary {
  flex: 0 0 auto;
  float: none !important;
  white-space: nowrap;
}
#blockEmailSubscription_displayFooterBefore #block-newsletter-label {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(1.15rem, 2vw, 1.4rem) !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal) !important;
  margin: 0 0 0.75rem !important;
  text-transform: none !important;
  letter-spacing: -0.01em !important;
}
#blockEmailSubscription_displayFooterBefore form .input-wrapper {
  display: block;
  width: 100%;
}
#blockEmailSubscription_displayFooterBefore input[type="email"] {
  border: 1.5px solid var(--bh-border) !important;
  background: var(--bh-warm-white) !important;
  border-radius: var(--bh-radius-pill) !important;
  padding: 0.75rem 1.25rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.9rem !important;
  color: var(--bh-charcoal) !important;
  width: 100% !important;
  height: auto;
}
#blockEmailSubscription_displayFooterBefore .btn-primary {
  background: var(--bh-charcoal) !important;
  color: var(--bh-warm-white) !important;
  border: 0 !important;
  border-radius: var(--bh-radius-pill) !important;
  padding: 0.75rem 1.5rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
}
#blockEmailSubscription_displayFooterBefore .btn-primary:hover {
  background: var(--bh-rose-deep) !important;
}
#blockEmailSubscription_displayFooterBefore p {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.78rem !important;
  color: var(--bh-muted) !important;
  margin-top: 0.65rem !important;
}

/* Hide the social block — every link is a "#" placeholder. To bring back later,
   add real URLs in BO → Modules → ps_socialfollow and remove this rule. */
.block-social { display: none !important; }

/* Link columns — three even columns instead of the lopsided 6/3/3 default */
.footer-container {
  background: transparent !important;
  padding: 1rem 0 0 !important;
  margin-top: 0 !important;
  border-top: 1px solid var(--bh-border);
}
.footer-container > .container > .row:first-child {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.5rem;
  padding: 2.5rem 0 1.5rem;
}
.footer-container > .container > .row:first-child > [class*="col-"] {
  flex: 0 0 auto !important;
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
}
.footer-container .col-md-6.links > .row {
  margin: 0 !important;
}
.footer-container .col-md-6.links > .row > .col-md-6.wrapper {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}

.footer-container h3,
.footer-container .h3,
.footer-container .links h3,
.footer-container .myaccount-title,
.footer-container .block-contact-title {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.74rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.16em !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal) !important;
  margin: 0 0 1rem !important;
  text-align: left !important;
}
.footer-container .myaccount-title a,
.footer-container .block-contact-title {
  color: var(--bh-charcoal) !important;
  text-decoration: none !important;
}

.footer-container ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.footer-container .links ul li,
.footer-container .account-list li {
  padding: 0.25rem 0 !important;
}
.footer-container a,
.footer-container li a,
.footer-container .block-contact a {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.85rem !important;
  font-weight: 400 !important;
  color: var(--bh-text) !important;
  line-height: 1.55;
  transition: color 0.2s ease;
}
.footer-container a:hover {
  color: var(--bh-rose-deep) !important;
  text-decoration: none !important;
}
.footer-container #contact-infos {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.85rem !important;
  color: var(--bh-text) !important;
  line-height: 1.6;
}
.footer-container .block-contact .navbar-toggler { display: none; }

/* On desktop, expand the mobile-collapsed lists so users see the links */
@media (min-width: 768px) {
  .footer-container ul.collapse:not(.show),
  .footer-container .collapse:not(.show),
  .footer-container ul#footer_account_list,
  .footer-container ul[id^="footer_sub_menu"],
  .footer-container #contact-infos {
    display: block !important;
  }
}

/* Copyright row */
.footer-container > .container > .row:last-child {
  border-top: 1px solid var(--bh-border);
  padding: 1.25rem 0;
  margin: 0;
}
.footer-container > .container > .row:last-child p {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.75rem !important;
  color: var(--bh-muted) !important;
  margin: 0 !important;
}
.footer-container > .container > .row:last-child a {
  color: var(--bh-muted) !important;
  font-size: 0.75rem !important;
}

/* Mobile footer */
@media (max-width: 767px) {
  .footer-container > .container > .row:first-child {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 1.5rem 0 0.5rem;
  }
  .footer-container > .container > .row:first-child > [class*="col-"] {
    border-top: 1px solid var(--bh-border);
    padding: 1rem 0 !important;
  }
  .footer-container > .container > .row:first-child > [class*="col-"]:first-child {
    border-top: 0;
  }
  /* Mobile collapsibles still work — keep PS's accordion behavior */
}

/* ---------- Apple-grammar category pages (phase 3) ----------
   Hides the redundant left-column nav (already in the sticky top menu),
   reframes the category header as a tall typographic banner with the warm
   cream/rose gradient, restyles subcategory tiles, and turns the sort
   dropdown + result count into a slim Apple-style toolbar. No JS needed —
   PrestaShop's faceted-search hooks remain untouched. */

#category #left-column { display: none !important; }
#category #content-wrapper.left-column,
#category #content-wrapper {
  width: 100% !important;
  flex: 0 0 100% !important;
  max-width: 100% !important;
  margin-left: 0;
}

/* Editorial category header */
#category #js-product-list-header {
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}
#category .block-category {
  background: linear-gradient(180deg, var(--bh-cream) 0%, var(--bh-cream-deep) 100%) !important;
  border: 0 !important;
  border-radius: var(--bh-radius-lg);
  padding: clamp(3rem, 7vw, 6rem) clamp(1.5rem, 4vw, 3rem) !important;
  text-align: center;
  margin: 0 !important;
  box-shadow: none !important;
}
#category .block-category::before {
  content: 'Beauty Hub Collection';
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bh-rose-deep);
  font-weight: 600;
  margin-bottom: 1rem;
}
#category .block-category h1.h1 {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(2.5rem, 6vw, 4.5rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.025em !important;
  color: var(--bh-charcoal) !important;
  margin: 0 0 1rem !important;
  font-weight: 600;
  text-transform: none !important;
}
#category #category-description {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  color: var(--bh-text) !important;
  max-width: 640px;
  margin: 0 auto !important;
  line-height: 1.55;
}

/* Subcategory tile grid (e.g. Body → Body Mist / Body Scrubs / Lotion) */
#category #subcategories.card,
#category #subcategories {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 0 clamp(2rem, 4vw, 3rem) !important;
}
#category .subcategory-heading {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--bh-muted) !important;
  font-weight: 600 !important;
  text-align: center;
  margin: 0 0 1.25rem !important;
}
#category .subcategories-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1rem;
}
#category .subcategories-list li {
  background: var(--bh-warm-white);
  border: 1px solid var(--bh-border);
  border-radius: var(--bh-radius-md);
  padding: 1.75rem 1.25rem;
  text-align: center;
  transition: all 0.25s ease;
}
#category .subcategories-list li:hover {
  border-color: var(--bh-charcoal);
  transform: translateY(-2px);
  box-shadow: var(--bh-shadow-md);
}
#category .subcategory-image { display: none; }
#category .subcategories-list h5 {
  margin: 0 0 0.4rem;
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.2rem;
  font-weight: 600;
}
#category .subcategories-list h5 a,
#category .subcategory-name {
  color: var(--bh-charcoal) !important;
  text-decoration: none !important;
}
#category .subcategories-list .cat_desc {
  font-family: 'Inter', sans-serif;
  font-size: 0.85rem;
  color: var(--bh-muted);
  margin: 0;
  line-height: 1.45;
}

/* Top toolbar — minimal sort + count */
#category #js-product-list-top.products-selection {
  margin: 0 0 1.5rem !important;
  padding: 0 0.5rem !important;
  align-items: center;
  border: 0;
}
#category .total-products p {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--bh-muted) !important;
  margin: 0 !important;
  font-weight: 600 !important;
}
#category .sort-by-row {
  align-items: center;
  justify-content: flex-end;
  margin: 0;
}
#category .sort-by {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  color: var(--bh-muted) !important;
  text-transform: none !important;
  text-align: right;
  padding-right: 0.5rem !important;
}
#category .products-sort-order { text-align: right; }
#category .products-sort-order .select-title {
  border: 1.5px solid var(--bh-border) !important;
  background: var(--bh-warm-white) !important;
  border-radius: var(--bh-radius-pill) !important;
  padding: 0.55rem 1.25rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
  color: var(--bh-charcoal) !important;
  width: auto !important;
  min-width: 200px;
  display: inline-flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  height: auto;
  transition: border-color 0.2s ease;
}
#category .products-sort-order .select-title:hover {
  border-color: var(--bh-charcoal) !important;
}
#category .products-sort-order .select-title .material-icons {
  font-size: 1.1rem;
  color: var(--bh-muted);
}
#category .products-sort-order .dropdown-menu {
  border-radius: var(--bh-radius-md) !important;
  border: 1px solid var(--bh-border) !important;
  box-shadow: var(--bh-shadow-md) !important;
  padding: 0.5rem 0 !important;
  min-width: 220px;
}
#category .products-sort-order .select-list {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.9rem !important;
  padding: 0.55rem 1rem !important;
  color: var(--bh-text) !important;
}
#category .products-sort-order .select-list:hover {
  background: var(--bh-cream) !important;
  color: var(--bh-charcoal) !important;
}
#category .products-sort-order .select-list.current {
  background: var(--bh-charcoal) !important;
  color: var(--bh-warm-white) !important;
}

/* Product grid — generous gap on top of the existing miniature card style */
#category .products.row {
  margin-left: -0.75rem;
  margin-right: -0.75rem;
}
#category .products.row > [class*="col-"] {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

/* Pagination — clean pill page numbers */
#category .pagination {
  margin: 2.5rem 0 3rem;
  justify-content: center;
}
#category .pagination .page-list {
  display: flex;
  gap: 0.4rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
#category .pagination .page-list a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 0.85rem;
  border: 1.5px solid var(--bh-border);
  background: var(--bh-warm-white);
  border-radius: var(--bh-radius-pill);
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--bh-text);
  text-decoration: none;
  transition: all 0.2s ease;
}
#category .pagination .page-list a:hover {
  border-color: var(--bh-charcoal);
  color: var(--bh-charcoal);
}
#category .pagination .page-list .current a {
  background: var(--bh-charcoal);
  border-color: var(--bh-charcoal);
  color: var(--bh-warm-white);
}

/* Mobile */
@media (max-width: 991px) {
  #category #content-wrapper {
    padding-left: 15px;
    padding-right: 15px;
  }
}
@media (max-width: 768px) {
  #category .block-category {
    padding: 2.5rem 1.25rem !important;
  }
  #category .block-category::before { font-size: 0.7rem; }
  #category .block-category h1.h1 { font-size: clamp(2rem, 8vw, 2.75rem) !important; }
  #category #category-description { font-size: 0.95rem; }
  #category #js-product-list-top.products-selection {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }
  #category .total-products { text-align: center; }
  #category .sort-by-row { flex-direction: row; flex-wrap: nowrap; gap: 0.5rem; }
  #category .sort-by { display: none !important; }
  #category .products-sort-order { width: 100%; }
  #category .products-sort-order .select-title { width: 100% !important; }
  #category .subcategories-list { grid-template-columns: 1fr 1fr; }
}

/* ---------- Apple-grammar PDP (phase 2) ----------
   pdp.js injects step headings (.bh-pdp-step) and adds .bh-pdp-form to the cart form.
   Variant <ul>s are restyled into a tile grid; native radios are visually hidden but
   functionally preserved so PrestaShop's variant.js still receives change events.
   The gallery column is `position: sticky` on desktop while the configurator scrolls. */

#product .product-container {
  margin-top: clamp(1rem, 3vw, 2rem);
  margin-bottom: clamp(2rem, 5vw, 4rem);
}

/* Gallery sticks while configurator scrolls (desktop only) */
@media (min-width: 992px) {
  #product .product-container > .col-md-6:first-child {
    position: sticky;
    top: 130px;
    align-self: flex-start;
  }
}

/* Editorial product title */
#product h1.h1 {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(2rem, 4.5vw, 3.5rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.02em !important;
  margin: 0 0 1rem !important;
  font-weight: 600;
  text-transform: none !important;
}

/* Big editorial price */
#product .product-prices {
  margin: 0 0 1.5rem !important;
}
#product .product-prices .product-price.h5 {
  font-size: inherit;
  margin: 0;
}
#product .product-prices .current-price {
  display: inline-block;
}
#product .product-prices .current-price-value,
#product .current-price-value {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.6rem, 2.4vw, 2rem) !important;
  font-weight: 600 !important;
  color: var(--bh-charcoal) !important;
  letter-spacing: -0.01em;
}
#product .tax-shipping-delivery-label {
  font-family: 'Inter', sans-serif;
  font-size: 0.85rem;
  color: var(--bh-muted);
  margin-top: 0.4rem;
}

/* Short description */
#product .product-information > .product-description,
#product #product-description-short-82,
#product [id^="product-description-short-"] {
  font-family: 'Inter', sans-serif;
  font-size: clamp(1rem, 1.3vw, 1.1rem);
  line-height: 1.55;
  color: var(--bh-text);
  margin: 0 0 1.5rem !important;
}
#product .product-information > .product-description p { margin: 0 0 0.75rem; }

/* Numbered step heading injected by pdp.js */
.bh-pdp-step {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.15rem, 1.6vw, 1.4rem);
  font-weight: 600;
  color: var(--bh-charcoal);
  letter-spacing: -0.01em;
  margin: 2.25rem 0 1rem;
}
.bh-pdp-step__num {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 50%;
  background: var(--bh-charcoal);
  color: var(--bh-warm-white);
  font-family: 'Inter', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1;
}

/* PS's default control labels are replaced by step headings */
#product .product-variants .product-variants-item .control-label,
#product .product-add-to-cart > .control-label {
  display: none !important;
}

/* Variant tile grid */
#product .product-variants .product-variants-item {
  margin-bottom: 0.5rem;
}
#product .product-variants .product-variants-item ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 0.55rem;
}
#product .product-variants .product-variants-item .input-container {
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block;
}
#product .product-variants .input-container > label {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0.85rem 0.85rem;
  border: 1.5px solid var(--bh-border);
  background: var(--bh-warm-white);
  border-radius: var(--bh-radius-md);
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: 'Inter', sans-serif;
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--bh-text) !important;
  margin: 0 !important;
  min-height: 60px;
  line-height: 1.2;
  position: relative;
}
#product .product-variants .input-container > label:hover {
  border-color: var(--bh-charcoal);
  color: var(--bh-charcoal) !important;
}
/* Visually hide the native radio while keeping it focusable */
#product .product-variants .input-container input.input-radio {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
  pointer-events: none;
}
#product .product-variants .input-container .radio-label {
  display: inline-block;
  padding: 0;
  margin: 0;
  font-weight: inherit;
  color: inherit !important;
  background: transparent !important;
  border: 0 !important;
}
/* Active state — fall back to .is-active class set by pdp.js, with :has() as enhancement */
#product .product-variants .input-container > label.is-active,
#product .product-variants .input-container > label:has(input:checked) {
  border-color: var(--bh-charcoal);
  background: var(--bh-charcoal);
  color: var(--bh-warm-white) !important;
  box-shadow: var(--bh-shadow-md);
}

/* Color swatches keep their background colour but get the same outline treatment */
#product .product-variants .input-container > label.color {
  width: auto;
  min-height: 60px;
  padding-left: 2.4rem;
}

/* Quantity widget — pill */
#product .product-add-to-cart .product-quantity {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 1.25rem;
  flex-wrap: wrap;
}
#product .product-quantity .qty {
  flex: 0 0 auto;
}
#product .product-quantity .qty input,
#product #quantity_wanted {
  width: 100px !important;
  height: 56px !important;
  text-align: center;
  border: 1.5px solid var(--bh-border) !important;
  border-radius: var(--bh-radius-pill) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 1.05rem !important;
  font-weight: 500 !important;
  color: var(--bh-charcoal) !important;
  background: var(--bh-warm-white) !important;
  padding: 0 !important;
}
#product .product-quantity .add { flex: 1; min-width: 200px; }

/* Add-to-cart pill */
#product .btn-primary.add-to-cart,
#product button.add-to-cart {
  width: 100%;
  height: 56px;
  background: var(--bh-charcoal) !important;
  color: var(--bh-warm-white) !important;
  border: 0 !important;
  border-radius: var(--bh-radius-pill) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  transition: all 0.25s ease !important;
  text-transform: none !important;
  padding: 0 1.5rem !important;
  box-shadow: var(--bh-shadow-sm) !important;
}
#product .btn-primary.add-to-cart:hover,
#product button.add-to-cart:hover {
  background: var(--bh-rose-deep) !important;
  transform: translateY(-1px);
  box-shadow: var(--bh-shadow-md) !important;
}
#product .btn-primary.add-to-cart i.material-icons {
  display: none !important;
}

/* Wishlist button — neutralize alongside the cart pill */
#product .wishlist-button {
  margin-left: 0.5rem;
  align-self: center;
}

/* Availability + minimal qty notes */
#product #product-availability,
#product .product-minimal-quantity {
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  color: var(--bh-muted);
  display: block;
  margin-top: 0.35rem;
}
#product #product-availability .material-icons { display: none; }

/* Reassurance block — keep but tone down */
#product .blockreassurance_product {
  margin-top: 2.25rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--bh-border);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
}
#product .blockreassurance_product > div {
  padding: 0.75rem 0;
  text-align: left;
}
#product .blockreassurance_product .item-product { display: none; }
#product .blockreassurance_product .block-title {
  font-family: 'Inter', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--bh-charcoal) !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  display: block;
  margin-bottom: 0.35rem;
}
#product .blockreassurance_product p {
  font-size: 0.85rem;
  color: var(--bh-muted) !important;
  line-height: 1.45;
  margin: 0 !important;
}

/* Social sharing — softer */
#product .social-sharing {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--bh-border);
}
#product .social-sharing > span {
  font-family: 'Inter', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bh-muted);
  margin-right: 0.75rem;
}

/* ---------- Mobile ---------- */

@media (max-width: 768px) {
  body { font-size: 14px; }
  h1, .h1 { font-size: 1.85rem; }
  h2, .h2 { font-size: 1.55rem; }
  h3, .h3 { font-size: 1.25rem; }
  .products-section-title,
  .featured-products .products-section-title { font-size: 1.65rem !important; margin: 2.5rem 0 1.5rem !important; }
  .product-information h1, .product-detail .h1, #product .h1 { font-size: 1.75rem !important; }
  .product-prices .current-price, .current-price span { font-size: 1.4rem !important; }
  .imageslider .carousel-caption { padding: 1rem 1.25rem; max-width: 90%; }
  .imageslider .carousel-caption h2 { font-size: 1.25rem !important; }
  .footer-container { padding: 3rem 0 1.5rem !important; margin-top: 2.5rem !important; }
  .block_newsletter form { flex-direction: column; gap: 0.75rem; }
  .block_newsletter input[type="email"],
  .block_newsletter button {
    border-radius: var(--bh-radius-pill) !important;
    width: 100% !important;
    min-width: auto !important;
  }

  .bh-hero { padding: 4rem 1.25rem; }
  .bh-hero__title { font-size: clamp(2.25rem, 10vw, 3.25rem) !important; }
  .bh-hero__subtitle { font-size: 1rem; }
  .bh-feature {
    grid-template-columns: 1fr;
    padding: 2.5rem 1.25rem;
    gap: 1.75rem;
  }
  .bh-feature--reverse > .bh-feature__media { order: 0; }
  .bh-feature__lede { max-width: none; }
  .bh-feature__title { font-size: clamp(1.75rem, 7vw, 2.25rem) !important; }

  #product .product-variants .product-variants-item ul {
    grid-template-columns: repeat(2, 1fr);
  }
  #product .product-quantity .qty input,
  #product #quantity_wanted { width: 80px !important; height: 48px !important; }
  #product .product-quantity .add { width: 100%; flex-basis: 100%; min-width: 0; }
  #product .btn-primary.add-to-cart { height: 52px; }
}
