/*
Theme Name: Halite Atelier
Theme URI: https://example.com/halite-atelier
Author: Your Studio
Author URI: https://example.com
Description: A luxury WooCommerce theme for mineral, wellness and home-decor brands. Built from a Google Stitch UI concept ("Halite Mineral Atelier"), fully customizable from the WordPress Customizer, with a cinematic Play-Video-on-Scroll feature in the hero and other sections. Vanilla PHP/CSS/JS — no build step required.
Version: 1.1.0
Requires at least: 6.3
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: halite-atelier
Domain Path: /languages
Tags: e-commerce, custom-background, custom-logo, custom-menu, featured-images, full-width-template, translation-ready, theme-options
*/

/* =========================================================
   0. DESIGN TOKENS
   Mirrors the Stitch "Artisanal Mineral Atelier" design system.
   Every value here can be overridden live from the Customizer —
   see inc/customizer.php, which prints an inline :root override
   in wp_head() for the fields marked "Theme Colors".
   ========================================================= */
:root{
  /* --- colour tokens --- */
  --color-surface:#fff8f5;
  --color-surface-dim:#e1d8d5;
  --color-surface-bright:#fff8f5;
  --color-surface-container-lowest:#ffffff;
  --color-surface-container-low:#fbf2ee;
  --color-surface-container:#f5ece8;
  --color-surface-container-high:#efe6e3;
  --color-surface-container-highest:#eae1dd;
  --color-on-surface:#1f1b19;
  --color-on-surface-variant:#524440;
  --color-inverse-surface:#342f2d;
  --color-inverse-on-surface:#f8efeb;
  --color-outline:#84736f;
  --color-outline-variant:#d6c2bd;
  --color-primary:#835244;
  --color-on-primary:#ffffff;
  --color-primary-container:#c88d7d;
  --color-on-primary-container:#50281c;
  --color-primary-fixed:#ffdbd1;
  --color-on-primary-fixed-variant:#683b2e;
  --color-secondary:#865043;
  --color-on-secondary:#ffffff;
  --color-secondary-container:#ffb8a7;
  --color-tertiary:#6c5a56;
  --color-background:#fff8f5;
  --color-error:#ba1a1a;

  /* --- type --- */
  --font-serif:"Playfair Display", Georgia, "Times New Roman", serif;
  --font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* --- radii (see DESIGN.md "Shapes") --- */
  --radius-sm:0.125rem;
  --radius:0.25rem;      /* buttons, inputs, badges */
  --radius-md:0.375rem;
  --radius-lg:0.5rem;    /* cards */
  --radius-xl:0.75rem;   /* floating panels / toasts */
  --radius-2xl:1rem;     /* large media frames */
  --radius-full:9999px;  /* pills, circular icon actions */

  /* --- spacing --- */
  --gutter:1.5rem;
  --gutter-desktop:2.5rem;
  --margin:1.25rem;
  --margin-tablet:2.5rem;
  --margin-desktop:5rem;
  --space-xs:0.25rem;
  --space-sm:0.5rem;
  --space-md:1rem;
  --space-lg:2rem;
  --space-xl:3.5rem;

  /* --- elevation (tinted, never pure black — see DESIGN.md "Elevation") --- */
  --shadow-resting:0 2px 12px -2px rgba(158,100,86,.05);
  --shadow-hover:0 16px 32px -6px rgba(158,100,86,.12), 0 4px 12px -2px rgba(200,141,125,.08);
  --shadow-flyout:0 24px 48px -12px rgba(38,34,32,.10);
  --shadow-header:0 2px 12px -2px rgba(158,100,86,.06);

  --ease:cubic-bezier(.4,0,.2,1);
  --content-max:1440px;
}

/* =========================================================
   1. RESET
   ========================================================= */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
}
body{
  margin:0;
  background:var(--color-background);
  color:var(--color-on-surface);
  font-family:var(--font-sans);
  font-size:15px;
  line-height:24px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto;}
video{max-width:100%;display:block;}
ul{list-style:none;margin:0;padding:0;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
input,textarea,select{font:inherit;color:inherit;}
h1,h2,h3,h4,h5,h6,p,blockquote,figure{margin:0;}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}
.screen-reader-text:focus{position:fixed;top:1rem;left:1rem;width:auto;height:auto;clip:auto;z-index:100000;background:var(--color-surface);padding:.75rem 1.25rem;border-radius:var(--radius);box-shadow:var(--shadow-flyout);}

/* =========================================================
   2. LAYOUT HELPERS
   ========================================================= */
.container{
  max-width:var(--content-max);
  margin-inline:auto;
  padding-inline:var(--margin);
}
@media (min-width:768px){.container{padding-inline:var(--margin-tablet);}}
@media (min-width:1280px){.container{padding-inline:var(--margin-desktop);}}

.section{padding-block:var(--space-xl);}
.bg-surface{background:var(--color-surface);}
.bg-low{background:var(--color-surface-container-low);}
.bg-container{background:var(--color-surface-container);}
.bg-high{background:var(--color-surface-container-high);}

/* =========================================================
   3. TYPOGRAPHY
   ========================================================= */
.eyebrow{
  font-family:var(--font-sans);
  font-size:11px;line-height:16px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--color-primary);
}
.headline-hero{
  font-family:var(--font-serif);
  font-weight:400;
  font-size:38px;line-height:46px;letter-spacing:-0.01em;
}
@media (min-width:1024px){
  .headline-hero{font-size:64px;line-height:72px;letter-spacing:-0.02em;}
}
.headline-lg{
  font-family:var(--font-serif);font-weight:400;
  font-size:30px;line-height:38px;
}
@media (min-width:1024px){.headline-lg{font-size:44px;line-height:52px;letter-spacing:-0.01em;}}
.headline-md{font-family:var(--font-serif);font-weight:500;font-size:26px;line-height:34px;}
@media (min-width:1024px){.headline-md{font-size:32px;line-height:40px;}}
.headline-sm{font-family:var(--font-serif);font-weight:500;font-size:22px;line-height:30px;}
@media (min-width:1024px){.headline-sm{font-size:24px;line-height:32px;}}
.editorial-subhead{font-family:var(--font-serif);font-weight:400;font-style:italic;font-size:19px;line-height:27px;letter-spacing:.01em;}
@media (min-width:1024px){.editorial-subhead{font-size:20px;line-height:28px;}}
.body-lg{font-family:var(--font-sans);font-weight:300;font-size:17px;line-height:26px;letter-spacing:-0.01em;}
@media (min-width:1024px){.body-lg{font-size:18px;line-height:28px;}}
.body-md{font-family:var(--font-sans);font-weight:400;font-size:15px;line-height:24px;}
.body-sm{font-family:var(--font-sans);font-weight:400;font-size:13px;line-height:20px;letter-spacing:.01em;}
.label-caps{font-family:var(--font-sans);font-weight:600;font-size:11px;line-height:16px;letter-spacing:.12em;text-transform:uppercase;}
.label-md{font-family:var(--font-sans);font-weight:500;font-size:14px;line-height:20px;letter-spacing:.02em;}
.price-display{font-family:var(--font-sans);font-weight:600;font-size:18px;line-height:24px;letter-spacing:.02em;}
.text-muted{color:var(--color-on-surface-variant);}
.text-primary{color:var(--color-primary);}

/* =========================================================
   4. BUTTONS
   ========================================================= */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.9rem 1.75rem;border-radius:var(--radius);
  font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  transition:background-color .3s var(--ease),color .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease);
  border:1px solid transparent;white-space:nowrap;
}
.btn svg{width:16px;height:16px;transition:transform .3s var(--ease);}
.btn--primary{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary);}
.btn--primary:hover{background:var(--color-secondary);border-color:var(--color-secondary);box-shadow:0 8px 24px -4px rgba(131,82,68,.35);transform:translateY(-2px);}
.btn--ghost-light{background:rgba(255,248,245,.6);backdrop-filter:blur(6px);color:var(--color-on-surface);}
.btn--ghost-light:hover{background:var(--color-surface);color:var(--color-primary);}
.btn--ghost-light:hover svg{transform:translate(3px,-3px);}
.btn--outline{background:transparent;color:var(--color-on-surface);border-color:var(--color-on-surface);}
.btn--outline:hover{background:var(--color-surface-container);border-color:var(--color-primary);color:var(--color-primary);}
.btn--block{width:100%;}
.btn-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:2.75rem;height:2.75rem;border-radius:var(--radius-full);
  background:var(--color-primary);color:var(--color-on-primary);
  transition:background-color .25s var(--ease);
}
.btn-icon:hover{background:var(--color-secondary);}
.link-caps{
  display:inline-flex;align-items:center;gap:.3rem;
  font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--color-primary);
}
.link-caps svg{width:15px;height:15px;transition:transform .25s var(--ease);}
.link-caps:hover{color:var(--color-secondary);}
.link-caps:hover svg{transform:translateX(3px);}

/* =========================================================
   5. SITE HEADER
   ========================================================= */
.site-header{
  position:fixed;inset-block-start:0;inset-inline:0;z-index:60;
  background:rgba(255,248,245,.9);backdrop-filter:blur(10px);
  box-shadow:var(--shadow-header);
}
.site-header__inner{
  max-width:var(--content-max);margin-inline:auto;
  padding-inline:var(--margin);
  height:80px;display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
@media (min-width:768px){.site-header__inner{padding-inline:var(--margin-tablet);}}
@media (min-width:1280px){.site-header__inner{padding-inline:var(--margin-desktop);}}
.site-branding{display:flex;align-items:center;gap:.75rem;}
.site-branding img{height:32px;width:auto;object-fit:contain;}
.site-branding__text{
  font-family:var(--font-serif);font-size:22px;letter-spacing:.04em;
  color:var(--color-on-surface);
}
.site-branding:hover .site-branding__text{color:var(--color-primary);}

.main-navigation{display:none;}
@media (min-width:1220px){
  .main-navigation{display:flex;align-items:center;gap:2rem;}
  .main-navigation ul{display:flex;align-items:center;gap:2rem;}
  .main-navigation a{
    font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
    color:var(--color-on-surface-variant);padding-block:.25rem;border-bottom:1px solid transparent;
    transition:color .2s var(--ease),border-color .2s var(--ease);
  }
  .main-navigation a:hover,
  .main-navigation .current-menu-item>a{color:var(--color-on-surface);}
  .main-navigation .current-menu-item>a{color:var(--color-primary);border-color:var(--color-primary);}
}
.header-actions{display:flex;align-items:center;gap:1.1rem;}
.header-actions__btn{
  color:var(--color-on-surface-variant);display:inline-flex;align-items:center;justify-content:center;
  padding:.25rem;transition:color .2s var(--ease);
}
.header-actions__btn:hover{color:var(--color-primary);}
.header-actions__btn svg{width:20px;height:20px;}
.header-actions__currency{
  display:none;font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--color-on-surface-variant);
}
@media (min-width:640px){.header-actions__currency{display:inline-flex;}}
.header-actions__account{
  display:none;font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--color-on-surface-variant);transition:color .2s var(--ease);
}
@media (min-width:640px){.header-actions__account{display:inline-flex;}}
.header-actions__account:hover{color:var(--color-on-surface);}
.header-actions__cart{
  position:relative;display:inline-flex;align-items:center;gap:.35rem;
  font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--color-on-surface-variant);transition:color .2s var(--ease);
}
.header-actions__cart:hover{color:var(--color-primary);}
.header-actions__avatar{
  width:2rem;height:2rem;border-radius:50%;background:var(--color-primary);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-on-primary);
}
.header-actions__avatar svg{width:16px;height:16px;}
.header-search{display:none;position:absolute;inset-inline:0;top:100%;padding:1rem var(--margin);background:var(--color-surface);box-shadow:var(--shadow-header);}
.header-search.is-open{display:block;}
.header-search form{display:flex;gap:.5rem;max-width:var(--content-max);margin-inline:auto;}
.header-search input[type="search"]{
  flex:1;border:1px solid var(--color-outline-variant);border-radius:var(--radius);
  padding:.75rem 1rem;background:var(--color-surface-container-lowest);
}

/* mobile nav toggle */
.menu-toggle{display:inline-flex;color:var(--color-on-surface);}
@media (min-width:1220px){.menu-toggle{display:none;}}
.menu-toggle svg{width:24px;height:24px;}
.mobile-nav{
  position:fixed;inset:0;z-index:80;background:var(--color-surface);
  transform:translateX(100%);transition:transform .35s var(--ease);
  display:flex;flex-direction:column;padding:1.5rem var(--margin) 2.5rem;overflow-y:auto;
}
.mobile-nav.is-open{transform:translateX(0);}
.mobile-nav__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;}
.mobile-nav ul{display:flex;flex-direction:column;}
.mobile-nav a{
  font-family:var(--font-serif);font-size:24px;padding-block:.85rem;
  border-bottom:1px solid var(--color-outline-variant);color:var(--color-on-surface);
}
.mobile-nav__footer{margin-top:auto;padding-top:2rem;display:flex;flex-direction:column;gap:1rem;}
body.mobile-nav-open{overflow:hidden;}

/* =========================================================
   6. SCROLL-VIDEO COMPONENT (Play Video on Scroll)
   Used by the hero, the materiality showcase, and the
   endorsement banner. Markup lives in template-parts/*.
   ========================================================= */
.scroll-video{position:absolute;inset:0;z-index:0;overflow:hidden;}
.scroll-video__media,
.scroll-video__poster{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
}
.scroll-video__media{
  opacity:0;transition:opacity .8s var(--ease);
}
.scroll-video.is-playing .scroll-video__media{opacity:1;}
.scroll-video.is-playing .scroll-video__poster{opacity:0;transition:opacity .8s var(--ease) .1s;}
.scroll-video__toggle{
  position:absolute;z-index:5;bottom:1.25rem;right:1.25rem;
  width:2.5rem;height:2.5rem;border-radius:var(--radius-full);
  background:rgba(255,248,245,.85);backdrop-filter:blur(6px);
  display:none;align-items:center;justify-content:center;color:var(--color-on-surface);
  box-shadow:var(--shadow-resting);
}
.scroll-video__toggle svg{width:16px;height:16px;}
.has-video .scroll-video__toggle{display:inline-flex;}
.scroll-video__toggle .icon-pause{display:none;}
.is-playing .scroll-video__toggle .icon-play{display:none;}
.is-playing .scroll-video__toggle .icon-pause{display:inline-flex;}

/* =========================================================
   7. HERO
   ========================================================= */
.hero{
  position:relative;width:100%;min-height:92vh;display:flex;align-items:center;
  overflow:hidden;background:var(--color-surface-container-low);
  margin-top:-80px;padding-top:80px;
}
.hero__gradient{position:absolute;inset:0;z-index:1;pointer-events:none;}
.hero__gradient--side{background:linear-gradient(to right, rgba(225,216,213,.82), rgba(255,248,245,.35) 60%, transparent);}
.hero__gradient--base{background:linear-gradient(to top, var(--color-surface), transparent 45%, rgba(255,248,245,.35));}
.hero__inner{
  position:relative;z-index:2;max-width:var(--content-max);width:100%;margin-inline:auto;
  padding:8rem var(--margin) 5rem;display:flex;flex-direction:column;justify-content:space-between;
  min-height:88vh;
}
@media (min-width:768px){.hero__inner{padding-inline:var(--margin-tablet);}}
@media (min-width:1280px){.hero__inner{padding-inline:var(--margin-desktop);}}
.hero__content{max-width:42rem;margin-top:3rem;}
@media (min-width:768px){.hero__content{margin-top:5rem;}}
.hero__badge{
  display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .9rem;border-radius:var(--radius-full);
  background:rgba(255,248,245,.8);backdrop-filter:blur(6px);margin-bottom:1rem;box-shadow:var(--shadow-resting);
}
.hero__badge-dot{width:6px;height:6px;border-radius:50%;background:var(--color-primary);animation:pulse 2.4s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}
.hero__title{margin-bottom:1rem;}
.hero__subtitle{max-width:36rem;margin-bottom:2.25rem;color:var(--color-on-surface-variant);}
.hero__ctas{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;}
.hero__provenance{padding-top:3rem;}
.hero__provenance-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;
  padding:1rem;border-radius:var(--radius-xl);background:rgba(255,248,245,.8);backdrop-filter:blur(6px);box-shadow:var(--shadow-resting);
}
@media (min-width:768px){.hero__provenance-grid{grid-template-columns:repeat(4,1fr);}}
.hero__provenance-item{display:flex;align-items:center;gap:.75rem;}
.hero__provenance-item svg{width:20px;height:20px;color:var(--color-primary);flex-shrink:0;}
.hero__provenance-item strong{display:block;font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;}
.hero__provenance-item span{display:block;font-size:13px;color:var(--color-on-surface-variant);}

/* =========================================================
   8. MANIFESTO + CATEGORY PILLS
   ========================================================= */
.manifesto__inner{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:56rem;margin-inline:auto;margin-bottom:2.5rem;}
.manifesto__quote{margin-top:1rem;}
.manifesto__rule{width:3rem;height:2px;background:var(--color-primary-container);border-radius:var(--radius-full);margin:1.5rem 0 1rem;}
.manifesto__note{max-width:34rem;color:var(--color-on-surface-variant);}
.category-pills{display:flex;flex-wrap:nowrap;overflow-x:auto;justify-content:center;gap:.75rem;padding-bottom:.5rem;-ms-overflow-style:none;scrollbar-width:none;}
.category-pills::-webkit-scrollbar{display:none;}
.category-pill{
  flex-shrink:0;padding:.65rem 1.25rem;border-radius:var(--radius-full);
  font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  background:var(--color-surface-container);color:var(--color-on-surface-variant);
  transition:background-color .25s var(--ease),color .25s var(--ease);
}
.category-pill:hover{background:var(--color-surface-container-high);color:var(--color-on-surface);}
.category-pill.is-active{background:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-resting);}

/* =========================================================
   9. PRODUCT GRID
   ========================================================= */
.products-section__header{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem;}
@media (min-width:768px){.products-section__header{flex-direction:row;align-items:flex-end;justify-content:space-between;}}
.products-section__note{max-width:24rem;color:var(--color-on-surface-variant);}
.product-grid{display:grid;grid-template-columns:1fr;gap:2rem;}
@media (min-width:640px){.product-grid{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1024px){.product-grid{grid-template-columns:repeat(3,1fr);}}
.product-card{
  background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-resting);transition:box-shadow .5s var(--ease);
  display:flex;flex-direction:column;justify-content:space-between;
}
.product-card:hover{box-shadow:var(--shadow-hover);}
.product-card__media{position:relative;aspect-ratio:4/5;background:var(--color-surface-container);overflow:hidden;}
.product-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);}
.product-card:hover .product-card__media img{transform:scale(1.06);}
.product-card__badges{position:absolute;top:1rem;left:1rem;display:flex;flex-direction:column;gap:.35rem;}
.product-card__badge{
  background:rgba(255,248,245,.9);backdrop-filter:blur(6px);padding:.25rem .75rem;border-radius:var(--radius-full);
  font-family:var(--font-sans);font-weight:600;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-primary);
}
.product-card__actions{
  position:absolute;inset-inline:1rem;bottom:1rem;display:flex;align-items:center;gap:.5rem;
  opacity:1;transform:translateY(0);transition:opacity .3s var(--ease),transform .3s var(--ease);
}
/* Hide-until-hover is a nice-to-have on precise-pointer desktops only —
   on touch devices (tablets, touchscreen laptops) there is no reliable
   hover state, so keep these buttons visible and tappable there. */
@media (hover:hover) and (pointer:fine){
  .product-card__actions{opacity:0;transform:translateY(.5rem);}
  .product-card:hover .product-card__actions,
  .product-card:focus-within .product-card__actions{opacity:1;transform:translateY(0);}
}
.product-card__quickview{
  flex:1;padding:.65rem;text-align:center;background:rgba(255,248,245,.95);backdrop-filter:blur(6px);
  border-radius:var(--radius);box-shadow:var(--shadow-resting);
  font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-on-surface);
}
.product-card__quickview:hover{color:var(--color-primary);}
.product-card__addbtn{
  padding:.65rem .85rem;background:var(--color-primary);color:var(--color-on-primary);
  border-radius:var(--radius);box-shadow:var(--shadow-resting);display:flex;align-items:center;justify-content:center;
}
.product-card__addbtn:hover{background:var(--color-secondary);}
.product-card__addbtn svg{width:16px;height:16px;}
.product-card__body{padding:1rem;}
.product-card__meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem;}
.product-card__swatch{display:inline-flex;align-items:center;gap:.4rem;}
.product-card__dot{width:12px;height:12px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);}
.product-card__spec{font-family:var(--font-sans);font-weight:600;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-on-surface-variant);}
.product-card__rating{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--font-sans);font-weight:600;font-size:11px;color:var(--color-primary);}
.product-card__rating svg{width:12px;height:12px;}
.product-card__title{margin-bottom:.25rem;transition:color .2s var(--ease);}
.product-card:hover .product-card__title{color:var(--color-primary);}
.product-card__desc{
  color:var(--color-on-surface-variant);margin-bottom:.75rem;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.product-card__footer{padding:.5rem 1rem 1rem;display:flex;align-items:center;justify-content:space-between;}
.product-card__price{color:var(--color-on-surface);}
.product-card__price ins{text-decoration:none;}
.product-card__price del{opacity:.5;font-size:.85em;margin-right:.35rem;}
.product-card__reserve{display:inline-flex;align-items:center;gap:.3rem;}
.product-card__reserve svg{width:15px;height:15px;transition:transform .2s var(--ease);}
.product-card__reserve:hover svg{transform:translateX(3px);}
.products-section__empty{
  text-align:center;padding:3rem 1.5rem;border:1px dashed var(--color-outline-variant);border-radius:var(--radius-lg);color:var(--color-on-surface-variant);
}

/* =========================================================
   10. MATERIALITY / SENSORY SPLIT
   ========================================================= */
.materiality__grid{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:center;}
@media (min-width:1024px){.materiality__grid{grid-template-columns:1fr 1fr;gap:3rem;}}
.materiality__eyebrow{display:block;margin-bottom:.75rem;}
.materiality__title{margin-bottom:1.25rem;}
.materiality__desc{margin-bottom:2rem;color:var(--color-on-surface-variant);font-weight:300;}
.benefit-list{display:flex;flex-direction:column;gap:1rem;}
.benefit-item{
  display:flex;gap:1rem;align-items:flex-start;padding:1rem;border-radius:var(--radius-xl);
  background:var(--color-surface-container-low);transition:background-color .25s var(--ease);
}
.benefit-item:hover{background:var(--color-surface-container);}
.benefit-item__icon{
  width:2.5rem;height:2.5rem;border-radius:50%;background:var(--color-primary-fixed);color:var(--color-on-primary-fixed-variant);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.benefit-item__icon svg{width:20px;height:20px;}
.benefit-item__title{font-family:var(--font-sans);font-weight:500;font-size:14px;letter-spacing:.02em;text-transform:uppercase;margin-bottom:.25rem;}
.benefit-item__text{color:var(--color-on-surface-variant);}
.materiality__visual{position:relative;border-radius:var(--radius-2xl);overflow:hidden;box-shadow:var(--shadow-hover);aspect-ratio:5/6;background:var(--color-surface-container);}
.materiality__visual-scrim{position:absolute;inset:0;z-index:2;background:linear-gradient(to top, rgba(52,47,45,.65), transparent 55%);pointer-events:none;}
.materiality__spec{
  position:absolute;z-index:3;left:1.5rem;right:1.5rem;bottom:1.5rem;padding:1rem;border-radius:var(--radius-xl);
  background:rgba(255,248,245,.92);backdrop-filter:blur(8px);box-shadow:var(--shadow-flyout);
}
.materiality__spec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;gap:.5rem;flex-wrap:wrap;}
.materiality__spec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;text-align:center;padding-top:.5rem;}
.materiality__spec-stat{background:var(--color-surface-container);padding:.5rem;border-radius:var(--radius);}
.materiality__spec-stat b{display:block;font-family:var(--font-serif);font-weight:500;font-size:22px;line-height:1;color:var(--color-primary);}
.materiality__spec-stat span{display:block;font-family:var(--font-sans);font-weight:600;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-on-surface-variant);margin-top:.25rem;}

/* =========================================================
   11. ENDORSEMENT / TESTIMONIAL BANNER
   ========================================================= */
.endorsement{position:relative;overflow:hidden;}
.endorsement__inner{position:relative;z-index:2;max-width:48rem;margin-inline:auto;text-align:center;display:flex;flex-direction:column;align-items:center;}
.endorsement__stars{display:flex;align-items:center;gap:.25rem;color:var(--color-primary);margin-bottom:1rem;}
.endorsement__stars svg{width:16px;height:16px;}
.endorsement__attribution{color:var(--color-on-surface-variant);margin-top:1rem;}
.endorsement.has-video{color:#fff;}
.endorsement.has-video .endorsement__attribution{color:rgba(255,248,245,.8);}
.endorsement.has-video .endorsement__quote{color:#fff;}

/* =========================================================
   12. FOOTER
   ========================================================= */
.site-footer{background:var(--color-surface-container);box-shadow:0 -2px 16px rgba(158,100,86,.03);}
.footer__newsletter{
  display:flex;flex-direction:column;gap:1.5rem;justify-content:space-between;align-items:flex-start;
  padding-block:3.5rem;border-bottom:1px solid var(--color-outline-variant);
}
@media (min-width:1024px){.footer__newsletter{flex-direction:row;align-items:center;}}
.footer__newsletter-copy{max-width:32rem;}
.footer__newsletter-copy h3{margin-block:.35rem .35rem;}
.footer__newsletter-form{flex:1 1 380px;max-width:480px;width:100%;}
@media (min-width:1024px){.footer__newsletter-form{margin-inline-start:auto;}}
.newsletter-form{display:flex;flex-direction:column;gap:.5rem;width:100%;}
@media (min-width:480px){.newsletter-form{flex-direction:row;}}
.newsletter-form input[type="email"]{
  flex:1;min-width:0;padding:.85rem 1rem;background:var(--color-surface-container-lowest);
  border:1px solid var(--color-outline-variant);border-radius:var(--radius-lg);
}
.newsletter-form input[type="email"]:focus{outline:2px solid var(--color-primary);outline-offset:1px;}
.newsletter-form button{
  background:var(--color-primary);color:var(--color-on-primary);padding:.85rem 1.75rem;border-radius:var(--radius-lg);
  font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;
}
.newsletter-form button:hover{background:var(--color-secondary);}
.newsletter-note{font-size:12px;color:var(--color-on-surface-variant);margin-top:.5rem;}
.footer__columns{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;padding-block:3.5rem;}
@media (min-width:768px){.footer__columns{grid-template-columns:repeat(4,1fr);}}
.footer-column__title{display:block;margin-bottom:.75rem;}
.footer-column ul{display:flex;flex-direction:column;gap:.5rem;}
.footer-column a,.footer-column li{color:var(--color-on-surface-variant);transition:color .2s var(--ease);}
.footer-column a:hover{color:var(--color-on-surface);}
.footer__bottom{
  padding-block:1.5rem;display:flex;flex-direction:column;gap:1rem;align-items:center;justify-content:space-between;text-align:center;
  border-top:1px solid var(--color-outline-variant);
}
@media (min-width:768px){.footer__bottom{flex-direction:row;text-align:left;}}
.footer__bottom-meta{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;justify-content:center;}
.footer__bottom-meta span{font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-on-surface-variant);}

/* =========================================================
   13. SCROLL-REVEAL
   ========================================================= */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.is-visible{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;}}

/* =========================================================
   14. GENERIC PAGE / WOOCOMMERCE FALLBACK WRAP
   Kept intentionally simple — dedicated shop/product/cart
   templates are the natural next step after the homepage.
   ========================================================= */
.page-wrap{max-width:var(--content-max);margin-inline:auto;padding:7rem var(--margin) 5rem;}
@media (min-width:768px){.page-wrap{padding-inline:var(--margin-tablet);}}
@media (min-width:1280px){.page-wrap{padding-inline:var(--margin-desktop);}}
.page-wrap h1{font-family:var(--font-serif);font-weight:400;font-size:36px;margin-bottom:1.5rem;}
.page-wrap .entry-content{color:var(--color-on-surface-variant);line-height:1.8;}
.page-wrap .entry-content > * + *{margin-top:1.25rem;}
.woocommerce ul.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2rem;list-style:none;padding:0;}
.woocommerce ul.products li.product{background:var(--color-surface);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-resting);}
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit,.woocommerce-page a.button{
  font-family:var(--font-sans)!important;font-weight:600!important;font-size:11px!important;letter-spacing:.12em!important;text-transform:uppercase!important;
  background:var(--color-primary)!important;color:var(--color-on-primary)!important;border-radius:var(--radius)!important;
  padding:.85rem 1.5rem!important;border:0!important;
}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover{background:var(--color-secondary)!important;}
.woocommerce span.onsale{background:var(--color-primary)!important;font-family:var(--font-sans)!important;}
.woocommerce-message,.woocommerce-info{border-top-color:var(--color-primary)!important;}
.woocommerce-message::before,.woocommerce-info::before{color:var(--color-primary)!important;}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--color-primary);font-family:var(--font-sans);}

/* =========================================================
   14b. BLOG / COMMENTS (minimal — homepage is the design focus)
   ========================================================= */
.icon{width:1em;height:1em;display:inline-block;vertical-align:-0.125em;}
.header-actions__cart-count{font-variant-numeric:tabular-nums;}
.comments-area{max-width:820px;}
.comment-list{display:flex;flex-direction:column;gap:1.5rem;margin:1.5rem 0;}
.comment-list .children{margin-top:1.5rem;margin-left:2rem;display:flex;flex-direction:column;gap:1.5rem;}
.comment-list article{padding:1.25rem;border-radius:var(--radius-lg);background:var(--color-surface-container-low);}
.comment-respond input[type="text"],
.comment-respond input[type="email"],
.comment-respond input[type="url"],
.comment-respond textarea{
  width:100%;padding:.75rem 1rem;border:1px solid var(--color-outline-variant);border-radius:var(--radius);
  background:var(--color-surface-container-lowest);margin-bottom:1rem;
}
.comment-respond .form-submit input{
  background:var(--color-primary);color:var(--color-on-primary);padding:.75rem 1.5rem;border-radius:var(--radius);
  font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
}

/* =========================================================
   15. UTILITIES
   ========================================================= */
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
.no-scroll{overflow:hidden;}

/* =========================================================
   16. MODAL (shared by Quick View + Video Lightbox)
   ========================================================= */
.modal-overlay{
  position:fixed;inset:0;z-index:200;background:rgba(31,27,25,.62);backdrop-filter:blur(5px);
  display:none;align-items:center;justify-content:center;padding:1.5rem;
}
.modal-overlay.is-open{display:flex;}
.modal{
  position:relative;background:var(--color-surface);border-radius:var(--radius-2xl);
  max-width:960px;width:100%;max-height:88vh;overflow:auto;box-shadow:var(--shadow-flyout);
}
.modal__close{
  position:absolute;top:1rem;right:1rem;z-index:3;width:2.25rem;height:2.25rem;border-radius:50%;
  background:var(--color-surface-container-lowest);box-shadow:var(--shadow-resting);
  display:flex;align-items:center;justify-content:center;color:var(--color-on-surface);
}
.modal__close svg{width:16px;height:16px;}
.modal__close:hover{color:var(--color-primary);}
.modal-loading{padding:5rem 2rem;text-align:center;color:var(--color-on-surface-variant);}

/* Quick View */
.quick-view{display:grid;grid-template-columns:1fr;}
@media (min-width:720px){.quick-view{grid-template-columns:1fr 1fr;}}
.quick-view__media{aspect-ratio:4/5;background:var(--color-surface-container);}
.quick-view__media img{width:100%;height:100%;object-fit:cover;}
.quick-view__body{padding:2rem;display:flex;flex-direction:column;}
.quick-view__cart form.cart{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;}
.quick-view__cart .quantity{display:flex;}
.quick-view__cart input.qty{width:4rem;padding:.7rem;border:1px solid var(--color-outline-variant);border-radius:var(--radius);text-align:center;background:var(--color-surface-container-lowest);}
.quick-view__cart .button{margin:0!important;}

/* Video lightbox */
.modal--video{max-width:1100px;background:#000;}
.modal--video video{width:100%;display:block;max-height:82vh;background:#000;}
.modal--video .modal__close{background:rgba(255,255,255,.15);color:#fff;backdrop-filter:blur(6px);}

/* =========================================================
   17. VIDEO GALLERY SECTION
   ========================================================= */
.video-gallery__header{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem;}
@media (min-width:768px){.video-gallery__header{flex-direction:row;align-items:flex-end;justify-content:space-between;}}
.video-gallery__grid{display:grid;grid-template-columns:1fr;gap:1.5rem;}
@media (min-width:640px){.video-gallery__grid{grid-template-columns:repeat(2,1fr);}}
.video-tile{
  position:relative;aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-resting);transition:box-shadow .4s var(--ease);background:var(--color-inverse-surface);
}
.video-tile:hover{box-shadow:var(--shadow-hover);}
.video-tile img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease),filter .4s var(--ease);}
.video-tile:hover img{transform:scale(1.05);filter:brightness(.8);}
.video-tile__scrim{position:absolute;inset:0;background:linear-gradient(to top, rgba(31,27,25,.55), rgba(31,27,25,0) 55%);}
.video-tile__play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:4rem;height:4rem;border-radius:50%;background:rgba(255,248,245,.92);backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;color:var(--color-primary);
  transition:transform .3s var(--ease),background-color .3s var(--ease);box-shadow:var(--shadow-hover);
}
.video-tile__play svg{width:22px;height:22px;margin-left:3px;}
.video-tile:hover .video-tile__play{transform:translate(-50%,-50%) scale(1.1);background:var(--color-surface);}
.video-tile__caption{position:absolute;left:1.25rem;right:1.25rem;bottom:1rem;color:#fff;}
.video-tile__caption span{display:block;}

/* =========================================================
   18. BLOG / CHRONICLES SECTION
   ========================================================= */
.blog-section__header{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem;}
@media (min-width:768px){.blog-section__header{flex-direction:row;align-items:flex-end;justify-content:space-between;}}
.blog-grid{display:grid;grid-template-columns:1fr;gap:2rem;}
@media (min-width:640px){.blog-grid{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1024px){.blog-grid{grid-template-columns:repeat(3,1fr);}}
.blog-card{display:flex;flex-direction:column;}
.blog-card__media{position:relative;aspect-ratio:4/3;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1.1rem;background:var(--color-surface-container);}
.blog-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.blog-card:hover .blog-card__media img{transform:scale(1.06);}
.blog-card__cat{position:absolute;top:1rem;left:1rem;background:rgba(255,248,245,.9);backdrop-filter:blur(6px);padding:.3rem .8rem;border-radius:var(--radius-full);}
.blog-card__date{display:block;margin-bottom:.4rem;}
.blog-card__title{margin-bottom:.5rem;transition:color .2s var(--ease);}
.blog-card:hover .blog-card__title{color:var(--color-primary);}
.blog-card__excerpt{color:var(--color-on-surface-variant);margin-bottom:.75rem;}

/* =========================================================
   19. REVIEWS SECTION
   ========================================================= */
.reviews-section__header{text-align:center;max-width:40rem;margin:0 auto 2.5rem;}
.reviews-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;}
@media (min-width:640px){.reviews-grid{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1024px){.reviews-grid{grid-template-columns:repeat(3,1fr);}}
.review-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-resting);display:flex;flex-direction:column;height:100%;}
.review-card__stars{color:var(--color-primary);display:flex;gap:.2rem;margin-bottom:.85rem;}
.review-card__stars svg{width:14px;height:14px;}
.review-card__text{color:var(--color-on-surface-variant);flex:1;margin-bottom:1.25rem;}
.review-card__author{display:flex;align-items:center;gap:.75rem;}
.review-card__avatar{
  width:2.5rem;height:2.5rem;border-radius:50%;background:var(--color-primary-fixed);color:var(--color-on-primary-fixed-variant);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-weight:500;flex-shrink:0;overflow:hidden;
}
.review-card__avatar img{width:100%;height:100%;object-fit:cover;}
.review-card__name{display:block;}
.review-card__product{display:block;color:var(--color-on-surface-variant);}

/* =========================================================
   20. SINGLE PRODUCT PAGE
   ========================================================= */
/* Note: .product-page renders inside the theme's existing
   .page-wrap.woocommerce-wrap (added by the woocommerce_before/after_
   main_content wrapper hooks around WooCommerce's own root
   single-product.php), which already supplies the top padding,
   max-width and side margins — so this class only adds spacing
   specific to the product layout itself, not another outer frame. */
.product-page{padding-bottom:2rem;}
@media (min-width:768px){.product-page{padding-inline:var(--margin-tablet);}}
@media (min-width:1280px){.product-page{padding-inline:var(--margin-desktop);}}
.product-page__breadcrumb{margin-bottom:1.5rem;color:var(--color-on-surface-variant);}
.product-page__breadcrumb a:hover{color:var(--color-primary);}
.woocommerce-breadcrumb{font-size:13px;color:var(--color-on-surface-variant);}
.woocommerce-breadcrumb a{color:var(--color-on-surface-variant);}
.woocommerce-breadcrumb a:hover{color:var(--color-primary);}
.woocommerce div.product > .woocommerce-tabs,
.woocommerce div.product > .related.products,
.woocommerce div.product > .upsells.products{grid-column:1 / -1;}
.woocommerce div.product{
  display:grid;grid-template-columns:1fr;gap:2.5rem;margin-bottom:4rem;
}
@media (min-width:900px){.woocommerce div.product{grid-template-columns:1.05fr 1fr;gap:3.5rem;}}
.woocommerce div.product .woocommerce-product-gallery{position:relative;}
.woocommerce div.product .woocommerce-product-gallery__wrapper{border-radius:var(--radius-2xl);overflow:hidden;background:var(--color-surface-container);}
.woocommerce div.product .woocommerce-product-gallery__image img{width:100%;height:auto;object-fit:cover;aspect-ratio:4/5;}
.woocommerce div.product .flex-control-thumbs{display:flex;gap:.75rem;margin-top:.85rem;list-style:none;padding:0;flex-wrap:wrap;}
.woocommerce div.product .flex-control-thumbs li{width:72px;height:90px;border-radius:var(--radius);overflow:hidden;cursor:pointer;opacity:.6;transition:opacity .2s var(--ease);}
.woocommerce div.product .flex-control-thumbs li img{width:100%;height:100%;object-fit:cover;}
.woocommerce div.product .flex-control-thumbs li.flex-active,
.woocommerce div.product .flex-control-thumbs li:hover{opacity:1;}
.woocommerce div.product .onsale{
  position:absolute;top:1rem;left:1rem;z-index:2;background:var(--color-primary);color:var(--color-on-primary);
  padding:.35rem .9rem;border-radius:var(--radius-full);font-family:var(--font-sans);font-weight:600;font-size:10px;letter-spacing:.1em;text-transform:uppercase;
}
.product-summary .eyebrow{display:block;margin-bottom:.6rem;}
.woocommerce div.product .product_title{font-family:var(--font-serif);font-weight:400;font-size:32px;line-height:1.15;margin-bottom:.6rem;}
@media (min-width:1024px){.woocommerce div.product .product_title{font-size:40px;}}
.woocommerce div.product p.price,.woocommerce div.product span.price{font-family:var(--font-sans);font-weight:600;font-size:22px;margin-bottom:1rem;display:block;}
.woocommerce div.product p.price ins,.woocommerce div.product span.price ins{text-decoration:none;color:var(--color-primary);}
.woocommerce div.product p.price del{opacity:.5;font-size:.75em;margin-right:.5rem;}
.woocommerce .woocommerce-product-rating{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;}
.woocommerce .star-rating{color:var(--color-primary);font-size:14px;}
.woocommerce div.product .woocommerce-product-details__short-description{color:var(--color-on-surface-variant);margin-bottom:1.5rem;font-weight:300;line-height:1.7;}
.woocommerce div.product form.cart{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.75rem;padding:1.5rem;background:var(--color-surface-container-low);border-radius:var(--radius-xl);}
.woocommerce div.product form.cart .quantity{display:flex;}
.woocommerce div.product form.cart input.qty{
  width:4.5rem;padding:.9rem;text-align:center;border:1px solid var(--color-outline-variant);border-radius:var(--radius);
  background:var(--color-surface-container-lowest);
}
.woocommerce div.product form.cart table.variations{width:100%;margin-bottom:1rem;}
.woocommerce div.product form.cart table.variations td{padding:.4rem 0;}
.woocommerce div.product form.cart table.variations select{
  width:100%;padding:.75rem 1rem;border:1px solid var(--color-outline-variant);border-radius:var(--radius);background:var(--color-surface-container-lowest);
}
.woocommerce div.product .product_meta{color:var(--color-on-surface-variant);padding-top:1rem;border-top:1px solid var(--color-outline-variant);}
.woocommerce div.product .product_meta > span{display:block;margin-bottom:.35rem;}
.woocommerce div.product .product_meta a{color:var(--color-on-surface);text-decoration:underline;text-underline-offset:2px;}

/* Tabs */
.woocommerce-tabs{margin-top:2rem;}
.woocommerce-tabs ul.tabs{display:flex;gap:2rem;border-bottom:1px solid var(--color-outline-variant);margin-bottom:2rem;list-style:none;padding:0;flex-wrap:wrap;}
.woocommerce-tabs ul.tabs li a{
  display:inline-block;padding-bottom:1rem;font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--color-on-surface-variant);border-bottom:2px solid transparent;margin-bottom:-1px;
}
.woocommerce-tabs ul.tabs li.active a{color:var(--color-primary);border-color:var(--color-primary);}
.woocommerce-tabs .panel{max-width:52rem;color:var(--color-on-surface-variant);line-height:1.8;}
.woocommerce-tabs table.shop_attributes{width:100%;border-collapse:collapse;}
.woocommerce-tabs table.shop_attributes th,.woocommerce-tabs table.shop_attributes td{padding:.75rem 1rem;border-bottom:1px solid var(--color-outline-variant);text-align:left;}
.woocommerce-tabs table.shop_attributes th{font-weight:600;width:35%;}

/* Related / Upsells (reuse product-card via content-product.php override) */
.related.products,.upsells.products{margin-top:4rem;padding-top:3rem;border-top:1px solid var(--color-outline-variant);}
.related.products > h2,.upsells.products > h2{font-family:var(--font-serif);font-weight:400;font-size:28px;margin-bottom:1.75rem;}

/* =========================================================
   21. SHOP / CATEGORY ARCHIVE PAGE
   ========================================================= */
.shop-banner{position:relative;padding:9rem var(--margin) 3.5rem;background:var(--color-surface-container-low);overflow:hidden;text-align:center;}
@media (min-width:768px){.shop-banner{padding-inline:var(--margin-tablet);}}
.shop-banner__image{position:absolute;inset:0;z-index:0;}
.shop-banner__image img{width:100%;height:100%;object-fit:cover;}
.shop-banner__image::after{content:'';position:absolute;inset:0;background:rgba(255,248,245,.82);}
.shop-banner__inner{position:relative;z-index:1;max-width:44rem;margin-inline:auto;}
.shop-banner__desc{margin-top:.75rem;color:var(--color-on-surface-variant);}
.shop-toolbar{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.5rem var(--margin);max-width:var(--content-max);margin-inline:auto;
}
@media (min-width:768px){.shop-toolbar{padding-inline:var(--margin-tablet);}}
@media (min-width:1280px){.shop-toolbar{padding-inline:var(--margin-desktop);}}
.shop-toolbar .woocommerce-result-count{color:var(--color-on-surface-variant);}
.shop-toolbar select.orderby{
  padding:.65rem 1rem;border:1px solid var(--color-outline-variant);border-radius:var(--radius);background:var(--color-surface-container-lowest);
}
.shop-content{max-width:var(--content-max);margin-inline:auto;padding:0 var(--margin) 5rem;}
@media (min-width:768px){.shop-content{padding-inline:var(--margin-tablet);}}
@media (min-width:1280px){.shop-content{padding-inline:var(--margin-desktop);}}
.woocommerce nav.woocommerce-pagination{margin-top:3rem;display:flex;justify-content:center;}
.woocommerce nav.woocommerce-pagination ul{display:flex;gap:.5rem;list-style:none;padding:0;}
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{
  display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:var(--radius);
  background:var(--color-surface-container-low);color:var(--color-on-surface-variant);
}
.woocommerce nav.woocommerce-pagination ul li span.current,.woocommerce nav.woocommerce-pagination ul li a:hover{background:var(--color-primary);color:var(--color-on-primary);}
.woocommerce-no-products-found{text-align:center;padding:4rem 1.5rem;color:var(--color-on-surface-variant);}

/* =========================================================
   22. CART PAGE
   ========================================================= */
.woocommerce-cart .woocommerce{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:start;}
@media (min-width:960px){.woocommerce-cart .woocommerce{grid-template-columns:1.6fr 1fr;}}
table.shop_table.cart,table.cart{width:100%;border-collapse:collapse;}
table.shop_table.cart th{text-align:left;padding:0 .75rem .75rem;font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-on-surface-variant);border-bottom:1px solid var(--color-outline-variant);}
table.shop_table.cart td{padding:1.25rem .75rem;border-bottom:1px solid var(--color-outline-variant);vertical-align:middle;}
table.shop_table.cart td.product-thumbnail img{width:80px;border-radius:var(--radius);object-fit:cover;}
table.shop_table.cart td.product-name a{font-family:var(--font-serif);font-size:18px;}
table.shop_table.cart td.product-remove a{color:var(--color-on-surface-variant);font-size:20px;}
table.shop_table.cart td.product-remove a:hover{color:var(--color-error);}
table.shop_table.cart .quantity input.qty{width:3.5rem;padding:.6rem;border:1px solid var(--color-outline-variant);border-radius:var(--radius);text-align:center;}
.woocommerce-cart-form .coupon{display:flex;gap:.5rem;margin-top:1.5rem;flex-wrap:wrap;}
.woocommerce-cart-form .coupon input#coupon_code{padding:.85rem 1rem;border:1px solid var(--color-outline-variant);border-radius:var(--radius);flex:1;min-width:180px;background:var(--color-surface-container-lowest);}
.cart-collaterals{position:sticky;top:100px;}
.cart_totals{background:var(--color-surface-container-low);border-radius:var(--radius-xl);padding:1.75rem;}
.cart_totals h2{font-family:var(--font-serif);font-weight:400;font-size:22px;margin-bottom:1.25rem;}
.cart_totals table{width:100%;border-collapse:collapse;}
.cart_totals table th,.cart_totals table td{padding:.85rem 0;border-bottom:1px solid var(--color-outline-variant);}
.cart_totals table tr:last-child th,.cart_totals table tr:last-child td{border-bottom:0;font-family:var(--font-sans);font-weight:700;font-size:18px;}
.wc-proceed-to-checkout a.checkout-button{width:100%;text-align:center;margin-top:1rem;}
.cross-sells{margin-top:3rem;}
.cross-sells h2{font-family:var(--font-serif);font-weight:400;font-size:24px;margin-bottom:1.5rem;}

/* =========================================================
   23. CHECKOUT PAGE (CSS-only — core WooCommerce checkout
   markup/JS/nonces are left completely untouched so payment
   gateways, taxes and the AJAX order-review keep working)
   ========================================================= */
.woocommerce-checkout .woocommerce{max-width:var(--content-max);}
.woocommerce-checkout form.checkout{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:start;}
@media (min-width:960px){.woocommerce-checkout form.checkout{grid-template-columns:1.5fr 1fr;column-gap:3rem;}}
.woocommerce-checkout .col2-set{grid-column:1;display:grid;grid-template-columns:1fr;gap:2rem;}
@media (min-width:640px){.woocommerce-checkout .col2-set{grid-template-columns:1fr 1fr;gap:2rem;}}
.woocommerce-checkout .col2-set h3{font-family:var(--font-serif);font-weight:400;font-size:22px;margin-bottom:1.25rem;}
.woocommerce-checkout #order_review_heading{grid-column:2;grid-row:1;font-family:var(--font-serif);font-weight:400;font-size:22px;margin-bottom:1rem;}
.woocommerce-checkout #order_review{
  grid-column:2;grid-row:2;background:var(--color-surface-container-low);border-radius:var(--radius-xl);padding:1.75rem;
  position:sticky;top:100px;
}
@media (max-width:959px){
  .woocommerce-checkout #order_review_heading,.woocommerce-checkout #order_review{grid-column:1;position:static;}
}
.woocommerce-checkout table.shop_table{width:100%;border-collapse:collapse;margin-bottom:1.25rem;}
.woocommerce-checkout table.shop_table th,.woocommerce-checkout table.shop_table td{padding:.75rem 0;border-bottom:1px solid var(--color-outline-variant);}
.woocommerce-checkout table.shop_table tr.order-total th,.woocommerce-checkout table.shop_table tr.order-total td{font-weight:700;font-size:18px;border-bottom:0;}
.woocommerce-checkout #payment{background:transparent;padding-top:1rem;}
.woocommerce-checkout #payment ul.payment_methods{list-style:none;padding:0;border-top:1px solid var(--color-outline-variant);}
.woocommerce-checkout #payment ul.payment_methods li{padding:1rem 0;border-bottom:1px solid var(--color-outline-variant);}
.woocommerce-checkout #payment ul.payment_methods li label{font-weight:600;}
.woocommerce-checkout #payment div.payment_box{background:var(--color-surface-container);border-radius:var(--radius);padding:1rem;margin-top:.75rem;color:var(--color-on-surface-variant);font-size:14px;}
.woocommerce-checkout #payment div.payment_box::before{display:none;}
.woocommerce-checkout #place_order{width:100%;padding:1.1rem;font-size:12px;margin-top:1rem;}
.woocommerce-checkout .woocommerce-checkout-review-order-table{margin-bottom:0;}
.woocommerce-checkout .checkout_coupon{background:var(--color-surface-container-low);padding:1.5rem;border-radius:var(--radius-lg);margin-bottom:2rem;grid-column:1/-1;}
.woocommerce-checkout .checkout_coupon .form-row{display:flex;gap:.75rem;}
.woocommerce-checkout .woocommerce-shipping-methods{list-style:none;padding:0;}
.woocommerce-checkout #ship-to-different-address{margin-bottom:1rem;font-weight:600;}
.woocommerce-checkout #ship-to-different-address label{display:flex;align-items:center;gap:.5rem;}

/* =========================================================
   24. MY ACCOUNT (dashboard, nav, orders, addresses, forms)
   ========================================================= */
.woocommerce-account .woocommerce{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:start;max-width:var(--content-max);}
@media (min-width:820px){.woocommerce-account .woocommerce{grid-template-columns:260px 1fr;}}
.woocommerce-MyAccount-navigation{background:var(--color-surface-container-low);border-radius:var(--radius-xl);padding:.75rem;position:sticky;top:100px;}
.woocommerce-MyAccount-navigation ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:.15rem;}
.woocommerce-MyAccount-navigation-link a{
  display:block;padding:.85rem 1rem;border-radius:var(--radius);color:var(--color-on-surface-variant);
  font-family:var(--font-sans);font-weight:600;font-size:13px;letter-spacing:.02em;transition:background-color .2s var(--ease),color .2s var(--ease);
}
.woocommerce-MyAccount-navigation-link a:hover{background:var(--color-surface-container);color:var(--color-on-surface);}
.woocommerce-MyAccount-navigation-link--dashboard.is-active a,
.woocommerce-MyAccount-navigation-link.is-active a{background:var(--color-primary);color:var(--color-on-primary);}
.woocommerce-MyAccount-content{min-width:0;}
.woocommerce-MyAccount-content > p:first-child{color:var(--color-on-surface-variant);}
.account-dashboard__cards{display:grid;grid-template-columns:1fr;gap:1.25rem;margin-top:1.75rem;}
@media (min-width:640px){.account-dashboard__cards{grid-template-columns:repeat(3,1fr);}}
.account-dashboard__card{background:var(--color-surface-container-low);border-radius:var(--radius-lg);padding:1.5rem;transition:box-shadow .3s var(--ease),background-color .3s var(--ease);}
.account-dashboard__card:hover{background:var(--color-surface-container);box-shadow:var(--shadow-resting);}
.account-dashboard__card svg{width:22px;height:22px;color:var(--color-primary);margin-bottom:.75rem;}
.account-dashboard__card h3{font-family:var(--font-sans);font-weight:600;font-size:14px;margin-bottom:.35rem;}
.account-dashboard__card p{color:var(--color-on-surface-variant);margin-bottom:.85rem;}

table.woocommerce-orders-table,table.my_account_orders{width:100%;border-collapse:collapse;}
table.woocommerce-orders-table th{text-align:left;padding:.75rem;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-on-surface-variant);border-bottom:1px solid var(--color-outline-variant);}
table.woocommerce-orders-table td{padding:1rem .75rem;border-bottom:1px solid var(--color-outline-variant);}
.woocommerce-orders-table__cell-order-actions a.button{margin:.15rem;padding:.5rem 1rem!important;font-size:10px!important;}
mark.order-status{background:none;color:inherit;}
.order-status{
  display:inline-flex;align-items:center;padding:.3rem .8rem;border-radius:var(--radius-full);
  font-family:var(--font-sans);font-weight:600;font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  background:var(--color-surface-container-high);color:var(--color-on-surface-variant);
}
.order-status.status-completed,.order-status.status-processing{background:#e3f0dd;color:#3a6b2c;}
.order-status.status-pending,.order-status.status-on-hold{background:#fdf0d2;color:#93690f;}
.order-status.status-cancelled,.order-status.status-failed,.order-status.status-refunded{background:#f6dede;color:#a3352f;}

.woocommerce-order-details,.woocommerce-customer-details{background:var(--color-surface-container-low);border-radius:var(--radius-xl);padding:1.75rem;margin-bottom:1.75rem;}
.woocommerce-order-details h2,.woocommerce-customer-details h2,.woocommerce-order-again h2{font-family:var(--font-serif);font-weight:400;font-size:22px;margin-bottom:1.25rem;}
.woocommerce-order-overview{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:2rem;margin-bottom:2rem;}
.woocommerce-order-overview li{font-size:13px;color:var(--color-on-surface-variant);}
.woocommerce-order-overview li strong{display:block;font-family:var(--font-sans);color:var(--color-on-surface);font-size:15px;margin-top:.15rem;}
.woocommerce-column--billing-address,.woocommerce-column--shipping-address{margin-bottom:1.5rem;}
.u-columns.woocommerce-Addresses{display:grid;grid-template-columns:1fr;gap:1.5rem;}
@media (min-width:640px){.u-columns.woocommerce-Addresses{grid-template-columns:1fr 1fr;}}
.woocommerce-Address{background:var(--color-surface-container-low);border-radius:var(--radius-lg);padding:1.5rem;}
.woocommerce-Address-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;}
.woocommerce-Address-title h3{font-family:var(--font-sans);font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.06em;}
.woocommerce-Address-title .edit{font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);}
.woocommerce-Address address{color:var(--color-on-surface-variant);font-style:normal;line-height:1.8;}

/* Generic WooCommerce form styling — covers login, register, checkout
   billing/shipping, edit-account and edit-address forms in one pass. */
.woocommerce form .form-row{margin-bottom:1.1rem;}
.woocommerce form .form-row label{display:block;font-family:var(--font-sans);font-weight:600;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-on-surface-variant);margin-bottom:.4rem;}
.woocommerce form .form-row .required{color:var(--color-primary);text-decoration:none;}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text{
  width:100%;padding:.85rem 1rem;border:1px solid var(--color-outline-variant);border-radius:var(--radius);
  background:var(--color-surface-container-lowest);font-family:var(--font-sans);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{outline:2px solid var(--color-primary);outline-offset:1px;}
.woocommerce form.woocommerce-form-login,.woocommerce form.woocommerce-form-register,.woocommerce form.woocommerce-EditAccountForm{
  background:var(--color-surface-container-low);padding:2rem;border-radius:var(--radius-xl);
}
.woocommerce-form-login__rememberme{display:flex;align-items:center;gap:.5rem;font-size:13px;color:var(--color-on-surface-variant);}
.u-columns.woocommerce-form-login-toggle,.u-columns{display:grid;grid-template-columns:1fr;gap:2rem;}
@media (min-width:768px){
  .col2-set.woocommerce-form-login-toggle,
  #customer_login.u-columns{grid-template-columns:1fr 1fr;}
}
#customer_login h2{font-family:var(--font-serif);font-weight:400;font-size:24px;margin-bottom:1.25rem;}
.lost_password{margin-top:.75rem;}
.lost_password a{color:var(--color-on-surface-variant);text-decoration:underline;}

/* =========================================================
   25. GOOGLE SIGN-IN
   ========================================================= */
.halite-google-btn{
  display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;
  padding:.85rem 1.5rem;border-radius:var(--radius);border:1px solid var(--color-outline-variant);
  background:var(--color-surface-container-lowest);font-family:var(--font-sans);font-weight:600;font-size:13px;color:var(--color-on-surface);
  margin-bottom:1.25rem;transition:background-color .2s var(--ease),box-shadow .2s var(--ease);
}
.halite-google-btn:hover{background:var(--color-surface);box-shadow:var(--shadow-resting);}
.halite-google-btn svg{width:18px;height:18px;flex-shrink:0;}
.halite-auth-divider{display:flex;align-items:center;gap:1rem;margin:1.25rem 0;color:var(--color-on-surface-variant);font-size:12px;text-transform:uppercase;letter-spacing:.08em;}
.halite-auth-divider::before,.halite-auth-divider::after{content:'';flex:1;height:1px;background:var(--color-outline-variant);}
.woocommerce-notices-wrapper .woocommerce-error{border-top-color:var(--color-error)!important;}
