/* Dove House design tokens (brief palette only). Contrast notes:
   walnut on alabaster 13.8:1, earth on alabaster 10.6:1, walnut on brass 6.0:1,
   brass on walnut 6.0:1. Taupe (3.5:1) is used for large text and borders only;
   brass is never small text on light surfaces. */
:root{
  --alabaster:#F9F8F6;--marble:#FAF6F0;--boucle:#EFECE6;--linen:#E5E0D8;
  --walnut:#36251B;--earth:#4A3728;--taupe:#8C827A;--brass:#C3A267;--brass-deep:#B58E50;
  --ink:var(--walnut);--ink-2:var(--earth);
  --f-display:"Instrument Serif",Georgia,"Times New Roman",serif;
  --f-body:"Red Hat Text","Segoe UI",sans-serif;
  --t-xs:.75rem;--t-sm:.875rem;--t-md:1.0625rem;--t-lg:1.25rem;--t-h3:1.75rem;
  --t-h2:clamp(2.25rem,4.2vw,3.75rem);--t-h1:clamp(2.6rem,5.6vw,5.2rem);
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--s10:128px;
  --r1:2px;--r2:6px;--arch:999px 999px var(--r1) var(--r1);
  --line:1px solid rgba(54,37,27,.12);
  --ease:cubic-bezier(.22,.61,.36,1);--dur:.45s;
  --hdr:72px;--wrap:1320px;--gut:clamp(20px,4vw,56px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
html:has(dialog[open]){overflow:hidden}
body{margin:0;background:var(--alabaster);color:var(--ink);font:400 var(--t-md)/1.65 var(--f-body);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:400;line-height:1.04;margin:0;letter-spacing:-.005em}
h1{font-size:var(--t-h1)}h2{font-size:var(--t-h2)}h3{font-size:var(--t-h3);line-height:1.15}
h1 em,h2 em{color:var(--earth)}
p{margin:0 0 1em}
figure{margin:0}
:focus-visible{outline:2px solid var(--walnut);outline-offset:3px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:var(--s4);top:-100px;z-index:100;background:var(--walnut);color:var(--alabaster);padding:var(--s3) var(--s4)}
.skip:focus{top:var(--s4)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.eyebrow{font:600 var(--t-xs)/1.4 var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);display:inline-flex;align-items:center;gap:var(--s3);margin-bottom:var(--s3)}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--brass-deep)}
.eyebrow--plain::before{display:none}
.lede{font-size:var(--t-lg);color:var(--ink-2);max-width:38em}
.muted{color:var(--ink-2)}
.small{font-size:var(--t-sm)}
.sec{padding:clamp(64px,10vw,140px) 0;position:relative}
.sec--boucle{background:var(--boucle)}
.sec--linen{background:var(--linen)}
.sec--walnut{background:var(--walnut);color:var(--alabaster)}
.sec--walnut .eyebrow,.sec--walnut .muted,.sec--walnut .lede,.sec--walnut h2 em{color:var(--linen)}
.sec--walnut .eyebrow::before{background:var(--brass)}
.sec-hd{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s5);flex-wrap:wrap;margin-bottom:var(--s7)}

/* Demo bar + header */
.demo-bar{background:var(--walnut);color:var(--boucle);font-size:var(--t-xs);letter-spacing:.04em;text-align:center;padding:8px var(--gut);line-height:1.5}
.demo-bar a{color:var(--brass)}
.hdr{position:sticky;top:0;z-index:40;background:rgba(249,248,246,.74);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid transparent;transition:border-color var(--dur) var(--ease)}
.hdr.is-scrolled{border-bottom-color:rgba(54,37,27,.12)}
@supports not ((backdrop-filter:blur(8px)) or (-webkit-backdrop-filter:blur(8px))){.hdr{background:rgba(249,248,246,.97)}}
.hdr__in{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut);height:var(--hdr);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--s5)}
.hdr__nav{display:flex;gap:var(--s6)}
.hdr__nav a{text-decoration:none;font-size:var(--t-sm);letter-spacing:.1em;text-transform:uppercase;font-weight:500;position:relative;padding:var(--s3) 0}
.hdr__nav a::after{content:"";position:absolute;left:0;right:100%;bottom:6px;height:1px;background:var(--brass-deep);transition:right var(--dur) var(--ease)}
.hdr__nav a:hover::after,.hdr__nav a[aria-current="page"]::after{right:0}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--walnut);min-height:44px}
.brand svg{width:24px;height:28px}
.brand span{font-family:var(--f-display);font-size:1.75rem;line-height:1;letter-spacing:.01em}
.hdr__act{display:flex;justify-content:flex-end;gap:var(--s2)}
.ibtn{width:44px;height:44px;display:inline-grid;place-items:center;background:none;border:1px solid transparent;border-radius:var(--r1);cursor:pointer;position:relative;color:inherit;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.ibtn:hover{border-color:var(--brass);transform:scale(1.04)}
.ibtn svg{width:20px;height:20px}
.ibtn .count{position:absolute;top:3px;right:1px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--walnut);color:var(--alabaster);font-size:11px;font-weight:600;line-height:18px;text-align:center}
.ibtn .count:empty{display:none}
.hdr__burger{display:none!important}
@media (max-width:899px){.hdr__nav{display:none}.hdr__burger{display:inline-grid!important}.hdr__in{gap:var(--s2)}.brand span{font-size:1.45rem}}

/* Dialogs */
dialog{border:0;padding:0;color:var(--ink);background:var(--alabaster);max-width:none;max-height:none}
dialog::backdrop{background:rgba(54,37,27,.4)}
.drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(440px,100vw);height:100%;max-height:100dvh;flex-direction:column;box-shadow:-1px 0 0 var(--brass)}
.drawer[open]{display:flex;animation:dIn .45s var(--ease)}
.drawer--left{inset:0 auto 0 0;box-shadow:1px 0 0 var(--brass)}
.drawer--left[open]{animation:dInL .45s var(--ease)}
@keyframes dIn{from{transform:translateX(48px);opacity:0}}
@keyframes dInL{from{transform:translateX(-48px);opacity:0}}
.drawer__hd{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s3) var(--s5);border-bottom:var(--line);min-height:var(--hdr)}
.drawer__hd h2{font-size:1.9rem}
.drawer__bd{flex:1;overflow:auto;padding:var(--s5)}
.drawer__ft{padding:var(--s5);border-top:1px solid rgba(195,162,103,.6);background:var(--boucle)}
.mnav{display:flex;flex-direction:column}
.mnav a{font-family:var(--f-display);font-size:2.3rem;text-decoration:none;padding:var(--s3) 0;border-bottom:var(--line)}
.mnav a[aria-current="page"]{color:var(--earth);font-style:italic}
.search{width:min(760px,calc(100vw - 32px));margin:10vh auto auto;border-radius:var(--r2);box-shadow:0 0 0 1px var(--brass)}
.search[open]{animation:fade .35s var(--ease)}
@keyframes fade{from{opacity:0;transform:translateY(8px)}}
.search__in{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4) var(--s3) var(--s5);border-bottom:var(--line)}
.search__in>svg{width:22px;height:22px;flex:0 0 auto}
.search__in input{flex:1;min-width:0;border:0;background:none;font-family:var(--f-display);font-size:clamp(1.5rem,4vw,2rem);padding:var(--s2) 0}
.search__in input:focus{outline:none}
.search__in:focus-within{box-shadow:inset 0 -2px 0 var(--walnut)}
.search__res{max-height:60vh;overflow:auto;padding:var(--s3)}
.sres{display:grid;grid-template-columns:72px 1fr auto;gap:var(--s4);align-items:center;padding:var(--s2);text-decoration:none;border-radius:var(--r1);border:1px solid transparent;transition:border-color var(--dur),background var(--dur)}
.sres:hover,.sres:focus-visible{border-color:var(--brass);background:var(--boucle)}
.sres .art,.citem .art{display:block;aspect-ratio:1;overflow:hidden;border-radius:var(--r1)}
.sres .art svg,.citem .art svg,.hchip .art svg{width:100%;height:100%}
.search__empty{padding:var(--s5)}

/* Buttons + links */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s3);min-height:48px;padding:0 var(--s6);background:var(--walnut);color:var(--alabaster);border:1px solid var(--walnut);border-radius:var(--r1);font:600 var(--t-sm)/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background-color var(--dur),color var(--dur),border-color var(--dur)}
.btn:hover{transform:scale(1.02);box-shadow:0 0 0 2px var(--alabaster),0 0 0 3px var(--brass)}
.btn--brass{background:var(--brass);color:var(--walnut);border-color:var(--brass)}
.btn--brass:hover{background:var(--brass-deep);border-color:var(--brass-deep)}
.btn--line{background:transparent;color:var(--walnut)}
.btn--line:hover{background:var(--walnut);color:var(--alabaster)}
.btn--block{width:100%}
.btn[disabled]{opacity:.6;cursor:progress;transform:none;box-shadow:none}
.spin{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.link{font-weight:600;text-decoration:none;border-bottom:1px solid var(--brass-deep);padding-bottom:2px;transition:border-color var(--dur);color:inherit}
.link:hover{border-color:var(--walnut)}
.link--arrow::after{content:" →"}
button.link{background:none;border-top:0;border-left:0;border-right:0;cursor:pointer;padding:0 0 2px;font:inherit;font-weight:600;min-height:32px}

/* Hero */
.hero{position:relative;padding:clamp(16px,2.6vw,36px) 0 var(--s4);background:var(--alabaster)}
.hero__top{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s4) var(--s6);flex-wrap:wrap;margin-bottom:clamp(14px,2vw,24px)}
.hero h1{font-size:clamp(2.4rem,4.6vw,4.4rem);max-width:15ch}
.hero__side{max-width:340px}
.hero__side p{margin-bottom:var(--s3)}
.hint{display:inline-flex;align-items:center;gap:var(--s3);font-size:var(--t-sm);font-weight:500;color:var(--ink-2);opacity:0;transform:translateY(6px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.hint.is-on{opacity:1;transform:none}
.hint__dot{width:10px;height:10px;border-radius:50%;background:var(--brass);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(181,142,80,.6)}70%{box-shadow:0 0 0 10px rgba(181,142,80,0)}100%{box-shadow:0 0 0 0 rgba(181,142,80,0)}}
.stage{position:relative;margin:0 auto;width:min(100%,calc((100vh - 390px) * 16 / 9));width:min(100%,calc((100svh - 390px) * 16 / 9));min-width:min(100%,640px)}
.stage__frame{position:relative;border:1px solid rgba(195,162,103,.75);border-radius:var(--r1);background:var(--alabaster);overflow:hidden}
.room{width:100%;height:auto}
.room .p{stroke:var(--walnut);stroke-width:1.25;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:1;fill-opacity:0}
.room .f{stroke:none;pointer-events:none}
.room.is-drawing .p{stroke-dashoffset:0;transition:stroke-dashoffset 1.2s cubic-bezier(.65,0,.35,1) calc(var(--i,0) * 30ms)}
.room.is-filled .p{stroke-dashoffset:0;fill-opacity:1;stroke-opacity:.3;transition:fill-opacity 1.5s var(--ease) calc(var(--f,0) * 110ms),stroke-opacity 1.5s var(--ease),stroke .35s,stroke-width .35s}
.room.is-filled .boards .p{stroke:var(--walnut);stroke-opacity:.55}
.room.is-still .p{transition:none!important;stroke-dashoffset:0;fill-opacity:1;stroke-opacity:.3}
.room .hs{cursor:pointer;outline:none;transition:opacity .45s var(--ease),filter .45s var(--ease)}
.room:not(.is-ready) .hs{pointer-events:none}
.room.has-on .hs:not(.on){opacity:.6}
.room .hs.on{filter:drop-shadow(0 0 10px rgba(195,162,103,.8))}
.room .hs.on .p{stroke:var(--brass-deep);stroke-opacity:1;stroke-width:2.4}
.room .hs:focus-visible .p{stroke:var(--walnut);stroke-opacity:1;stroke-width:2.8}
.room .p.pole{fill:none;stroke:var(--brass-deep);stroke-width:5}
.room.is-filled .p.pole,.room.is-still .p.pole{stroke-opacity:1}
.room .hs.on .p.pole{stroke-width:6;stroke:var(--brass)}
.hcard{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,calc(-100% - 14px));min-width:220px;padding:var(--s4) var(--s5);background:rgba(249,248,246,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--brass);border-radius:var(--r1);pointer-events:none;opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s}
.hcard.is-below{transform:translate(-50%,14px)}
.hcard.is-on{opacity:1;visibility:visible}
.hcard .eyebrow{margin-bottom:2px}
.hcard__name{font-family:var(--f-display);font-size:1.7rem;line-height:1.1;margin:0 0 4px}
.hcard__meta{font-size:var(--t-sm);color:var(--ink-2);margin:0}
.hcard__go{display:none!important}
@media (hover:none){.hcard{pointer-events:auto}.hcard__go{display:inline-flex!important;margin-top:var(--s3);min-height:44px}}
.hero__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}
.hchips{display:flex;gap:var(--s3);overflow-x:auto;scroll-snap-type:x mandatory;padding:var(--s4) 2px var(--s2);scrollbar-width:thin;scrollbar-color:var(--brass) transparent}
.hchip{scroll-snap-align:start;flex:0 0 auto;display:flex;align-items:center;gap:var(--s3);padding:5px var(--s4) 5px 5px;border:1px solid rgba(54,37,27,.18);border-radius:var(--r1);background:var(--alabaster);text-decoration:none;font-size:var(--t-sm);font-weight:500;transition:border-color var(--dur),transform var(--dur) var(--ease),background-color var(--dur)}
.hchip .art{width:52px;height:40px;border-radius:var(--r1);overflow:hidden;display:block}
.hchip:hover,.hchip.on{border-color:var(--brass-deep);background:var(--boucle);transform:translateY(-2px)}
.replay{flex:0 0 auto;background:none;border:0;border-bottom:1px solid var(--brass-deep);padding:4px 0;min-height:32px;font-size:var(--t-sm);font-weight:600;cursor:pointer;color:var(--ink)}
.replay:hover{border-color:var(--walnut)}
@media (max-width:699px){.hcard{position:static;transform:none!important;border:0;border-top:1px solid var(--brass);border-radius:0;min-width:0;display:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--boucle)}.hcard.is-on{display:block}.hero__bar{flex-direction:column;align-items:stretch}.hchips{margin:0 calc(var(--gut)*-1);padding-left:var(--gut);padding-right:var(--gut)}.replay{align-self:flex-start}.stage{min-width:0}}
@media (min-width:900px) and (min-height:700px){
  .hero--stick{position:sticky;top:var(--hdr);z-index:0}
  .stack{position:relative;z-index:1;background:var(--alabaster);box-shadow:0 -1px 0 var(--brass)}
}
.stack{position:relative;z-index:1;background:var(--alabaster)}

/* Reveal + motion */
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js [data-reveal].in{opacity:1;transform:none}
[data-reveal][data-d="1"]{transition-delay:.12s}[data-reveal][data-d="2"]{transition-delay:.24s}
.still [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}
.still *,.still *::before,.still *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Narrative */
.narr{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(40px,7vw,112px);align-items:center}
.collage{position:relative;aspect-ratio:1/1.05}
.tile{position:absolute;overflow:hidden;border-radius:var(--r1);box-shadow:0 0 0 1px rgba(54,37,27,.06);will-change:transform}
.tile>div,.tile svg{width:100%;height:100%}
.t1{left:0;top:5%;width:44%;height:56%}.t2{left:48%;top:0;width:52%;height:42%}.t3{left:30%;top:47%;width:36%;height:28%}.t4{left:5%;top:66%;width:22%;height:20%;border-radius:var(--arch)}.t5{left:70%;top:46%;width:30%;height:48%}
.tile figcaption{position:absolute;left:8px;bottom:8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;background:rgba(249,248,246,.9);padding:3px 8px;font-weight:600}
.narr__copy h2{margin-bottom:var(--s5)}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s5);margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--brass)}
.facts b{display:block;font-family:var(--f-display);font-weight:400;font-size:2.6rem;line-height:1;margin-bottom:6px}
.facts span{font-size:var(--t-sm);color:var(--ink-2);display:block;line-height:1.4}
@media (max-width:899px){.narr{grid-template-columns:1fr}.collage{max-width:560px}}

/* Collections */
.cgrid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:150px;gap:var(--s4)}
.ccard{position:relative;display:flex;flex-direction:column;text-decoration:none;background:var(--alabaster);border:1px solid transparent;border-radius:var(--r1);overflow:hidden;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.ccard:hover{border-color:var(--brass);transform:translateY(-3px)}
.ccard__art{flex:1;overflow:hidden;min-height:0}
.ccard__art svg{width:100%;height:100%;transition:transform 1.2s var(--ease)}
.ccard:hover .ccard__art svg{transform:scale(1.06)}
.ccard__txt{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s4);padding:var(--s3) var(--s5);border-top:1px solid rgba(195,162,103,.55)}
.ccard__txt h3{font-size:1.6rem}
.ccard__txt span{font-size:var(--t-sm);color:var(--ink-2);white-space:nowrap}
.c1{grid-column:1/8;grid-row:span 4}.c2{grid-column:8/13;grid-row:span 2}.c3{grid-column:8/13;grid-row:span 2}
.c4{grid-column:1/5;grid-row:span 2}.c5{grid-column:5/9;grid-row:span 2;margin-top:var(--s7)}.c6{grid-column:9/13;grid-row:span 2}
@media (max-width:899px){.cgrid{grid-template-columns:1fr 1fr;grid-auto-rows:auto}.cgrid>*{grid-column:auto!important;grid-row:auto!important;margin:0!important}.ccard__art{aspect-ratio:4/3;flex:none}.c1{grid-column:1/-1!important}}
@media (max-width:560px){.cgrid{grid-template-columns:1fr}}

/* Horizontal craft scroll */
.hs-sec{position:relative;background:var(--walnut);color:var(--alabaster)}
.hs-sec .eyebrow,.hs-sec .lede,.hs-sec h2 em{color:var(--linen)}
.hs-sec .eyebrow::before{background:var(--brass)}
.hs-pin{position:relative;overflow:hidden;padding:clamp(64px,8vw,112px) 0}
.hs-head{margin-bottom:var(--s6)}
.hs-track{display:flex;gap:var(--s5);padding:4px var(--gut);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--brass) transparent}
.hs-card{flex:0 0 min(400px,80vw);scroll-snap-align:start;display:flex;flex-direction:column;background:var(--earth);border:1px solid rgba(195,162,103,.45);border-radius:var(--r1);overflow:hidden;transition:border-color var(--dur),transform var(--dur) var(--ease)}
.hs-card:hover{border-color:var(--brass);transform:translateY(-4px)}
.hs-card__art{aspect-ratio:16/10;overflow:hidden}
.hs-card__art svg{width:100%;height:100%}
.hs-card__bd{padding:var(--s5)}
.hs-card__n{font-family:var(--f-display);font-size:2.8rem;line-height:1;color:var(--brass);margin-bottom:var(--s2)}
.hs-card h3{margin-bottom:var(--s3)}
.hs-card p{color:var(--linen)}
.hs-card .src{font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);font-weight:600;margin:0}
.hs-progress{height:1px;background:rgba(195,162,103,.3);margin:var(--s6) var(--gut) 0;position:relative}
.hs-progress i{position:absolute;left:0;top:-1px;height:3px;width:var(--p,0%);background:var(--brass)}
.hs-sec.is-pinned{height:var(--hs-h)}
.hs-sec.is-pinned .hs-pin{position:sticky;top:var(--hdr);height:calc(100vh - var(--hdr));display:flex;flex-direction:column;justify-content:center;padding:var(--s6) 0}
.hs-sec.is-pinned .hs-track{overflow:visible;scroll-snap-type:none;will-change:transform}

/* Newsletter */
.news{background-color:var(--boucle);background-image:radial-gradient(circle,rgba(249,248,246,.85) 0 1.3px,transparent 1.9px),radial-gradient(circle,rgba(140,130,122,.16) 0 1.1px,transparent 1.7px),radial-gradient(circle,rgba(229,224,216,.9) 0 2px,transparent 2.6px);background-size:9px 9px,13px 13px,17px 17px;background-position:0 0,4px 6px,8px 3px;border-top:1px solid rgba(195,162,103,.5)}
.news__in{display:grid;grid-template-columns:1fr 1fr;gap:var(--s7);align-items:end}
.inrow{display:flex;border:1px solid var(--taupe);background:var(--alabaster);border-radius:var(--r1);transition:border-color var(--dur),box-shadow var(--dur)}
.inrow input{flex:1;min-width:0;border:0!important;box-shadow:none!important;background:none!important;min-height:52px;padding:0 var(--s4)}
.inrow input:focus{outline:none}
.inrow:focus-within{border-color:var(--walnut);box-shadow:0 0 0 1px var(--walnut)}
.inrow .btn{border-radius:0;min-height:52px;margin:-1px -1px -1px 0}
.has-err .inrow{border-color:var(--walnut);box-shadow:0 0 0 1px var(--walnut);background:var(--marble)}
@media (max-width:899px){.news__in{grid-template-columns:1fr}}
@media (max-width:420px){.inrow{flex-direction:column}.inrow .btn{margin:0}}

/* Forms */
.field{display:grid;gap:6px;margin-bottom:var(--s4)}
.field>label,.flabel{font-size:var(--t-sm);font-weight:600}
.opt-l{font-weight:400;color:var(--ink-2)}
.field input,.field select,.field textarea,.input{width:100%;min-height:48px;padding:var(--s3) var(--s4);background:var(--alabaster);border:1px solid var(--taupe);border-radius:var(--r1);transition:border-color var(--dur),box-shadow var(--dur)}
.field textarea{min-height:140px;resize:vertical}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--brass-deep)}
.field input:focus,.field select:focus,.field textarea:focus,.input:focus{outline:none;border-color:var(--walnut);box-shadow:0 0 0 1px var(--walnut)}
.has-err input:not([type=checkbox]):not([type=radio]),.has-err select,.has-err textarea{border-color:var(--walnut);box-shadow:0 0 0 1px var(--walnut);background:var(--marble)}
.err{display:none;margin:0;font-size:var(--t-sm);font-weight:600;color:var(--walnut);gap:8px;align-items:flex-start;line-height:1.4}
.has-err .err{display:flex}
.err::before{content:"!";flex:0 0 18px;height:18px;border-radius:50%;background:var(--walnut);color:var(--alabaster);font-size:12px;display:grid;place-items:center;line-height:1}
.errsum{border:2px solid var(--walnut);background:var(--marble);padding:var(--s4) var(--s5);margin-bottom:var(--s5);border-radius:var(--r1)}
.errsum h3{font-family:var(--f-body);font-size:1rem;font-weight:600;margin-bottom:var(--s2)}
.errsum ul{margin:0;padding-left:1.2em}
.check{display:flex;gap:var(--s3);align-items:flex-start;font-size:var(--t-sm)}
.check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--walnut);flex:0 0 auto}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px}
.notice{padding:var(--s4) var(--s5);border:1px solid var(--brass-deep);border-left:4px solid var(--walnut);background:var(--marble);border-radius:var(--r1);margin-bottom:var(--s4)}
.success{padding:var(--s6);border:1px solid var(--brass);background:var(--marble);border-radius:var(--r1)}
.success h3{margin-bottom:var(--s3)}
.success:focus{outline:2px solid var(--walnut);outline-offset:3px}
fieldset{border:0;padding:0;margin:0 0 var(--s5);min-width:0}
legend{font-weight:600;font-size:var(--t-sm);margin-bottom:var(--s3);padding:0}
legend.h3{font-family:var(--f-display);font-weight:400;font-size:1.8rem;margin-bottom:var(--s4)}
.rgroup{display:grid;gap:var(--s3);margin-bottom:var(--s5)}
.rcard{display:flex;gap:var(--s3);align-items:flex-start;padding:var(--s4);border:1px solid var(--taupe);border-radius:var(--r1);cursor:pointer;transition:border-color var(--dur),background-color var(--dur)}
.rcard:hover{border-color:var(--brass-deep)}
.rcard:has(input:checked){border-color:var(--walnut);background:var(--boucle);box-shadow:inset 0 0 0 1px var(--walnut)}
.rcard input{accent-color:var(--walnut);width:18px;height:18px;margin:3px 0 0;flex:0 0 auto}
.rcard b{display:block;font-weight:600}
.rcard small{color:var(--ink-2);font-size:var(--t-sm)}
.rcard .amt{margin-left:auto;font-weight:600;white-space:nowrap}
.two{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s4)}
@media (max-width:560px){.two{grid-template-columns:1fr}}

/* Footer */
.ft{background:var(--walnut);color:var(--linen);padding:var(--s9) 0 var(--s6);position:relative;z-index:2}
.ft a{color:var(--alabaster);text-decoration:none}
.ft a:hover{text-decoration:underline;text-decoration-color:var(--brass)}
.ft__grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:var(--s7)}
.ft h2{font-family:var(--f-body);font-size:var(--t-xs);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin-bottom:var(--s4)}
.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2)}
.ft .brand{color:var(--alabaster)}
.ft__bot{margin-top:var(--s8);padding-top:var(--s5);border-top:1px solid rgba(195,162,103,.4);display:flex;flex-wrap:wrap;gap:var(--s4) var(--s6);justify-content:space-between;align-items:center;font-size:var(--t-sm)}
.ft__tools{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);align-items:center}
.ft__tools label{display:inline-flex;gap:8px;align-items:center;min-height:32px;cursor:pointer}
.ft__tools input{accent-color:var(--brass);width:16px;height:16px}
.ft__tools button{background:none;border:1px solid rgba(195,162,103,.7);color:var(--alabaster);padding:6px 12px;border-radius:var(--r1);cursor:pointer;min-height:32px}
.ft__tools button:hover{border-color:var(--brass)}
.ft .status{color:var(--alabaster);border-color:var(--brass)}
@media (max-width:899px){.ft__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ft__grid{grid-template-columns:1fr}.ft{padding-bottom:var(--s9)}}

/* Toast, cart */
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--walnut);color:var(--alabaster);padding:var(--s3) var(--s5);border-radius:var(--r1);box-shadow:0 0 0 1px var(--brass);opacity:0;pointer-events:none;transition:opacity .4s var(--ease),transform .4s var(--ease);z-index:200;font-size:var(--t-sm);max-width:calc(100vw - 32px)}
.toast.is-on{opacity:1;transform:translate(-50%,0)}
.citem{display:grid;grid-template-columns:84px 1fr auto;gap:var(--s4);padding:var(--s4) 0;border-bottom:var(--line);align-items:start}
.citem h3{font-size:1.3rem}
.citem h3 a{text-decoration:none}
.citem small{color:var(--ink-2);display:block;font-size:var(--t-sm)}
.qty{display:inline-flex;align-items:center;border:1px solid var(--taupe);border-radius:var(--r1);background:var(--alabaster)}
.qty button{width:40px;height:40px;background:none;border:0;cursor:pointer;font-size:1.1rem}
.qty button:hover{background:var(--boucle)}
.qty span,.qty input{min-width:32px;text-align:center}
.qty input{width:40px;border:0;background:none;height:40px;padding:0}
.rm{background:none;border:0;padding:0;min-height:32px;font-size:var(--t-sm);text-decoration:underline;cursor:pointer;color:var(--ink-2)}
.totrow{display:flex;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s2)}
.totrow--big{font-family:var(--f-display);font-size:1.7rem;line-height:1.2}
.empty{padding:var(--s7) var(--s5);text-align:center;border:1px dashed var(--taupe);border-radius:var(--r1)}
.empty h3{margin-bottom:var(--s3)}
.empty .btn{margin-top:var(--s3)}
.chips{display:flex;flex-wrap:wrap;gap:var(--s2)}
.fchip{display:inline-flex;gap:6px;align-items:center;min-height:36px;padding:0 var(--s3);border:1px solid var(--brass-deep);background:var(--boucle);border-radius:var(--r1);font-size:var(--t-sm);cursor:pointer;text-decoration:none;transition:background-color var(--dur)}
.fchip:hover{background:var(--linen)}
.status{display:inline-flex;align-items:center;gap:8px;font-size:var(--t-sm);font-weight:600;padding:4px 12px;border:1px solid var(--brass-deep);border-radius:var(--r1)}
.status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--taupe)}
.status.is-open::before{background:var(--brass)}
.status:empty{display:none}