/* =========================================================================
   Viv La Gechi — theme.css  v2.0.0
   Design system ported from motion study II.
   Colour custom properties are injected by vlg_palette_css(); the values here
   are fallbacks so the file reads standalone.
   ========================================================================= */

:root{
  --wine:#A00F5E; --gold:#F3D870; --noir:#1C0410; --ivory:#F7F2EA; --ink:#180A11;
  --cobalt:#1C46C8; --marigold:#F6A81C; --jade:#0E8F5C; --flame:#E8442F; --violet:#6C2BB9;
  --display:"Instrument Serif",Georgia,serif;
  --body:"Instrument Sans",system-ui,-apple-system,sans-serif;
  --gut:clamp(16px,3.4vw,56px);
  --maxw:1720px;
  /* full-bleed sections use this so their text sits on the same axis as .wrap */
  --pad-x:max(var(--gut), calc((100vw - var(--maxw)) / 2 + var(--gut)));

  /* type scale — four steps, no ad-hoc sizes */
  --t-display:clamp(52px,10.5vw,190px);
  --t-1:clamp(34px,4.4vw,76px);
  --t-2:clamp(27px,3.2vw,52px);
  --t-3:clamp(19px,1.6vw,25px);
  --t-lede:clamp(15px,1.15vw,17.5px);

  /* one vertical rhythm value */
  --sp:clamp(54px,6.2vw,104px);
  --ease:cubic-bezier(.16,1,.3,1);
  --pat:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cg fill='none' stroke='%23F3D870' stroke-width='1'%3E%3Crect x='4' y='4' width='40' height='40'/%3E%3Crect x='12' y='12' width='24' height='24'/%3E%3Cpath d='M24 12v24M12 24h24M4 4l8 8M44 4l-8 8M4 44l8-8M44 44l-8-8'/%3E%3C/g%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--body);
  font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  transition:background-color 1.1s var(--ease),color 1.1s var(--ease)}
body.dark{background:var(--noir);color:var(--ivory)}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;font-family:var(--display);font-weight:400;line-height:.9;letter-spacing:-.035em}
.wrap{max-width:1720px;margin-inline:auto;padding-inline:var(--gut)}
.caps{font-size:10px;font-weight:500;letter-spacing:.3em;text-transform:uppercase}
.it{font-family:var(--display);font-style:italic;font-weight:400}

/* ---------- film grain ---------- */
#vlg-grain{position:fixed;inset:-120%;z-index:8000;pointer-events:none;opacity:.16;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='260' height='260' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  animation:grain 1.1s steps(4) infinite}
@keyframes grain{
  0%{transform:translate(0,0)}25%{transform:translate(-4%,3%)}
  50%{transform:translate(3%,-3%)}75%{transform:translate(-3%,-4%)}100%{transform:translate(0,0)}}

/* ---------- loader ---------- */
html:not(.js) #vlg-load{display:none}
#vlg-load{position:fixed;inset:0;z-index:9999;background:var(--noir);color:var(--gold);
  display:flex;align-items:flex-end;justify-content:space-between;
  padding:var(--gut);transition:transform 1.15s var(--ease) .2s}
#vlg-load.up{transform:translateY(-101%);animation:none}
/* if motion.js throws before calling done(), the curtain still clears */
#vlg-load{animation:vlgFailsafe .8s cubic-bezier(.16,1,.3,1) 4s forwards}
@keyframes vlgFailsafe{to{transform:translateY(-101%);visibility:hidden}}
#vlg-load .lg{font-family:var(--display);font-style:italic;font-size:clamp(30px,6vw,86px);
  line-height:.9;letter-spacing:-.03em}
#vlg-load .pc{font-family:var(--display);font-size:clamp(34px,7vw,110px);line-height:.8;
  font-variant-numeric:tabular-nums}
#vlg-load .bar{position:absolute;left:var(--gut);right:var(--gut);bottom:calc(var(--gut) + 4.6em);
  height:1px;background:rgba(243,216,112,.2)}
#vlg-load .bar i{display:block;height:100%;width:0;background:var(--gold);transition:width .2s linear}

/* ---------- cursor ---------- */
#vlg-cur{position:fixed;top:0;left:0;width:7px;height:7px;border-radius:50%;background:var(--gold);
  pointer-events:none;z-index:7900;transform:translate(-50%,-50%)}
#vlg-ring{position:fixed;top:0;left:0;width:36px;height:36px;border:1px solid rgba(160,15,94,.45);
  border-radius:50%;pointer-events:none;z-index:7890;transform:translate(-50%,-50%);
  transition:width .5s var(--ease),height .5s var(--ease),background .5s,border-color .5s;
  display:grid;place-content:center}
#vlg-ring span{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--ivory);
  opacity:0;transition:opacity .3s;white-space:nowrap}
#vlg-ring.big{width:104px;height:104px;background:var(--wine);border-color:var(--wine)}
#vlg-ring.big span{opacity:1}
@media (hover:none){#vlg-cur,#vlg-ring{display:none}}


/* Each section carries its own ground. The body class then only drives the
   nav, so a transition can never leave dark-on-dark or light-on-light. */
[data-bg="light"]{background:var(--ivory);color:var(--ink)}
[data-bg="dark"]{background:var(--noir);color:var(--ivory)}

/* ---------- nav ---------- */
.topbar{position:fixed;top:0;left:0;right:0;z-index:900;
  transition:transform .7s var(--ease)}
.topbar.hidden{transform:translateY(-115%)}
.nav{position:relative;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;
  padding:14px var(--pad-x);color:var(--ivory);
  transition:transform .7s var(--ease),background .6s,padding .6s,color .6s,box-shadow .6s}
.nav.solid{background:rgba(247,242,234,.92);backdrop-filter:blur(18px) saturate(1.2);
  padding-block:9px;color:var(--ink);box-shadow:0 1px 0 rgba(24,10,17,.1)}
body.dark .nav.solid{background:rgba(28,4,16,.9);color:var(--ivory);
  box-shadow:0 1px 0 rgba(243,216,112,.16)}

/* logo: gold over the hero, wine once the bar is solid */
.nav__logo{position:relative;display:block;line-height:0;justify-self:start}
.nav__logo img{height:clamp(38px,3.2vw,46px);width:auto;transition:opacity .6s var(--ease)}
.nav__logo-b{position:absolute;inset:0;opacity:0}
.nav.solid .nav__logo-a{opacity:0}
.nav.solid .nav__logo-b{opacity:1}
body.dark .nav.solid .nav__logo-a{opacity:1}
body.dark .nav.solid .nav__logo-b{opacity:0}

.nav__nav{justify-self:center}
.nav__list{display:flex;align-items:center;gap:clamp(16px,2vw,34px);list-style:none;margin:0;padding:0}
.nav__list a{font-size:10px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;
  position:relative;overflow:hidden;display:block;height:1.6em;color:inherit}
.nav__list a i{display:block;font-style:normal;transition:transform .55s var(--ease)}
.nav__list a i+i{position:absolute;top:0;left:0;transform:translateY(105%)}
.nav__list a:hover i{transform:translateY(-105%)}
.nav__list a:hover i+i{transform:translateY(0)}
.nav__list .current-menu-item>a{color:var(--gold)}
.nav.solid .nav__list .current-menu-item>a{color:var(--wine)}
.nav__act{justify-self:end;display:flex;align-items:center;gap:clamp(12px,1.4vw,22px)}
@media (max-width:880px){
  .nav{grid-template-columns:1fr auto}
  .nav__nav{display:none}
}

/* ---------- hero ---------- */
.hero{position:relative;height:100svh;min-height:580px;overflow:hidden;background:var(--noir)}
.hero__media{position:absolute;inset:-10% 0;will-change:transform}
.hero__media--empty::before{content:"";position:absolute;inset:0;
  background:linear-gradient(118deg,#4a1080,var(--wine) 44%,#c4341f)}
.hero__media--empty::after{content:"";position:absolute;inset:0;background-image:var(--pat);
  background-size:132px 132px;opacity:.11}
.hero__scrim{position:absolute;inset:0;
  background:linear-gradient(to top,rgba(28,4,16,.9),rgba(28,4,16,.12) 54%,rgba(28,4,16,.55))}
.hero__in{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;
  padding:0 var(--pad-x) clamp(30px,5.4vh,72px);color:var(--ivory)}
.hero__eyebrow{display:flex;align-items:center;gap:14px;color:var(--gold);margin-bottom:18px}
.hero__eyebrow::before{content:"";width:0;height:1px;background:currentColor;
  transition:width 1.3s var(--ease) .75s}
.ready .hero__eyebrow::before{width:64px}
h1.hero__title{font-size:var(--t-display);line-height:.82;letter-spacing:-.055em;max-width:13ch}
h1.hero__title em{font-style:italic;color:var(--gold)}
.hero__foot{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:22px;margin-top:clamp(18px,3vh,38px)}
.hero__lede{max-width:32ch;font-size:14.5px;line-height:1.75;color:rgba(247,242,234,.68)}
.hero__scroll{display:flex;align-items:center;gap:12px;color:rgba(247,242,234,.55)}
.hero__scroll i{width:1px;height:48px;background:currentColor;transform-origin:top;
  animation:drop 2.4s var(--ease) infinite;display:block}
@keyframes drop{0%{transform:scaleY(0)}45%{transform:scaleY(1)}
  100%{transform:scaleY(0);transform-origin:bottom}}

.line{display:block;overflow:hidden}
.js .line>span{display:block;transform:translateY(108%) rotate(2.5deg);transform-origin:left top;
  transition:transform 1.15s var(--ease)}
.ready .line>span{transform:none}
.ready .line:nth-child(2)>span{transition-delay:.11s}

/* ---------- marquee ---------- */
.marquee{background:var(--noir);color:var(--gold);border-block:1px solid rgba(243,216,112,.2);
  padding-block:14px;overflow:hidden;white-space:nowrap;user-select:none}
.marquee__track{display:inline-flex;gap:40px;will-change:transform}
.marquee b{font-family:var(--display);font-size:clamp(19px,2.4vw,40px);font-weight:400;
  font-style:italic;display:inline-flex;align-items:center;gap:40px;letter-spacing:-.02em}
.marquee b:nth-child(even){font-style:normal;color:transparent;
  -webkit-text-stroke:1px rgba(243,216,112,.6)}
.marquee b::after{content:"✦";font-style:normal;font-size:.42em;opacity:.6;
  -webkit-text-stroke:0;color:var(--gold)}

/* ---------- reveals ---------- */
.js [data-rv]{opacity:0;transform:translateY(30px);
  transition:opacity 1.05s var(--ease),transform 1.05s var(--ease)}
[data-rv].in{opacity:1;transform:none}
.js [data-rv="mask"]{opacity:1;transform:none;clip-path:inset(0 0 102% 0);
  transition:clip-path 1.3s var(--ease)}
[data-rv="mask"].in{clip-path:inset(0 0 0 0)}
[data-rv="scale"]{opacity:1;transform:none;overflow:hidden}
.js [data-rv="scale"] .zoom{transform:scale(1.26);transition:transform 1.7s var(--ease)}
[data-rv="scale"].in .zoom{transform:none}

.shead{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;
  padding:0 0 22px;border-bottom:1px solid currentColor}
.shead h2{font-size:var(--t-1)}
.shead .idx{opacity:.45}

/* ---------- drag rail ---------- */
.rail{margin-top:30px;cursor:grab;overflow-x:auto;scrollbar-width:none;padding-bottom:6px}
.rail::-webkit-scrollbar{display:none}
.rail.grabbing{cursor:grabbing}
.rail__track{display:flex;gap:clamp(10px,1.2vw,18px);width:max-content;padding-right:var(--gut)}
.pcard{width:clamp(230px,24vw,350px);flex:none}
.pcard__media{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--noir)}
.pcard__a,.pcard__b{position:absolute;inset:0;transition:opacity .85s var(--ease),transform 1.5s var(--ease)}
.pcard__b{opacity:0}
.pcard:hover .pcard__a{opacity:0;transform:scale(1.07)}
.pcard:hover .pcard__b{opacity:1;transform:scale(1.07)}
.pcard__num{position:absolute;left:13px;top:11px;z-index:3;font-size:10px;letter-spacing:.2em;
  color:rgba(247,242,234,.72)}
.pcard__tag{position:absolute;right:13px;top:11px;z-index:3;background:var(--ivory);color:var(--ink);
  font-size:9px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;padding:6px 10px}
.pcard__buy{position:absolute;left:0;right:0;bottom:0;z-index:3;background:var(--ivory);color:var(--ink);
  text-align:center;padding:13px;font-size:10px;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;transform:translateY(101%);transition:transform .6s var(--ease)}
.pcard:hover .pcard__buy{transform:none}
.pcard__body{padding-top:12px;display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.pcard__name{font-family:var(--display);font-size:clamp(17px,1.5vw,22px);line-height:1.1}
.pcard__price{font-size:12px;letter-spacing:.04em;opacity:.6;white-space:nowrap}
.pcard__sizes{padding-top:6px;display:flex;gap:9px;font-size:10px;letter-spacing:.16em;opacity:.45}
.pcard__sizes b.plus{color:var(--wine);opacity:1}
[data-bg="dark"] .pcard__sizes b.plus{color:var(--gold)}
.railhint{display:flex;align-items:center;gap:12px;margin-top:16px;opacity:.4}
.railhint i{width:38px;height:1px;background:currentColor;display:block}

/* ---------- pinned horizontal gallery ---------- */
.pin{position:relative;background:var(--noir);color:var(--ivory)}
.pin__sticky{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;align-items:center}
.pin__track{display:flex;gap:clamp(14px,1.6vw,28px);padding-inline:var(--pad-x);will-change:transform}
.pin__intro{flex:none;width:min(46vw,520px);align-self:center;padding-right:clamp(16px,3vw,52px)}
.pin__intro h2{font-size:clamp(34px,5vw,84px);margin-bottom:20px}
.pin__intro p{color:rgba(247,242,234,.62);max-width:34ch;line-height:1.8;font-size:14.5px}
.pslide{flex:none;width:min(58vw,440px);position:relative}
.pslide__img{position:relative;aspect-ratio:3/4;overflow:hidden}
.pslide__img .fill{transition:transform 1.5s var(--ease)}
.pslide:hover .fill{transform:scale(1.05)}
.pslide__meta{display:flex;justify-content:space-between;gap:14px;padding-top:12px;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(247,242,234,.55)}
.pin__bar{position:absolute;left:var(--gut);right:var(--gut);bottom:26px;height:1px;
  background:rgba(247,242,234,.18)}
.pin__bar i{display:block;height:100%;width:0;background:var(--gold)}

/* ---------- index list with floating preview ---------- */
.idxlist{position:relative;padding-block:var(--sp)}
.idxrow{display:flex;align-items:baseline;justify-content:space-between;gap:20px;
  padding:clamp(18px,2.4vw,34px) 0;border-bottom:1px solid rgba(24,10,17,.14);
  position:relative;z-index:2;transition:padding-left .6s var(--ease),opacity .5s}
[data-bg="dark"] .idxrow{border-color:rgba(247,242,234,.16)}
.idxrow:first-child{border-top:1px solid rgba(24,10,17,.14)}
[data-bg="dark"] .idxrow:first-child{border-color:rgba(247,242,234,.16)}
.idxrow h3{font-size:var(--t-1);transition:transform .6s var(--ease)}
.idxrow em{font-style:italic;color:var(--wine)}
[data-bg="dark"] .idxrow em{color:var(--gold)}
.idxrow .n{font-size:10px;letter-spacing:.26em;opacity:.45}
.idxlist:hover .idxrow{opacity:.32}
.idxlist .idxrow:hover{opacity:1;padding-left:clamp(10px,2vw,34px)}
#vlg-preview{position:fixed;top:0;left:0;width:clamp(200px,20vw,300px);aspect-ratio:3/4;
  pointer-events:none;z-index:60;opacity:0;transform:translate(-50%,-50%) scale(.9);
  transition:opacity .45s var(--ease),transform .45s var(--ease);overflow:hidden}
#vlg-preview.on{opacity:1;transform:translate(-50%,-50%) scale(1)}

/* ---------- sticky editorial ---------- */
.ed{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(22px,3.6vw,74px);padding-block:var(--sp)}
.ed__text{position:sticky;top:22vh;align-self:start;padding-bottom:36px}
.ed__text h2{font-size:var(--t-2);margin-bottom:20px;max-width:14ch}
.ed__text p{line-height:1.85;opacity:.7;max-width:40ch;margin:0 0 28px;font-size:15px}
.ed__stack{display:grid;gap:clamp(12px,1.8vw,26px)}
.ed__img{position:relative;aspect-ratio:4/5;overflow:hidden}
.ed__img:nth-child(2){margin-left:clamp(18px,10%,104px);aspect-ratio:1}
.ed__img:nth-child(3){margin-right:clamp(18px,14%,140px)}
.ed__cap{position:absolute;left:0;bottom:0;background:var(--ivory);color:var(--ink);padding:8px 13px;
  font-size:9px;letter-spacing:.22em;text-transform:uppercase}

/* ---------- stats ---------- */
.stats{background:var(--wine);color:var(--ivory);position:relative;overflow:hidden;
  padding-block:var(--sp)}
.stats::before{content:"";position:absolute;inset:0;background-image:var(--pat);
  background-size:116px 116px;opacity:.08}
.stats__grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.stat b{display:block;font-family:var(--display);font-size:clamp(38px,5.6vw,96px);line-height:.86;
  font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.stat span{display:block;margin-top:12px;color:rgba(247,242,234,.6);font-size:10px;
  letter-spacing:.26em;text-transform:uppercase}

/* ---------- buttons ---------- */
.btn{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;
  padding:17px 38px;border:1px solid currentColor;color:var(--wine);position:relative;overflow:hidden;
  will-change:transform;isolation:isolate}
.btn i{position:relative;z-index:2;font-style:normal;transition:color .5s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:var(--wine);z-index:-1;
  transform:translateY(101%);transition:transform .55s var(--ease)}
/* bare-text buttons have no <i> to recolour, so the button itself must flip */
.btn:hover{color:var(--ivory)}
.btn--gold:hover{color:var(--noir)}
.btn--ghost:hover{color:var(--noir)}
.btn--wa:hover{color:var(--ivory)}
.btn:hover::before{transform:none}
.btn:hover i{color:var(--ivory)}
.btn--gold{color:var(--gold)}
.btn--gold::before{background:var(--gold)}
.btn--gold:hover i{color:var(--noir)}

/* ---------- footer ---------- */
.foot{background:var(--noir);color:var(--ivory);padding-top:var(--sp);position:relative}
.foot::before{content:"";position:absolute;top:0;left:0;right:0;height:28px;background-image:var(--pat);
  background-size:auto 28px;opacity:.28}
.foot__big{font-family:var(--display);font-style:italic;font-size:clamp(40px,8.4vw,150px);
  line-height:.84;letter-spacing:-.05em;color:var(--gold);padding-block:clamp(16px,2.4vw,42px);
  border-bottom:1px solid rgba(247,242,234,.12);margin:0}
.foot__cols{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:30px;
  padding-block:clamp(30px,3.6vw,56px)}
.foot__cols h3{font-family:var(--body);font-size:10px;font-weight:600;letter-spacing:.28em;
  text-transform:uppercase;color:rgba(247,242,234,.4);margin:0 0 16px}
.foot__cols ul{list-style:none;margin:0;padding:0}
.foot__cols li a{display:block;padding:7px 0;font-size:14px;color:rgba(247,242,234,.78);
  transition:color .4s,transform .45s var(--ease)}
.foot__cols li a:hover{color:var(--gold);transform:translateX(7px)}
.foot__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;padding-block:20px;
  border-top:1px solid rgba(247,242,234,.12);color:rgba(247,242,234,.38);font-size:11px}

@media (max-width:940px){
  .ed{grid-template-columns:1fr}.ed__text{position:static}
  .stats__grid{grid-template-columns:repeat(2,1fr);gap:30px}
  .foot__cols{grid-template-columns:1fr 1fr}
  .pin__intro{width:82vw}.pslide{width:74vw}
  #vlg-preview{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation:none!important}
  [data-rv]{opacity:1!important;transform:none!important;clip-path:none!important}
  .line>span{transform:none!important}
  #vlg-cur,#vlg-ring,#vlg-grain{display:none}
}

/* self-hosted — see assets/fonts/README.txt */
@font-face{font-family:"Instrument Serif";src:url("../fonts/instrument-serif.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("../fonts/instrument-serif-italic.woff2") format("woff2");
  font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../fonts/instrument-sans.woff2") format("woff2-variations");
  font-weight:400 700;font-style:normal;font-display:swap}

/* ---------- WordPress + accessibility baseline ---------- */
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;background:var(--wine);color:var(--ivory);
  padding:12px 20px;z-index:9998}
.skip:focus{left:0}
:where(a,button,select,summary,input,[tabindex]):focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.motif{position:absolute;inset:0;width:100%;height:100%}
.alignwide{max-width:1200px}

/* ---------- mobile menu ---------- */
.nav__burger{display:none;background:none;border:0;padding:8px;cursor:pointer;color:inherit}
.nav__burger i{display:block;width:24px;height:1px;background:currentColor;margin:6px 0;
  transition:transform .5s var(--ease),opacity .4s}
.nav__burger[aria-expanded="true"] i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav__burger[aria-expanded="true"] i:nth-child(2){opacity:0}
.nav__burger[aria-expanded="true"] i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobilemenu{position:fixed;inset:0;z-index:890;background:var(--noir);color:var(--ivory);
  display:flex;flex-direction:column;justify-content:center;padding:var(--gut);
  clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--ease),visibility .8s;
  pointer-events:none;visibility:hidden}
.mobilemenu.open{clip-path:inset(0 0 0 0);pointer-events:auto;visibility:visible}
.mobilemenu__list{list-style:none;margin:0;padding:0}
.mobilemenu__list a{display:block;padding:12px 0;font-family:var(--display);
  font-size:clamp(30px,8vw,58px);line-height:1.05;letter-spacing:-.03em;color:var(--ivory)}
.mobilemenu__list a:hover{color:var(--gold)}
body.is-locked{overflow:hidden}
@media (max-width:880px){.nav__burger{display:block}}

/* ---------- page head ---------- */
.head{position:relative;background:var(--noir);color:var(--ivory);overflow:hidden;
  padding:calc(var(--gut) + 86px) var(--pad-x) var(--sp)}
.head::before{content:"";position:absolute;inset:0;background-image:var(--pat);
  background-size:104px 104px;opacity:.07}
.head>*{position:relative;z-index:1}
.head__crumb,.head__crumb a,.crumbnav,.crumbnav a{color:rgba(247,242,234,.5);font-size:10px;
  letter-spacing:.28em;text-transform:uppercase}
.head__title{font-size:var(--t-1);line-height:.9;margin:16px 0 14px;letter-spacing:-.045em}
.head__note{max-width:52ch;line-height:1.78;color:rgba(247,242,234,.66);margin:0;font-size:15px}

/* ---------- shop filters ---------- */
.filters{position:sticky;top:0;z-index:80;background:var(--ivory);
  border-bottom:1px solid rgba(24,10,17,.12)}
[data-bg="dark"] .filters{background:var(--noir);border-color:rgba(247,242,234,.14)}
.filters__row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 30px;padding-block:15px}
.fgroup{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.fgroup__label{opacity:.5;white-space:nowrap;font-size:10px;font-weight:600;
  letter-spacing:.28em;text-transform:uppercase}
.chip{font-family:var(--body);font-size:11px;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;padding:10px 18px;border:1px solid rgba(24,10,17,.16);
  background:transparent;color:inherit;cursor:pointer;transition:background .4s var(--ease),
  border-color .4s,color .4s}
[data-bg="dark"] .chip{border-color:rgba(247,242,234,.2)}
.chip:hover{border-color:var(--wine)}
.chip--plus{border-color:rgba(160,15,94,.45);color:var(--wine)}
.chip[aria-pressed="true"]{background:var(--wine);border-color:var(--wine);color:var(--ivory)}
.sortwrap{margin-left:auto;display:flex;align-items:center;gap:10px}
select{font-family:var(--body);font-size:11px;letter-spacing:.08em;padding:10px 14px;
  border:1px solid rgba(24,10,17,.16);background:transparent;color:inherit}
.count{padding-bottom:12px;opacity:.55;font-size:12px;letter-spacing:.1em;margin:0}
.count b{font-weight:600;opacity:1}

/* ---------- archive grid (uses the pcard markup) ---------- */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(24px,2.6vw,44px) clamp(10px,1.2vw,18px);padding-block:clamp(26px,3vw,48px);
  margin:0;list-style:none}
.pgrid .pcard{width:auto}
.empty{grid-column:1/-1;padding:clamp(56px,8vw,120px) 24px;text-align:center}
.empty h2{font-size:clamp(28px,3.4vw,46px);margin-bottom:14px}
.empty p{opacity:.6;margin-bottom:28px}
.moreline{display:flex;justify-content:center;gap:14px;padding-bottom:clamp(34px,4vw,64px)}
.moreline .page-numbers{padding:12px 18px;font-size:11px;letter-spacing:.18em;
  border:1px solid rgba(24,10,17,.16)}
.moreline .page-numbers.current{background:var(--wine);color:var(--ivory);border-color:var(--wine)}

/* ---------- product detail ---------- */
.pdp{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:clamp(24px,3.4vw,64px);padding-bottom:clamp(44px,6vw,100px)}
.crumb{padding-block:16px 20px;opacity:.55;font-size:10px;letter-spacing:.28em;text-transform:uppercase}
.gal__main{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--noir)}
.gal__ph{position:absolute;inset:0;display:grid;place-content:center;text-align:center;
  color:rgba(247,242,234,.55);padding:20px}
.gal__ph span{font-size:10px;letter-spacing:.28em;text-transform:uppercase}
.woocommerce-product-gallery{background:var(--noir)}
.buy{align-self:start;position:sticky;top:96px}
.buy__eyebrow{opacity:.55;margin:0 0 14px;font-size:10px;letter-spacing:.28em;text-transform:uppercase}
.buy__title{font-family:var(--display);font-size:var(--t-2);line-height:.96;
  margin:0 0 16px;letter-spacing:-.04em}
.buy__price{font-size:18px;font-weight:500;letter-spacing:.03em;margin:0 0 8px}
.buy__price del{opacity:.5;font-weight:400;margin-right:12px}
.buy__price ins{text-decoration:none;color:var(--wine)}
.price--hidden{font-family:var(--display);font-style:italic;font-size:22px;color:var(--wine)}
.buy__tax{opacity:.55;font-size:12px;letter-spacing:.06em;margin:0 0 24px}
.buy__desc{line-height:1.82;margin-bottom:26px;opacity:.82}
.sizeguide-link{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--wine);
  border-bottom:1px solid rgba(243,216,112,.5);padding-bottom:2px;display:inline-block;margin-bottom:14px}
.cutnote{font-size:13px;line-height:1.72;opacity:.6;margin:16px 0 30px}
.trust{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 30px;
  border-block:1px solid rgba(24,10,17,.14)}
.trust div{padding:18px 16px 18px 0}
.trust dt{font-size:9px;letter-spacing:.26em;text-transform:uppercase;opacity:.55;margin-bottom:7px}
.trust dd{margin:0;font-size:13px;line-height:1.5}
.buy details{border-top:1px solid rgba(24,10,17,.14)}
.buy details:last-of-type{border-bottom:1px solid rgba(24,10,17,.14)}
.buy summary{cursor:pointer;padding:18px 0;font-size:10px;font-weight:600;letter-spacing:.26em;
  text-transform:uppercase;list-style:none;display:flex;justify-content:space-between;align-items:center}
.buy summary::-webkit-details-marker{display:none}
.buy summary::after{content:"+";font-size:16px;font-weight:400;color:var(--wine)}
.buy details[open] summary::after{content:"\2212"}
.buy details>*:not(summary){margin-bottom:20px;line-height:1.82;opacity:.8;font-size:14.5px}
.buy form.cart{margin-bottom:14px}
.buy .variations{width:100%;margin-bottom:14px}
.buy .variations th,.buy .variations td{padding:8px 0;text-align:left}
.buy .variations label{font-size:10px;letter-spacing:.26em;text-transform:uppercase;opacity:.6}
.buy .single_add_to_cart_button{width:100%;font-family:var(--body);font-size:10px;font-weight:600;
  letter-spacing:.28em;text-transform:uppercase;padding:20px 26px;border:1px solid var(--wine);
  background:var(--wine);color:var(--ivory);cursor:pointer;transition:background .5s var(--ease),color .5s}
.buy .single_add_to_cart_button:hover{background:transparent;color:var(--wine)}
.buy .single_add_to_cart_button.disabled{background:transparent;border-color:rgba(24,10,17,.16);
  color:rgba(24,10,17,.3);cursor:not-allowed}
.btn--wa{width:100%;margin-top:12px;color:var(--jade);border-color:rgba(14,143,92,.5);display:block}
.btn--wa::before{background:var(--jade)}
.btn--wa:hover i{color:var(--ivory)}
.buy .quantity input{padding:14px;border:1px solid rgba(24,10,17,.16);background:transparent;
  width:84px;font-family:var(--body);color:inherit}
option.is-oos{opacity:.35}

/* ---------- prose ---------- */
.prose{max-width:68ch;padding-block:clamp(34px,4vw,64px)}
.prose h2{font-size:clamp(28px,3.6vw,48px);margin:1.6em 0 .5em}
.prose h3{font-size:clamp(21px,2.4vw,30px);margin:1.4em 0 .4em}
.prose p{line-height:1.88;opacity:.85}
.prose blockquote{border-left:1px solid var(--gold);margin:2em 0;padding-left:30px;
  font-family:var(--display);font-style:italic;font-size:1.4em;line-height:1.3}
.searchform{display:flex;max-width:440px}
.searchform input{flex:1;padding:17px;border:1px solid rgba(24,10,17,.16);background:transparent;
  font-family:var(--body);color:inherit}
.searchform button{padding:17px 26px;border:1px solid var(--wine);background:var(--wine);
  color:var(--ivory);font-family:var(--body);font-size:10px;letter-spacing:.24em;
  text-transform:uppercase;cursor:pointer}

@media (max-width:1000px){ .pgrid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:980px){ .pdp{grid-template-columns:1fr} .buy{position:static} }
@media (max-width:640px){ .pgrid{grid-template-columns:1fr} .trust{grid-template-columns:1fr}
  .trust div{padding:14px 0;border-bottom:1px solid rgba(24,10,17,.14)} }

/* =========================================================================
   Theme classes the ported demo stylesheet did not cover.
   ========================================================================= */

/* container alias — templates predating the port use .u-wrap */
.u-wrap{max-width:1720px;margin-inline:auto;padding-inline:var(--gut)}
.site-main{display:block}

/* nav bag label */
.nav__bag{font-size:10px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;white-space:nowrap;color:inherit}

/* hero call-to-actions */
.acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(20px,3vh,34px)}
.btn--ghost{color:var(--ivory)}
.btn--ghost::before{background:var(--ivory)}
.btn--ghost:hover i{color:var(--noir)}
.act{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.28em;
  text-transform:uppercase;padding:17px 38px;border:1px solid currentColor;color:var(--wine)}
.act--fill{background:var(--wine);color:var(--ivory);border-color:var(--wine)}

/* stitch divider + facts rail */
.stitch{border:0;height:28px;margin:0;background-image:var(--pat);background-repeat:repeat-x;
  background-position:center;background-size:auto 28px;opacity:.4}
.meta{display:flex;flex-wrap:wrap;gap:clamp(24px,3.4vw,58px);
  padding-block:clamp(24px,2.8vw,40px);margin:0}
.meta dt{font-size:10px;letter-spacing:.28em;text-transform:uppercase;opacity:.55;margin-bottom:9px}
.meta dd{margin:0;font-family:var(--display);font-size:clamp(18px,1.6vw,24px);letter-spacing:-.02em}

/* generic eyebrow */
.eyebrow{display:flex;align-items:center;gap:14px;font-size:10px;font-weight:600;
  letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:0 0 20px}
.eyebrow::before{content:"";width:44px;height:1px;background:currentColor;flex:none;opacity:.8}
.eyebrow--ink{color:var(--wine)}

/* product gallery + placeholders */
.gal{min-width:0}
.card__ph,.pcard__ph{position:absolute;inset:0;display:grid;place-content:center;text-align:center;
  padding:16px;color:rgba(247,242,234,.6)}
.card__ph span,.pcard__ph span{font-size:10px;letter-spacing:.28em;text-transform:uppercase}
.price{font-size:inherit}
.pagelinks{display:flex;gap:10px;padding-block:20px;font-size:12px}

/* =========================================================================
   Footer
   ========================================================================= */
.foot__signup{position:relative;overflow:hidden;border-bottom:1px solid rgba(247,242,234,.1);
  padding-block:clamp(32px,3.6vw,58px)}
.foot__signup::after{content:"";position:absolute;inset:0;background-image:var(--pat);
  background-size:74px 74px;opacity:.05;pointer-events:none}
.foot__signup-in{position:relative;z-index:1;display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,3.4vw,64px);align-items:center}
.foot__signup h2{font-family:var(--display);font-size:clamp(26px,3.4vw,50px);max-width:16ch;
  letter-spacing:-.03em}
.foot__signup p{color:rgba(247,242,234,.6);max-width:44ch;margin:14px 0 0;line-height:1.75;font-size:15px}
.foot__form{display:flex;border-bottom:1px solid rgba(247,242,234,.32)}
.foot__form input{flex:1;background:transparent;border:0;color:var(--ivory);font-family:var(--body);
  font-size:15px;padding:16px 0}
.foot__form input::placeholder{color:rgba(247,242,234,.4)}
.foot__form button{background:transparent;border:0;color:var(--gold);font-family:var(--body);
  font-size:10px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;
  padding:16px 0 16px 24px;cursor:pointer}
.foot__form button:hover{color:var(--ivory)}
.foot__consent{font-size:11px;color:rgba(247,242,234,.42);margin:14px 0 0}

.foot__top{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));
  gap:clamp(24px,3vw,48px);padding-block:clamp(34px,4vw,62px)}
.foot__brand .nav__logo img{height:clamp(78px,7vw,104px)}
.foot__note{font-family:var(--display);font-style:italic;font-size:clamp(19px,1.9vw,26px);
  margin:24px 0 18px;color:var(--gold);max-width:22ch;line-height:1.25;letter-spacing:-.02em}
.foot__addr{font-style:normal;line-height:1.9;color:rgba(247,242,234,.6);font-size:14px}
.foot__addr a{color:rgba(247,242,234,.6);border-bottom:1px solid rgba(247,242,234,.2)}
.foot__addr a:hover{color:var(--gold);border-color:var(--gold)}
.foot__social{list-style:none;display:flex;flex-wrap:wrap;gap:24px;padding:0;margin:26px 0 0}
.foot__social a{color:var(--gold);font-size:10px;font-weight:600;letter-spacing:.26em;
  text-transform:uppercase}
.foot__social a:hover{color:var(--ivory)}
.foot__col h3,.fwidget__t{font-family:var(--body);font-size:10px;font-weight:600;letter-spacing:.28em;
  text-transform:uppercase;color:rgba(247,242,234,.4);margin:0 0 18px}
.foot__menu,.foot__legal{list-style:none;padding:0;margin:0}
.foot__menu a{display:block;padding:8px 0;font-size:14px;color:rgba(247,242,234,.78);
  transition:color .4s,transform .45s var(--ease)}
.foot__menu a:hover{color:var(--gold);transform:translateX(7px)}
.fwidget{color:rgba(247,242,234,.7);font-size:14px}
.foot__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;
  padding-block:22px;border-top:1px solid rgba(247,242,234,.12)}
.foot__copy,.foot__made{font-size:11px;letter-spacing:.1em;color:rgba(247,242,234,.4);margin:0}
.foot__made{text-transform:uppercase;letter-spacing:.18em}
.foot__legal{display:flex;flex-wrap:wrap;gap:26px}
.foot__legal a{color:rgba(247,242,234,.4);font-size:11px;letter-spacing:.1em}
.foot__legal a:hover{color:var(--gold)}

@media (max-width:1180px){
  .foot__top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot__brand{grid-column:1/-1}
}
@media (max-width:880px){
  .foot__signup-in{grid-template-columns:1fr}
}
@media (max-width:640px){
  .foot__top{grid-template-columns:1fr}
}

/* =========================================================================
   Landing sections
   ========================================================================= */

/* statement */
.intro{padding-block:var(--sp)}
.intro__eyebrow{color:var(--wine);margin:0 0 26px;opacity:.9}
[data-bg="dark"] .intro__eyebrow{color:var(--gold)}
.intro__text{font-family:var(--display);font-size:var(--t-1);line-height:1.14;
  letter-spacing:-.03em;max-width:24ch;margin:0}
.intro__text em{font-style:italic;color:var(--wine)}
[data-bg="dark"] .intro__text em{color:var(--gold)}

/* featured collection */
.feature{position:relative;background:var(--noir);color:var(--ivory);
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:stretch}
.feature__media{position:relative;overflow:hidden;min-height:clamp(340px,42vw,620px)}
.feature__media img{width:100%;height:100%;object-fit:cover}
.feature__body{display:flex;flex-direction:column;justify-content:center;
  padding:var(--sp) var(--pad-x)}
.feature__eyebrow{color:var(--gold);margin:0 0 20px}
.feature h2{font-family:var(--display);font-size:var(--t-2);line-height:1;
  letter-spacing:-.035em;margin:0 0 22px;max-width:14ch}
.feature h2 em{font-style:italic;color:var(--gold)}
.feature__lede{color:rgba(247,242,234,.68);line-height:1.8;max-width:40ch;margin:0 0 32px;font-size:15px}

/* process */
.process{padding-block:var(--sp)}
.process__grid{list-style:none;margin:34px 0 0;padding:0;display:grid;
  grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(24,10,17,.14)}
[data-bg="dark"] .process__grid{background:rgba(247,242,234,.16)}
.pstep{background:var(--ivory);padding:clamp(24px,2.4vw,34px) clamp(20px,1.8vw,28px)}
[data-bg="dark"] .pstep{background:var(--noir)}
.pstep__n{display:block;font-family:var(--display);font-size:13px;letter-spacing:.2em;
  color:var(--wine);margin-bottom:20px}
[data-bg="dark"] .pstep__n{color:var(--gold)}
.pstep h3{font-family:var(--display);font-size:var(--t-3);line-height:1.14;
  letter-spacing:-.02em;margin:0 0 12px}
.pstep p{font-size:14px;line-height:1.75;opacity:.68;margin:0}

/* fit band */
.fit{padding-block:var(--sp);border-block:1px solid rgba(24,10,17,.14)}
[data-bg="dark"] .fit{border-color:rgba(247,242,234,.16)}
.fit__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(26px,4vw,80px);align-items:center}
.fit h2{font-family:var(--display);font-size:var(--t-2);line-height:1;
  letter-spacing:-.035em;max-width:14ch;margin:0}
.fit h2 em{font-style:italic;color:var(--wine)}
[data-bg="dark"] .fit h2 em{color:var(--gold)}
.fit__body{line-height:1.85;opacity:.72;max-width:44ch;margin:0 0 30px;font-size:15px}

/* customer quotes */
.words{background:var(--noir);color:var(--ivory);padding-block:var(--sp)}
.words__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,58px);margin-top:14px}
.quote{margin:0}
.quote blockquote{font-family:var(--display);font-size:var(--t-3);line-height:1.36;
  letter-spacing:-.02em;margin:0 0 20px;padding:0;border:0}
.quote blockquote::before{content:"\201C"}
.quote blockquote::after{content:"\201D"}
.quote figcaption{color:var(--gold);font-size:10px}

/* assurances */
.assure{padding-block:var(--sp)}
.assure__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:rgba(24,10,17,.14)}
[data-bg="dark"] .assure__grid{background:rgba(247,242,234,.16)}
.assure__item{background:var(--ivory);padding:clamp(24px,2.4vw,34px) clamp(20px,1.8vw,28px)}
[data-bg="dark"] .assure__item{background:var(--noir)}
.assure__item h3{font-family:var(--display);font-size:var(--t-3);line-height:1.14;
  letter-spacing:-.025em;margin:0 0 12px}
.assure__item p{font-size:14px;line-height:1.78;opacity:.68;margin:0}

/* questions */
.faq{padding-block:var(--sp)}
.faq__list{margin-top:26px;border-top:1px solid rgba(24,10,17,.14)}
[data-bg="dark"] .faq__list{border-color:rgba(247,242,234,.16)}
.faq__list details{border-bottom:1px solid rgba(24,10,17,.14)}
[data-bg="dark"] .faq__list details{border-color:rgba(247,242,234,.16)}
.faq__list summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;
  align-items:baseline;gap:20px;padding:clamp(18px,2vw,28px) 0;
  font-family:var(--display);font-size:var(--t-3);line-height:1.16;letter-spacing:-.02em}
.faq__list summary::-webkit-details-marker{display:none}
.faq__list summary::after{content:"+";font-family:var(--body);font-size:17px;color:var(--wine);flex:none}
[data-bg="dark"] .faq__list summary::after{color:var(--gold)}
.faq__list details[open] summary::after{content:"\2212"}
.faq__list p{max-width:64ch;line-height:1.85;opacity:.7;margin:0 0 clamp(18px,2vw,26px);font-size:15px}

@media (max-width:1000px){
  .process__grid{grid-template-columns:repeat(2,1fr)}
  .words__grid,.assure__grid{grid-template-columns:1fr}
}
@media (max-width:880px){
  .feature{grid-template-columns:1fr}
  .feature__media{min-height:58vw}
  .fit__in{grid-template-columns:1fr;gap:24px}
}
@media (max-width:560px){
  .process__grid{grid-template-columns:1fr}
}

/* =========================================================================
   Marketplace layer
   ========================================================================= */

/* announcement bar */
.announce{position:relative;background:var(--wine);color:var(--ivory);
  text-align:center;padding:9px var(--pad-x)}
.announce__in a,.announce__in span{font-size:11px;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:inherit;text-decoration:none}
.announce__in a span{margin-left:8px;transition:transform .4s var(--ease);display:inline-block}
.announce__in a:hover span{transform:translateX(5px)}

/* nav search trigger */
.nav__icon{background:none;border:0;padding:0;cursor:pointer;color:inherit;font-family:var(--body)}
.nav__icon .caps{font-size:10px;font-weight:500;letter-spacing:.24em}
.nav__icon:hover{color:var(--gold)}
.nav.solid .nav__icon:hover{color:var(--wine)}

/* search overlay */
.searchover{position:fixed;inset:0;z-index:950;background:rgba(28,4,16,.97);
  backdrop-filter:blur(10px);display:grid;place-items:center;padding:var(--pad-x);
  opacity:0;pointer-events:none;transition:opacity .45s var(--ease)}
.searchover.open{opacity:1;pointer-events:auto}
.searchover__in{width:min(880px,100%)}
.searchover form{display:flex;border-bottom:1px solid rgba(243,216,112,.4)}
.searchover__field{flex:1;background:transparent;border:0;color:var(--ivory);
  font-family:var(--display);font-size:clamp(24px,4vw,52px);letter-spacing:-.03em;padding:14px 0}
.searchover__field::placeholder{color:rgba(247,242,234,.32)}
.searchover__field:focus{outline:none}
.searchover__go{background:transparent;border:0;color:var(--gold);font-family:var(--body);
  font-size:10px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;
  padding:0 0 0 24px;cursor:pointer}
.searchover__quick{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:26px}
.searchover__quick .caps{color:rgba(247,242,234,.4);margin-right:6px}
.searchover__quick .chip{border-color:rgba(247,242,234,.24);color:var(--ivory)}
.searchover__quick .chip:hover{border-color:var(--gold);color:var(--gold)}
.searchover__close{position:absolute;top:var(--gut);right:var(--gut);background:none;border:0;
  color:var(--ivory);font-size:34px;line-height:1;cursor:pointer;padding:6px 12px}
.searchover__close:hover{color:var(--gold)}

/* shop by */
.shopby{padding-block:var(--sp)}
.shopby__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  gap:clamp(26px,3.4vw,66px)}
.shopby__h{opacity:.55;margin:0 0 18px}
.shopby__chips{display:flex;flex-wrap:wrap;gap:9px}
.shopby__chips .chip{display:inline-flex;align-items:baseline;gap:8px}
.shopby__chips .chip b{font-weight:500;font-size:9px;opacity:.5}
.shopby__note{font-size:13px;opacity:.6;margin:16px 0 0}

/* dense grid */
.gridsec{padding-block:var(--sp)}
.pgrid--4{grid-template-columns:repeat(4,1fr)}
.gridsec__more{display:flex;justify-content:center;padding-top:10px}

/* product card action bar */
.pcard__buy{cursor:pointer}
.pcard__buy:hover{background:var(--wine);color:var(--ivory)}

/* floating enquiry */
.fab{position:fixed;right:clamp(14px,2vw,28px);bottom:clamp(14px,2vw,28px);z-index:880;
  background:#0B7A4D;color:var(--ivory);padding:15px 24px;
  font-size:10px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
  box-shadow:0 8px 30px rgba(24,10,17,.22);transition:transform .45s var(--ease),background .4s}
.fab:hover{transform:translateY(-3px);background:#0A6E45}

/* sticky mobile action bar */
.mbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:885;
  background:var(--noir);border-top:1px solid rgba(243,216,112,.2)}
.mbar__i{flex:1;background:none;border:0;padding:14px 6px;text-align:center;cursor:pointer;
  color:var(--ivory);font-family:var(--body);font-size:10px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;text-decoration:none}
.mbar__i+.mbar__i{border-left:1px solid rgba(247,242,234,.14)}
.mbar__i--wa{color:var(--gold)}
.mbar__i--bag{background:var(--wine)}

@media (max-width:1000px){ .pgrid--4{grid-template-columns:repeat(2,1fr)} }
@media (max-width:880px){
  .shopby__grid{grid-template-columns:1fr}
  .mbar{display:flex}
  .fab{display:none}
  body{padding-bottom:52px}
  .foot__bottom{padding-bottom:14px}
}
@media (max-width:560px){ .pgrid--4{grid-template-columns:repeat(2,1fr)} }


/* =========================================================================
   Uploaded images must fill their container.
   Without this every slot renders the file at its natural size.
   ========================================================================= */
.hero__media>img,
.ed__img>img,
.pcard__a>img,.pcard__b>img,
.pslide__img>img,
.card__media>img,
.gal__main>img,
#vlg-preview>img,
.feature__media>img{width:100%;height:100%;object-fit:cover;display:block}

/* Where the image is the only content, pin it so a reveal transform on the
   image itself can never leave a gap at the container edge. */
.hero__media>img,.feature__media>img,.ed__img>img,
.pcard__a>img,.pcard__b>img,.pslide__img>img,
.card__media>img,.gal__main>img,#vlg-preview>img{position:absolute;inset:0}
.ed__img>img.zoom{transform-origin:center}

/* =========================================================================
   New page templates
   ========================================================================= */
.sizing{padding-block:var(--sp)}
.sizing__warn{border-left:2px solid var(--flame);padding-left:20px}
.sizing__how{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:rgba(24,10,17,.14);margin-top:var(--sp)}
[data-bg="dark"] .sizing__how{background:rgba(247,242,234,.16)}
.sizing__item{background:var(--ivory);padding:clamp(24px,2.4vw,34px) clamp(20px,1.8vw,28px)}
[data-bg="dark"] .sizing__item{background:var(--noir)}
.sizing__item h3{font-family:var(--display);font-size:var(--t-3);margin:0 0 10px;letter-spacing:-.02em}
.sizing__item p{font-size:14px;line-height:1.75;opacity:.68;margin:0}
.sizing__cta{padding-block:var(--sp);text-align:center}
.sizing__cta p{font-family:var(--display);font-size:var(--t-2);margin:0 0 22px;letter-spacing:-.03em}

.visit{padding-block:var(--sp)}
.visit__grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
  gap:clamp(26px,4vw,74px)}
.visit__grid .prose{padding-block:0;max-width:none}
.visit__details{margin:0 0 30px;border-top:1px solid rgba(24,10,17,.14)}
.visit__details div{display:flex;gap:20px;padding:16px 0;border-bottom:1px solid rgba(24,10,17,.14)}
.visit__details dt{flex:0 0 30%;font-size:10px;letter-spacing:.26em;text-transform:uppercase;opacity:.55}
.visit__details dd{margin:0;font-size:15px}
.visit__aside h2{font-family:var(--display);font-size:var(--t-3);margin:0 0 18px;letter-spacing:-.02em}
.visit__list{list-style:none;margin:0;padding:0}
.visit__list li{padding:14px 0;border-bottom:1px solid rgba(24,10,17,.14);
  font-size:14.5px;line-height:1.7;opacity:.78}

/* =========================================================================
   Mobile: everything centres, including buttons
   ========================================================================= */
@media (max-width:880px){
  .hero__in,.hero__eyebrow,.hero__foot,.hero__lede,
  .head,.head__crumb,.head__note,
  .intro,.intro__text,.intro__eyebrow,
  .feature__body,.feature__eyebrow,.feature__lede,
  .fit,.fit__in,.fit__body,
  .ed__text,.ed__text p,
  .pstep,.assure__item,.sizing__item,.visit__aside,
  .shead,.rail__head,.words,.quote,.stats,.meta,
  .shopby,.shopby__col,.gridsec,.railhint,
  .pcard__body,.pcard__sizes,.foot__brand,.foot__col,.foot__bottom,
  .visit__grid>div{text-align:center}

  /* flex and grid rows have to be re-anchored, not just text-aligned */
  .hero__eyebrow,.eyebrow,.intro__eyebrow,.feature__eyebrow,
  .acts,.railhint,.hero__scroll,.card__cta,.pcard__cta,
  .shopby__chips,.foot__social,.foot__legal,.meta,
  .searchover__quick,.gridsec__more,.moreline{justify-content:center}
  .hero__eyebrow::before,.eyebrow::before{display:none}
  .hero__foot,.rail__head,.shead,.foot__bottom,.visit__details div,
  .assure__grid,.words__grid{justify-content:center;text-align:center}
  .shead{flex-direction:column;align-items:center;gap:10px}
  .rail__head{flex-direction:column;align-items:center;gap:10px}
  .pcard__body{flex-direction:column;align-items:center;gap:4px}
  .visit__details div{flex-direction:column;gap:6px}
  .visit__details dt{flex:none}
  .faq__list summary{justify-content:center;gap:12px}
  .foot__addr,.foot__note{margin-inline:auto}
  .foot__note,.head__note,.intro__text,.lede,.hero__lede,
  .feature__lede,.fit__body,.ed__text p,.house__body{margin-inline:auto}
  .title,.hero__title,.head__title,.intro__text,.fit h2,
  .feature h2,.ed__text h2,.house__title{max-width:none}

  /* buttons centre and stop hugging the edge */
  .acts,.gridsec__more,.sizing__cta,.moreline{display:flex;flex-wrap:wrap;
    justify-content:center;gap:10px}
  .btn,.act{min-width:min(280px,100%)}
  .btn--wa{width:auto}

  .sizing__how{grid-template-columns:1fr}
  .visit__grid{grid-template-columns:1fr}
}

/* process step images — optional, cards stay balanced with or without them */
.pstep--img{padding-top:0}
.pstep__media{position:relative;aspect-ratio:4/3;overflow:hidden;
  margin:0 calc(-1 * clamp(20px,1.8vw,28px)) clamp(20px,2vw,28px);background:var(--noir)}
.pstep__media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.2s var(--ease)}
.pstep:hover .pstep__media>img{transform:scale(1.04)}
@media (max-width:560px){ .pstep__media{aspect-ratio:16/9} }

/* =========================================================================
   Inner page components
   ========================================================================= */

/* size finder */
.finder{padding-block:var(--sp)}
.finder__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(26px,4vw,74px);align-items:start}
.finder h2{font-family:var(--display);font-size:var(--t-2);letter-spacing:-.035em;margin:0 0 18px}
.finder__lede{opacity:.68;line-height:1.8;max-width:38ch;margin:0;font-size:15px}
.finder__form{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.finder__units{grid-column:1/-1;display:flex;gap:8px}
.finder__field{display:flex;flex-direction:column;gap:8px}
.finder__field--wide{grid-column:1/-1}
.finder__field>span{font-size:10px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;opacity:.55}
.finder__field input,.finder__field select,.finder__field textarea{
  font-family:var(--body);font-size:15px;padding:14px 12px;color:inherit;
  background:transparent;border:1px solid rgba(247,242,234,.26)}
[data-bg="light"] .finder__field input,[data-bg="light"] .finder__field select,
[data-bg="light"] .finder__field textarea{border-color:rgba(24,10,17,.2)}
.finder__field input:focus,.finder__field select:focus,.finder__field textarea:focus{
  outline:none;border-color:var(--gold)}
.finder__form .btn{grid-column:1/-1;justify-self:start}
.finder__form,.enquiry__form{justify-items:stretch}
.finder__out{grid-column:1/-1;margin:0;min-height:1.6em;line-height:1.6}
.finder__size{font-family:var(--display);font-size:var(--t-2);color:var(--gold);letter-spacing:-.03em}
.finder__msg{opacity:.7;font-size:15px}
.finder__warn{border-left:2px solid var(--flame);padding:4px 0 4px 22px}
.finder__warn p{line-height:1.75;opacity:.8}

/* chart */
.chart{padding-block:var(--sp)}
.chart__units{display:flex;gap:8px}
.chart__scroll{overflow-x:auto;margin-top:26px;-webkit-overflow-scrolling:touch}
.chart__table{width:100%;border-collapse:collapse;min-width:460px}
.chart__table th{font-size:10px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;
  opacity:.55;text-align:left;padding:0 14px 14px 0;border-bottom:1px solid rgba(24,10,17,.14)}
.chart__table td{padding:15px 14px 15px 0;border-bottom:1px solid rgba(24,10,17,.1);
  font-size:15px;font-variant-numeric:tabular-nums}
.chart__table tbody tr.is-match{background:rgba(160,15,94,.07)}
.chart__table tbody tr.is-match td:first-child{box-shadow:inset 2px 0 0 var(--wine)}

/* bespoke inclusions */
.incl{padding-block:var(--sp)}
.incl__in{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(24px,3.4vw,64px)}
.incl h2{font-family:var(--display);font-size:var(--t-2);letter-spacing:-.035em;margin:0;max-width:14ch}
.incl__list{list-style:none;margin:0;padding:0;border-top:1px solid rgba(24,10,17,.14)}
.incl__list li{display:flex;gap:20px;align-items:baseline;padding:18px 0;
  border-bottom:1px solid rgba(24,10,17,.14);line-height:1.7;font-size:15.5px}
.incl__n{font-family:var(--display);font-size:12px;letter-spacing:.2em;color:var(--wine);flex:none}

/* enquiry builder */
.enquiry{padding-block:var(--sp)}
.enquiry__in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(26px,4vw,74px);align-items:start}
.enquiry h2{font-family:var(--display);font-size:var(--t-2);letter-spacing:-.035em;margin:0 0 18px}
.enquiry__note{opacity:.68;line-height:1.8;max-width:36ch;font-size:15px}
.enquiry__turn{margin-top:26px;padding-top:20px;border-top:1px solid rgba(247,242,234,.16)}
.enquiry__turn span{display:block;opacity:.5;margin-bottom:7px}
.enquiry__turn strong{font-family:var(--display);font-size:var(--t-3);font-weight:400}
.enquiry__form{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.enquiry__actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:12px}
.enquiry__preview{grid-column:1/-1;margin:0;font-size:13px;opacity:.55;line-height:1.7;min-height:1.4em}

/* the house values */
.values{padding-block:var(--sp)}
.values__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:rgba(24,10,17,.14);margin-top:30px}
.values__item{background:var(--ivory);padding:clamp(24px,2.4vw,34px) clamp(20px,1.8vw,28px)}
[data-bg="dark"] .values__item{background:var(--noir)}
.values__item h3{font-family:var(--display);font-size:var(--t-3);margin:0 0 10px;letter-spacing:-.02em}
.values__item p{font-size:14px;line-height:1.75;opacity:.68;margin:0}

/* visit extras */
.visit__copy{background:none;border:0;padding:2px 8px;margin-left:10px;cursor:pointer;
  font-family:var(--body);font-size:9px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--wine);opacity:.7}
.visit__copy:hover{opacity:1}
.visit__h2{margin-top:34px}
.visit__list--social a{border-bottom:1px solid rgba(160,15,94,.4)}
.visit__map{position:relative;aspect-ratio:16/7;margin-top:var(--sp);overflow:hidden;
  border:1px solid rgba(24,10,17,.14)}
.visit__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

@media (max-width:1000px){
  .values__grid{grid-template-columns:repeat(2,1fr)}
  .finder__form{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:880px){
  .finder__in,.enquiry__in,.incl__in{grid-template-columns:1fr}
  .finder__form,.enquiry__form{grid-template-columns:1fr}
  .finder__form .btn,.enquiry__form .btn{justify-self:center}
  .finder__form,.enquiry__form{justify-items:center}
  .finder__field,.finder__field--wide{width:100%}
  .finder__units,.chart__units,.enquiry__actions{justify-content:center}
  .incl__list li{flex-direction:column;gap:8px;align-items:center;text-align:center}
  .finder__field{text-align:left}
  .finder__field>span{text-align:center}
}
@media (max-width:560px){ .values__grid{grid-template-columns:1fr} }
