/* ==========================================================================
   Polish layer: loaded after main.css
   Photo wrappers, trust strip, minimal hover, cart icon, giant footer wordmark
   ========================================================================== */

/* 1. Offer photos: wrappers must be blocks so size/aspect apply (this fixed the overlap) */
.h1-offer__imgs, .h1-offer__img { display: block; }
.h1-offer__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.h1-offer__imgs .h1-offer__img { width: clamp(84px, 8vw, 112px); aspect-ratio: 4 / 5; overflow: hidden; }
.h1-offer--1 .h1-offer__imgs .h1-offer__img { width: 58%; }
/* Lead offer: copy on the left half, photos on the right half, never overlapping */
.h1-offer--1 .h1-offer__copy { max-width: 50%; }
.h1-offer--1 .h1-offer__imgs { width: 42%; max-width: 330px; right: 1.5rem; aspect-ratio: 1 / 1.05; }
.h1-offer--1 .h1-offer__imgs .h1-offer__img { width: 62%; }
.h1-offer--1.has-pair .h1-offer__img:nth-child(2) { right: 0; }
/* Reserve room on the right so text never runs under a photo */
.h1-offer.has-img:not(.h1-offer--1) .h1-offer__copy { padding-right: calc(clamp(84px, 8vw, 112px) + 1.5rem); }
.h1-offer.has-img:not(.h1-offer--1) .h1-offer__title,
.h1-offer.has-img:not(.h1-offer--1) .h1-offer__text { max-width: none; }

/* 2. Trust strip: above shadows, wraps cleanly */
.h1-trust { position: relative; z-index: 5; margin-top: 2.25rem; margin-bottom: 0.5rem; padding-block: 0.25rem; text-align: center; }
.h1-offers { padding-bottom: 0.25rem; }
.h1-trust span { white-space: normal; }
.h1-offer, .h1-card { box-shadow: 0 10px 24px -20px rgba(42, 26, 18, 0.4); }

/* 3. Hover: barely-there lift */
@media (hover: hover) {
  .h1-card:hover { transform: translateY(-1px); box-shadow: 0 14px 28px -20px rgba(42, 26, 18, 0.4); }
  .h1-offer:hover { transform: translateY(-1px); box-shadow: 0 14px 28px -20px rgba(42, 26, 18, 0.45); z-index: 2; }
}

/* 4. Cart icon on every add-to-cart button */
[data-add]::before,
.single_add_to_cart_button::before {
  content: ""; display: inline-block; width: 1.1em; height: 1.1em; margin-right: 0.5em; vertical-align: -0.2em; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 12H6L5 8Z'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 12H6L5 8Z'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3C/svg%3E") center / contain no-repeat;
}
[data-add].is-loading::before,
.single_add_to_cart_button.is-loading::before { opacity: 0.6; }

/* 5. Giant footer wordmark */
.footer__giant { margin: clamp(2rem, 5vw, 4rem) 0 0; line-height: 0.82; letter-spacing: -0.05em; white-space: nowrap; overflow: hidden; font-size: 12.6vw; color: var(--peach); user-select: none; padding-bottom: 0.08em; }
.footer__giant em { color: var(--clay); font-style: italic; margin-left: 0.12em; }
.footer__giant span { display: inline-block; }
.footer__brand { display: none; }
@media (max-width: 640px) { .footer__giant { font-size: 17vw; } }

/* Plugin floaters that duplicate the theme's own cart drawer and sticky buy bar (WooLentor modules) */
.woolentor_mini_cart_icon_area, .woolentor_cart_content_container, .woolentor-add-to-cart-sticky,
.woolentor-sticky-add-to-cart, .wlmini-cart-icon-area { display: none !important; }

/* Cart drawer: locked child lines (WPC Composite / Bundles) */
.line--child { opacity: 0.85; margin-left: 1.25rem; padding-left: 0.9rem; border-left: 2px solid var(--line); grid-template-columns: 52px 1fr; }
.line--child .line__img img { width: 52px; height: 66px; }
.line--child .line__name { font-size: 0.9rem; }
.line--child .line__price { color: var(--leaf); font-size: 0.8rem; }

/* ==========================================================================
   Phone pass
   ========================================================================== */
.has-panel .joinchat { opacity: 0; pointer-events: none; transition: opacity 0.2s; }

@media (max-width: 960px) {
  /* Keep the WhatsApp bubble clear of the sticky "Add to cart" bar */
  .single-product .joinchat { bottom: 92px !important; }
  /* Shorter photo + tighter top so price and Add to cart show on the first screen */
  .gallery__main { aspect-ratio: 1 / 0.9; }
  .crumbs { padding-block: 0.5rem; }
  .gallery__thumbs { grid-auto-columns: 56px; }
}

/* Comfortable tap targets on touch devices */
@media (max-width: 960px), (pointer: coarse) {
  .footer__grid a { display: inline-block; padding-block: 0.4rem; }
  .footer__grid li { margin-bottom: 0.1rem; }
  .qty button { width: 42px; height: 42px; }
  .line__rm { padding: 0.65rem 0.4rem; }
  .line__name { padding-block: 0.15rem; display: inline-block; }
  .link-arrow { padding-block: 0.6rem; }
  .chip { min-height: 40px; }
  .mobile-list .sub-menu a { padding: 0.6rem 1.1rem; }
  .icon-btn { width: 46px; height: 46px; }
}

/* ==========================================================================
   Shield the theme's header, drawer, panels and footer from Elementor's global kit styles.
   On Elementor-built pages (cart/checkout) the kit stays loaded for that page's own content.
   ========================================================================== */
body .announce, body .site-header, body .site-footer, body .drawer, body .panel, body .toast, body .filters {
  font-family: var(--sans); font-size: 16px; line-height: 1.6;
}
body .site-header a, body .drawer a:not(.btn), body .panel a, body .site-footer a, body .announce a { color: inherit; text-decoration: none; }
body .site-footer a:hover { color: var(--peach); }
body .site-header .display, body .drawer .display, body .panel .display, body .site-footer .display,
body .drawer .line__name, body .brand__name {
  font-family: var(--serif); color: inherit;
}
body .drawer h2, body .panel h2, body .filters h2 { font-family: var(--serif); font-weight: 400; color: var(--ink); letter-spacing: -0.02em; line-height: 1.1; }
body a.btn--solid, body .btn--solid { color: var(--cream); background: var(--ink); border-color: var(--ink); }
body a.btn--solid:hover, body .btn--solid:hover { background: var(--clay); border-color: var(--clay); color: #fff; }
body a.btn--ghost, body .btn--ghost { color: var(--ink); background: transparent; }
body a.btn--ghost:hover, body .btn--ghost:hover { background: var(--ink); color: var(--cream); }
body .drawer .woocommerce-Price-amount, body .drawer .line__price, body .drawer .drawer__total strong {
  font-family: var(--sans); font-size: inherit; color: inherit; font-weight: inherit;
}
body .drawer .line__price { color: var(--muted); font-size: 0.9rem; }
body .drawer .drawer__total strong { font-weight: 600; font-size: 1.1rem; }
body .drawer .line__name { font-family: var(--sans); font-weight: 500; font-size: 1rem; color: var(--ink); }
body .drawer .line--child .line__name { font-size: 0.9rem; }
body .brand__tt { color: #fff; font-family: var(--sans); }
body .drawer__ship, body .drawer .small, body .drawer .muted { color: var(--muted); font-family: var(--sans); }


/* ==========================================================================
   Homepage rhythm, card lift, reviews with product, Home 1 offers-first
   ========================================================================== */

/* One consistent vertical rhythm between homepage sections */
.section { padding-block: clamp(3.75rem, 8vw, 7rem); }
.section + .section { padding-top: 0; }
.marquee + .section, .statement + .section, .promo + .section, .glow + .section { padding-top: clamp(3.75rem, 8vw, 7rem); }
.h1-offers--inline.section { padding-block: clamp(3.75rem, 8vw, 7rem); }
.statement, .promo, .cta { padding-block: clamp(3.5rem, 8vw, 7rem); }
.section-head { margin-bottom: clamp(1.5rem, 3.5vw, 3rem); }
.section-sub { margin: -1.5rem 0 clamp(1.5rem, 3vw, 2.5rem); }

/* Card hover lift: one value everywhere, small and subtle (-5px) */
:root { --lift: -5px; }
@media (hover: hover) {
  .card, .post-card, .tile, .h1-card, .h1-offer { transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease); will-change: transform; }
  .card:hover, .post-card:hover, .tile:hover, .h1-card:hover, .h1-offer:hover { transform: translateY(var(--lift)); }
  .h1-card:hover, .h1-offer:hover { box-shadow: 0 16px 30px -20px rgba(42, 26, 18, 0.45); }
}
.grid, .grid--3, .h1-grid, .h1-offers__grid { padding-top: 6px; margin-top: -6px; } /* room so the lift is never clipped */

/* Reviews: quote on the left, the reviewed product on the right */
.reviews { max-width: 1180px; text-align: left; min-height: 0; margin-inline: auto; }
.review { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.review__quote { margin: 0; }
.review__quote .stars { font-size: 1.2rem; margin-bottom: 1rem; }
.review__quote footer { margin-top: 1.5rem; font-size: 0.9rem; color: var(--muted); }
.review__quote footer strong { color: var(--ink); font-weight: 500; }
.review__product { display: grid; grid-template-columns: minmax(0, 240px) 1fr; gap: 1.25rem; align-items: center; background: #fffaf4; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 1rem; }
.review__img { display: block; aspect-ratio: 4 / 5; border-radius: var(--r-md); overflow: hidden; background: var(--sand); }
.review__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--ease); }
.review__product:hover .review__img img { transform: scale(1.04); }
.review__meta { display: grid; gap: 0.55rem; min-width: 0; }
.review__meta small { text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.68rem; color: var(--muted); }
.review__meta strong { font-size: clamp(1.3rem, 2vw, 1.8rem); line-height: 1.1; font-weight: 400; }
.review__price { color: var(--muted); }
.review__cta { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 500; font-size: 0.9rem; border-bottom: 1px solid currentColor; width: max-content; padding-bottom: 2px; margin-top: 0.4rem; }
.reviews__nav { justify-content: flex-start; margin-top: 2rem; }
@media (max-width: 860px) {
  .review { grid-template-columns: 1fr; gap: 1.5rem; }
  .review__product { grid-template-columns: 96px 1fr; gap: 1rem; padding: 0.75rem; }
  .review__meta strong { font-size: 1.2rem; }
}

/* Home 1: offers first, no hero */
.h1-offers--top { margin-top: 0; padding-top: clamp(1.25rem, 3vw, 2.5rem); }
.reviews { padding-top: 0.75rem; }
.review { transition-duration: 0.45s; }


/* ==========================================================================
   Fixes: phone overflow of offer rows, and the hidden toast
   ========================================================================== */
.h1-card, .h1-offer, .h1-tiles { min-width: 0; }
@media (max-width: 640px) {
  .h1-grid, .h1-grid--5, .h1-offers__grid { grid-template-columns: minmax(0, 1fr); }
  .h1-card { max-width: 100%; overflow: hidden; }
}

/* Toast: small status pill used for cart messages (e.g. "Please choose product options").
   Fully hidden until it is shown, so no sliver peeks above the bottom edge. */
.toast { visibility: hidden; opacity: 0; transform: translate(-50%, 220%); transition: transform 0.5s var(--ease), opacity 0.3s, visibility 0s 0.5s; pointer-events: none; }
.toast.is-on { visibility: visible; opacity: 1; transform: translate(-50%, 0); transition: transform 0.5s var(--ease), opacity 0.3s, visibility 0s; pointer-events: auto; }

/* Never let the hover transition interfere with the scroll-reveal animation */
[data-reveal]:not(.is-in), [data-stagger] > *:not(.is-in) { transition: none !important; }

/* ==========================================================================
   Offers: lead card fills its space, "mix & match" picks, auto-sliding photos
   ========================================================================== */
.h1-offer--1 .h1-offer__copy { gap: 0.8rem; }
.h1-offer__picks { display: grid; gap: 0.5rem; margin-top: 0.9rem; }
.h1-offer__picks small { font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.85; }
.h1-offer__chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.h1-offer__chips img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; background: rgba(255, 255, 255, 0.85); border: 2px solid rgba(255, 255, 255, 0.9); box-shadow: 0 6px 14px -8px rgba(42, 26, 18, 0.6); }
.h1-offer--1 .h1-offer__cta { margin-top: auto; }
/* Bigger photos on the lead card so the right side is never empty */
.h1-offer--1 .h1-offer__imgs { width: 46%; max-width: 380px; }
@media (min-width: 1101px) {
  .h1-offer--1 .h1-offer__imgs { width: 43%; right: clamp(1rem, 2vw, 2rem); }
  .h1-offer--1 .h1-offer__copy { max-width: 50%; }
}

/* Auto-sliding photo frame (e.g. Free wooden comb: different hair combos) */
.h1-offer__imgs.is-slider { width: clamp(84px, 8vw, 112px); aspect-ratio: 4 / 5; }
.h1-offer__imgs.is-slider .h1-offer__img { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; transform: scale(1.06); transition: opacity 0.7s var(--ease), transform 1.2s var(--ease); }
.h1-offer__imgs.is-slider .h1-offer__img.is-active { opacity: 1; transform: none; z-index: 2; }
.h1-offer.has-slider:not(.h1-offer--1) .h1-offer__imgs { right: 0.9rem; top: 0.9rem; box-shadow: 0 18px 34px -18px rgba(42, 26, 18, 0.6); border-radius: var(--r-md); overflow: hidden; background: var(--sand); transform: rotate(4deg); }
@media (min-width: 641px) { .h1-offer.has-slider:not(.h1-offer--1) .h1-offer__imgs { width: clamp(96px, 9vw, 132px); } }
@media (max-width: 640px) {
  .h1-offer__chips img { width: 38px; height: 38px; }
  .h1-offer--1 .h1-offer__imgs { width: 40%; }
}

/* Blog article: products being discussed */
.article__mentions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.5rem; margin-top: 1.5rem; font-size: 0.85rem; }
.article__mentions > span { color: var(--muted); margin-right: 0.25rem; }
.article__mentions .chip { background: var(--sand); border-color: transparent; }
.article__mentions .chip:hover { background: var(--ink); color: var(--cream); }
.grid--article { grid-template-columns: repeat(4, 1fr); }
.article-products { padding-top: clamp(2rem, 4vw, 3rem); }
@media (max-width: 1100px) { .grid--article { grid-template-columns: repeat(2, 1fr); } }

/* ==========================================================================
   Offers: five EQUAL cards (Amazon-style). Title, text, picture, button.
   ========================================================================== */
.h1-offers--inline { margin-top: 0; } /* the negative hero-overlap margin made the heading sit on the marquee */
.hero2 + .marquee { margin-top: clamp(2.75rem, 6vw, 4.5rem); }
.marquee + .h1-offers--inline { padding-top: clamp(3.75rem, 8vw, 7rem); }

.h1-offers__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; grid-auto-rows: 1fr; }
.h1-offers__grid .h1-offer { grid-column: auto; grid-row: auto; min-height: 430px; padding: 1.25rem 1.1rem; gap: 0.6rem; flex-direction: column; align-items: flex-start; justify-content: flex-start; }
.h1-offers__grid .h1-offer .h1-offer__copy { display: contents; }
.h1-offers__grid .h1-offer .h1-offer__badge { order: 1; }
.h1-offers__grid .h1-offer .h1-offer__title { order: 2; max-width: none; font-size: clamp(1.3rem, 1.7vw, 1.65rem); line-height: 1.08; }
.h1-offers__grid .h1-offer .h1-offer__text { order: 3; max-width: none; font-size: 0.9rem; opacity: 0.85; }
.h1-offers__grid .h1-offer .h1-offer__picks { order: 4; margin-top: 0.3rem; gap: 0.4rem; }
.h1-offers__grid .h1-offer .h1-offer__chips { flex-wrap: nowrap; gap: 0.3rem; }
.h1-offers__grid .h1-offer .h1-offer__chips img { width: 32px; height: 32px; flex: none; }
.h1-offers__grid .h1-offer .h1-offer__chips img:nth-child(n+6) { display: none; }
.h1-offers__grid .h1-offer .h1-offer__cta { order: 6; margin-top: 0.6rem; font-size: 0.85rem; padding: 0.65rem 1.1rem; }

/* picture / big figure area: same height on every card, pinned above the button */
.h1-offers__grid .h1-offer .h1-offer__imgs,
.h1-offers__grid .h1-offer .h1-offer__fig { order: 5; margin-top: auto; width: 100%; height: 150px; display: flex; align-items: center; justify-content: center; position: relative; inset: auto; right: auto; top: auto; max-width: none; aspect-ratio: auto; transform: none; box-shadow: none; background: none; overflow: visible; }
.h1-offers__grid .h1-offer .h1-offer__fig { font-size: clamp(2.4rem, 3vw, 3.2rem); white-space: nowrap; margin-bottom: 0; }
.h1-offers__grid .h1-offer .h1-offer__imgs .h1-offer__img { position: relative; inset: auto; right: auto; top: auto; width: 92px; height: auto; aspect-ratio: 4 / 5; transform: rotate(-5deg); opacity: 1; }
.h1-offers__grid .h1-offer .h1-offer__imgs .h1-offer__img + .h1-offer__img { margin-left: -20px; transform: rotate(5deg); }
/* auto-sliding photos (free comb): one photo at a time */
.h1-offers__grid .h1-offer .h1-offer__imgs.is-slider { width: 112px; align-self: center; margin-inline: auto; border-radius: var(--r-md); overflow: hidden; background: var(--sand); box-shadow: 0 18px 34px -18px rgba(42, 26, 18, 0.6); transform: rotate(3deg); }
.h1-offers__grid .h1-offer .h1-offer__imgs.is-slider .h1-offer__img,
.h1-offers__grid .h1-offer .h1-offer__imgs.is-slider .h1-offer__img + .h1-offer__img { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; aspect-ratio: auto; transform: scale(1.06); opacity: 0; }
.h1-offers__grid .h1-offer .h1-offer__imgs.is-slider .h1-offer__img.is-active { opacity: 1; transform: none; }

/* colours per position (all cards are the same size; colour only separates them) */
.h1-offer--c1 { background: linear-gradient(135deg, #b8532f 0%, #d98a4a 100%); color: #fff; border-color: transparent; }
.h1-offer--c1 .h1-offer__badge { background: #fff; color: var(--clay-dark); }
.h1-offer--c1 .h1-offer__cta { background: #fff; color: var(--ink); }
.h1-offer--c1 .h1-offer__fig { color: #fff; }
.h1-offer--c2 { background: linear-gradient(135deg, var(--peach), #f9e6d4); }
.h1-offer--c3 { background: linear-gradient(135deg, #efe3cf, var(--sand)); }
.h1-offer--c4 { background: linear-gradient(135deg, #e7d4b4, #f3e4d4); }
.h1-offer--c5 { background: var(--ink); color: var(--cream); border-color: transparent; }
.h1-offer--c5 .h1-offer__badge { background: var(--clay); color: #fff; }
.h1-offer--c5 .h1-offer__cta { background: var(--cream); color: var(--ink); }
.h1-offer--c5 .h1-offer__fig { color: var(--peach); }

@media (max-width: 1100px) {
  .h1-offers__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .h1-offers__grid .h1-offer { min-height: 400px; }
}
@media (max-width: 640px) {
  /* two across, like Amazon on a phone; everything visible in one glance */
  .h1-offers__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem; grid-auto-rows: auto; }
  .h1-offers__grid .h1-offer { min-height: 0; padding: 0.9rem 0.85rem; gap: 0.4rem; }
  .h1-offers__grid .h1-offer:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .h1-offers__grid .h1-offer .h1-offer__title { font-size: 1.1rem; }
  .h1-offers__grid .h1-offer .h1-offer__text { font-size: 0.76rem; }
  .h1-offers__grid .h1-offer .h1-offer__picks { display: none; }
  .h1-offers__grid .h1-offer .h1-offer__imgs,
  .h1-offers__grid .h1-offer .h1-offer__fig { height: 96px; }
  .h1-offers__grid .h1-offer .h1-offer__fig { font-size: 2.1rem; }
  .h1-offers__grid .h1-offer .h1-offer__imgs .h1-offer__img { width: 64px; }
  .h1-offers__grid .h1-offer .h1-offer__imgs.is-slider { width: 74px; height: 92px; }
  .h1-offers__grid .h1-offer .h1-offer__cta { font-size: 0.76rem; padding: 0.55rem 0.6rem; margin-top: 0.4rem; width: 100%; max-width: 100%; justify-content: center; white-space: normal; text-align: center; gap: 0.3rem; }
  .h1-offers__grid .h1-offer .h1-offer__badge { font-size: 0.56rem; letter-spacing: 0.1em; padding: 0.28rem 0.6rem; white-space: nowrap; }
}

/* Home final: keep the marquee on phones too (smaller), as requested */
@media (max-width: 640px) {
  .hero2 + .marquee { display: block; padding-block: 0.8rem; margin-top: 2rem; }
  .hero2 + .marquee span { font-size: 1.15rem; padding-inline: 1.1rem; }
  .h1-offers__grid .h1-offer .h1-offer__imgs, .h1-offers__grid .h1-offer .h1-offer__fig { margin-bottom: 0.2rem; }
}

/* Reviews: align with the section heading (full container width, no inset) */
.reviews { max-width: none; margin-inline: 0; }

/* ==========================================================================
   Hero slider (Home final): banners from pranabeautytt.com, offers right below
   ========================================================================== */
.hslider { position: relative; }
.hslider__viewport { position: relative; overflow: hidden; border-radius: var(--r-lg); background: var(--sand); touch-action: pan-y; box-shadow: 0 18px 40px -30px rgba(42, 26, 18, 0.5); }
.hslider__track { display: flex; transition: transform 0.7s var(--ease); will-change: transform; }
.hslider__slide { flex: 0 0 100%; min-width: 0; }
.hslider__slide a, .hslider__slide picture, .hslider__slide img { display: block; width: 100%; }
.hslider__slide img { height: auto; aspect-ratio: 2 / 1; object-fit: cover; user-select: none; -webkit-user-drag: none; }
.hslider__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 250, 244, 0.92); color: var(--ink); display: grid; place-items: center; font-size: 1.1rem; box-shadow: 0 8px 20px -10px rgba(42, 26, 18, 0.6); transition: background 0.3s; }
.hslider__arrow:hover { background: #fff; }
.hslider__arrow--prev { left: 0.9rem; }
.hslider__arrow--next { right: 0.9rem; }
.hslider__dots { position: absolute; left: 0; right: 0; bottom: 0.8rem; display: flex; justify-content: center; gap: 0.45rem; z-index: 3; }
.hslider__dots button { width: 9px; height: 9px; border-radius: 99px; background: rgba(255, 255, 255, 0.65); box-shadow: 0 0 0 1px rgba(42, 26, 18, 0.2); transition: width 0.35s var(--ease), background 0.3s; padding: 0; }
.hslider__dots button.is-active { width: 26px; background: #fff; }
@media (max-width: 1024px) { .hslider__slide img { aspect-ratio: 4 / 3; } }
@media (max-width: 600px) {
  .hslider__slide img { aspect-ratio: 4 / 3; }
  .hslider__arrow { display: none; }
  .hslider__viewport { border-radius: var(--r-md); }
}
@media (prefers-reduced-motion: reduce) { .hslider__track { transition: none; } }

/* ==========================================================================
   Home final: bright vertical offer cards with a product stage (.so)
   ========================================================================== */
.so-section { padding-top: clamp(1.25rem, 3vw, 2.5rem); }
.so-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.1rem; padding-top: 6px; margin-top: -6px; }
.so { --on: #fff; --btn: #fff; --btn-ink: #2a1a12; --tag: #fff; --tag-ink: #2a1a12; position: relative; display: flex; flex-direction: column; gap: 0.7rem; padding: 1.4rem; min-height: 590px; border-radius: 32px; color: var(--on); overflow: hidden; isolation: isolate; box-shadow: 0 22px 36px -24px rgba(42, 26, 18, 0.55); transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease); min-width: 0; }
.so::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(circle at 85% 8%, rgba(255, 255, 255, 0.28), transparent 38%), radial-gradient(circle at 10% 60%, rgba(255, 255, 255, 0.12), transparent 40%); }
@media (hover: hover) { .so:hover { transform: translateY(var(--lift, -5px)); box-shadow: 0 30px 42px -24px rgba(42, 26, 18, 0.6); } }
.so__badge { align-self: flex-start; padding: 0.35rem 0.8rem; border-radius: 99px; background: var(--tag); color: var(--tag-ink); font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; }
.so__title { font-size: clamp(1.45rem, 1.9vw, 1.75rem); line-height: 1.08; margin-top: 0.2rem; }
.so__text { font-size: 0.92rem; line-height: 1.4; opacity: 0.95; }
.so__chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.so__chips span { padding: 0.28rem 0.65rem; border-radius: 99px; background: rgba(255, 255, 255, 0.24); font-size: 0.74rem; font-weight: 500; }
.so__stage { position: relative; flex: 1; min-height: 270px; margin-top: 0.2rem; border-radius: 24px; background: rgba(255, 255, 255, 0.2); overflow: hidden; }
.so__stage::before { content: "✦"; position: absolute; left: 12px; top: 8px; font-size: 1.1rem; opacity: 0.8; }
.so__stage::after { content: "✦"; position: absolute; right: 46px; bottom: 14px; font-size: 0.8rem; opacity: 0.7; }
.so__ph { position: absolute; bottom: 12px; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 14px; background: #fff; border: 3px solid #fff; box-shadow: 0 14px 22px -10px rgba(0, 0, 0, 0.5); transition: transform 0.5s var(--ease); }
.so__ph--0 { left: 3%; height: 56%; transform: rotate(-9deg); }
.so__ph--1 { left: 50%; height: 74%; bottom: 16px; z-index: 2; transform: translateX(-50%); }
.so__ph--2 { right: 3%; height: 56%; transform: rotate(9deg); }
@media (hover: hover) { .so:hover .so__ph--0 { transform: rotate(-12deg) translateX(-4px); } .so:hover .so__ph--2 { transform: rotate(12deg) translateX(4px); } .so:hover .so__ph--1 { transform: translateX(-50%) translateY(-4px); } }
.so__round { position: absolute; right: 10px; top: 10px; z-index: 3; width: 70px; height: 70px; border-radius: 50%; background: #fff; color: var(--round, #2a1a12); display: grid; place-items: center; text-align: center; font-style: italic; font-weight: 600; font-size: 0.98rem; line-height: 1.05; padding: 0.3rem; box-shadow: 0 8px 16px -8px rgba(0, 0, 0, 0.4); transform: rotate(8deg); }
.so__fine { padding: 0.5rem 0.8rem; border-radius: 12px; background: rgba(0, 0, 0, 0.16); font-size: 0.74rem; text-align: center; font-weight: 500; }
.so__cta { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; padding: 0.8rem 1.15rem; border-radius: 99px; background: var(--btn); color: var(--btn-ink); font-weight: 500; font-size: 0.92rem; }
.so--c1 { background: linear-gradient(150deg, #ff2d78, #ff6a3d); --round: #d81e60; }
.so--c2 { background: linear-gradient(150deg, #ff8a00, #ffc21a); --on: #3a1a00; --tag: #3a1a00; --tag-ink: #fff; --btn: #3a1a00; --btn-ink: #fff; --round: #b45300; }
.so--c3 { background: linear-gradient(150deg, #14b86a, #8be05a); --on: #052a14; --tag: #052a14; --tag-ink: #fff; --btn: #052a14; --btn-ink: #fff; --round: #0a7a45; }
.so--c4 { background: linear-gradient(150deg, #7c3aed, #e040fb); --round: #7c3aed; }
.so--c5 { background: linear-gradient(150deg, #0ea5e9, #22d3c5); --on: #02283a; --tag: #02283a; --tag-ink: #fff; --btn: #02283a; --btn-ink: #fff; --round: #0b86c0; }
.so-section + .marquee { margin-top: clamp(2.5rem, 5vw, 4rem); }

@media (max-width: 1100px) {
  .so-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .so-grid .so { grid-column: span 2; }
  .so-grid .so:nth-child(4), .so-grid .so:nth-child(5) { grid-column: span 3; }
  .so { min-height: 560px; }
}
@media (max-width: 700px) {
  .so-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
  .so-grid .so, .so-grid .so:nth-child(4) { grid-column: auto; }
  .so-grid .so:nth-child(5) { grid-column: 1 / -1; }
  .so { min-height: 0; padding: 1rem; border-radius: 24px; gap: 0.55rem; }
  .so__title { font-size: 1.2rem; }
  .so__text { font-size: 0.82rem; }
  .so__stage { min-height: 190px; }
  .so__round { width: 54px; height: 54px; font-size: 0.78rem; }
  .so__fine { font-size: 0.68rem; padding: 0.4rem 0.6rem; }
  .so__cta { padding: 0.65rem 0.9rem; font-size: 0.85rem; }
}

/* Uniform rows: every stage card has identical title, text, chip, photo, fine-print and button heights */
.so { min-height: 0; gap: 0.75rem; }
.so__badge { height: 1.9rem; display: inline-flex; align-items: center; }
.so__title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.16em; margin-top: 0; }
.so__text { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.8em; font-size: 0.9rem; }
.so__chips { flex-wrap: nowrap; overflow: hidden; height: 1.75rem; }
.so__chips span { white-space: nowrap; flex: none; }
.so__stage { flex: none; height: 290px; min-height: 0; }
.so__fine { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 700px) {
  .so__title { font-size: 1.1rem; }
  .so__text { font-size: 0.78rem; }
  .so__chips span { font-size: 0.66rem; padding: 0.25rem 0.5rem; }
  .so__stage { height: 200px; }
}
.so__chips { gap: 0.3rem; }
.so__chips span { font-size: 0.7rem; padding: 0.28rem 0.55rem; }

/* Compact stage cards so the offers AND the marquee show on first load (chips and fine print are hidden, not deleted) */
.so-section { padding-top: clamp(0.75rem, 1.5vw, 1.1rem); padding-bottom: 0; }
.so { padding: 1.1rem 1.2rem; gap: 0.6rem; }
.so__chips, .so__fine { display: none; }
.so__stage { height: 200px; margin-top: 0; }
.so__title { font-size: clamp(1.35rem, 1.7vw, 1.6rem); }
.so-section + .marquee { margin-top: clamp(1.1rem, 2vw, 1.6rem); }
@media (max-width: 1100px) { .so { min-height: 0; } }
@media (max-width: 700px) { .so__stage { height: 170px; } .so { padding: 0.9rem; } }

/* ---------- Content pages: FAQ accordion + product grids ---------- */
.page-wide { padding-bottom: clamp(3.5rem, 8vw, 6rem); }
.entry ul.products, .entry .woocommerce ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; list-style: none; padding: 0; margin: 0; color: inherit; }
.entry ul.products > .grid__item { margin: 0; }
.entry ul.products a { text-decoration: none; color: inherit; }
@media (max-width: 1024px) { .entry ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .entry ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem; } }

.faq-intro { margin-bottom: 2rem; padding: 1.4rem 1.6rem; border-radius: var(--r-md); background: var(--sand); }
.faq-intro p { margin: 0 0 0.6rem; }
.faq-intro p:last-child { margin: 0; }
.faq-list { border-top: 1px solid var(--line); }
.faq-d { border-bottom: 1px solid var(--line); }
.faq-d summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; padding: 1.25rem 0; cursor: pointer; font: 400 clamp(1.15rem, 2.2vw, 1.5rem)/1.2 var(--serif); letter-spacing: -0.015em; color: var(--ink); }
.faq-d summary::-webkit-details-marker { display: none; }
.faq-d summary i { font-style: normal; font-size: 1.8rem; line-height: 1; color: var(--clay); transition: transform 0.4s var(--ease); flex: none; }
.faq-d[open] summary i { transform: rotate(45deg); }
.faq-d summary:hover span { color: var(--clay-dark); }
.faq-d__a { padding: 0 0 1.4rem; max-width: 42rem; }
.faq-d__a p, .faq-d__a ul, .faq-d__a ol { margin: 0 0 0.8em; }
.faq-d__a > :last-child { margin-bottom: 0; }

/* Accessibility / performance polish */
body .brand__tt, .footer__brand .brand__tt { background: var(--clay-dark); } /* white on #a84d2a = 5.9:1 */
.so__ph { width: auto; }

/* ---------- Stage cards v2: auto-sliding photos, bag art, natural badge, no-combine note ---------- */
.so__track { position: absolute; left: 0; bottom: 12px; height: 80%; display: flex; gap: 10px; padding-left: 10px; width: max-content; animation: so-slide 26s linear infinite; will-change: transform; }
.so:hover .so__track { animation-play-state: paused; }
.so__img { height: 100%; width: auto; aspect-ratio: 2 / 3; flex: none; object-fit: cover; border-radius: 14px; background: #fff; border: 3px solid #fff; box-shadow: 0 14px 22px -10px rgba(0, 0, 0, 0.5); }
.so__track .so__img:nth-child(odd) { margin-top: 10px; }
@keyframes so-slide { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .so__track { animation: none; } }
.so__stage--art { display: grid; place-items: center; }
.so__bag { width: min(78%, 190px); height: auto; filter: drop-shadow(0 14px 18px rgba(0, 0, 0, 0.25)); animation: so-bob 3.6s ease-in-out infinite; }
@keyframes so-bob { 50% { transform: translateY(-8px) rotate(-1.5deg); } }
@media (prefers-reduced-motion: reduce) { .so__bag { animation: none; } }
.so__natural { position: absolute; left: 8px; bottom: 8px; z-index: 4; width: 70px; height: 70px; border-radius: 50%; background: #fff; color: #2a1a12; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; line-height: 1; box-shadow: 0 8px 16px -8px rgba(0, 0, 0, 0.45); border: 2px dashed rgba(42, 26, 18, 0.35); outline: 3px solid #fff; }
.so__natural b { font-size: 1.05rem; font-weight: 600; font-style: italic; color: #1b7a43; }
.so__natural i { font-style: normal; font-size: 0.47rem; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 700; margin-top: 3px; max-width: 46px; line-height: 1.15; }
.so__note { font-size: 0.7rem; line-height: 1.3; opacity: 0.9; text-align: center; min-height: 2.6em; }
.so { gap: 0.55rem; }
@media (max-width: 700px) { .so__natural { width: 56px; height: 56px; } .so__natural b { font-size: 0.85rem; } .so__natural i { font-size: 0.4rem; max-width: 38px; } .so__note { font-size: 0.64rem; } }

/* ---------- Make the switch ---------- */
.switch { padding-block: clamp(2rem, 5vw, 4rem); }
.switch__inner { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; padding: clamp(1.6rem, 4vw, 3.5rem); border-radius: var(--r-lg); color: #fff; background: linear-gradient(135deg, #14b86a 0%, #0f8f5a 55%, #0b6e4b 100%); position: relative; overflow: hidden; isolation: isolate; }
.switch__inner::before { content: ""; position: absolute; right: -80px; top: -80px; width: 320px; height: 320px; border-radius: 50%; background: rgba(255, 255, 255, 0.12); z-index: -1; }
.switch__tag { display: inline-block; padding: 0.35rem 0.8rem; border-radius: 99px; background: #fff; color: #0b6e4b; font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; margin: 0 0 1rem; }
.switch__copy h2 { font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1; margin: 0 0 1rem; color: #fff; }
.switch__copy p { color: rgba(255, 255, 255, 0.92); max-width: 34rem; margin: 0 0 1.5rem; }
.switch__copy .btn { background: #fff; color: #0b6e4b; border-color: #fff; }
.switch__copy .btn:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.switch__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; }
.switch__list li { display: grid; grid-template-columns: 30px 1fr; column-gap: 0.7rem; align-items: start; padding: 1rem 1.1rem; border-radius: var(--r-md); background: rgba(255, 255, 255, 0.14); backdrop-filter: blur(2px); }
.switch__list li strong { font-weight: 600; font-size: 1.02rem; grid-column: 2; }
.switch__list li span:last-child { grid-column: 2; font-size: 0.86rem; opacity: 0.9; line-height: 1.35; }
.switch__tick { grid-row: 1 / span 2; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #fff; color: #0b6e4b; }
@media (max-width: 900px) { .switch__inner { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .switch__list { grid-template-columns: minmax(0, 1fr); gap: 0.55rem; } .switch__list li { padding: 0.8rem 0.9rem; } }

/* ---------- Social reviews (Instagram feed) ---------- */
.social-reviews__lead { margin: -0.5rem 0 1.5rem; }
.social-reviews__feed #sb_instagram { padding: 0; }
.social-reviews__feed #sb_instagram .sbi_photo, .social-reviews__feed #sb_instagram .sbi_photo img { border-radius: var(--r-md); }
.social-reviews__feed #sb_instagram #sbi_images { gap: 12px; padding: 0; }
.social-reviews__feed #sb_instagram .sbi_follow_btn a { border-radius: 99px; background: var(--ink); color: var(--cream); }
.switch__copy .switch__tag { color: #0b6e4b; margin: 0 0 1rem; }
/* Instagram feed on the homepage: one row of 4, no profile header (plugin settings are saved for a larger feed) */
.social-reviews__feed #sb_instagram .sb_instagram_header, .social-reviews__feed #sb_instagram .sbi_load_btn, .social-reviews__feed #sb_instagram .sbi_follow_btn { display: none; }
.social-reviews__feed #sb_instagram .sbi_item:nth-of-type(n + 5) { display: none !important; }
@media (max-width: 700px) { .social-reviews__feed #sb_instagram #sbi_images { grid-template-columns: repeat(2, 1fr) !important; } }

/* ---------- 100% Natural & Organic badge in the header, next to the last menu link; card opens on hover / focus / tap ---------- */
.natural-badge { position: relative; flex: none; margin-left: clamp(0.6rem, 1.2vw, 1.2rem); }
.natural-badge__btn { appearance: none; cursor: pointer; display: inline-flex; align-items: center; gap: 0.4rem; height: 34px; padding: 0 0.85rem; border: 0; border-radius: 99px; font: inherit; line-height: 1; color: #fff; background: linear-gradient(145deg, #14b86a, #0b6e4b); box-shadow: 0 2px 8px rgba(11, 110, 75, 0.35); transition: transform 0.3s var(--ease), box-shadow 0.3s; white-space: nowrap; }
.natural-badge__btn:hover, .natural-badge.is-open .natural-badge__btn { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(11, 110, 75, 0.4); }
.natural-badge__btn:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.natural-badge b { font-family: var(--serif); font-size: 0.95rem; font-weight: 600; font-style: italic; }
.natural-badge i { font-style: normal; font-size: 0.62rem; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 700; }
.natural-badge__card { position: absolute; right: 0; top: calc(100% + 10px); z-index: 70; min-width: 220px; padding: 1rem 1.2rem 1.1rem; border-radius: var(--r-md); background: #fffaf4; color: var(--ink); border: 1px solid var(--line); box-shadow: 0 18px 34px -16px rgba(42, 26, 18, 0.45); opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity 0.25s, transform 0.3s var(--ease), visibility 0s 0.3s; }
.natural-badge::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 12px; } /* hover bridge between button and card */
.natural-badge__card strong { display: block; white-space: nowrap; margin-bottom: 0.6rem; font-family: var(--serif); font-size: 1.15rem; font-weight: 500; color: #0b6e4b; }
.natural-badge__card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.45rem; }
.natural-badge__card li { display: flex; align-items: center; gap: 0.55rem; font-size: 0.9rem; white-space: nowrap; }
.natural-badge__card li svg { flex: none; color: #14b86a; }
.natural-badge:hover .natural-badge__card, .natural-badge:focus-within .natural-badge__card, .natural-badge.is-open .natural-badge__card { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.header__badge-row { display: none; }
@media (max-width: 960px) {
  .natural-badge--nav { display: none; }
  .header__badge-row { display: flex; justify-content: center; padding: 0 1rem 0.55rem; }
  .natural-badge--mobile { margin: 0; }
  .natural-badge--mobile .natural-badge__btn { height: 30px; padding: 0 0.8rem; }
  .natural-badge--mobile .natural-badge__card { right: auto; left: 50%; margin-left: -110px; }
}
@media (prefers-reduced-motion: reduce) { .natural-badge__btn, .natural-badge__card { transition: none; } }
.nav { align-items: center; }

/* ---------- Announcement bar: Black Friday offers ---------- */
.announce p { margin: 0; }
.announce__tag { display: inline-block; margin-right: 0.5rem; padding: 0.1rem 0.55rem; border-radius: 99px; background: #f2b632; color: #0c0a09; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; font-size: 0.72rem; }
.announce i { font-style: normal; opacity: 0.55; margin: 0 0.25rem; }
@media (max-width: 700px) { .announce { font-size: 0.7rem; padding: 0.45rem 0.7rem; } .announce i { display: none; } .announce span { display: inline-block; margin: 0 0.3rem; } }

/* ---------- Header: "My account" as text next to the search and cart icons ---------- */
.header__account { font-size: 0.9rem; padding: 0.5rem 0.7rem; border-radius: 99px; white-space: nowrap; transition: background 0.25s; }
.header__account:hover { background: var(--sand); }

/* ---------- Offer cards: capitalised titles; wooden-comb features ---------- */
.so__title { text-transform: capitalize; }
.so__feats { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.35rem 0.45rem; }
.so__feats li { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.22rem 0.6rem 0.22rem 0.45rem; border-radius: 99px; background: rgba(255, 255, 255, 0.22); font-size: 0.74rem; line-height: 1.2; font-weight: 500; }
.so__feats li svg { flex: none; }

/* ---------- Footer social icons ---------- */
.footer__social { display: flex !important; gap: 0.6rem; margin: 0 0 1rem !important; padding: 0 !important; list-style: none; }
.footer__social li { margin: 0 !important; }
.footer__social a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(251, 244, 236, 0.35); color: var(--cream); transition: background 0.3s, color 0.3s, border-color 0.3s, transform 0.3s var(--ease); }
.footer__social a:hover { background: var(--cream); color: var(--ink); border-color: var(--cream); transform: translateY(-3px); }

/* ---------- Offer cards v3: no panel, no sparkles, more breathing room ---------- */
.so__stage { background: none; margin-inline: -1.2rem; border-radius: 0; overflow: hidden; }
.so__stage::before, .so__stage::after { content: none; display: none; }
.so { padding: 1.35rem 1.2rem 1.3rem; gap: 0.7rem; }
.so__track { bottom: 8px; height: 88%; }
@media (min-width: 1101px) { .so__stage { height: clamp(200px, calc(100vh - 572px), 300px); } }
@media (max-width: 1100px) { .so__stage { margin-inline: -1.2rem; } }
@media (max-width: 700px) { .so { padding: 1.1rem 0.9rem 1rem; } .so__stage { margin-inline: -0.9rem; } }

/* ---------- Offers in the cart ---------- */
.offer-note { margin: 0 0 1rem; padding: 0.75rem 1rem; border-radius: var(--r-md); background: rgba(20, 184, 106, 0.14); color: #0b6e4b; font-size: 0.85rem; line-height: 1.4; }
.gift-tag { display: inline-block; margin-left: 0.4rem; padding: 0.15rem 0.55rem; border-radius: 99px; background: #14b86a; color: #fff; font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; vertical-align: middle; }
.gift-free { color: #0b6e4b; font-weight: 600; text-transform: uppercase; font-size: 0.8rem; letter-spacing: 0.08em; }
.drawer__total--save strong, .drawer__total--save span { color: #0b6e4b; }

/* ---------- Stray plugin elements ---------- */
.pswp:not(.pswp--open), .cr-pswp:not(.pswp--open) { display: none; } /* photo-viewer markup left in the page when its stylesheet is not loaded (it added blank space under the footer) */

/* ---------- Elementor-built pages (Contact, policies): match the old theme's base headings and paragraphs ---------- */
:where(body.elementor-page) :where(h1, h2, h3, h4, h5, h6) { color: inherit; font-family: inherit; font-weight: 500; line-height: 1.2; margin-block: 0.5rem 1rem; }
:where(body.elementor-page) :where(p) { margin-block: 0 0.9rem; }
:where(body.elementor-page) { color: #333; }

/* The giant wordmark's line box hangs below the footer and added blank scroll space: clip it so the page ends exactly where the footer ends. */
.site-footer { overflow: clip; }
@media (min-width: 1101px) { .so__stage { height: clamp(200px, calc(100vh - 548px), 300px); } }

/* ---------- Stage cards v4: three fixed photo cards, the pictures fade through the set ---------- */
.so__fan { position: absolute; inset: 0; }
.so__slot { position: absolute; bottom: 14px; aspect-ratio: 2 / 3; border-radius: 14px; border: 3px solid #fff; background: #fff; overflow: hidden; box-shadow: 0 14px 22px -10px rgba(0, 0, 0, 0.5); will-change: left, height, transform; transition: left 0.85s var(--ease), height 0.85s var(--ease), bottom 0.85s var(--ease), transform 0.85s var(--ease), opacity 0.6s ease; }
.so__slot[data-role="l"] { left: 9%; height: 58%; transform: rotate(-9deg); z-index: 1; }
.so__slot[data-role="c"] { left: 50%; height: 78%; bottom: 20px; transform: translateX(-50%); z-index: 2; }
.so__slot[data-role="r"] { left: 91%; height: 58%; transform: translateX(-100%) rotate(9deg); z-index: 1; }
.so__slot[data-role="out"] { left: -10%; height: 46%; transform: rotate(-16deg); opacity: 0; z-index: 0; }
.so__slot[data-role="in"] { left: 108%; height: 46%; transform: translateX(-100%) rotate(16deg); opacity: 0; z-index: 0; pointer-events: none; }
.so__slot.is-jump { transition: none; }
.so__slot .so__img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; border: 0; border-radius: 0; box-shadow: none; margin: 0; object-fit: cover; animation: none; }
@media (hover: hover) { .so:hover .so__slot[data-role="l"] { transform: rotate(-12deg) translateX(-4px); } .so:hover .so__slot[data-role="r"] { transform: translateX(-100%) rotate(12deg) translateX(4px); } .so:hover .so__slot[data-role="c"] { transform: translateX(-50%) translateY(-4px); } }
@media (prefers-reduced-motion: reduce) { .so__slot { transition: none; } }

/* Contact page */
.contact-head { text-align: left; }
.contact { padding-bottom: clamp(3rem, 7vw, 5.5rem); }
.contact__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.25rem, 3vw, 2.25rem); align-items: start; }
.contact__info { display: grid; gap: 0.9rem; }
.contact-card { display: grid; grid-template-columns: auto 1fr; gap: 0.2rem 1rem; align-items: center; padding: 1.15rem 1.3rem; background: #fffaf4; border: 1px solid var(--line); border-radius: var(--r-md); transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s; }
.contact-card:hover { transform: translateY(-3px); box-shadow: 0 18px 30px -22px rgba(42, 26, 18, 0.5); border-color: var(--clay); }
.contact-card__ico { grid-row: span 2; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--sand); color: var(--clay-dark); }
.contact-card strong { display: block; font-weight: 600; color: var(--ink); }
.contact-card small { display: block; color: var(--muted); font-size: 0.85rem; }
.contact-card em { grid-column: 2; font-style: normal; color: var(--clay-dark); font-weight: 600; overflow-wrap: anywhere; }
.contact__social { display: flex; align-items: center; gap: 0.6rem; padding: 0.4rem 0.3rem; color: var(--muted); }
.contact__social span { margin-right: 0.4rem; font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; }
.contact__social a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); color: var(--ink); transition: background 0.25s, color 0.25s, border-color 0.25s; }
.contact__social a:hover { background: var(--ink); color: var(--cream); border-color: var(--ink); }
.contact__form { padding: clamp(1.4rem, 3vw, 2.2rem); background: #fffaf4; border: 1px solid var(--line); border-radius: var(--r-lg); scroll-margin-top: 110px; }
.contact__form h2 { margin: 0 0 1.2rem; font-size: clamp(1.6rem, 3vw, 2.1rem); }
.contact__form form { display: grid; gap: 1rem; }
.contact__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.fld { display: grid; gap: 0.4rem; }
.fld span { font-size: 0.82rem; font-weight: 600; color: var(--ink); }
.fld input, .fld textarea { width: 100%; padding: 0.9rem 1.1rem; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--cream); font: inherit; color: var(--ink); transition: border-color 0.25s, box-shadow 0.25s; }
.fld textarea { resize: vertical; min-height: 9rem; }
.fld input:focus, .fld textarea:focus { outline: none; border-color: var(--clay); box-shadow: 0 0 0 3px rgba(201, 101, 61, 0.18); }
.contact__form .btn { justify-self: start; }
.contact__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.contact__notice { padding: 0.9rem 1.1rem; border-radius: var(--r-md); margin-bottom: 1rem; font-weight: 500; }
.contact__notice--ok { background: #e7f1dc; color: #2f4a1d; }
.contact__notice--err { background: #fbe4dc; color: #8a2f12; }
.contact__help { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.9rem; margin-top: clamp(1.25rem, 3vw, 2rem); }
.help-card { display: grid; gap: 0.25rem; padding: 1.1rem 1.3rem; border: 1px solid var(--line); border-radius: var(--r-md); transition: background 0.3s, transform 0.35s var(--ease); }
.help-card:hover { background: var(--sand); transform: translateY(-3px); }
.help-card strong { font: 400 1.25rem/1.2 var(--serif); color: var(--ink); }
.help-card span { color: var(--muted); font-size: 0.9rem; }
@media (max-width: 900px) { .contact__grid { grid-template-columns: minmax(0, 1fr); } .contact__help { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 520px) { .contact__row { grid-template-columns: minmax(0, 1fr); } }

/* Shop by category: eight tiles */
.tiles--8 .tile { aspect-ratio: 4 / 5; }
.tiles--8 .tile__label { font-size: clamp(1.35rem, 2.1vw, 1.8rem); }

/* Policy pages (same look as Contact) */
.policy__aside { position: sticky; top: 110px; }
.policy__toc { padding: 1.15rem 1.3rem; background: #fffaf4; border: 1px solid var(--line); border-radius: var(--r-md); }
.policy__toc strong { display: block; margin-bottom: 0.6rem; font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.policy__toc ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.1rem; max-height: max(170px, calc(100vh - 470px)); overflow: auto; counter-reset: pt; }
.policy__toc li { counter-increment: pt; }
.policy__toc a { display: block; padding: 0.38rem 0.5rem; border-radius: 8px; color: var(--ink); text-decoration: none; font-size: 0.93rem; line-height: 1.35; transition: background 0.25s, color 0.25s; }
.policy__toc a::before { content: counter(pt) "."; display: inline-block; min-width: 1.6em; color: var(--clay); font-weight: 600; }
.policy__toc a:hover { background: var(--sand); color: var(--clay-dark); }
.policy__card { padding: clamp(1.4rem, 3.4vw, 2.6rem); background: #fffaf4; border: 1px solid var(--line); border-radius: var(--r-lg); }
.policy__intro { margin-bottom: 0.5rem; padding-bottom: 1.4rem; border-bottom: 1px solid var(--line); }
.policy__intro > p:first-child { padding: 0.9rem 1.1rem; border-radius: var(--r-md); background: var(--sand); font-size: 0.92rem; line-height: 1.7; }
.policy__intro p { margin: 0 0 0.9em; }
.policy__intro > :last-child { margin-bottom: 0; }
.policy__sec { padding-top: clamp(1.4rem, 3vw, 2rem); scroll-margin-top: 110px; }
.policy__sec + .policy__sec { margin-top: clamp(1.4rem, 3vw, 2rem); border-top: 1px solid var(--line); }
.policy__sec h2 { display: flex; align-items: center; gap: 0.8rem; margin: 0 0 0.9rem; font: 400 clamp(1.35rem, 2.4vw, 1.75rem)/1.2 var(--serif); color: var(--ink); }
.policy__n { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--sand); color: var(--clay-dark); font: 600 0.9rem/1 var(--sans, inherit); }
.policy__body { max-width: 46rem; padding-left: calc(38px + 0.8rem); }
.policy__body p, .policy__body ul, .policy__body ol { margin: 0 0 0.85em; }
.policy__body ul, .policy__body ol { padding-left: 1.2rem; }
.policy__body li { margin-bottom: 0.3em; }
.policy__body li::marker { color: var(--clay); }
.policy__body > :last-child { margin-bottom: 0; }
.policy__body a { color: var(--clay-dark); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 900px) { .policy__aside { position: static; } .policy__toc ol { max-height: none; } }
@media (max-width: 560px) { .policy__body { padding-left: 0; } .policy__n { width: 32px; height: 32px; } }

/* Breathing room above the footer: blog pagination and prose pages (FAQs) */
.pagination { margin-bottom: clamp(4rem, 9vw, 7rem); }
.container--prose { padding-bottom: clamp(4rem, 9vw, 7rem); }

/* Blog: highlighted "Quick answer" card */
.entry p.quick-answer { position: relative; margin: 0 0 2rem; padding: 1.25rem 1.5rem 1.35rem 1.6rem; background: #f6e7d8; border: 1px solid rgba(201, 101, 61, 0.22); border-left: 5px solid var(--clay); border-radius: var(--r-md); color: var(--ink); font-size: 1.05rem; line-height: 1.75; }
.entry p.quick-answer .quick-answer__label { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.55rem; font: 700 0.78rem/1 var(--sans, inherit); letter-spacing: 0.14em; text-transform: uppercase; color: var(--clay-dark); }
.entry p.quick-answer .quick-answer__label::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--clay); }
@media (max-width: 560px) { .entry p.quick-answer { padding: 1.05rem 1.1rem 1.15rem 1.2rem; font-size: 1rem; } }

/* ---------- Most popular: product thumbnail on every row (the big preview only shows on wide screens) ---------- */
.popular__thumb { flex: none; align-self: center; width: clamp(56px, 8vw, 84px); aspect-ratio: 1; border-radius: 16px; overflow: hidden; background: var(--sand); }
.popular__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s var(--ease); }
.popular__list li.is-hover .popular__thumb img, .popular__list a:hover .popular__thumb img { transform: scale(1.08); }
.popular__list a { align-items: center; }
@media (max-width: 700px) { .popular__list a { gap: 0.8rem; padding-block: 1rem; } .popular__n { display: none; } .popular__name { font-size: 1.25rem; } }

/* ---------- Black Friday theme (body.theme-bf): black + gold. Switch: Customizer > Prana theme > Black Friday, or preview with ?bf=1 ---------- */
body.theme-bf {
  --cream: #0c0a09; --sand: #1a1512; --peach: #251d18; --clay: #f2b632; --clay-dark: #d99a12;
  --ink: #f7f0e6; --muted: #b9ab9c; --line: rgba(247, 240, 230, 0.16);
  background: #0c0a09; color: var(--ink);
}
body.theme-bf .announce { background: linear-gradient(90deg, #d99a12, #f2b632 50%, #d99a12); color: #0c0a09; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
body.theme-bf .site-header.is-scrolled { background: rgba(12, 10, 9, 0.88); }
body.theme-bf .brand__tt { color: #0c0a09; }
body.theme-bf .btn, body.theme-bf .btn--solid { --btn-bg: #f2b632; }
body.theme-bf .btn:not(.btn--ghost):not(.btn--line), body.theme-bf .btn--solid { background: #f2b632; color: #0c0a09; border-color: #f2b632; }
body.theme-bf .btn:not(.btn--ghost):not(.btn--line):hover, body.theme-bf .btn--solid:hover { background: #ffd271; color: #0c0a09; }
body.theme-bf .eyebrow { color: #f2b632; }
body.theme-bf .section-head h2::after, body.theme-bf .h-hero em { color: #f2b632; }
body.theme-bf .marquee { background: #f2b632; color: #0c0a09; }
body.theme-bf .popular__list li.is-hover .popular__name { color: #f2b632; }
body.theme-bf .statement, body.theme-bf .section--sand { background: #14100d; }
body.theme-bf .site-footer { background: #000; border-top: 2px solid #f2b632; }
body.theme-bf .natural-badge__card { background: #1a1512; color: var(--ink); border-color: var(--line); }
body.theme-bf .natural-badge__card strong { color: #f2b632; }
body.theme-bf .header__account:hover { background: #1a1512; }
body.theme-bf .so { filter: saturate(0.9) brightness(0.92); }
body.theme-bf .so__pill, body.theme-bf .so .tag { background: #0c0a09; color: #f2b632; }
body.theme-bf img { opacity: 0.97; }
body.theme-bf :is(.contact-card, .contact__form, .h1-card, .natural-badge__card, .pb-benefit-card, .pb-benefit-simple, .pb-combo-box-card, .pb-solve-card, .pb-step-detail-card, .policy__card, .policy__toc, .review__product, .store, .stores-cta__card, .stores__bar) { background: #1a1512; }
body.theme-bf .site-footer { --cream: #f7f0e6; --ink: #000; color: #f7f0e6; }
body.theme-bf .site-footer a, body.theme-bf .footer__big { color: #f7f0e6; }
body.theme-bf .cart-count { background: #f2b632; color: #0c0a09; }
body.theme-bf :is(input, select, textarea) { background: #1a1512; color: var(--ink); border-color: var(--line); }
body.theme-bf .site-footer em { color: #f2b632; }

/* ---------- Header: logo mark + text; Search / Cart / Close with icon and label ---------- */
.brand__mark { width: 44px; height: auto; flex: none; }
.footer__brand .brand__mark, .brand--panel .brand__mark { display: none; }
.icon-btn--label { display: inline-flex; align-items: center; gap: 0.45rem; width: auto; height: 42px; padding: 0 0.95rem 0 0.8rem; border-radius: 99px; font-size: 0.9rem; font-weight: 500; line-height: 1; white-space: nowrap; }
.icon-btn--label svg { flex: none; }
.header__actions .icon-btn--label { border: 1px solid var(--line); margin-left: 0.4rem; }
.header__actions .icon-btn--label:hover { background: var(--ink); color: var(--cream); border-color: var(--ink); }
.header__actions .icon-btn--label.cart-btn .cart-count { top: -6px; right: -4px; }
.header__actions .menu-btn { width: 44px; padding: 0; border: 0; margin-left: 0.2rem; }
@media (max-width: 560px) {
  .header__actions .icon-btn--label:not(.menu-btn) { padding: 0 0.65rem; height: 38px; margin-left: 0.2rem; }
  .header__actions .icon-btn--label span { display: none; }
  .brand__mark { width: 34px; }
}

/* ---------- Free wooden comb card: one row of features, changing every few seconds ---------- */
.so__feats { position: relative; display: block; height: 1.9rem; overflow: hidden; margin: 0; }
.so__feats li { position: absolute; left: 0; top: 0; opacity: 0; transform: translateY(10px); animation: so-feat calc(var(--n) * 2.6s) infinite; animation-delay: calc(var(--i) * 2.6s); }
/* four features: each shows for a quarter of the cycle */
@keyframes so-feat { 0% { opacity: 0; transform: translateY(10px); } 3%, 21% { opacity: 1; transform: none; } 25%, 100% { opacity: 0; transform: translateY(-10px); } }
@media (prefers-reduced-motion: reduce) { .so__feats li { animation: none; } .so__feats li:first-child { opacity: 1; transform: none; } }

/* Mid-width desktops: keep the header on one row */
.nav-desktop > li > a { white-space: nowrap; }
@media (min-width: 961px) {
  .nav-desktop { gap: 0.9rem; }
  .nav-desktop > li > a { font-size: 0.86rem; }
  .natural-badge--nav { margin-left: 0.4rem; }
  .natural-badge--nav .natural-badge__btn i { display: none; }
  .header__actions .icon-btn--label { padding: 0 0.7rem; margin-left: 0.2rem; }
  .brand__name { font-size: 1.15rem; }
}
@media (max-width: 1060px) and (min-width: 961px) {
  .header__actions .icon-btn--label:not(.menu-btn) span { display: none; }
  .header__actions .icon-btn--label:not(.menu-btn) { padding: 0 0.6rem; }
}

/* FAQ: "View all" under the last question */
.faq__more { display: flex; justify-content: center; margin: 1.6rem 0 0; }

/* Comb card: the rotating feature pill sits right under the description, inside the same two-line block the other cards use, so all five line up */
.so--feats .so__text { min-height: 0; height: 1.4em; -webkit-line-clamp: 1; }
.so--feats .so__feats { height: 1.25rem; margin-top: -0.7rem; }
.so--feats .so__feats li { padding-block: 0.12rem; }

/* Festive Lip Duo (composite): the pair is one fixed price, so hide the per-item prices inside the pickers */
.wooco-components .dd-desc, .wooco-components .dd-option-description, .wooco-components .dd-selected-description { display: none !important; }
.wooco-components .wooco_component_product_price, .wooco-components .wooco-price { display: none; }
/* Composite items in the cart table: the chosen products are included in the pair price, so their own prices are hidden */
.wooco-item-child .product-price, .wooco-item-child .product-subtotal { visibility: hidden; }

/* Black Friday: online only */
.announce__tag--online { background: transparent; color: #f2b632; border: 1px solid #f2b632; padding-block: 0.06rem; }
.so-note { margin: 0 0 1rem; text-align: center; font-size: 0.9rem; color: var(--muted); }
.so-note strong { color: var(--ink); }

/* Announcement bar: a scrolling marquee on phones (the second copy only exists for the loop) */
.announce__dup { display: none; }
@media (max-width: 700px) {
  .announce { overflow: hidden; padding-inline: 0; }
  .announce__track { display: flex; width: max-content; animation: announce-scroll 22s linear infinite; }
  .announce__track p, .announce__dup { display: block; flex: none; white-space: nowrap; padding-right: 2.5rem; }
  .announce i { display: inline; }
  .announce span { display: inline; margin: 0; }
  .announce:hover .announce__track, .announce:active .announce__track { animation-play-state: paused; }
}
@keyframes announce-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .announce__track { animation: none !important; width: auto; justify-content: center; flex-wrap: wrap; } .announce__dup { display: none !important; } .announce__track p { white-space: normal; padding: 0 1rem; } }

/* Conversion quick wins */
#billing_postcode_field, #shipping_postcode_field { display: none !important; }
.delivery-note { margin: 0.9rem 0 0; padding: 0.7rem 0.9rem; border-radius: var(--r-md); background: var(--sand); font-size: 0.88rem; line-height: 1.45; color: var(--ink); }
.checkout-assure { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.3rem 1.2rem; margin: 0.9rem 0 0; padding: 0; list-style: none; font-size: 0.82rem; color: var(--muted); }
.checkout-assure li::before { content: "✓ "; color: #14b86a; font-weight: 700; }
.checkout-assure a { text-decoration: underline; text-underline-offset: 3px; }

/* Mobile: the menu button shows the word "Menu" with the hamburger icon (it stays visible even where the Search/Cart words are hidden) */
.header__actions .menu-btn { width: auto; padding: 0 0.85rem 0 0.7rem; margin-left: 0.2rem; border: 1px solid var(--line); }
.header__actions .menu-btn span { display: inline !important; }
@media (max-width: 560px) { .header__actions .menu-btn { height: 38px; padding: 0 0.65rem 0 0.55rem; } .brand__name { font-size: 1.05rem; } }
@media (max-width: 420px) {
  .header__inner { gap: 0.4rem; }
  .brand { gap: 0.35rem; }
  .brand__tt { display: none; }
  .brand__mark { width: 32px; }
  .header__actions .icon-btn--label:not(.menu-btn) { width: 38px; padding: 0; justify-content: center; margin-left: 0.15rem; }
  .header__actions .menu-btn { margin-left: 0.15rem; padding: 0 0.6rem 0 0.5rem; gap: 0.3rem; }
}

/* The Menu button is for phones/tablets only; "icon-btn--label" must not make it show on desktop */
.header__actions .menu-btn { display: none; }
@media (max-width: 960px) { .header__actions .menu-btn { display: inline-flex; } }

/* Country / any native <select> on checkout: same pill look in Safari as in Chrome (Safari ignores padding and radius on native selects) */
.woo-page select:not(.select2-hidden-accessible), .woo-page form .form-row select:not(.select2-hidden-accessible) {
  -webkit-appearance: none; appearance: none; min-height: 52px; padding: 0.85rem 2.7rem 0.85rem 1.15rem; border-radius: var(--r-md);
  background-color: var(--card); color: var(--ink); font: inherit; font-size: 0.98rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none' stroke='%232a1a12' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 1.5 7 7l5.5-5.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 1.15rem center; background-size: 14px 9px;
}
.select2-dropdown { overscroll-behavior: contain; }
.select2-results__options { overscroll-behavior: contain; max-height: 260px; }

/* Coupon form on checkout: no floats (a float squeezed the checkout grid next to it while the form slid open) */
.woocommerce-checkout .woocommerce form.checkout_coupon { overflow: hidden; clear: both; }
form.checkout_coupon .form-row-first, form.checkout_coupon .form-row-last { float: none !important; display: inline-block; vertical-align: middle; margin: 0 0.5rem 0 0; }
form.checkout_coupon .form-row-first { width: calc(100% - 190px); min-width: 180px; }
form.checkout_coupon .form-row-last { width: 170px; }
form.checkout_coupon .form-row-last .button { width: 100%; }
form.checkout_coupon .clear { display: none; }
@media (max-width: 600px) { form.checkout_coupon .form-row-first, form.checkout_coupon .form-row-last { display: block; width: 100%; margin: 0 0 0.6rem; } }
