/* ============================================================
   SACHI — Carry Life Beautifully
   Design system · warm-neutral editorial foundation
   Ink: SACHI navy · Accent: muted bronze · Signature: KEEP WELL°
   ============================================================ */

:root{
  /* palette */
  --ivory:#F7F3EB;
  --parchment:#EFE7D8;
  --linen:#E5D9C3;
  --espresso:#2E241B;
  --ink:#171348;            /* SACHI brand navy */
  --ink-soft:#3A3766;
  --bronze:#9C7A46;
  --gold:#C2A24C;           /* SACHI brand gold */
  --sage:#7E8B6F;
  --white:#FFFDF9;
  --hairline:rgba(23,19,72,.16);
  --shadow:0 18px 50px -24px rgba(23,19,72,.28);

  /* type */
  --serif:"Fraunces",Georgia,serif;
  --sans:"Josefin Sans","Helvetica Neue",Arial,sans-serif;

  /* rhythm */
  --gutter:clamp(20px,4.5vw,72px);
  --section:clamp(84px,11vw,160px);
  --ease:cubic-bezier(.23,.76,.29,.99);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}
}
body{
  font-family:var(--sans);
  font-weight:300;
  color:var(--ink);
  background:var(--ivory);
  line-height:1.65;
  font-size:16.5px;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;background:none;border:0;color:inherit}
ul{list-style:none}
::selection{background:var(--ink);color:var(--ivory)}

:is(a,button,input,select):focus-visible{
  outline:2px solid var(--bronze);
  outline-offset:3px;
  border-radius:2px;
}

/* ---------- type scale ---------- */
.display{
  font-family:var(--serif);
  font-weight:340;
  font-variation-settings:"opsz" 110,"SOFT" 30;
  line-height:1.02;
  letter-spacing:-.015em;
}
.display em{font-style:italic;font-weight:320}
h1.display{font-size:clamp(46px,7.6vw,116px)}
h2.display{font-size:clamp(34px,4.6vw,66px)}
h3.display{font-size:clamp(24px,2.6vw,34px)}

/* eyebrow = thermometer label · the ° signature */
.eyebrow{
  font-family:var(--sans);
  font-weight:400;
  font-size:12px;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--bronze);
  display:flex;align-items:center;gap:14px;
}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--bronze)}
.eyebrow .deg{color:var(--ink)}

.lede{font-size:clamp(17px,1.4vw,20px);font-weight:300;max-width:56ch;color:var(--ink-soft)}
.small{font-size:13px;letter-spacing:.06em}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--sans);font-weight:400;
  font-size:13px;letter-spacing:.26em;text-transform:uppercase;
  padding:19px 34px 17px;
  border:1px solid var(--ink);
  color:var(--ink);
  transition:background .35s var(--ease),color .35s var(--ease);
  position:relative;overflow:hidden;
}
.btn::after{content:"→";transition:transform .35s var(--ease)}
.btn:hover{background:var(--ink);color:var(--ivory)}
.btn:hover::after{transform:translateX(5px)}
.btn--solid{background:var(--ink);color:var(--ivory)}
.btn--solid:hover{background:var(--ink-soft)}
.btn--bare{border:0;padding:0;letter-spacing:.24em;border-bottom:1px solid var(--bronze);padding-bottom:6px}
.btn--bare:hover{background:none;color:var(--bronze)}

/* ---------- layout helpers ---------- */
.wrap{padding-left:var(--gutter);padding-right:var(--gutter);max-width:1560px;margin:0 auto}
.section{padding-top:var(--section);padding-bottom:var(--section)}
.tint{background:var(--parchment)}

/* scroll reveal */
.rv{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv[data-d="1"]{transition-delay:.12s}.rv[data-d="2"]{transition-delay:.24s}.rv[data-d="3"]{transition-delay:.36s}

/* image reveal curtain */
.ir{position:relative;overflow:hidden}
.ir img{transform:scale(1.06);transition:transform 1.4s var(--ease)}
.ir::after{content:"";position:absolute;inset:0;background:var(--ivory);transform:scaleY(1);transform-origin:top;transition:transform 1.1s var(--ease)}
.ir.in::after{transform:scaleY(0)}
.ir.in img{transform:scale(1)}

/* ============================================================
   ANNOUNCEMENT BAR
   ============================================================ */
.announce{
  background:var(--ink);color:var(--ivory);
  font-size:11.5px;letter-spacing:.3em;text-transform:uppercase;font-weight:300;
  text-align:center;padding:11px var(--gutter) 9px;
}
.announce .deg{color:var(--gold)}

/* ============================================================
   HEADER / NAV
   ============================================================ */
.header{
  position:sticky;top:0;z-index:60;
  background:rgba(247,243,235,.92);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--hairline);
  transition:box-shadow .4s;
}
.header.scrolled{box-shadow:0 10px 34px -22px rgba(23,19,72,.35)}
.nav{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  height:74px;padding:0 var(--gutter);max-width:1560px;margin:0 auto;
}
.nav-links{display:flex;gap:clamp(16px,2.2vw,34px)}
.nav-links>li{position:relative}
.nav-link{
  font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:400;
  padding:28px 2px;position:relative;display:inline-block;
}
.nav-link::after{
  content:"";position:absolute;left:0;right:100%;bottom:20px;height:1px;background:var(--bronze);
  transition:right .35s var(--ease);
}
.nav-link:hover::after,.nav-links>li:hover .nav-link::after{right:0}
.logo img{height:30px;width:auto}
.nav-tools{display:flex;justify-content:flex-end;gap:clamp(12px,1.6vw,24px);align-items:center}
.tool{
  font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:400;
  display:inline-flex;align-items:center;gap:7px;
}
.tool svg{width:17px;height:17px;stroke:var(--ink);fill:none;stroke-width:1.4}
.tool .count{
  background:var(--ink);color:var(--ivory);font-size:10px;
  min-width:17px;height:17px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;padding-top:2px;
}
.burger{display:none;flex-direction:column;gap:5px;padding:8px}
.burger span{width:22px;height:1.5px;background:var(--ink);display:block;transition:.3s}

/* One-level WordPress-managed navigation (mega menu CSS removed in 1.0.1; current: 1.0.3) */

/* mobile drawer nav */
.mnav{
  position:fixed;inset:0;z-index:100;background:var(--ivory); /* v1.0.16: above .scrim so mobile controls remain clickable */
  transform:translateX(100%);transition:transform .5s var(--ease);
  padding:26px var(--gutter);overflow-y:auto;
}
.mnav.open{transform:none}
.mnav-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:44px}
.mnav a.big{
  font-family:var(--serif);font-size:34px;display:block;padding:12px 0;
  border-bottom:1px solid var(--hairline);
}
.mnav .small-links{margin-top:34px;display:flex;flex-direction:column;gap:16px;
  font-size:12px;letter-spacing:.26em;text-transform:uppercase}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;min-height:min(92vh,940px);display:flex;align-items:flex-end;overflow:hidden;background:var(--linen)}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:112%;object-fit:cover;object-position:center 22%;will-change:transform}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(12deg,rgba(23,19,72,.62) 0%,rgba(23,19,72,.18) 42%,rgba(23,19,72,0) 68%);
}
.hero-deg{
  position:absolute;right:-2vw;top:-6vw;z-index:1;
  font-family:var(--serif);font-size:clamp(220px,34vw,540px);line-height:1;
  color:transparent;-webkit-text-stroke:1px rgba(247,243,235,.45);
  pointer-events:none;user-select:none;
}
.hero-inner{position:relative;z-index:2;width:100%;padding:0 var(--gutter) clamp(56px,7vw,110px);max-width:1560px;margin:0 auto;color:var(--ivory)}
.hero .eyebrow{color:var(--gold)}
.hero .eyebrow::before{background:var(--gold)}
.hero h1{margin:22px 0 26px;max-width:11ch;color:var(--ivory)}
.hero h1 .deg{color:var(--gold)}
.hero p{max-width:44ch;font-size:clamp(16px,1.4vw,19px);color:rgba(247,243,235,.92);margin-bottom:38px}
.hero-cta{display:flex;gap:22px;flex-wrap:wrap;align-items:center}
.hero .btn{border-color:var(--ivory);color:var(--ivory)}
.hero .btn:hover{background:var(--ivory);color:var(--ink)}
.hero .btn--bare{color:var(--ivory);border-color:var(--gold)}
.hero-scroll{
  position:absolute;right:var(--gutter);bottom:36px;z-index:2;
  writing-mode:vertical-rl;font-size:10.5px;letter-spacing:.4em;text-transform:uppercase;
  color:rgba(247,243,235,.8);display:flex;align-items:center;gap:14px;
}
.hero-scroll::after{content:"";width:1px;height:52px;background:var(--gold);animation:drip 2.6s var(--ease) infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ============================================================
   LIFESTYLE — editorial category navigation
   ============================================================ */
.life-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:clamp(40px,5vw,72px);flex-wrap:wrap}
.life-grid{
  display:grid;gap:clamp(14px,1.8vw,26px);
  grid-template-columns:repeat(12,1fr);
  grid-auto-rows:clamp(120px,15vw,220px);
}
.life-card{position:relative;overflow:hidden;display:block;background:var(--linen)}
.life-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.life-card:hover img{transform:scale(1.055)}
.life-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(
    to top,
    rgba(23,19,72,.90) 0%,
    rgba(23,19,72,.62) 25%,
    rgba(23,19,72,.20) 52%,
    rgba(23,19,72,0) 74%
  );
  transition:opacity .5s;
}
.life-label{
  position:absolute;left:24px;right:24px;bottom:22px;z-index:2;color:var(--ivory);
}
.life-label .t{
  font-family:var(--serif);font-size:clamp(20px,1.9vw,28px);display:block;line-height:1.1;
  color:#fff;font-weight:500;
  text-shadow:0 2px 3px rgba(0,0,0,.65),0 5px 18px rgba(0,0,0,.45);
}
.life-label .s{
  font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:8px;margin-top:8px;opacity:0;transform:translateY(6px);transition:.45s var(--ease);
  text-shadow:0 2px 8px rgba(0,0,0,.65);
}
.life-card:hover .life-label .s{opacity:1;transform:none}
/* asymmetrical placement */
.l1{grid-column:1/6;grid-row:span 3}
.l2{grid-column:6/10;grid-row:span 2}
.l3{grid-column:10/13;grid-row:span 2}
.l4{grid-column:6/9;grid-row:span 2}
.l5{grid-column:9/13;grid-row:span 2}
.l6{grid-column:1/6;grid-row:span 1}

/* ============================================================
   FEATURED COLLECTION STORY
   ============================================================ */
.story{position:relative}
.story-grid{display:grid;grid-template-columns:repeat(12,1fr);align-items:center;gap:clamp(20px,3vw,50px)}
.story-imgs{grid-column:1/8;position:relative;padding-bottom:8vw}
.story-imgs .main{width:82%}
.story-imgs .over{
  position:absolute;right:0;bottom:0;width:44%;
  box-shadow:var(--shadow);border:6px solid var(--ivory);
}
.story-copy{grid-column:8/13}
.story-copy h2{margin:22px 0 24px}
.story-copy p{color:var(--ink-soft);margin-bottom:20px;max-width:46ch}
.swatches{display:flex;gap:10px;margin:26px 0 34px;align-items:center}
.swatches span{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--bronze);margin-right:6px}
.sw{width:26px;height:26px;border-radius:50%;border:1px solid var(--hairline);display:inline-block;position:relative}
.sw.on::after{content:"";position:absolute;inset:-5px;border:1px solid var(--bronze);border-radius:50%}

/* ============================================================
   BEST SELLERS — product gallery
   ============================================================ */
.bs-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:26px;margin-bottom:clamp(40px,5vw,70px)}
.p-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(22px,2.6vw,44px) clamp(16px,2vw,30px)}
.p-grid .pcard:nth-child(2){transform:translateY(clamp(20px,3vw,54px))}
.p-grid .pcard:nth-child(4){transform:translateY(clamp(20px,3vw,54px))}
.pcard{position:relative}
.pmedia{position:relative;overflow:hidden;background:var(--parchment);aspect-ratio:4/5}
.pmedia img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .6s var(--ease),transform 1.1s var(--ease)}
.pmedia img.alt{opacity:0}
.pcard:hover .pmedia img.alt{opacity:1}
.pcard:hover .pmedia img.pri{transform:scale(1.04)}
.badge{
  position:absolute;top:14px;left:14px;z-index:2;
  background:var(--ivory);color:var(--ink);
  font-size:10px;letter-spacing:.26em;text-transform:uppercase;padding:7px 12px 5px;
}
.badge.sale{background:var(--ink);color:var(--gold)}
/* wishlist UI intentionally absent — integrate via the
   sachi_product_card_media action if a wishlist plugin is added */
.qadd{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  background:rgba(23,19,72,.92);color:var(--ivory);
  font-size:11.5px;letter-spacing:.3em;text-transform:uppercase;
  padding:16px 0 13px;text-align:center;width:100%;
  transform:translateY(101%);transition:transform .4s var(--ease);
}
.pcard:hover .qadd,.qadd:focus-visible{transform:none}
.qadd:hover{background:var(--ink)}
.pinfo{padding:18px 2px 0}
.pinfo h3{font-family:var(--serif);font-weight:380;font-size:19px;line-height:1.3}
.pinfo .meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:7px}
.price{font-size:14px;letter-spacing:.1em}
.price s{color:var(--ink-soft);opacity:.6;margin-right:8px}
.pinfo .sws{display:flex;gap:6px;margin-top:12px}
.pinfo .sw{width:15px;height:15px}
.stock{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--sage)}
.stock.low{color:var(--bronze)}

/* ============================================================
   THE SACHI DIFFERENCE — temperature diagram
   ============================================================ */
.diff{background:var(--ink);color:var(--ivory);overflow:hidden}
.diff .eyebrow{color:var(--gold)}
.diff .eyebrow::before{background:var(--gold)}
.diff h2{color:var(--ivory);max-width:16ch}
.diff-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(40px,6vw,110px);align-items:center;margin-top:clamp(44px,5vw,80px)}
.diff-photo{position:relative}
.diff-photo img{width:100%;aspect-ratio:4/5;object-fit:cover}
.diff-photo figcaption{
  position:absolute;left:0;bottom:-14px;background:var(--gold);color:var(--ink);
  font-size:11px;letter-spacing:.26em;text-transform:uppercase;padding:12px 18px 10px;
}
.therm{list-style:none;counter-reset:none}
.therm li{
  position:relative;padding:26px 0 26px 64px;
  border-bottom:1px solid rgba(247,243,235,.14);
}
.therm li:first-child{border-top:1px solid rgba(247,243,235,.14)}
.therm .tdeg{
  position:absolute;left:0;top:26px;
  font-family:var(--serif);font-size:24px;color:var(--gold);
}
.therm h3{font-family:var(--serif);font-weight:380;font-size:21px;margin-bottom:6px}
.therm p{color:rgba(247,243,235,.72);font-size:15px;max-width:52ch}
/* animated temperature line */
.tline{position:relative;height:2px;background:rgba(247,243,235,.15);margin:clamp(44px,5vw,80px) 0 0;overflow:visible}
.tline .fill{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--gold);transition:width 2.4s var(--ease)}
.tline.in .fill{width:100%}
.tline .mark{position:absolute;top:-7px;transform:translateX(-50%);font-size:10.5px;letter-spacing:.22em;color:rgba(247,243,235,.65);text-transform:uppercase}
.tline .mark::before{content:"";display:block;width:1px;height:8px;background:var(--gold);margin:0 auto 6px}

/* ============================================================
   BRAND STORY
   ============================================================ */
.about-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,50px);align-items:center}
.about-copy{grid-column:1/6}
.about-copy h2{margin:22px 0 26px}
.about-copy p{color:var(--ink-soft);margin-bottom:18px;max-width:48ch}
.about-facts{display:flex;gap:clamp(26px,3vw,56px);margin-top:36px}
.fact .n{font-family:var(--serif);font-size:clamp(34px,3.4vw,52px);line-height:1;display:block}
.fact .n .deg{color:var(--bronze)}
.fact .l{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--bronze);display:block;margin-top:10px}
.about-imgs{grid-column:6/13;display:grid;grid-template-columns:1fr .72fr;gap:clamp(14px,1.6vw,24px);align-items:start}
.about-imgs .b{margin-top:clamp(34px,5vw,84px)}

/* ============================================================
   EDITORIAL — horizontal scroll journal
   ============================================================ */
.journal{overflow:hidden}
.j-track{
  display:flex;gap:clamp(18px,2.4vw,36px);
  overflow-x:auto;scroll-snap-type:x mandatory;
  padding:6px var(--gutter) 26px;
  scrollbar-width:thin;scrollbar-color:var(--bronze) transparent;
}
.j-card{flex:0 0 clamp(260px,26vw,380px);scroll-snap-align:start}
.j-card .ir{aspect-ratio:4/5;background:var(--linen)}
.j-card img{width:100%;height:100%;object-fit:cover}
.j-card h3{font-family:var(--serif);font-weight:380;font-size:21px;margin:16px 0 6px;line-height:1.3}
.j-card p{font-size:14px;color:var(--ink-soft)}
.j-card .cat{font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--bronze)}

/* ============================================================
   REVIEWS
   ============================================================ */
.rev-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,44px);align-items:start}
.rev-quote{grid-column:1/8}
.rev-quote blockquote{
  font-family:var(--serif);font-weight:340;
  font-size:clamp(24px,3vw,40px);line-height:1.28;letter-spacing:-.01em;
  max-width:22ch;
}
.rev-quote blockquote .deg{color:var(--bronze)}
.rev-attr{margin-top:28px;display:flex;align-items:center;gap:16px}
.rev-attr .stars{color:var(--bronze);letter-spacing:4px;font-size:14px}
.rev-attr .who{font-size:12px;letter-spacing:.22em;text-transform:uppercase}
.rev-side{grid-column:8/13;display:flex;flex-direction:column;gap:26px}
.rev-mini{border-top:1px solid var(--hairline);padding-top:20px}
.rev-mini p{font-size:15px;color:var(--ink-soft);margin:8px 0 10px}
.rev-nav{display:flex;gap:12px;margin-top:36px}
.rev-nav button{
  width:46px;height:46px;border:1px solid var(--hairline);display:grid;place-items:center;
  transition:.3s;font-size:16px;
}
.rev-nav button:hover{border-color:var(--ink);background:var(--ink);color:var(--ivory)}

/* ============================================================
   SOCIAL / SHOP THE LOOK
   ============================================================ */
.social-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.4vw,20px)}
.social-grid .scard:nth-child(even){transform:translateY(clamp(14px,2vw,34px))}
.scard{position:relative;overflow:hidden;aspect-ratio:3/4;display:block;background:var(--linen)}
.scard img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.scard:hover img{transform:scale(1.05)}
.scard .look{
  position:absolute;left:12px;bottom:12px;z-index:2;
  background:rgba(247,243,235,.92);color:var(--ink);
  font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;
  padding:10px 14px 8px;display:inline-flex;gap:8px;align-items:center;
  transform:translateY(8px);opacity:0;transition:.4s var(--ease);
}
.scard:hover .look{transform:none;opacity:1}
.scard .hnd{position:absolute;top:12px;left:12px;color:var(--ivory);font-size:11px;letter-spacing:.2em;text-shadow:0 1px 10px rgba(0,0,0,.5)}

/* ============================================================
   NEWSLETTER
   ============================================================ */
.news{background:var(--linen);text-align:center}
.news h2{margin:20px auto 16px}
.news p{max-width:52ch;margin:0 auto 38px;color:var(--ink-soft)}
.news-form{display:flex;max-width:520px;margin:0 auto;border-bottom:1px solid var(--ink)}
.news-form input{
  flex:1;background:none;border:0;font-family:var(--sans);font-weight:300;
  font-size:15px;padding:16px 4px;color:var(--ink);
}
.news-form input::placeholder{color:var(--ink-soft);opacity:.65;letter-spacing:.06em}
.news-form button{font-size:12px;letter-spacing:.26em;text-transform:uppercase;padding:0 6px;transition:color .3s}
.news-form button:hover{color:var(--bronze)}
.news .fine{font-size:11.5px;color:var(--ink-soft);margin-top:18px;letter-spacing:.04em}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--ink);color:rgba(247,243,235,.82);padding:var(--section) 0 0}
.f-grid{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:clamp(30px,4vw,70px)}
.footer .f-brand img{width:auto !important;height:38px !important;max-width:220px !important;object-fit:contain;margin-bottom:22px}
.f-brand p{font-size:14px;max-width:34ch;color:rgba(247,243,235,.6)}
.f-col h4{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:400;margin-bottom:20px}
.f-col a{display:block;font-size:14.5px;padding:6px 0;color:rgba(247,243,235,.78);transition:color .25s}
.f-col a:hover{color:var(--gold)}
.f-bottom{
  border-top:1px solid rgba(247,243,235,.14);margin-top:clamp(44px,5vw,80px);
  padding:26px var(--gutter);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center;
  font-size:12px;letter-spacing:.08em;color:rgba(247,243,235,.5);
}
.f-pay{display:flex;gap:10px}
.f-pay span{border:1px solid rgba(247,243,235,.25);font-size:10px;letter-spacing:.14em;padding:6px 10px 4px;text-transform:uppercase}
.f-social{display:flex;gap:18px;font-size:11px;letter-spacing:.24em;text-transform:uppercase}
.f-region{background:none;border:1px solid rgba(247,243,235,.25);color:inherit;font-size:11px;letter-spacing:.16em;padding:8px 12px 6px;text-transform:uppercase}

/* ============================================================
   CART DRAWER
   ============================================================ */
.scrim{position:fixed;inset:0;background:rgba(23,19,72,.4);z-index:90;opacity:0;visibility:hidden;transition:.4s}
.scrim.open{opacity:1;visibility:visible}
.drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(440px,94vw);z-index:95;
  background:var(--ivory);transform:translateX(102%);transition:transform .5s var(--ease);
  display:flex;flex-direction:column;box-shadow:-20px 0 60px -30px rgba(23,19,72,.4);
}
.drawer.open{transform:none}
.d-head{display:flex;justify-content:space-between;align-items:center;padding:24px 28px;border-bottom:1px solid var(--hairline)}
.d-head h3{font-family:var(--serif);font-weight:380;font-size:22px}
.d-ship{padding:16px 28px 0;font-size:12px;letter-spacing:.06em;color:var(--ink-soft)}
.d-bar{height:2px;background:var(--linen);margin-top:10px;position:relative}
.d-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--bronze);transition:width .6s var(--ease)}
.d-items{flex:1;overflow-y:auto;padding:10px 28px}
.d-item{display:grid;grid-template-columns:86px 1fr auto;gap:16px;padding:20px 0;border-bottom:1px solid var(--hairline)}
.d-item img{width:86px;height:104px;object-fit:cover;background:var(--parchment)}
.d-item h4{font-family:var(--serif);font-weight:380;font-size:16px;line-height:1.3}
.d-item .var{font-size:11.5px;color:var(--ink-soft);letter-spacing:.06em;margin-top:4px}
.qty{display:inline-flex;border:1px solid var(--hairline);margin-top:12px}
.qty button{width:30px;height:30px;font-size:14px}
.qty span{width:34px;display:grid;place-items:center;font-size:13px}
.d-item .rm{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--hairline);align-self:start;margin-top:4px}
.d-item .pr{font-size:14px;text-align:right}
.d-empty{padding:60px 0;text-align:center;color:var(--ink-soft)}
.d-empty .deg{font-family:var(--serif);font-size:60px;color:var(--linen);display:block;margin-bottom:12px}
.d-foot{border-top:1px solid var(--hairline);padding:22px 28px 28px}
.d-total{display:flex;justify-content:space-between;font-size:15px;letter-spacing:.08em;margin-bottom:18px}
.d-foot .btn{width:100%;justify-content:center}
.d-note{font-size:11px;color:var(--ink-soft);text-align:center;margin-top:12px;letter-spacing:.04em}

/* toast */
.toast{
  position:fixed;left:50%;bottom:30px;transform:translate(-50%,80px);z-index:99;
  background:var(--ink);color:var(--ivory);font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  padding:15px 26px 13px;opacity:0;transition:.45s var(--ease);
}
.toast.show{transform:translate(-50%,0);opacity:1}

/* ============================================================
   COLLECTION PAGE
   ============================================================ */
.crumbs{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(247,243,235,.75);margin-bottom:18px}
.crumbs a:hover{color:var(--gold)}
.toolbar{
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  padding:22px 0;border-bottom:1px solid var(--hairline);
}
.filters{display:flex;gap:10px;flex-wrap:wrap}
.chip{
  font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
  border:1px solid var(--hairline);padding:11px 18px 9px;transition:.3s;
}
.chip:hover{border-color:var(--ink)}
.chip.on{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.sort{display:flex;align-items:center;gap:12px;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase}
.sort select{
  font-family:var(--sans);font-size:12px;letter-spacing:.1em;background:none;
  border:0;border-bottom:1px solid var(--ink);padding:6px 2px;color:var(--ink);
}
.coll-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(26px,3vw,48px) clamp(18px,2vw,32px);padding-top:clamp(36px,4vw,60px)}
.count-note{font-size:12px;letter-spacing:.12em;color:var(--ink-soft)}

/* ============================================================
   PRODUCT PAGE
   ============================================================ */
.pdp{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(30px,4.5vw,90px);padding-top:clamp(30px,3.5vw,60px)}
.pdp-gallery{display:flex;gap:14px}
.pdp-thumbs{display:flex;flex-direction:column;gap:12px;width:78px;flex-shrink:0}
.pdp-thumbs button{border:1px solid transparent;transition:border .3s;padding:0;background:var(--parchment)}
.pdp-thumbs button.on{border-color:var(--ink)}
.pdp-thumbs img{width:100%;aspect-ratio:4/5;object-fit:cover}
.pdp-main{flex:1;position:relative;overflow:hidden;background:var(--parchment);cursor:zoom-in}
.pdp-main img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .5s var(--ease)}
.pdp-main.zoom{cursor:zoom-out}
.pdp-main.zoom img{transform:scale(1.9)}
.pdp-info .crumbs2{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:16px}
.pdp-info h1{font-family:var(--serif);font-weight:360;font-size:clamp(30px,3.4vw,44px);line-height:1.08;letter-spacing:-.01em}
.pdp-rev{display:flex;gap:12px;align-items:center;margin:16px 0;font-size:12px;letter-spacing:.1em}
.pdp-rev .stars{color:var(--bronze);letter-spacing:3px}
.pdp-price{font-size:21px;letter-spacing:.06em;margin:6px 0 22px}
.pdp-price .was{text-decoration:line-through;opacity:.5;font-size:16px;margin-right:10px}
.pdp-desc{color:var(--ink-soft);max-width:52ch;margin-bottom:26px}
.opt-label{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--bronze);margin:22px 0 12px;display:flex;justify-content:space-between}
.opt-label b{color:var(--ink);font-weight:400;letter-spacing:.1em}
.pdp .sws{display:flex;gap:12px}
.pdp .sw{width:34px;height:34px}
.varbtns{display:flex;gap:10px;flex-wrap:wrap}
.varbtn{border:1px solid var(--hairline);font-size:12px;letter-spacing:.14em;padding:13px 20px 11px;text-transform:uppercase;transition:.3s}
.varbtn.on{border-color:var(--ink);background:var(--ink);color:var(--ivory)}
.atc-row{display:flex;gap:14px;margin:32px 0 14px}
.atc-row .qty{margin:0;height:56px;align-items:center}
.atc-row .qty button{height:100%}
.atc-row .btn{flex:1;justify-content:center}
.express{width:100%;text-align:center;border:1px solid var(--hairline);padding:17px 0 15px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;transition:.3s}
.express:hover{border-color:var(--ink)}
.pdp-meta{display:flex;gap:26px;margin:22px 0 8px;font-size:12px;letter-spacing:.08em;color:var(--ink-soft);flex-wrap:wrap}
.pdp-meta span::before{content:"— ";color:var(--bronze)}
.acc{border-top:1px solid var(--hairline);margin-top:26px}
.acc details{border-bottom:1px solid var(--hairline)}
.acc summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;
  padding:20px 2px;font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;
}
.acc summary::after{content:"+";font-family:var(--serif);font-size:20px;transition:transform .3s}
.acc details[open] summary::after{transform:rotate(45deg)}
.acc .body{padding:0 2px 22px;color:var(--ink-soft);font-size:15px;max-width:60ch}
.acc .body ul{padding-left:0}
.acc .body li{padding:5px 0;border:0}
.acc .body li::before{content:"°  ";color:var(--bronze)}
/* sticky ATC (mobile) */
.sticky-atc{
  position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--ivory);
  border-top:1px solid var(--hairline);padding:12px var(--gutter);
  display:none;gap:14px;align-items:center;
  transform:translateY(110%);transition:transform .4s var(--ease);
}
.sticky-atc.show{transform:none}
.sticky-atc .t{font-family:var(--serif);font-size:15px;flex:1;line-height:1.2}
.sticky-atc .btn{padding:14px 22px 12px;font-size:11px}
.pairs{margin-top:var(--section)}
.pairs h2{margin-bottom:clamp(30px,4vw,54px)}

/* ============================================================
   SALE & LAST CHANCE — promotional components
   Same system, quieter dialect: bronze accents, no red, no noise
   ============================================================ */

/* dynamic grids: no editorial stagger, no reveal-hiding */
.p-grid.nostagger .pcard{transform:none!important;opacity:1!important}

/* nav accent — refined, not loud */
.sale-link.hot{color:var(--bronze)}
.sale-link.hot::after{background:var(--bronze);right:0;opacity:.55}
.mnav a.big.sale-link.hot{color:var(--bronze)}

/* badges: sale = ink/gold (existing), last chance = bronze outline */
.badge.last{background:transparent;border:1px solid var(--bronze);color:var(--bronze)}
.badge + .badge{top:44px}
.pinfo .ends{font-size:11px;letter-spacing:.08em;color:var(--bronze);margin-top:8px}
.savetag{font-style:normal;color:var(--bronze)}

/* sale page hero */
.sale-hero{background:var(--parchment);position:relative;overflow:hidden;padding:clamp(70px,9vw,130px) 0 clamp(56px,7vw,100px)}
.sale-hero .hero-deg{color:transparent;-webkit-text-stroke:1px rgba(23,19,72,.1);top:-10vw}
.sale-hero h1{max-width:12ch}
.sale-hero .lede{margin-top:24px}

/* offer cards (Current Offers) */
.offers{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,30px)}
.offer{
  border:1px solid var(--hairline);padding:clamp(24px,2.6vw,40px);
  background:var(--white);position:relative;
}
.offer::before{content:"°";font-family:var(--serif);font-size:34px;color:var(--bronze);line-height:1;display:block;margin-bottom:14px}
.offer h3{font-family:var(--serif);font-weight:380;font-size:21px;margin-bottom:10px}
.offer p{font-size:14.5px;color:var(--ink-soft)}
.offer .tag{
  display:inline-block;margin-top:18px;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;
  border-bottom:1px solid var(--bronze);padding-bottom:4px;color:var(--bronze);
}
.offer .until{font-size:11px;letter-spacing:.08em;color:var(--ink-soft);margin-top:10px}

/* sale section header w/ auto-hide sections */
.sale-sec{margin-top:var(--section)}
.sale-sec[hidden]{display:none}
.sale-sec .sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(28px,3.6vw,52px)}
.sale-sec .sec-head p{color:var(--ink-soft);max-width:52ch}

/* bundle feature */
.bundle{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(26px,4vw,70px);align-items:center;background:var(--parchment);padding:clamp(26px,3.4vw,56px)}
.bundle .ir{aspect-ratio:5/4}
.bundle img{width:100%;height:100%;object-fit:cover}
.bundle h3{font-family:var(--serif);font-weight:360;font-size:clamp(24px,2.6vw,34px);line-height:1.15;margin:14px 0 16px}
.bundle p{color:var(--ink-soft);max-width:46ch;margin-bottom:14px}
.bundle .terms{font-size:11.5px;letter-spacing:.06em;color:var(--ink-soft)}

/* PDP promo box — genuine offers only */
.pdp-promo{
  border:1px solid var(--bronze);background:rgba(194,162,76,.07);
  padding:18px 20px;margin:24px 0 4px;
}
.pdp-promo b{font-weight:500;letter-spacing:.08em}
.pdp-promo p{font-size:13.5px;color:var(--ink-soft);margin-top:6px}
.pdp-promo .pt{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--bronze)}

/* cart savings + coupon nudge */
.d-total.sub{font-size:13px;color:var(--ink-soft);margin-bottom:8px}
.d-total.sub.save span:last-child{color:var(--bronze)}
.d-coupon{
  margin:0 28px 14px;border:1px dashed var(--bronze);padding:12px 16px 10px;
  font-size:12px;letter-spacing:.05em;color:var(--ink-soft);
}
.d-coupon b{color:var(--ink);letter-spacing:.14em}

/* homepage "A Special SACHI Find" */
.find{background:var(--linen);overflow:hidden}
.find-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(30px,4.5vw,80px);align-items:center}
.find-copy h2{margin:20px 0 20px}
.find-copy p{color:var(--ink-soft);max-width:44ch;margin-bottom:32px}
.find-img{position:relative}
.find-img .ir{aspect-ratio:4/3}
.find-img img{width:100%;height:100%;object-fit:cover}
.find-img .stamp{
  position:absolute;top:-26px;right:22px;width:92px;height:92px;border-radius:50%;
  background:var(--ink);color:var(--gold);display:grid;place-items:center;text-align:center;
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;line-height:1.5;
  transform:rotate(8deg);padding:10px;
}
.find-img .stamp .deg{font-family:var(--serif);font-size:22px;display:block}

@media (max-width:1080px){
  .offers{grid-template-columns:1fr}
  .bundle{grid-template-columns:1fr}
  .find-grid{grid-template-columns:1fr}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  .p-grid{grid-template-columns:repeat(2,1fr)}
  .p-grid .pcard:nth-child(2),.p-grid .pcard:nth-child(4){transform:none}
  .story-imgs{grid-column:1/13;padding-bottom:14vw}
  .story-copy{grid-column:1/13}
  .about-copy{grid-column:1/13}
  .about-imgs{grid-column:1/13}
  .rev-quote{grid-column:1/13}
  .rev-side{grid-column:1/13}
  .diff-grid{grid-template-columns:1fr}
  .coll-grid{grid-template-columns:repeat(2,1fr)}
  .pdp{grid-template-columns:1fr}
  .f-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .nav-links{display:none}
  .burger{display:flex}
  .nav{grid-template-columns:auto 1fr auto;height:64px}
  .logo{justify-self:start}
  .tool .lbl{display:none}
  .life-grid{grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(110px,22vw,180px)}
  .l1{grid-column:1/7;grid-row:span 2}
  .l2{grid-column:1/4}.l3{grid-column:4/7}
  .l4{grid-column:1/4}.l5{grid-column:4/7}
  .l6{grid-column:1/7}
  .social-grid{grid-template-columns:repeat(2,1fr)}
  .sticky-atc{display:flex}
  .hero-scroll{display:none}
}
@media (max-width:600px){
  .p-grid{grid-template-columns:1fr 1fr;gap:26px 12px}
  .coll-grid{grid-template-columns:1fr 1fr;gap:26px 12px}
  .pinfo h3{font-size:16px}
  .qadd{font-size:10px;padding:13px 0 11px}
  .f-grid{grid-template-columns:1fr}
  .atc-row{flex-wrap:wrap}
  .pdp-thumbs{width:56px}
  .about-imgs{grid-template-columns:1fr}
  .about-imgs .b{margin-top:0}
}

/* ============================================================
   WOOCOMMERCE ADAPTER — maps Woo's native markup onto the
   SACHI system. No plugin templates were harmed.
   ============================================================ */

/* nav menus (classes added via nav_menu filters) */
.nav-links li{position:relative}
.mnav li{list-style:none}

/* price HTML: <del> regular / <ins> sale */
.price del{color:var(--ink-soft);opacity:.6;margin-right:8px;text-decoration:line-through}
.price ins{text-decoration:none}
.pdp-price del{font-size:16px;opacity:.5;margin-right:10px}
.pdp-price ins{text-decoration:none}

/* store notices / messages */
.woocommerce-message,.woocommerce-info,.woocommerce-error{
  list-style:none;border:1px solid var(--hairline);border-left:3px solid var(--bronze);
  background:var(--white);padding:16px 20px;margin:0 0 26px;font-size:14px;
}
.woocommerce-error{border-left-color:#A0522D}
.woocommerce-message a.button,.woocommerce-info a.button{float:right;font-size:11px;letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid var(--bronze)}

/* buttons — Woo default classes → SACHI buttons */
.woocommerce #respond input#submit,
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
button.single_add_to_cart_button,
.wc-block-components-button,
.woocommerce-cart .checkout-button{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--sans);font-weight:400;font-size:13px;letter-spacing:.24em;text-transform:uppercase;
  padding:18px 32px 16px;border:1px solid var(--ink);background:var(--ink);color:var(--ivory);
  border-radius:0;cursor:pointer;transition:background .35s var(--ease);
}
.woocommerce a.button:hover,button.single_add_to_cart_button:hover{background:var(--ink-soft);color:var(--ivory)}
button.single_add_to_cart_button{width:100%;justify-content:center}

/* quantity input */
.quantity{display:inline-flex;border:1px solid var(--hairline)}
.quantity .qty{width:64px;height:54px;border:0;background:none;text-align:center;font-family:var(--sans);font-size:14px;color:var(--ink)}

/* single product: add-to-cart region */
.pdp-atc form.cart{display:flex;gap:14px;flex-wrap:wrap;align-items:stretch;margin:26px 0 10px}
.pdp-atc form.cart .quantity{height:56px;align-items:center}
.pdp-atc form.cart.variations_form{display:block}
.pdp-atc .variations{width:100%;margin-bottom:18px;border-collapse:collapse}
.pdp-atc .variations th{
  text-align:left;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--bronze);
  font-weight:400;padding:10px 0 6px;
}
.pdp-atc .variations td{padding:2px 0 12px}
.pdp-atc select{
  font-family:var(--sans);font-size:13px;letter-spacing:.08em;color:var(--ink);
  background:var(--white);border:1px solid var(--hairline);padding:12px 14px;min-width:220px;
}
.pdp-atc .reset_variations{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.pdp-atc .woocommerce-variation-price{margin:8px 0 14px;font-size:18px}
.pdp-atc .single_variation_wrap .woocommerce-variation-add-to-cart{display:flex;gap:14px}
.pdp-atc .stock.in-stock{color:var(--sage);font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.pdp-atc .stock.out-of-stock{color:#A0522D;font-size:12px;letter-spacing:.16em;text-transform:uppercase}

/* single product: gallery (Woo flexslider markup) */
.pdp-gallery-wrap{position:relative}
.woocommerce-product-gallery{position:relative}
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper{background:var(--parchment)}
.woocommerce-product-gallery img{width:100%;height:auto}
.woocommerce-product-gallery .flex-control-thumbs{
  display:flex;gap:12px;margin-top:12px;padding:0;list-style:none;flex-wrap:wrap;
}
.woocommerce-product-gallery .flex-control-thumbs li{width:78px}
.woocommerce-product-gallery .flex-control-thumbs img{
  border:1px solid transparent;cursor:pointer;aspect-ratio:4/5;object-fit:cover;opacity:.8;transition:.3s;
}
.woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs img:hover{border-color:var(--ink);opacity:1}
.woocommerce-product-gallery__trigger{
  position:absolute;top:14px;right:14px;z-index:5;width:38px;height:38px;border-radius:50%;
  background:rgba(247,243,235,.9);display:grid;place-items:center;text-indent:-9999px;
}
.woocommerce-product-gallery__trigger::after{content:"⌕";text-indent:0;font-size:20px;color:var(--ink)}

/* star ratings */
.star-rating{color:var(--bronze);letter-spacing:2px}
.woocommerce-review-link{font-size:12px;letter-spacing:.1em;border-bottom:1px solid var(--hairline)}

/* catalog ordering select */
.woocommerce-ordering select{
  font-family:var(--sans);font-size:12px;letter-spacing:.1em;background:none;
  border:0;border-bottom:1px solid var(--ink);padding:6px 2px;color:var(--ink);
}

/* archive grid: Woo ul.products → SACHI grid */
ul.products{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(26px,3vw,48px) clamp(18px,2vw,32px);padding:clamp(36px,4vw,60px) 0 0;margin:0;list-style:none}
ul.products li.product{list-style:none}
@media (max-width:1080px){ul.products{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){ul.products{grid-template-columns:1fr 1fr;gap:26px 12px}}

/* pagination */
.woocommerce-pagination{margin-top:clamp(40px,5vw,70px);text-align:center}
.woocommerce-pagination ul{display:inline-flex;gap:10px;list-style:none;padding:0}
.woocommerce-pagination a,.woocommerce-pagination span{
  display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--hairline);
  font-size:13px;letter-spacing:.1em;transition:.3s;
}
.woocommerce-pagination span.current,.woocommerce-pagination a:hover{background:var(--ink);color:var(--ivory);border-color:var(--ink)}

/* drawer inner (fragment-replaced wrapper) */
#drawerInner{display:flex;flex-direction:column;height:100%;min-height:0}
#drawerInner .d-items{min-height:0}
.d-item img{width:86px;height:104px;object-fit:cover;background:var(--parchment)}
.d-item .var dl,.d-item .var dd,.d-item .var dt{display:inline;margin:0;font-size:11.5px}

/* cart / checkout / account pages — readable defaults on the system */
.woocommerce table.shop_table{width:100%;border-collapse:collapse;border:1px solid var(--hairline)}
.woocommerce table.shop_table th,.woocommerce table.shop_table td{
  padding:16px;border-bottom:1px solid var(--hairline);text-align:left;font-size:14.5px;
}
.woocommerce table.shop_table th{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--bronze);font-weight:400}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  width:100%;padding:14px;border:1px solid var(--hairline);background:var(--white);
  font-family:var(--sans);font-size:14px;color:var(--ink);
}
.woocommerce form .form-row label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
#add_payment_method #payment,.woocommerce-cart #payment,.woocommerce-checkout #payment{background:var(--parchment);border-radius:0}

/* comments/reviews on product page */
#reviews #comments ol.commentlist{list-style:none;padding:0}
#reviews li.review{border-top:1px solid var(--hairline);padding:22px 0;display:flex;gap:18px}
#reviews li.review img.avatar{width:44px;height:44px;border-radius:50%}
#reviews .comment-form textarea,#reviews .comment-form input{border:1px solid var(--hairline);background:var(--white);padding:12px;width:100%;font-family:var(--sans)}
#reviews .comment-form label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}

/* screen reader helper (WP standard) */
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}


/* ============================================================
   ADDITIONS (introduced 1.0.1; current version 1.0.3)
   ============================================================ */

/* semantic menu lists (mobile + footer) — inherit prior layout */
.mnav-list{list-style:none;margin:0;padding:0;display:contents}
.mnav-list li{list-style:none}
.f-menu{list-style:none;margin:0;padding:0}
.f-menu li{list-style:none}

/* header product search panel */
.search-panel{
  position:fixed;left:0;right:0;top:0;z-index:70;background:var(--ivory);
  border-bottom:1px solid var(--hairline);
  transform:translateY(-110%);transition:transform .45s var(--ease);
  padding:112px 0 34px;visibility:hidden;
}
.search-panel.open{transform:translateY(0);visibility:visible}
.search-form{display:flex;gap:0;border-bottom:1px solid var(--ink);max-width:760px;margin:0 auto}
.search-form input[type=search]{
  flex:1;border:0;background:none;padding:16px 4px;font-family:var(--serif);
  font-size:clamp(19px,2.4vw,26px);color:var(--ink);
}
.search-form input[type=search]::placeholder{color:var(--ink-soft);opacity:.55}
.search-form input[type=search]:focus{outline:none}
.search-form button{
  border:0;background:none;font-family:var(--sans);font-size:12px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--ink);cursor:pointer;padding:0 8px;
}
.search-form button:hover{color:var(--bronze)}

/* newsletter admin-only setup notice + provider embeds */
.news-admin-note{
  max-width:520px;margin:34px auto 0;border:1px dashed var(--bronze);
  padding:16px 20px;font-size:13px;color:var(--ink-soft);
}
.news-embed form{display:flex;gap:0;border-bottom:1px solid var(--ink)}
.news-embed input[type=email],.news-embed input[type=text]{
  flex:1;border:0;background:none;padding:16px 4px;font-family:var(--sans);font-size:15px;color:var(--ink)
}
.news-embed button,.news-embed input[type=submit]{
  border:0;background:none;font-family:var(--sans);font-size:12px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--ink);cursor:pointer;
}

/* modal aria states: hidden panels are untabbable until opened */
.drawer[aria-hidden="true"],.mnav[aria-hidden="true"]{visibility:hidden;transition:transform .55s var(--ease),visibility 0s .55s}
.drawer.open,.mnav.open{visibility:visible;transition:transform .55s var(--ease)}

/* ============================================================
   COLLECTIONS PAGE (v1.0.14) — centered editorial category grid,
   fully scoped to .sachi-collections. Desktop 3 columns, tablet 2,
   mobile 1. Frames identical: square, white, uncropped.
   ============================================================ */
.sachi-collections{
  max-width:1380px;
  width:calc(100% - 80px);
  margin-left:auto;
  margin-right:auto;
  padding-top:70px;
  padding-bottom:var(--section);
}
.sachi-collections h1{margin:0}

.sachi-collections ul.products{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  column-gap:36px !important;
  row-gap:50px !important;
  width:100%;
  max-width:1180px;
  padding:0 !important;
  margin:36px auto 0 !important;   /* balanced title-to-grid gap */
  list-style:none;
}
.sachi-collections ul.products::before,
.sachi-collections ul.products::after{content:none}
.sachi-collections ul.products li.product-category{
  width:100% !important;
  margin:0 !important;
  float:none !important;
  text-align:center;
}
.sachi-collections ul.products li.product-category a{display:block}

/* identical frames: square, white, 20px inner padding, no crop */
.sachi-collections ul.products li.product-category img{
  width:100%;
  aspect-ratio:1 / 1;
  object-fit:contain;
  background:#fff;
  padding:20px;
  box-sizing:border-box;
  height:auto;
  display:block;
  margin:0;
  transition:transform .5s var(--ease);
}
@media (hover:hover){
  .sachi-collections ul.products li.product-category a:hover img{
    transform:scale(1.02);   /* refined — no shadow, no color shift */
  }
}

/* centered serif titles, close beneath the frame */
.sachi-collections ul.products li.product-category .woocommerce-loop-category__title,
.sachi-collections .woocommerce-loop-category__title{
  font-family:var(--serif);
  font-weight:380;
  font-size:clamp(19px,1.45vw,23px) !important; /* beats Woo loop-title sizing in shortcode markup */
  color:var(--ink);
  text-align:center;
  margin:14px 0 0;
  text-wrap:balance;   /* Shopping & Beach Totes wraps cleanly */
}
/* WooCommerce counts hidden visually only — data untouched */
.sachi-collections .woocommerce-loop-category__title .count,
.sachi-collections mark.count{display:none}

/* tablet: two equal columns */
@media (min-width:641px) and (max-width:1024px){
  .sachi-collections ul.products{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    column-gap:28px !important;
    row-gap:44px !important;
  }
}
/* mobile: one column */
@media (max-width:640px){
  .sachi-collections ul.products{
    grid-template-columns:1fr !important;
    row-gap:40px !important;
  }
}

/* ============================================================
   SHOP CATEGORY NAV (v1.0.6) — chips keep their existing style;
   desktop: one row when space permits; tablet: neat wrapping
   (existing flex-wrap); mobile: horizontal scroll, labels intact.
   ============================================================ */
.filters .chip{white-space:nowrap;flex:0 0 auto;display:inline-block}
@media (max-width:600px){
  .toolbar .filters{
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding-right:var(--gutter); /* last chip scrolls fully into view */
    padding-bottom:6px;
  }
  .toolbar .filters::-webkit-scrollbar{display:none}
}


/* ============================================================
   v1.0.8 — WooCommerce clearfix vs CSS Grid (Shop + category
   archives). Woo's ul.products::before/::after clearfix
   (content:" "; display:table) becomes a phantom grid item and
   blanks the first column. Scoped to the shop and product-category
   bodies; the Collections page already neutralizes its own
   pseudo-elements inside .sachi-collections.
   ============================================================ */
body.woocommerce-shop ul.products::before,
body.woocommerce-shop ul.products::after,
body.tax-product_cat ul.products::before,
body.tax-product_cat ul.products::after{
  content:none !important;
  display:none !important;
}
body.woocommerce-shop ul.products li.product,
body.tax-product_cat ul.products li.product,
body.woocommerce-shop ul.products article.product,
body.tax-product_cat ul.products article.product{
  float:none !important;
  clear:none !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
}


/* ============================================================
   v1.0.9 — unified Shop/category archive header. One title, one
   description, centered, wrapping cleanly at any title length.
   ============================================================ */
.sachi-archive-head{
  width:calc(100% - 64px);
  max-width:1180px;
  margin:0 auto;
  /* v1.0.11 tightened: header→title ≈52px desktop / 34px mobile,
     head→toolbar ≈18px desktop / 14px mobile */
  padding:clamp(34px,3.4vw,52px) 0 clamp(14px,1.2vw,18px);
  text-align:center;
}
.sachi-archive-title{
  max-width:1180px;
  margin:0 auto;
  color:var(--ink);
  font-family:var(--serif);
  font-size:clamp(58px,7vw,104px);
  font-weight:360;
  line-height:0.98;
  letter-spacing:-.035em;
  text-align:center;
  text-wrap:balance;          /* long titles (Shopping & Beach Totes)
                                 wrap as even lines */
  overflow-wrap:break-word;
}
.sachi-archive-description{
  width:100%;
  max-width:820px;
  margin:clamp(10px,0.85vw,13px) auto 0; /* v1.0.11: title→description ≈13px */
  color:var(--ink-soft);
  font-family:var(--sans);
  font-size:clamp(15px,1.2vw,18px);
  line-height:1.6;
  text-align:center;
}
.sachi-archive-description p{margin:0 0 10px}
.sachi-archive-description p:last-child{margin-bottom:0}


/* ============================================================
   v1.0.11 — archive vertical rhythm (Shop + product-category
   archives only; Collections, Sale and product pages keep their
   own spacing). Mobile retains comfortable spacing; the full
   reduction applies from 1024px up.
   ============================================================ */
body.woocommerce-shop ul.products,
body.tax-product_cat ul.products{
  padding-top:clamp(24px,2.6vw,42px);
}

/* WooCommerce renders its default catalog-ordering form between the
   toolbar and the grid — a duplicate of the sorting control already
   inside the toolbar, costing ~46px. Hidden here (scoped); the
   toolbar's own sorting control is nested and unaffected, and
   product-tag/brand archives keep their default form. */
body.woocommerce-shop .toolbar ~ form.woocommerce-ordering,
body.tax-product_cat .toolbar ~ form.woocommerce-ordering{
  display:none;
}

@media (min-width:1024px){
  body.woocommerce-shop ul.products,
  body.tax-product_cat ul.products{
    padding-top:19px; /* divider → first card ≈19px */
  }
  body.woocommerce-shop .toolbar,
  body.tax-product_cat .toolbar{
    padding-bottom:18px; /* buttons → divider ≈19px incl. border */
  }
}

/* ============================================================
   v1.0.12 — compact desktop archive presentation.
   Reduces the archive title scale and vertical rhythm, then makes
   archive product media frames 10% shorter without cropping products.
   Scoped to Shop and product-category archives at desktop widths.
   ============================================================ */
@media (min-width:1024px){
  body.woocommerce-shop .sachi-archive-head,
  body.tax-product_cat .sachi-archive-head{
    padding:28px 0 10px;
  }

  body.woocommerce-shop .sachi-archive-title,
  body.tax-product_cat .sachi-archive-title{
    font-size:clamp(58px,5.7vw,86px);
    line-height:.95;
  }

  body.woocommerce-shop .sachi-archive-description,
  body.tax-product_cat .sachi-archive-description{
    margin-top:8px;
    line-height:1.5;
  }

  body.woocommerce-shop .toolbar,
  body.tax-product_cat .toolbar{
    padding-top:12px;
    padding-bottom:11px;
  }

  body.woocommerce-shop ul.products,
  body.tax-product_cat ul.products{
    padding-top:10px;
  }

  body.woocommerce-shop .pmedia,
  body.tax-product_cat .pmedia{
    aspect-ratio:8 / 9;
  }

  body.woocommerce-shop .pmedia img,
  body.tax-product_cat .pmedia img{
    object-fit:contain;
  }
}

/* ============================================================
   v1.0.13 — final archive fit + Collections heading alignment.
   Makes archive media frames 5% shorter than v1.0.12 so prices
   sit higher in a 900px viewport, and gives Collections the same
   centered title scale and top rhythm as Shop/category archives.
   ============================================================ */
.sachi-collections{
  padding-top:clamp(34px,3.4vw,52px);
}
.sachi-collections h1.display{
  max-width:1180px;
  margin:0 auto;
  color:var(--ink);
  font-family:var(--serif);
  font-size:clamp(58px,5.7vw,86px);
  font-weight:360;
  line-height:.95;
  letter-spacing:-.035em;
  text-align:center;
  text-wrap:balance;
}

@media (min-width:1024px){
  body.woocommerce-shop .pmedia,
  body.tax-product_cat .pmedia{
    aspect-ratio:15 / 16;
  }

  .sachi-collections{
    padding-top:28px;
  }

  .sachi-collections ul.products{
    padding-top:0 !important; /* v1.0.14: gap comes from the 36px margin only */
  }
}



/* ============================================================
   v1.0.14 — single-product top spacing. The generic WooCommerce
   wrapper (.wrap.section) contributes var(--section) (≤160px) above
   the product; on product pages the .pdp padding becomes the ONE
   primary spacing control. Scoped to body.single-product so cart,
   checkout and account pages are untouched. Mobile keeps
   comfortable spacing rather than the full desktop reduction.
   ============================================================ */
@media (min-width:1024px){
  html body.single-product main#content > .wrap > div.product.pdp{
    padding-top:15px !important; /* moves product content up ~45px to the
                                    manually tested reference position */
  }
}
@media (max-width:1023px){
  body.single-product main#content > .wrap.section{
    padding-top:clamp(42px,6vw,56px); /* mobile keeps more air than desktop */
  }
}


/* ============================================================
   v1.0.15 — SHOP REGION system.
   Visibility is a pure client-side toggle on html[data-sachi-region];
   every page's HTML is identical for all visitors (full-page-cache
   safe). Missing attribute (no JS) behaves as United States.
   ============================================================ */
html[data-sachi-region="au"] .sachi-us-only{display:none !important}
html:not([data-sachi-region="au"]) .sachi-au-only{display:none !important}
html[data-sachi-region="au"] .woocommerce-cart .checkout-button,
html[data-sachi-region="au"] .wc-block-cart__submit-container,
html[data-sachi-region="au"] .wc-block-cart__submit-button,
html[data-sachi-region="au"] .woocommerce-checkout #place_order,
html[data-sachi-region="au"] .wc-block-components-checkout-place-order-button{display:none !important}

/* region selector — compact, keyboard friendly, not color-only */
.region-select{display:flex;align-items:center;gap:8px}
.region-select label{
  font-size:10px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--ink-soft);white-space:nowrap;
}
.region-select select{
  font-family:var(--sans);font-size:11.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink);
  background:transparent;border:1px solid var(--hairline);
  padding:7px 26px 6px 10px;cursor:pointer;border-radius:0;
  appearance:auto;
}
.region-select select:focus-visible{
  outline:2px solid var(--ink);outline-offset:2px;border-color:var(--ink);
}
.region-select--header{margin-right:6px}
@media (max-width:900px){.region-select--header{display:none}} /* lives in mobile nav instead */
.region-select--mobile{margin:26px 0 4px;padding-top:22px;border-top:1px solid var(--hairline)}
.region-select--footer{margin-top:10px}
.region-select--footer label{color:rgba(247,243,235,.55)}
.region-select--footer select{color:var(--ivory);border-color:rgba(247,243,235,.28)}
.region-select--footer select:focus-visible{outline-color:var(--ivory)}
.region-select--footer option{color:var(--ink)}

/* regional notes / links / AU purchase block */
.sachi-region-note{color:var(--ink-soft);font-size:14.5px;line-height:1.6;margin:6px 0 10px}
.linklike{
  background:none;border:none;padding:0;cursor:pointer;
  font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--bronze);text-decoration:underline;text-underline-offset:4px;
}
.linklike:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.sachi-au-buy{margin:2px 0 14px}
.sachi-au-price{margin-bottom:6px}
.sachi-au-retailer{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 6px}
.sachi-au-btn{display:inline-block;margin-top:6px}
.sachi-au-only .sachi-region-switch{margin-top:8px}

/* card-level region label + AU quick link — inherits .qadd styling */
.sachi-card-region{cursor:default;color:var(--ink-soft)}

/* subtle badge, consistent with existing chips — no flags */
.sachi-badge{
  display:inline-block;margin-top:8px;
  font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--bronze);border:1px solid var(--hairline);
  padding:4px 8px 3px;
}

/* Australia landing page + [sachi_australia_products] grid.
   Scoped to .sachi-au-grid — no other .p-grid is affected. */
.sachi-australia .sachi-au-grid{margin-top:clamp(28px,3vw,44px)}
.sachi-au-grid .p-grid{
  grid-template-columns:repeat(var(--au-cols, 3), minmax(0, 1fr));
}
@media (min-width:641px) and (max-width:1024px){
  .sachi-au-grid .p-grid{
    grid-template-columns:repeat(var(--au-cols-tablet, 2), minmax(0, 1fr));
  }
}
@media (max-width:640px){
  .sachi-au-grid .p-grid{grid-template-columns:1fr}
}
/* forced-AU cards render their AU presentation unconditionally */
.sachi-au-forced{display:block}
.sachi-australia .au-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:clamp(26px,3vw,40px)}

.sachi-region-cartnote{
  border:1px solid var(--hairline);border-left:3px solid var(--bronze);
  padding:16px 20px;margin:0 0 26px;
  font-size:14.5px;line-height:1.6;color:var(--ink);
}
.sachi-region-cartnote .linklike{margin-left:6px}

/* ============================================================
   v1.0.16 — focused mobile polish
   Regional-commerce and WooCommerce behavior remain unchanged.
   ============================================================ */
.to-top{
  position:fixed;
  right:calc(20px + env(safe-area-inset-right, 0px));
  bottom:calc(24px + env(safe-area-inset-bottom, 0px));
  width:46px;height:46px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(247,243,235,.96);
  color:var(--ink);
  border:1px solid var(--hairline);
  cursor:pointer;z-index:70;
  box-shadow:0 4px 18px rgba(23,19,72,.16);
  transition:opacity .25s var(--ease),transform .25s var(--ease),border-color .25s;
}
.to-top[hidden]{display:none}
.to-top svg{width:18px;height:18px}
.to-top:hover{border-color:var(--ink);transform:translateY(-2px)}
.to-top:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

@media (max-width:767px){
  /* Keep the heritage line compact and safely on the left side of the portrait. */
  .hero .eyebrow{
    max-width:16ch;
    font-size:9px;
    letter-spacing:.18em;
    line-height:1.65;
    text-shadow:0 2px 12px rgba(0,0,0,.45);
  }
  .hero h1{margin-top:14px}

  /* The four numbered benefits already convey the story on small screens. */
  .diff .tline{display:none}
  .diff{padding-bottom:clamp(48px,10vw,72px)}

  /* Sit above the existing customer-support widget on small screens. */
  .to-top{
    right:calc(16px + env(safe-area-inset-right, 0px));
    bottom:calc(82px + env(safe-area-inset-bottom, 0px));
    width:44px;height:44px;
  }
}

@media (max-width:640px){
  .hero .btn--bare{min-height:44px;display:inline-flex;align-items:center;padding-top:6px;padding-bottom:6px}
  .region-select select{min-height:42px;padding-top:10px;padding-bottom:9px}
}
/* SACHI: square product cards with uncropped images */
.pcard .pmedia,
body.woocommerce-shop .pcard .pmedia,
body.tax-product_cat .pcard .pmedia {
  aspect-ratio: 1 / 1;
  background: #fff;
}

.pcard .pmedia img {
  object-fit: contain;
  object-position: center;
}

.pcard:hover .pmedia img.pri {
  transform: none;
}