﻿/* ============================================================
   PUBLIC SITE — Minimal Base Stylesheet
   ============================================================
   This file provides ONLY:
     - CSS custom properties for easy re-skinning (colours, fonts, radii)
     - Essential structural / functional CSS so the site works
     - No decorative styling — apply a theme by overriding variables
       or adding a separate stylesheet after this one.

   Original themed file preserved as: style-forest-theme.css
   ============================================================ */

/* ── Custom Properties (change these to re-skin) ─────────── */
:root {
  /* Brand colours */
  --clr-primary:     #51bab3;
  --clr-primary-lt:  #6ec9c3;
  --clr-primary-dark: #3a9a94;
  --clr-secondary:   #82beda;
  --clr-accent:      #51bab3;
  --clr-accent-lt:   #6ec9c3;

  /* Legacy variable names — keeps cms.css, views, and inline styles working */
  --clr-forest:      var(--clr-primary);
  --clr-canopy:      var(--clr-primary-lt);
  --clr-sage:        var(--clr-secondary);
  --clr-leaf:        #82beda;
  --clr-moss:        #3a9a94;

  --clr-amber:       #c07d2f;
  --clr-amber-lt:    #d4944a;
  --clr-gold:        #c5a55a;
  --clr-terracotta:  #c0392b;

  --clr-amethyst:    #7a5fa0;
  --clr-amethyst-lt: #a88bc7;
  --clr-dusty-rose:  #c4929e;
  --clr-moonlight:   #e8e0f0;

  /* Neutrals */
  --clr-cream:       #f8f8f8;
  --clr-linen:       #f0f0f0;
  --clr-parchment:   #e0e0e0;
  --clr-bark:        #333;
  --clr-earth:       #555;
  --clr-stone:       #6c757d;
  --clr-mist:        #adb5bd;

  /* Fonts */
  --font-serif: 'Poppins', Arial, sans-serif;
  --font-sans:  'Poppins', Arial, sans-serif;

  /* Radii */
  --r-sm:.25rem; --r-md:.5rem; --r-lg:.75rem; --r-xl:1rem; --r-2xl:1.25rem; --r-full:50rem;

  /* Shadows */
  --shadow-sm: 0 2px 8px rgba(0,0,0,.08);
  --shadow-md: 0 4px 16px rgba(0,0,0,.1);
  --shadow-lg: 0 8px 24px rgba(0,0,0,.12);
  --shadow-glow: none;
  --shadow-gold: none;

  /* Motion */
  --ease: ease;
  --ease-out: ease-out;
  --trans: .2s ease;
  --trans-slow: .4s ease-out;
}


/* ── Base ─────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  font-family:var(--font-sans);
  font-size:1rem; line-height:1.6;
  color:var(--clr-bark);
  background:var(--clr-cream);
  padding-top:80px; /* nav 80 */
  overflow-x:hidden;
}

img{max-width:100%;display:block}


/* ── Utility classes (used in views) ─────────────────────── */
.text-forest{color:var(--clr-forest)!important}
.text-amber{color:var(--clr-amber)!important}
.text-sage{color:var(--clr-sage)!important}
.text-stone{color:var(--clr-stone)!important}
.text-bark{color:var(--clr-bark)!important}
.bg-cream{background:var(--clr-cream)!important}
.bg-linen{background:var(--clr-linen)!important}
.bg-forest{background:var(--clr-forest)!important}
.bg-bark{background:var(--clr-bark)!important}
.serif{font-family:var(--font-serif)}

.section-eyebrow{
  display:block; font-size:.75rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--clr-secondary); margin-bottom:.75rem;
}
.section-divider{
  display:flex; align-items:center; justify-content:center; gap:1rem;
  margin:0 auto; padding:1rem 0;
}


/* ── Buttons (used in views & cookie banner) ─────────────── */
.btn-forest,
.btn-amber,
.btn-accent,
.btn-mystic{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.6rem 1.5rem; color:#fff;
  font-size:.85rem; font-weight:600;
  border:none; border-radius:var(--r-md);
  cursor:pointer; text-decoration:none;
}
.btn-forest{background:var(--clr-primary)}
.btn-amber{background:var(--clr-amber)}
.btn-accent{background:var(--clr-accent)}
.btn-mystic{background:var(--clr-amethyst)}
.btn-forest:hover,.btn-amber:hover,.btn-accent:hover,.btn-mystic:hover{opacity:.85;color:#fff}

.btn-forest-outline,
.btn-ghost-light{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.6rem 1.5rem; background:transparent;
  font-size:.85rem; font-weight:600;
  border:1px solid var(--clr-parchment); border-radius:var(--r-md);
  cursor:pointer; text-decoration:none;
}
.btn-forest-outline{color:var(--clr-primary)}
.btn-ghost-light{color:rgba(255,255,255,.85);border-color:rgba(255,255,255,.3)}
.btn-forest-outline:hover{background:var(--clr-linen)}
.btn-ghost-light:hover{background:rgba(255,255,255,.1);color:#fff}


/* ── TOP BAR ─────────────────────────────────────────────── */
.topBar{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  background:var(--clr-primary); color:rgba(255,255,255,.8);
  font-size:.75rem;
}
.topBar.is-hidden{transform:translateY(-100%);pointer-events:none}
.topBar__inner{
  display:flex; align-items:center; justify-content:space-between;
  height:36px; gap:1rem;
}
.topBar__left{display:flex;align-items:center;gap:1rem}
.topBar__link{color:rgba(255,255,255,.7);text-decoration:none;display:flex;align-items:center;gap:.35rem}
.topBar__link:hover{color:#fff}
.topBar__centre{flex:1;text-align:center;overflow:hidden;white-space:nowrap}
.topBar__promo{color:rgba(255,255,255,.6);font-size:.75rem}
.topBar__dot{opacity:.4}
.topBar__right{display:flex;align-items:center;gap:.5rem}
.topBar__social{
  color:rgba(255,255,255,.5);font-size:.75rem;text-decoration:none;
  width:24px;height:24px;display:flex;align-items:center;justify-content:center;
}
.topBar__social:hover{color:#fff}


/* ── NAVBAR ──────────────────────────────────────────────── */
.siteNav{
  position:fixed; top:0; left:0; right:0; z-index:999;
  background:#fff;
  border-bottom:1px solid rgba(0,0,0,.08);
  box-shadow:0 4px 20px rgba(0,0,0,.08);
}
.siteNav.is-scrolled{box-shadow:0 6px 30px rgba(0,0,0,.12)}
.siteNav__wrap{display:flex;align-items:center;height:80px;gap:1.5rem}

/* Logo */
.siteNav__logo{display:flex;align-items:center;text-decoration:none;gap:.5rem;flex-shrink:1;min-width:0}
.siteNav__logo img{height:48px;width:auto}
.siteNav__logo-text{font-family:var(--font-serif);font-size:1.25rem;font-weight:600;color:var(--clr-primary);line-height:1.15;display:flex;flex-wrap:wrap;align-items:center;gap:0 .3rem}
.siteNav__logo-text em{font-weight:400;font-style:italic;color:var(--clr-stone)}
.siteNav__logo-leaf{color:var(--clr-secondary);font-size:1rem;margin-right:.15rem}
.siteNav__logo-sub{width:100%;display:block;font-family:var(--font-sans);font-size:.6rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--clr-stone);margin-top:.1rem}

/* Desktop nav links */
.siteNav__links{display:flex;align-items:center;gap:.15rem;list-style:none;margin:0;padding:0;flex:1;justify-content:center}
.siteNav__item{position:relative}
.siteNav__link{
  display:flex;align-items:center;gap:.3rem;
  font-size:.8rem;font-weight:600;
  color:var(--clr-bark);padding:.5rem .85rem;
  text-decoration:none;background:none;border:none;cursor:pointer;white-space:nowrap;
}
.siteNav__link:hover{color:var(--clr-primary)}
.siteNav__caret{font-size:.5rem;opacity:.45}

/* Gap bridge for hover between link and dropdown */
.siteNav__item--has-children::after{
  content:'';position:absolute;top:100%;left:0;right:0;height:14px;z-index:998;
}

/* Standard dropdown */
.siteNav__dropdown{
  display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);
  min-width:200px;padding:.5rem;
  background:#fff;border:1px solid var(--clr-parchment);border-radius:var(--r-md);
  box-shadow:var(--shadow-md);z-index:999;
}
.siteNav__item--has-children:hover .siteNav__dropdown{display:block}
.siteNav__dropdown-link{
  display:flex;align-items:center;gap:.5rem;
  padding:.45rem .75rem;border-radius:var(--r-sm);
  font-size:.85rem;color:var(--clr-bark);text-decoration:none;
}
.siteNav__dropdown-link:hover{background:var(--clr-linen);color:var(--clr-primary)}
.siteNav__dropdown-arrow{font-size:.55rem;color:var(--clr-secondary);opacity:0}
.siteNav__dropdown-link:hover .siteNav__dropdown-arrow{opacity:1}

/* Mega dropdown (shop) */
.siteNav__mega{
  display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);
  width:520px;background:#fff;border:1px solid var(--clr-parchment);border-radius:var(--r-md);
  box-shadow:var(--shadow-md);overflow:hidden;z-index:999;
}
.siteNav__item--mega:hover .siteNav__mega{display:block}
.siteNav__mega-inner{display:grid;grid-template-columns:1fr 1fr}
.siteNav__mega-col{padding:1.25rem}
.siteNav__mega-head{display:block;font-size:.65rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--clr-secondary);margin-bottom:.75rem}
.siteNav__mega-link{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.85rem;color:var(--clr-bark);text-decoration:none;border-radius:var(--r-sm)}
.siteNav__mega-link:hover{background:var(--clr-linen);color:var(--clr-primary)}
.siteNav__mega-link--all{font-weight:600;margin-bottom:.25rem;padding-bottom:.5rem;border-bottom:1px solid var(--clr-parchment)}
.siteNav__mega-ico{font-size:.6rem;color:var(--clr-secondary);opacity:.6}
.siteNav__mega-feature{background:var(--clr-primary);display:flex;align-items:center}
.siteNav__mega-feature-inner{padding:1.5rem}
.siteNav__mega-feature-eyebrow{display:block;font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--clr-gold);margin-bottom:.5rem}
.siteNav__mega-feature-hl{display:block;font-size:1rem;color:rgba(255,255,255,.85);line-height:1.5;margin-bottom:1rem}
.siteNav__mega-feature-btn{
  display:inline-flex;align-items:center;gap:.4rem;padding:.45rem 1rem;border-radius:var(--r-md);
  background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);color:#fff;
  font-size:.75rem;font-weight:600;text-decoration:none;
}
.siteNav__mega-feature-btn:hover{background:rgba(255,255,255,.25);color:#fff}

/* Action icons */
.siteNav__actions{display:flex;align-items:center;gap:.25rem;margin-left:auto;flex-shrink:0}
.siteNav__action-btn{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;background:transparent;border:none;
  color:var(--clr-bark);font-size:.9rem;border-radius:var(--r-md);
  cursor:pointer;text-decoration:none;position:relative;
}
.siteNav__action-btn:hover{background:var(--clr-linen);color:var(--clr-primary)}
.siteNav__action-btn--signin{width:auto;gap:.35rem;padding:0 .75rem;font-size:.75rem;font-weight:600}
.siteNav__action-label{display:inline}
.siteNav__badge{
  position:absolute;top:2px;right:2px;
  min-width:17px;height:17px;
  background:var(--clr-accent);color:#fff;font-size:.6rem;font-weight:700;border-radius:var(--r-full);
  display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1;
}
.siteNav__badge--rose{background:var(--clr-dusty-rose)}

/* CTA button in nav */
.siteNav__cta{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.5rem 1.25rem;margin-left:.5rem;
  background:var(--clr-primary);color:#fff;
  font-size:.72rem;font-weight:700;
  border-radius:var(--r-md);text-decoration:none;white-space:nowrap;
  position:relative;overflow:hidden;
}
.siteNav__cta:hover{opacity:.85;color:#fff}
.siteNav__cta-glow{display:none}

/* Hamburger */
.siteNav__hamburger{
  display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  background:var(--clr-linen);border:1px solid var(--clr-parchment);
  border-radius:var(--r-md);cursor:pointer;
  padding:0;width:44px;height:44px;margin-left:.5rem;flex-shrink:0;
}
.siteNav__hamburger span{display:block;width:22px;height:2px;background:var(--clr-primary);border-radius:2px}

/* Search overlay */
.siteNav__search-overlay{
  position:fixed;inset:0;z-index:1001;
  display:flex;align-items:flex-start;justify-content:center;
  padding-top:180px;opacity:0;visibility:hidden;transition:opacity .2s ease;
}
.siteNav__search-overlay.is-open{opacity:1;visibility:visible}
.siteNav__search-overlay-bg{position:absolute;inset:0;background:rgba(0,0,0,.4)}
.siteNav__search-form{
  position:relative;z-index:1;max-width:600px;width:100%;
  background:#fff;border-radius:var(--r-lg);padding:2rem;box-shadow:var(--shadow-lg);
}
.siteNav__search-label{display:block;font-size:1.1rem;color:var(--clr-primary);margin-bottom:1rem}
.siteNav__search-row{
  display:flex;align-items:center;gap:.5rem;
  border:1px solid var(--clr-parchment);border-radius:var(--r-md);padding:.3rem .3rem .3rem 1rem;
}
.siteNav__search-row:focus-within{border-color:var(--clr-accent)}
.siteNav__search-ico{color:var(--clr-stone);font-size:.9rem}
.siteNav__search-row input{flex:1;border:none;outline:none;background:none;font-size:.95rem;color:var(--clr-bark);padding:.4rem 0}
.siteNav__search-row input::placeholder{color:var(--clr-stone)}
.siteNav__search-go{padding:.5rem 1.25rem;background:var(--clr-primary);color:#fff;border:none;border-radius:var(--r-md);font-size:.8rem;font-weight:600;cursor:pointer}
.siteNav__search-go:hover{opacity:.85}
.siteNav__search-hints{display:flex;align-items:center;gap:.4rem;margin-top:.75rem;flex-wrap:wrap}
.siteNav__search-hint-label{font-size:.75rem;font-weight:600;color:var(--clr-stone);text-transform:uppercase}
.siteNav__search-hint{font-size:.75rem;color:var(--clr-bark);padding:.25rem .65rem;border-radius:var(--r-md);border:1px solid var(--clr-parchment);text-decoration:none}
.siteNav__search-hint:hover{background:var(--clr-linen)}


/* ── MOBILE OFFCANVAS ────────────────────────────────────── */
.offcanvas{background:var(--clr-primary)!important;border-left:none!important;width:300px!important}
.mobileNav__header{background:rgba(0,0,0,.15);border-bottom:1px solid rgba(255,255,255,.1);padding:1rem 1.25rem}
.mobileNav__header .offcanvas-title{font-size:1.15rem;color:#fff;display:flex;align-items:center;gap:.4rem}
.mobileNav__header-leaf{color:var(--clr-secondary)}
.mobileNav__body{padding:1rem 1.25rem;display:flex;flex-direction:column;min-height:calc(100% - 60px)}
.mobileNav__search{
  display:flex;align-items:center;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-md);padding:.15rem .15rem .15rem .75rem;margin-bottom:1.25rem;
}
.mobileNav__search-ico{color:rgba(255,255,255,.35);font-size:.8rem;margin-right:.5rem}
.mobileNav__search input{flex:1;border:none;outline:none;background:none;color:#fff;font-size:.85rem;padding:.4rem 0}
.mobileNav__search input::placeholder{color:rgba(255,255,255,.3)}
.mobileNav__search button{
  width:34px;height:34px;border-radius:var(--r-md);border:none;
  background:rgba(255,255,255,.1);color:rgba(255,255,255,.6);font-size:.7rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.mobileNav__search button:hover{background:rgba(255,255,255,.2);color:#fff}
.mobileNav__list{list-style:none;margin:0;padding:0}
.mobileNav__link{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;padding:.7rem 0;
  color:rgba(255,255,255,.75);font-size:.88rem;font-weight:500;
  text-decoration:none;background:none;border:none;cursor:pointer;text-align:left;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.mobileNav__link:hover{color:#fff}
.mobileNav__toggle-ico{font-size:.6rem;color:var(--clr-secondary)}
.mobileNav__sub{padding:0 0 .5rem .75rem}
.mobileNav__sub-link{display:flex;align-items:center;gap:.4rem;padding:.4rem 0;font-size:.82rem;color:rgba(255,255,255,.5);text-decoration:none}
.mobileNav__sub-link:hover{color:#fff}
.mobileNav__actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:.5rem;margin-top:1.25rem}
.mobileNav__action-card{
  display:flex;flex-direction:column;align-items:center;gap:.3rem;
  padding:.7rem .5rem;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-md);text-decoration:none;
  color:rgba(255,255,255,.65);font-size:.7rem;font-weight:600;text-transform:uppercase;
  position:relative;
}
.mobileNav__action-card i{font-size:1rem;color:var(--clr-secondary)}
.mobileNav__action-card:hover{background:rgba(255,255,255,.1);color:#fff}
.mobileNav__action-badge{
  position:absolute;top:4px;right:4px;min-width:16px;height:16px;border-radius:var(--r-full);
  background:var(--clr-accent);color:#fff;font-size:.55rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;padding:0 3px;
}
.mobileNav__cta{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  margin-top:1rem;padding:.7rem;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-md);color:rgba(255,255,255,.7);
  font-size:.78rem;font-weight:700;text-transform:uppercase;text-decoration:none;
}
.mobileNav__cta:hover{background:rgba(255,255,255,.15);color:#fff}
.mobileNav__contact{margin-top:auto;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;gap:.5rem}
.mobileNav__contact a{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:rgba(255,255,255,.4);text-decoration:none}
.mobileNav__contact a:hover{color:rgba(255,255,255,.7)}


/* ── HERO ────────────────────────────────────────────────── */
.heroBleed{position:relative;min-height:60vh;display:flex;align-items:center;overflow:hidden;background:var(--clr-primary)}
.heroBleed__bg{position:absolute;inset:0;background-size:cover;background-position:center}
.heroBleed__overlay{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.heroBleed__content{position:relative;z-index:2;padding:4rem 0;max-width:640px}
.heroBleed__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:1.25rem}
.heroBleed__title{font-family:var(--font-serif);font-size:clamp(2.5rem,6vw,4.5rem);font-weight:600;color:#fff;margin-bottom:1.25rem;line-height:1.1}
.heroBleed__title em{font-style:normal}
.heroBleed__sub{font-size:1rem;line-height:1.7;color:rgba(255,255,255,.7);max-width:480px;margin-bottom:2rem}
.heroBleed__btns{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.heroBleed__scroll{
  position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:2;
  color:rgba(255,255,255,.35);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;
}


/* ── TICKER ──────────────────────────────────────────────── */
.ticker{background:var(--clr-primary);overflow:hidden;padding:.5rem 0}
.ticker__track{display:flex;width:max-content;animation:tickerRun 30s linear infinite}
.ticker__item{display:inline-flex;align-items:center;gap:.4rem;padding:0 2rem;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);white-space:nowrap}
.ticker__item i{color:var(--clr-secondary)}
@keyframes tickerRun{from{transform:translateX(0)}to{transform:translateX(-50%)}}


/* ── CATEGORY GRID (homepage) ────────────────────────────── */
.catGrid{padding:3rem 0}
.catGrid__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:2rem}
.catGrid__title{margin:0}
.catGrid__seeall{font-size:.8rem;font-weight:600;color:var(--clr-secondary);text-decoration:none;display:flex;align-items:center;gap:.4rem}
.catGrid__seeall:hover{color:var(--clr-primary)}
.catGrid__layout{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:1rem}
.catGrid__layout>*:first-child{grid-row:span 2}
.catTile{position:relative;overflow:hidden;border-radius:var(--r-md);display:block;text-decoration:none;min-height:200px}
.catTile__bg{width:100%;height:100%;background-size:cover;background-position:center}
.catTile__fill{width:100%;height:100%;background:var(--clr-linen);display:flex;align-items:center;justify-content:center;font-size:2.5rem;color:var(--clr-secondary)}
.catTile__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 60%)}
.catTile__body{position:absolute;bottom:0;left:0;right:0;padding:1.25rem}
.catTile__label{font-size:.65rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.7);display:block;margin-bottom:.25rem}
.catTile__name{font-family:var(--font-serif);font-size:1.25rem;font-weight:600;color:#fff;margin:0 0 .3rem}
.catTile__cta{font-size:.75rem;font-weight:600;text-transform:uppercase;color:rgba(255,255,255,.6)}


/* ── FEATURED PRODUCTS ───────────────────────────────────── */
.featProds{padding:3rem 0;background:var(--clr-linen)}
.featProds__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:2rem}
.featProds__title{margin:0}
.featProds__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}


/* ── PRODUCT CARD ────────────────────────────────────────── */
.pcard{background:#fff;border:1px solid var(--clr-parchment);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column}
.pcard__img-wrap{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--clr-linen);flex-shrink:0}
.pcard__img-link{display:block;width:100%;height:100%}
.pcard__img-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.pcard__no-img{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--clr-secondary);font-size:2rem;background:var(--clr-linen)}
.pcard__badges{position:absolute;top:.5rem;left:.5rem;display:flex;flex-direction:column;gap:.25rem;z-index:2}
.pcard__zoom-ico{
  position:absolute;bottom:.5rem;right:.5rem;width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.5);color:#fff;font-size:.75rem;border-radius:var(--r-sm);
  opacity:0;z-index:3;text-decoration:none;
}
.pcard:hover .pcard__zoom-ico{opacity:1}
.pcard__badge{font-size:.7rem;font-weight:700;padding:.2rem .5rem;border-radius:var(--r-sm);line-height:1.3}
.pcard__badge--sale{background:var(--clr-terracotta);color:#fff}
.pcard__badge--new{background:var(--clr-amethyst);color:#fff}
.pcard__badge--free-ship{background:var(--clr-secondary);color:#fff}
.pcard__badge--oos{background:var(--clr-stone);color:#fff}
.pcard__body{padding:1rem;display:flex;flex-direction:column;flex:1}
.pcard__cat{display:inline-block;width:fit-content;font-size:.7rem;font-weight:600;color:var(--clr-secondary);margin-bottom:.35rem}
.pcard__name{font-size:.95rem;font-weight:600;color:var(--clr-bark);text-decoration:none;display:block;margin-bottom:.25rem}
.pcard__name:hover{color:var(--clr-primary)}
.pcard__desc{font-size:.8rem;color:var(--clr-stone);line-height:1.5;margin-bottom:.4rem;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pcard__prices{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap;margin-top:auto;padding-top:.4rem}
.pcard__price{font-size:1rem;font-weight:700;color:var(--clr-bark)}
.pcard__price--sale{color:var(--clr-terracotta)}
.pcard__price--was{font-size:.8rem;color:var(--clr-mist);text-decoration:line-through}
.pcard__footer{padding:.75rem 1rem;border-top:1px solid var(--clr-parchment)}
.pcard__footer .btn{width:100%;font-size:.8rem;font-weight:600}


/* ── REVIEWS ─────────────────────────────────────────────── */
.reviews{padding:3rem 0;background:var(--clr-primary);color:#fff;position:relative}
.reviews__head{text-align:center;margin-bottom:2rem}
.reviews__head .section-eyebrow{color:var(--clr-secondary)}
.reviews__head h2{color:#fff}
.reviews__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.reviews__single{max-width:640px;margin:0 auto}
.reviews__single .reviewCard{text-align:center}
.reviews__single .reviewCard__stars,.reviews__single .reviewCard__author{justify-content:center}
.reviews__controls{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2rem}
.reviews__ctrl{
  width:40px;height:40px;border-radius:var(--r-full);
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);
  color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.85rem;
}
.reviews__ctrl:hover{background:rgba(255,255,255,.15)}
.reviewCard{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-md);padding:1.5rem;display:flex;flex-direction:column}
.reviewCard__stars{display:flex;gap:.2rem;margin-bottom:.75rem;color:var(--clr-gold);font-size:.85rem}
.reviewCard__text{font-size:1rem;font-style:italic;line-height:1.7;color:rgba(255,255,255,.7);flex:1;margin-bottom:1rem}
.reviewCard__author{display:flex;align-items:center;gap:.65rem}
.reviewCard__avatar{
  width:40px;height:40px;border-radius:var(--r-full);
  background:var(--clr-secondary);display:flex;align-items:center;justify-content:center;
  font-family:var(--font-serif);font-size:1rem;font-weight:600;color:#fff;flex-shrink:0;
}
.reviewCard__name{font-weight:600;font-size:.88rem;color:rgba(255,255,255,.9);display:block}
.reviewCard__loc{font-size:.75rem;color:rgba(255,255,255,.35)}
.carousel-indicators button{background:rgba(255,255,255,.3)!important;width:8px!important;height:8px!important;border-radius:50%!important;border:none!important}
.carousel-indicators button.active{background:var(--clr-accent)!important}


/* ── PROMISE BAR ─────────────────────────────────────────── */
.promiseBar{padding:2rem 0;border-top:1px solid var(--clr-parchment);border-bottom:1px solid var(--clr-parchment)}
.promiseBar__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr));gap:1rem}
.promiseItem{display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center;padding:.75rem .5rem}
.promiseItem__icon{
  width:48px;height:48px;border-radius:var(--r-full);
  background:var(--clr-linen);border:1px solid var(--clr-parchment);
  display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--clr-secondary);
}
.promiseItem__label{font-size:.8rem;font-weight:700;color:var(--clr-bark)}
.promiseItem__sub{font-size:.72rem;color:var(--clr-stone);line-height:1.4}


/* ── CTA BANNER ──────────────────────────────────────────── */
.ctaBanner{padding:3rem 0;background:var(--clr-primary);color:#fff;position:relative}
.ctaBanner__grid{display:grid;grid-template-columns:1fr auto;gap:3rem;align-items:center}
.ctaBanner__eyebrow{color:var(--clr-secondary)}
.ctaBanner__title{font-family:var(--font-serif);font-size:clamp(1.5rem,3vw,2.5rem);font-weight:600;color:#fff;margin-bottom:.75rem}
.ctaBanner__body{font-size:.95rem;color:rgba(255,255,255,.6);max-width:480px;margin-bottom:1rem}
.ctaBanner__checks{list-style:none;padding:0;margin:0 0 .5rem}
.ctaBanner__checks li{font-size:.88rem;color:rgba(255,255,255,.65);display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}
.ctaBanner__checks li i{color:var(--clr-secondary)}
.ctaBanner__aside{display:flex;flex-direction:column;align-items:center;gap:1rem;flex-shrink:0}
.ctaBanner__note{font-size:.75rem;color:rgba(255,255,255,.3);font-style:italic;text-align:center}


/* ── BRAND STORY ─────────────────────────────────────────── */
.brandStory{padding:3rem 0}
.brandStory__grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.brandStory__imgs{position:relative}
.brandStory__img-main{border-radius:var(--r-md);overflow:hidden;aspect-ratio:4/5}
.brandStory__img-main img{width:100%;height:100%;object-fit:cover}
.brandStory__img-accent{position:absolute;bottom:-1rem;right:-1rem;width:50%;aspect-ratio:1;border-radius:var(--r-md);overflow:hidden;border:4px solid var(--clr-cream)}
.brandStory__img-accent img{width:100%;height:100%;object-fit:cover}
.brandStory__img-placeholder{width:100%;height:100%;background:var(--clr-linen);display:flex;align-items:center;justify-content:center;color:var(--clr-secondary);font-size:2.5rem}
.brandStory__copy{font-size:1rem;line-height:1.8;color:var(--clr-earth);margin-bottom:1.5rem}
.brandStory__blockquote{border-left:3px solid var(--clr-secondary);padding:1rem 1.5rem;background:var(--clr-linen);border-radius:0 var(--r-md) var(--r-md) 0;margin:1.5rem 0}
.brandStory__blockquote p{font-family:var(--font-serif);font-size:1.2rem;font-style:italic;color:var(--clr-primary);margin:0;line-height:1.5}


/* ── PAGE HEADERS ────────────────────────────────────────── */
.pageHeader{padding:3rem 0 2.5rem;background:var(--clr-primary);position:relative;overflow:hidden}
.pageHeader::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:40px;background:var(--clr-cream);clip-path:ellipse(55% 100% at 50% 100%)}
.pageHeader__inner{position:relative;z-index:1}
.pageHeader__eyebrow{color:var(--clr-secondary);margin-bottom:.5rem}
.pageHeader__title{font-family:var(--font-serif);font-size:clamp(1.8rem,4vw,3rem);font-weight:600;color:#fff;margin:0 0 .5rem}
.pageHeader__sub{color:rgba(255,255,255,.6);font-size:1rem;margin:0}

.page-header{padding:2.5rem 0 2rem;background:var(--clr-primary);position:relative;text-align:center;overflow:hidden}
.page-header::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:40px;background:var(--clr-cream);clip-path:ellipse(55% 100% at 50% 100%)}
.page-header h1{font-family:var(--font-serif);font-size:clamp(1.5rem,3.5vw,2.5rem);font-weight:600;color:#fff;margin-bottom:.4rem}
.page-header .breadcrumb{position:relative;z-index:1}
.page-header .breadcrumb-item a{color:rgba(255,255,255,.5)}
.page-header .breadcrumb-item a:hover{color:#fff}
.page-header .breadcrumb-item.active{color:rgba(255,255,255,.8)}
.page-header .breadcrumb-item+.breadcrumb-item::before{color:rgba(255,255,255,.3)}

.page-header-compact{padding:1.75rem 0 1.5rem;background:var(--clr-primary);position:relative;overflow:hidden}
.page-header-compact::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:30px;background:var(--clr-cream);clip-path:ellipse(55% 100% at 50% 100%)}
.page-header-compact h1{font-family:var(--font-serif);font-size:clamp(1.2rem,2.5vw,1.8rem);color:#fff;margin:0}
.page-header-compact .breadcrumb-item a{color:rgba(255,255,255,.5)}
.page-header-compact .breadcrumb-item.active{color:rgba(255,255,255,.8)}
.page-header-compact .breadcrumb-item+.breadcrumb-item::before{color:rgba(255,255,255,.3)}


/* ── FOOTER CTA (newsletter) ────────────────────────────── */
.footerCta{background:var(--clr-primary)}
.footerCta__inner{display:flex;align-items:center;justify-content:space-between;padding:2rem 0;gap:2rem;flex-wrap:wrap}
.footerCta__text{display:flex;align-items:flex-start;gap:1rem}
.footerCta__ico{font-size:1.4rem;color:var(--clr-secondary);flex-shrink:0;margin-top:.1rem}
.footerCta__title{font-family:var(--font-serif);font-size:1.4rem;color:#fff;margin:0 0 .25rem}
.footerCta__sub{color:rgba(255,255,255,.5);font-size:.85rem;margin:0;line-height:1.6;max-width:360px}
.footerCta__form{
  display:flex;align-items:center;gap:0;flex-shrink:0;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);
  border-radius:var(--r-md);padding:.2rem;
}
.footerCta__form:focus-within{border-color:var(--clr-accent)}
.footerCta__form input{border:none;outline:none;background:none;color:#fff;font-size:.85rem;padding:.5rem 1rem;min-width:200px}
.footerCta__form input::placeholder{color:rgba(255,255,255,.35)}
.footerCta__form button{
  width:38px;height:38px;border-radius:var(--r-md);border:none;
  background:var(--clr-accent);color:#fff;font-size:.8rem;cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.footerCta__form button:hover{opacity:.85}
.footerCta__feedback{margin:.5rem 0 0;font-size:.875rem;font-weight:600;text-align:center}
.footerCta__feedback--ok{color:#d1fae5}
.footerCta__feedback--err{display:inline-block;background:rgba(239,68,68,.85);color:#fff;padding:.2rem .6rem;border-radius:var(--r-md);font-size:.8rem}


/* ── FOOTER ──────────────────────────────────────────────── */
.siteFooter{background:linear-gradient(135deg,#51bab3 0%,#3a9a94 100%);color:rgba(255,255,255,.5);font-size:.87rem;position:relative}
.siteFooter__edge{position:absolute;top:-1px;left:0;right:0;color:#51bab3;line-height:0}
.siteFooter__edge svg{width:100%;height:30px;display:block}
.siteFooter__body{position:relative;z-index:1;padding:3rem 0 2rem;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2.5rem}
.siteFooter__brand-logo{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;margin-bottom:1rem}
.siteFooter__brand-leaf{font-size:1rem;color:var(--clr-secondary)}
.siteFooter__brand-name{font-family:var(--font-serif);font-size:1.35rem;font-weight:600;color:#fff}
.siteFooter__brand-desc{line-height:1.7;color:rgba(255,255,255,.35);max-width:280px;margin-bottom:1.5rem;font-size:.84rem}
.siteFooter__socials{display:flex;gap:.5rem}
.siteFooter__social{
  width:36px;height:36px;border-radius:var(--r-full);
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.4);font-size:.8rem;text-decoration:none;
}
.siteFooter__social:hover{background:rgba(255,255,255,.15);color:#fff}
.siteFooter__col-head{display:flex;align-items:center;gap:.5rem;font-size:.65rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--clr-secondary);margin-bottom:1rem}
.siteFooter__col-head-line{display:block;width:16px;height:1.5px;background:var(--clr-secondary);border-radius:2px}
.siteFooter__nav{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}
.siteFooter__nav a{display:inline-flex;align-items:center;gap:.4rem;color:rgba(255,255,255,.4);font-size:.84rem;text-decoration:none}
.siteFooter__nav a:hover{color:#fff}
.siteFooter__nav-arrow{font-size:.5rem;color:var(--clr-secondary);opacity:0}
.siteFooter__nav a:hover .siteFooter__nav-arrow{opacity:1}
.siteFooter__contact-row{display:flex;align-items:flex-start;gap:.65rem;margin-bottom:.75rem;font-size:.84rem;color:rgba(255,255,255,.4)}
.siteFooter__contact-ico{
  width:26px;height:26px;border-radius:var(--r-full);flex-shrink:0;
  background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;
}
.siteFooter__contact-ico i{font-size:.6rem;color:var(--clr-secondary)}
.siteFooter__contact-row a{color:rgba(255,255,255,.4);text-decoration:none}
.siteFooter__contact-row a:hover{color:#fff}
.siteFooter__trust{
  position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:2rem;
  padding:1.25rem 0;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);flex-wrap:wrap;
}
.siteFooter__trust-item{display:flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;color:rgba(255,255,255,.3);text-transform:uppercase}
.siteFooter__trust-item i{font-size:.7rem;color:var(--clr-secondary)}
.siteFooter__bottom{position:relative;z-index:1;padding:1.25rem 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}
.siteFooter__copy{font-size:.74rem;color:rgba(255,255,255,.2)}
.siteFooter__legal{display:flex;gap:1.25rem}
.siteFooter__legal a{font-size:.74rem;color:rgba(255,255,255,.2);text-decoration:none}
.siteFooter__legal a:hover{color:rgba(255,255,255,.5)}

/* ── FOOTER SIGNUP / PRO FOOTER ─────────────────────────── */
.footerSignup{background:linear-gradient(180deg,transparent 0,transparent 32%,#0f5f5c 32%,#0b4f4c 100%)}
.footerSignup__panel{border-radius:1rem;background:linear-gradient(135deg,#f7fcfb 0%,#eef8f6 100%);border:1px solid rgba(9,79,76,.12)}
.footerSignup__eyebrow{display:inline-block;margin-bottom:.75rem;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#0f5f5c}
.footerSignup__title{font-family:var(--font-serif);font-size:clamp(1.5rem,2vw,2.15rem);line-height:1.2;color:#123b3a}
.footerSignup__body{max-width:38rem;color:#345a58;line-height:1.7}
.footerSignup__group{box-shadow:0 .75rem 1.5rem rgba(9,79,76,.12)}
.footerSignup__icon{background:#fff;border-color:#b9d5d0;color:#0f5f5c}
.footerSignup__input{min-height:3.5rem;border-color:#b9d5d0}
.footerSignup__input:focus{border-color:#0f5f5c;box-shadow:none}
.footerSignup__button{min-width:9rem;font-weight:600;background:#0f5f5c;border-color:#0f5f5c}
.footerSignup__button:hover,.footerSignup__button:focus{background:#0b4f4c;border-color:#0b4f4c}
.footerSignup__meta{display:flex;flex-wrap:wrap;gap:.75rem 1rem;color:#426866;font-size:.9rem}
.footerSignup__meta span{display:inline-flex;align-items:center;gap:.45rem}
.footerSignup__meta i{color:#0f5f5c}
.footerStudioCta__feedback{padding:.75rem .85rem;border-radius:.75rem;font-size:.85rem;font-weight:600}
.footerStudioCta__feedback--ok{background:#e8f7ef;border:1px solid #b7e2c6;color:#1f6a3d}
.footerStudioCta__feedback--err{background:#fff1f2;border:1px solid #f3b7bf;color:#9f2942}
.footerStudioCta__hp{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.siteFooter.siteFooter--pro{background:linear-gradient(180deg,#0f5f5c 0%,#0b4f4c 100%);color:#dcefed;border-top:1px solid rgba(255,255,255,.08)}
.siteFooter__brandBlock{padding-right:1rem}
.siteFooter__brandLink{display:inline-flex;align-items:flex-start;gap:1rem;color:#fff}
.siteFooter__brandIcon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:.75rem;background:rgba(255,255,255,.12);color:#fff;flex-shrink:0}
.siteFooter__brandName,.siteFooter__brandTag{display:block}
.siteFooter__brandName{font-family:var(--font-serif);font-size:1.4rem;line-height:1.2}
.siteFooter__brandTag{margin-top:.35rem;color:#b7d8d4;font-size:.92rem}
.siteFooter__lead{margin-top:1.25rem;max-width:30rem;line-height:1.75;color:#cce3e0}
.siteFooter__trustItem{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .75rem;border:1px solid rgba(255,255,255,.16);border-radius:999px;font-size:.82rem;color:#f4fbfa;background:rgba(255,255,255,.06)}
.siteFooter__socialLink{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid rgba(255,255,255,.16);color:#f4fbfa;text-decoration:none;transition:background-color .2s ease,border-color .2s ease,color .2s ease}
.siteFooter__socialLink:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:#fff}
.siteFooter__heading{margin:0 0 1rem;font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#9fd1ca}
.siteFooter__list{display:grid;gap:.75rem}
.siteFooter__list a,.siteFooter__bottomLinks a,.siteFooter__contactLink,.siteFooter__categoryPill{color:#eef9f7;text-decoration:none}
.siteFooter__list a{line-height:1.5}
.siteFooter__list a:hover,.siteFooter__bottomLinks a:hover,.siteFooter__contactLink:hover,.siteFooter__categoryPill:hover{color:#fff}
.siteFooter__contactItem{padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.12)}
.siteFooter__contactItem:last-child{padding-bottom:0;border-bottom:0}
.siteFooter__contactLabel{display:block;margin-bottom:.3rem;color:#9fd1ca;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.siteFooter__contactValue{line-height:1.7;color:#eef9f7}
.siteFooter__categories,.siteFooter__bottom{border-top:1px solid rgba(255,255,255,.12)}
.siteFooter__categoryPill{display:inline-flex;align-items:center;min-height:2.25rem;padding:0 .85rem;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);font-size:.85rem}
.siteFooter__copyright{color:#b7d8d4;font-size:.88rem}
.siteFooter__bottomLinks a{color:#d7ebe8;font-size:.88rem}


/* ── FORM FIELD ERRORS ───────────────────────────────────── */
.error-message{
  display:none;font-size:.78rem;color:#dc2626;font-weight:500;
  margin-top:.3rem;padding-left:.15rem;
}
.form-control.error,
.form-select.error{
  border-color:#dc2626;
  box-shadow:0 0 0 3px rgba(220,38,38,.12);
}
.form-control.error:focus,
.form-select.error:focus{
  border-color:#dc2626;
  box-shadow:0 0 0 3px rgba(220,38,38,.18);
}


/* ── AUTH & ACCOUNT ──────────────────────────────────────── */
.authCard{max-width:460px;margin:3rem auto;background:#fff;border-radius:var(--r-lg);padding:2rem;box-shadow:var(--shadow-md);border:1px solid var(--clr-parchment)}
.authCard__title{font-family:var(--font-serif);font-size:1.8rem;color:var(--clr-primary);margin-bottom:.5rem}
.account-sidebar .list-group-item{border-color:var(--clr-parchment);padding:.7rem 1rem;font-size:.88rem}
.account-sidebar .list-group-item:hover{background:var(--clr-linen);color:var(--clr-primary)}
.account-sidebar .list-group-item.active{background:var(--clr-primary);border-color:var(--clr-primary);color:#fff}


/* ── SHOP ────────────────────────────────────────────────── */
.catCard{background:#fff;border:1px solid var(--clr-parchment);border-radius:var(--r-md);overflow:hidden;display:block;text-decoration:none}
.catCard:hover{box-shadow:var(--shadow-md)}
.catCard__img{aspect-ratio:1/1;overflow:hidden;background:var(--clr-linen)}
.catCard__img img{width:100%;height:100%;object-fit:cover}
.catCard__img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--clr-secondary)}
.catCard__body{padding:1rem}
.catCard__name{font-family:var(--font-serif);font-weight:600;font-size:1.1rem;color:var(--clr-primary);margin-bottom:.25rem}
.catCard__desc{font-size:.82rem;color:var(--clr-stone);margin-bottom:.5rem}
.catCard__link{font-size:.78rem;font-weight:600;color:var(--clr-secondary);display:flex;align-items:center;gap:.35rem}

/* Category hero */
.cat-hero{position:relative;background:var(--clr-primary);overflow:hidden;padding:2.5rem 0 2rem}
.cat-hero::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:40px;background:var(--clr-cream);clip-path:ellipse(55% 100% at 50% 100%)}
.cat-hero .breadcrumb-item a{color:rgba(255,255,255,.5)}
.cat-hero .breadcrumb-item a:hover{color:#fff}
.cat-hero .breadcrumb-item.active{color:rgba(255,255,255,.85)}
.cat-hero .breadcrumb-item+.breadcrumb-item::before{color:rgba(255,255,255,.3)}
.cat-hero-icon{width:44px;height:44px;background:var(--clr-secondary);border-radius:var(--r-md);display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;color:#fff;flex-shrink:0}
.cat-hero-title{font-family:var(--font-serif);font-size:clamp(1.4rem,3vw,2rem);font-weight:600;color:#fff;margin:0;line-height:1.1}
.cat-hero-desc{color:rgba(255,255,255,.55);font-size:.9rem;line-height:1.6}
.cat-hero-stat{display:inline-flex;align-items:center;gap:.3rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.7);font-size:.78rem;font-weight:600;padding:.25rem .6rem;border-radius:var(--r-md)}

/* Filter / sort */
.filter-bar{background:#fff;border-bottom:1px solid var(--clr-parchment);padding:.5rem 0}
.sort-label{font-size:.78rem;font-weight:700;text-transform:uppercase;color:var(--clr-stone);white-space:nowrap}
.sort-btn{display:inline-flex;align-items:center;gap:.25rem;font-size:.78rem;font-weight:600;padding:.35rem .75rem;border-radius:var(--r-md);border:1px solid var(--clr-parchment);background:#fff;color:var(--clr-bark);text-decoration:none;white-space:nowrap}
.sort-btn:hover{border-color:var(--clr-accent);color:var(--clr-primary)}
.sort-btn.active{background:var(--clr-primary);border-color:var(--clr-primary);color:#fff}

/* Category sidebar */
.cat-sidebar-card{border:1px solid var(--clr-parchment);border-radius:var(--r-md);overflow:hidden;background:#fff}
.cat-sidebar-header{background:var(--clr-primary);color:#fff;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.7rem 1rem;display:flex;align-items:center;gap:.4rem}
.cat-sidebar-item{display:flex;align-items:center;justify-content:space-between;padding:.55rem 1rem;font-size:.85rem;color:var(--clr-bark);text-decoration:none;border-bottom:1px solid var(--clr-parchment)}
.cat-sidebar-item:last-child{border-bottom:none}
.cat-sidebar-item:hover{background:var(--clr-linen);color:var(--clr-primary)}
.cat-sidebar-item.active{background:rgba(0,0,0,.03);font-weight:700;border-left:3px solid var(--clr-primary)}

/* Product grid */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.25rem}
@media(min-width:1400px){.product-grid{grid-template-columns:repeat(3,1fr)}}


/* ── CONTACT ─────────────────────────────────────────────── */
.contact-section{padding:3rem 0}
.contact-info-card{background:var(--clr-primary);border-radius:var(--r-lg);padding:2rem;height:100%;color:#fff}
.contact-info-card h3{font-family:var(--font-serif);font-size:1.3rem;color:#fff}
.contact-info-item{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1.25rem}
.contact-info-item i{
  width:36px;height:36px;border-radius:var(--r-full);background:rgba(255,255,255,.1);
  display:flex;align-items:center;justify-content:center;font-size:.8rem;flex-shrink:0;
}
.contact-info-item h5{font-size:.8rem;font-weight:700;text-transform:uppercase;margin-bottom:.2rem}
.contact-info-item p{font-size:.88rem;margin:0;opacity:.75}
.contact-info-item a{color:rgba(255,255,255,.8);text-decoration:none}
.contact-info-item a:hover{color:#fff}
.contact-form-card{background:#fff;border:1px solid var(--clr-parchment);border-radius:var(--r-lg);padding:2rem;box-shadow:var(--shadow-sm)}


/* ── SEARCH ──────────────────────────────────────────────── */
.search-header{padding:2rem 0 1.75rem;background:var(--clr-primary);position:relative;overflow:hidden}
.search-header::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:30px;background:var(--clr-cream);clip-path:ellipse(55% 100% at 50% 100%)}
.search-header h1{font-family:var(--font-serif);color:#fff}
.search-header .breadcrumb-item a{color:rgba(255,255,255,.5)}
.search-header .breadcrumb-item.active{color:rgba(255,255,255,.8)}
.search-header .breadcrumb-item+.breadcrumb-item::before{color:rgba(255,255,255,.3)}


/* ── PRODUCT DETAIL ──────────────────────────────────────── */
.pd-gallery-wrap{position:sticky;top:6rem}
.pd-main-frame{position:relative;aspect-ratio:1/1;background:var(--clr-linen);border-radius:var(--r-md);overflow:hidden;border:1px solid var(--clr-parchment)}
.pd-zoom-btn{
  position:absolute;bottom:.6rem;right:.6rem;width:34px;height:34px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.5);color:#fff;font-size:.8rem;border-radius:var(--r-sm);
  opacity:0;z-index:3;text-decoration:none;
}
.pd-main-frame:hover .pd-zoom-btn{opacity:1}
.pd-main-frame img{width:100%;height:100%;object-fit:contain;display:block}
.pd-thumbs{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem}
.pd-thumb{width:72px;height:72px;border-radius:var(--r-md);overflow:hidden;border:2px solid var(--clr-parchment);background:var(--clr-linen);cursor:pointer;padding:0;flex-shrink:0}
.pd-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pd-thumb:hover,.pd-thumb.active{border-color:var(--clr-accent)}
.pd-price-current{font-size:1.75rem;font-weight:700;color:var(--clr-bark)}
.pd-price-was{font-size:1rem;color:var(--clr-mist);text-decoration:line-through}
.pd-save-badge{display:inline-flex;align-items:center;background:var(--clr-terracotta);color:#fff;font-size:.75rem;font-weight:700;padding:.2rem .5rem;border-radius:var(--r-sm)}
.pd-stock-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.83rem;font-weight:600;padding:.35rem .75rem;border-radius:var(--r-md)}
.pd-stock-badge.in-stock{background:rgba(25,135,84,.1);color:#198754}
.pd-stock-badge.low-stock{background:rgba(255,193,7,.15);color:#997404}
.pd-stock-badge.out-of-stock{background:rgba(220,53,69,.08);color:#dc3545}
.pd-qty-wrap{display:flex;align-items:stretch;width:120px;flex-shrink:0;border:1px solid var(--clr-parchment);border-radius:var(--r-md);overflow:hidden}
.pd-qty-wrap button{width:36px;background:var(--clr-linen);border:none;color:var(--clr-bark);cursor:pointer;font-size:.75rem;flex-shrink:0}
.pd-qty-wrap button:hover{background:var(--clr-parchment)}
.pd-qty-wrap input{
  flex:1;border:none;border-left:1px solid var(--clr-parchment);border-right:1px solid var(--clr-parchment);
  text-align:center;font-weight:700;font-size:.95rem;min-width:0;background:#fff;color:var(--clr-bark);
  -moz-appearance:textfield;
}
.pd-qty-wrap input::-webkit-inner-spin-button,.pd-qty-wrap input::-webkit-outer-spin-button{-webkit-appearance:none}
.pd-qty-wrap input:focus{outline:none}
.btn-pd-cart{font-size:1rem;font-weight:700;padding:.65rem 1.5rem;border-radius:var(--r-md)}
.pd-trust-bar{display:flex;flex-wrap:wrap;gap:.6rem 1.25rem;padding:.75rem 1rem;background:var(--clr-linen);border:1px solid var(--clr-parchment);border-radius:var(--r-md)}
.pd-trust-item{display:flex;align-items:center;gap:.35rem;font-size:.8rem;font-weight:500;color:var(--clr-bark)}
.pd-trust-item .ti{width:1.25rem;text-align:center;color:var(--clr-secondary);font-size:.9rem}
.pd-tab-nav{border-bottom:2px solid var(--clr-parchment);gap:0;margin-bottom:1.5rem}
.pd-tab-nav .nav-link{font-weight:600;font-size:.88rem;color:var(--clr-stone);padding:.5rem 1rem;border:none;border-bottom:3px solid transparent;border-radius:0;margin-bottom:-2px;background:none}
.pd-tab-nav .nav-link:hover{color:var(--clr-bark)}
.pd-tab-nav .nav-link.active{color:var(--clr-primary);border-bottom-color:var(--clr-primary)}
.pd-description{line-height:1.8;color:var(--clr-earth);font-size:.95rem;overflow-wrap:break-word;word-break:break-word;overflow:hidden;max-width:100%}
.pd-description img{max-width:100%;height:auto}
.pd-description *{max-width:100%}
.pd-mobile-cta{
  display:none;position:fixed;bottom:0;left:0;right:0;
  background:rgba(255,255,255,.95);border-top:1px solid var(--clr-parchment);
  padding:.6rem 1rem;z-index:1040;gap:.5rem;align-items:center;
}
@media(max-width:767px){
  .pd-mobile-cta{display:flex}
  main.pd-main{padding-bottom:5rem}
  .pd-gallery-wrap{position:static}
}


/* ── SCROLL-TO-TOP ───────────────────────────────────────── */
#scrollToTop{
  position:fixed;bottom:2rem;right:2rem;
  width:42px;height:42px;border-radius:var(--r-full);
  background:var(--clr-primary);color:#fff;border:none;
  display:flex;align-items:center;justify-content:center;font-size:.85rem;cursor:pointer;
  opacity:0;visibility:hidden;z-index:900;
}
#scrollToTop.visible{opacity:1;visibility:visible}
#scrollToTop:hover{opacity:.85}


/* ── COOKIE BANNER ───────────────────────────────────────── */
.cookieBanner{
  position:fixed;bottom:0;left:0;right:0;z-index:1050;
  background:rgba(33,37,41,.96);padding:1rem 0;
  border-top:2px solid var(--clr-accent);
}
.cookieBanner__text{color:rgba(255,255,255,.65);font-size:.84rem}
.cookieBanner__text a{color:var(--clr-accent)}
.cookieBanner--footer{
  bottom:.75rem;left:.75rem;right:.75rem;border-top:1px solid rgba(255,255,255,.2);
  border-radius:16px;background:rgba(18,83,79,.96);box-shadow:0 14px 32px rgba(8,36,35,.25);
  backdrop-filter:blur(8px)
}
.cookieBanner--footer .cookieBanner__text{color:#fff}
.cookieBanner--footer .cookieBanner__text a{color:#fff;text-decoration:underline}


/* ── CMS CONTENT ─────────────────────────────────────────── */
.cmsContent{font-size:1rem;line-height:1.8;color:var(--clr-earth)}
.cmsContent h2,.cmsContent h3{color:var(--clr-primary);margin-top:1.5rem}
.cmsContent a{color:var(--clr-accent);text-decoration:underline}
.cmsContent blockquote{border-left:3px solid var(--clr-secondary);padding:.75rem 1.25rem;background:var(--clr-linen);border-radius:0 var(--r-md) var(--r-md) 0;font-style:italic}


/* ── MISC ────────────────────────────────────────────────── */
.aosUp{opacity:0;transform:translateY(20px);transition:opacity .5s ease-out,transform .5s ease-out}
.aosUp.visible{opacity:1;transform:none}

.error-container{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 1.5rem}
.error-container h1{font-family:var(--font-serif);font-size:clamp(2rem,5vw,3.5rem);color:var(--clr-primary)}
.error-container p{color:var(--clr-stone);font-size:1rem;max-width:400px;margin:1rem auto 2rem}
.error-container a{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.5rem;background:var(--clr-primary);color:#fff;font-size:.85rem;font-weight:600;border-radius:var(--r-md);text-decoration:none}
.error-container a:hover{opacity:.85;color:#fff}


/* ── RESPONSIVE ──────────────────────────────────────────── */
@media(max-width:991px){
  .siteNav__links,.siteNav__cta{display:none}
  .siteNav__hamburger{display:flex}
  .siteNav__action-label{display:none}
  .siteNav__action-btn--signin{width:40px;padding:0}

  .topBar__centre{display:none}
  .topBar__left{display:none}

  .catGrid__layout{grid-template-columns:1fr;grid-template-rows:auto}
  .catGrid__layout>*:first-child{grid-row:span 1}

  .featProds__grid{grid-template-columns:repeat(2,1fr)}
  .reviews__grid{grid-template-columns:1fr}

  .ctaBanner__grid{grid-template-columns:1fr;text-align:center}
  .ctaBanner__aside{align-items:center}
  .ctaBanner__body{margin-left:auto;margin-right:auto}

  .brandStory__grid{grid-template-columns:1fr;gap:2rem}

  .siteFooter__body{grid-template-columns:1fr 1fr;gap:2rem}
  .footerCta__inner{flex-direction:column;text-align:center}
  .footerCta__text{flex-direction:column;align-items:center}
  .footerCta__form input{min-width:180px}
  .footerSignup__button{width:100%}
  .footerSignup__group{display:grid;grid-template-columns:1fr;gap:.75rem;box-shadow:none}
  .footerSignup__icon{display:none}
  .footerSignup__input,.footerSignup__button{border-radius:.75rem!important}

  body{padding-top:80px}
  .siteNav{top:0}
  .topBar{display:none}
}

@media(max-width:575px){
  .featProds__grid{grid-template-columns:1fr}
  .siteFooter__body{grid-template-columns:1fr}
  body{padding-top:70px}
  .siteNav__wrap{height:70px}
}

@media(min-width:768px){
  .cookieBanner--footer{bottom:1rem;left:1rem;right:1rem}
}

@media(min-width:992px){
  .siteFooter__brandBlock{padding-right:2rem}
}
