/* ValuFlor — site styles, v2 (10/1/26).
   Dark "night" is the default theme; "paper" is the light theme behind the header toggle.
   Any element can force a palette for contrast: .theme-night / .theme-paper / .theme-orange.
   Brand: orange #E18942 · gold #EECD86 · rust #B95835 · charcoal #404040. */

/* ── fonts (self-hosted, OFL) ─────────────────────────────────────────── */
@font-face{font-family:Archivo;font-style:normal;font-weight:500 800;font-stretch:100%;font-display:swap;
  src:url(/assets/fonts/archivo-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Archivo;font-style:normal;font-weight:500 800;font-stretch:100%;font-display:swap;
  src:url(/assets/fonts/archivo-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400 600;font-stretch:100%;font-display:swap;
  src:url(/assets/fonts/plex-sans-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400 600;font-stretch:100%;font-display:swap;
  src:url(/assets/fonts/plex-sans-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plex-mono-400-latin.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/plex-mono-500-latin.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/plex-mono-600-latin.woff2) format("woff2")}

/* ── tokens ───────────────────────────────────────────────────────────── */
:root{
  --vf-orange:#E18942; --vf-gold:#EECD86; --vf-rust:#B95835; --vf-charcoal:#404040;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --sans:"IBM Plex Sans",-apple-system,"Segoe UI",sans-serif;
  --head:Archivo,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.76,0,.24,1);
  --hdr-h:74px;
  --r-s:6px; --r-m:14px; --r-l:22px;
  --gut:clamp(18px,4vw,40px);
}
/* night (default) */
:root,[data-theme="dark"],.theme-night,[data-theme="light"] .theme-flip{
  --vfg:#0E0C0A; --vfband:#14110E; --vfpanel:#1B1713; --vfpanel2:#241E19; --vfglass:rgba(27,23,19,.62);
  --vfline:#2F2923; --vfline2:#4A4037; --vffield:#6F655A;
  --vfink:#F5F0E8; --vfbody:#D0C7BB; --vfmut:#A39889; --vffaint:#6F655A;
  --vfacc:#E18942; --vfacct:#F2A167; --vfgold:#EECD86; --vfgoldt:#EECD86; --vfrust:#CF6B43; --vfonacc:#1C1108;
  --vfhead:rgba(14,12,10,.72); --vfchip:rgba(14,12,10,.55); --vfvid:1;
  --vfscrim:linear-gradient(90deg,rgba(14,12,10,.86) 0%,rgba(14,12,10,.62) 34%,rgba(14,12,10,.18) 66%,rgba(14,12,10,0) 100%);
  --vffade:linear-gradient(to top,#0E0C0A 0%,rgba(14,12,10,.55) 22%,rgba(14,12,10,0) 48%);
  --vfposter:linear-gradient(to top,rgba(14,12,10,.92),rgba(14,12,10,.5));
  --vfposterhero:linear-gradient(to top,rgba(14,12,10,.9),rgba(14,12,10,.35));
  --vfidle:radial-gradient(circle at 50% 40%,#241E19,#0E0C0A);
  --vflogoband:#F4F0E9; --vflift:0 22px 50px rgba(0,0,0,.55),0 2px 0 rgba(255,255,255,.03) inset;
  --vfglow:0 0 0 1px rgba(225,137,66,.5),0 18px 60px rgba(225,137,66,.18);
  --vfplate:linear-gradient(90deg,rgba(14,12,10,.9),rgba(14,12,10,.7) 46%,rgba(14,12,10,.2) 78%,transparent);
  --vftexline:rgba(255,255,255,.045); --vfwash1:rgba(225,137,66,.16); --vfwash2:rgba(185,88,53,.16);
  --fact-1:#F5F0E8; --fact-2:var(--vf-orange); --fact-4:var(--vf-gold);
  --vfgrain:.06;
  color-scheme:dark;
}
/* paper */
[data-theme="light"],.theme-paper,[data-theme="dark"] .theme-flip{
  --vfg:#FAF7F2; --vfband:#F1ECE4; --vfpanel:#FFFFFF; --vfpanel2:#F7F3EC; --vfglass:rgba(255,255,255,.7);
  --vfline:#E2DACE; --vfline2:#C8BDAD; --vffield:#8A8278;
  --vfink:#15120F; --vfbody:#3D3832; --vfmut:#675F55; --vffaint:#9A9186;
  --vfacc:#E18942; --vfacct:#A0511C; --vfgold:#BE8A31; --vfgoldt:#8A5A12; --vfrust:#B95835; --vfonacc:#1C1108;
  --vfhead:rgba(250,247,242,.78); --vfchip:rgba(250,247,242,.7); --vfvid:1;
  --vfscrim:linear-gradient(90deg,rgba(14,12,10,.84) 0%,rgba(14,12,10,.58) 36%,rgba(14,12,10,.14) 70%,rgba(14,12,10,0) 100%);
  --vffade:linear-gradient(to top,#FAF7F2 0%,rgba(250,247,242,0) 30%);
  --vfposter:linear-gradient(to top,rgba(250,247,242,.95),rgba(250,247,242,.6));
  --vfposterhero:linear-gradient(to top,rgba(14,12,10,.88),rgba(14,12,10,.3));
  --vfidle:radial-gradient(circle at 50% 40%,#FFFFFF,#EDE7DD);
  --vflogoband:transparent; --vflift:0 22px 48px rgba(46,34,22,.16);
  --vfglow:0 0 0 1px rgba(225,137,66,.55),0 18px 50px rgba(225,137,66,.2);
  --vfplate:linear-gradient(90deg,rgba(250,247,242,.94),rgba(250,247,242,.74) 46%,rgba(250,247,242,.2) 78%,transparent);
  --vftexline:rgba(40,32,24,.06); --vfwash1:rgba(225,137,66,.16); --vfwash2:rgba(185,88,53,.1);
  --fact-1:#15120F; --fact-2:var(--vfacct); --fact-4:var(--vfgoldt);
  --vfgrain:.035;
  color-scheme:light;
}
/* the orange slab: dark ink on brand orange, regardless of theme */
.theme-orange{
  --vfg:#E18942; --vfband:#D87D36; --vfpanel:#EA9A57; --vfpanel2:#F0AB6E; --vfglass:rgba(234,154,87,.6);
  --vfline:rgba(28,17,8,.22); --vfline2:rgba(28,17,8,.4); --vffield:rgba(28,17,8,.5);
  --vfink:#1C1108; --vfbody:#2E1C0E; --vfmut:#4A2D15; --vffaint:rgba(28,17,8,.45);
  --vfacc:#1C1108; --vfacct:#1C1108; --vfgold:#1C1108; --vfgoldt:#1C1108; --vfrust:#1C1108; --vfonacc:#E18942;
  --vflift:0 22px 48px rgba(60,28,6,.28);
  color-scheme:light;
}
/* the photo hero is always night, whatever the page theme: white type on footage */
.hero,.hero-photo.is-night{--vfg:#0E0C0A;--vfink:#F7F2EA;--vfbody:#E2D9CD;--vfmut:#BDB2A3;--vfacct:#F4A86F;--vfgoldt:#F1D597;--vfline:rgba(255,255,255,.16);--vfline2:rgba(255,255,255,.3);--vfchip:rgba(14,12,10,.5);color-scheme:dark}

/* ── base ─────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdr-h) + 16px);background:var(--vfg);overflow-x:clip}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;overflow-x:clip;background:var(--vfg);color:var(--vfink);font-family:var(--sans);
  font-size:16.5px;line-height:1.62;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;
  transition:background-color .5s ease,color .5s ease}
/* film grain over everything: kills banding on the dark gradients and gives the page a material feel */
body::after{content:"";position:fixed;inset:-50%;z-index:9999;pointer-events:none;opacity:var(--vfgrain);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
a{color:var(--vfacct);text-decoration:none;transition:color .2s ease}
a:hover{color:var(--vfgoldt)}
p a:not(.btn),.fine a,.lead__error a,.prose a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
h1,h2,h3,h4{font-family:var(--head);margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
img,svg,video{max-width:100%}
img{height:auto}
address{font-style:normal}
input,select,textarea,button{font-family:inherit;font-size:inherit}
button{color:inherit}
:focus-visible{outline:2px solid var(--vfgoldt);outline-offset:3px}
::selection{background:var(--vfacc);color:#1C1108}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--vfacc);color:#1C1108;padding:10px 16px;border-radius:3px;
  font:600 12px/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;transition:top .15s}
.skip:focus{top:12px;color:#1C1108}
.theme-night,.theme-paper,.theme-orange,.theme-flip{background:var(--vfg);color:var(--vfink)}
[data-theme="light"] .sec--band:not(.theme-flip):not(.theme-night){background:#E9E1D4}

/* theme-dependent logos: white on night, colour on paper */
.logo{display:block;width:auto}
.logo--light{display:none}
.logo--dark{display:block}
[data-theme="light"] .logo--light,.theme-paper .logo--light,[data-theme="dark"] .theme-flip .logo--light{display:block}
[data-theme="light"] .logo--dark,.theme-paper .logo--dark,[data-theme="dark"] .theme-flip .logo--dark{display:none}
[data-theme="light"] .theme-flip .logo--light{display:none}
[data-theme="light"] .theme-flip .logo--dark{display:block}
.theme-night .logo--light,.hero .logo--light{display:none}
.theme-night .logo--dark,.hero .logo--dark{display:block}

/* ── layout ───────────────────────────────────────────────────────────── */
.wrap{max-width:1320px;margin-inline:auto;padding-inline:var(--gut);padding-block:var(--py,0)}
.wrap--wide{max-width:1560px}
.sec{position:relative;border-bottom:1px solid var(--vfline)}
.sec--band{background:var(--vfband)}
.sec--tex{overflow:hidden}
.sec--tex>.wrap{position:relative;z-index:2}
.sec--flush{border-bottom:0}
.py-home{--py:clamp(56px,7vw,104px)}
.py-in{--py:clamp(60px,7vw,112px)}
.py-hero{--py:clamp(56px,7vw,104px)}
.py-tight{--py:clamp(40px,5vw,72px)}
.tex{position:absolute;inset:0;pointer-events:none;
  background-image:
    repeating-linear-gradient(0deg,transparent 0 54px,var(--vftexline) 54px 55px),
    repeating-linear-gradient(90deg,transparent 0 188px,var(--vftexline) 188px 189px),
    radial-gradient(120% 100% at 6% 0%,var(--vfwash1),transparent 62%),
    radial-gradient(100% 92% at 94% 100%,var(--vfwash2),transparent 64%)}
.grid{display:grid;gap:var(--gap,18px);grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--min,260px)),1fr))}
.split{display:flex;gap:var(--gap,28px);flex-wrap:wrap;align-items:flex-end;justify-content:space-between}
.mt-s{margin-top:18px}.mt-m{margin-top:26px}.mt-l{margin-top:34px}.mt-xl{margin-top:48px}
.sec-head{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(24px,5vw,80px);align-items:start}
.sec-head .sub{margin-top:29px;justify-self:end;max-width:44ch;padding-top:20px;border-top:1px solid var(--vfline)}
@media (max-width:860px){.sec-head{grid-template-columns:1fr}.sec-head .sub{justify-self:start}}

/* ── type ─────────────────────────────────────────────────────────────── */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:600 11px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--vfacct)}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 18%,transparent)}
.eyebrow--plain::before,.eyebrow--s::before,.eyebrow--xs::before,.eyebrow--xxs::before,.fact__k.eyebrow::before{display:none}
.eyebrow--s{font-size:10.5px;letter-spacing:.18em}
.eyebrow--xs{font-size:10px;letter-spacing:.18em}
.eyebrow--xxs{font-size:9.5px;line-height:1.4;letter-spacing:.16em}
.is-mut{color:var(--vfmut)}.is-gold{color:var(--vfgoldt)}.is-acc{color:var(--vfacct)}.is-faint{color:var(--vffaint)}.is-ink{color:var(--vfink)}
.h-hero,.h1,.h2,.h3,.h2--in{font-family:var(--head)}
.h-hero{font-size:clamp(3.2rem,8.6vw,8.4rem);font-weight:800;line-height:.9;letter-spacing:-.048em;margin-top:22px;max-width:13ch}
.h1{font-size:clamp(2.7rem,6.6vw,5.9rem);font-weight:800;letter-spacing:-.045em;line-height:.94;margin-top:18px;max-width:15ch}
.h2{font-size:clamp(2.2rem,4.9vw,4.4rem);font-weight:800;letter-spacing:-.04em;line-height:.98;margin-top:18px;max-width:20ch}
@media (min-width:1200px){.h2{max-width:24ch}}
.h2--in{font-size:clamp(1.9rem,3.8vw,3.4rem);line-height:1.02}
.h3{font-size:1.2rem;font-weight:700;letter-spacing:-.015em}
.h-display{font:800 clamp(4rem,15vw,15rem)/.82 var(--head);letter-spacing:-.06em}
.ital{font-style:italic;font-weight:600}
.accent{color:var(--vfacc)}
.outline{color:transparent;-webkit-text-stroke:1.5px var(--vfink);transition:color .5s var(--ease-out),-webkit-text-stroke-color .5s ease}
.outline:hover{color:var(--vfacc);-webkit-text-stroke-color:var(--vfacc)}
.lede{margin-top:22px;max-width:56ch;font-size:clamp(1.05rem,1.4vw,1.22rem);color:var(--vfbody)}
.lede--hero{margin-top:26px;max-width:54ch;font-size:clamp(1.08rem,1.55vw,1.34rem);line-height:1.5}
.sub{margin-top:18px;max-width:62ch;color:var(--vfbody);font-size:1.04rem}
.fine{font-size:14px;color:var(--vfmut)}
.mono-note{font:500 12px/1.6 var(--mono);color:var(--vfmut)}
.num{font-variant-numeric:tabular-nums lining-nums}
/* split-text lines (motion.js wraps each line in .ln > .ln__i) */
.ln{display:block;overflow:clip;padding-bottom:.06em;margin-bottom:-.06em}
.ln__i{display:block;will-change:transform}

/* ── buttons ──────────────────────────────────────────────────────────── */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:600 12.5px/1.2 var(--mono);letter-spacing:.1em;
  text-transform:uppercase;text-align:center;padding:15px 24px;border-radius:999px;border:1px solid transparent;cursor:pointer;text-decoration:none;
  overflow:hidden;isolation:isolate;
  transition:transform .35s var(--ease-out),box-shadow .35s ease,border-color .25s ease,color .25s ease,background-color .25s ease}
/* the fill wipes up from the bottom on hover */
.btn::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;transform:translateY(101%);transition:transform .45s var(--ease-out)}
.btn:hover::before,.btn:focus-visible::before{transform:none}
.btn--primary,.btn--primary:hover{background:var(--vfacc);color:var(--vfonacc)}
.btn--primary::before{background:var(--vfgold)}
.theme-orange .btn--primary::before{background:#3A2412}
.theme-orange .btn--primary:hover{color:#FBE9D4}
.btn--ghost,.btn--ghost:hover{background:transparent;color:var(--vfink);border-color:var(--vfline2)}
.btn--ghost::before{background:var(--vfink)}
.btn--ghost:hover,.btn--ghost:focus-visible{color:var(--vfg);border-color:var(--vfink)}
.btn:hover{box-shadow:var(--vflift)}
.btn:active{transform:scale(.97)}
.btn .arr{display:inline-block;transition:transform .35s var(--ease-out)}
.btn:hover .arr{transform:translateX(4px)}
.btn--lg{font-size:13px;letter-spacing:.09em;padding:17px 30px}
.btn--sm{font-size:12px;padding:13px 21px}
.btn--xs{font-size:11.5px;padding:11px 18px}
.btn--hdr{font-size:11.5px;letter-spacing:.09em;padding:11px 20px;flex:none}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.55;pointer-events:none}
.chip-btn{display:inline-flex;align-items:center;gap:8px;flex:none;cursor:pointer;background:var(--vfchip);border:1px solid var(--vfline);color:var(--vfink);border-radius:999px;
  padding:9px 15px;font:600 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  transition:transform .3s var(--ease-out),box-shadow .3s ease,border-color .2s ease,color .2s ease,background-color .2s ease}
.chip-btn:hover{transform:translateY(-2px);border-color:var(--vfacc);color:var(--vfacct);box-shadow:var(--vflift)}
.chip-btn[aria-pressed="true"]{background:var(--vfacc);border-color:var(--vfacc);color:var(--vfonacc)}
.cta-row{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap;align-items:center}
.link-arrow{display:inline-flex;align-items:center;gap:10px;font:600 11.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--vfink);
  background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;padding-bottom:6px;transition:background-size .45s var(--ease-out),color .2s ease}
.link-arrow:hover{background-size:100% 1px;color:var(--vfacct)}
/* round "go" button used on cards and the big CTA */
.go{display:inline-grid;place-items:center;width:58px;height:58px;border-radius:50%;border:1px solid var(--vfline2);color:var(--vfink);flex:none;
  transition:transform .45s var(--ease-out),background-color .3s ease,border-color .3s ease,color .3s ease}
.go svg{width:20px;height:20px;transition:transform .45s var(--ease-out)}
a:hover>.go,.go:hover,.card-link:hover .go{background:var(--vfacc);border-color:var(--vfacc);color:var(--vfonacc)}
a:hover>.go svg,.card-link:hover .go svg{transform:rotate(-45deg)}

/* ── header ───────────────────────────────────────────────────────────── */
.hdr{position:fixed;top:0;left:0;right:0;z-index:80;transition:transform .5s var(--ease-out),background-color .4s ease,border-color .4s ease}
.hdr::before{content:"";position:absolute;inset:0;background:var(--vfhead);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);
  border-bottom:1px solid var(--vfline);opacity:1;transition:opacity .4s ease;z-index:-1}
.hdr.is-top:not(.is-open)::before{opacity:0}
.has-hero .hdr.is-top:not(.is-open){--vfink:#F7F2EA;--vfbody:#E2D9CD;--vfmut:#BDB2A3;--vfline:rgba(255,255,255,.2);--vfchip:rgba(14,12,10,.32);--vfacct:#F4A86F;--vfgoldt:#F1D597}
.has-hero .hdr.is-top:not(.is-open) .logo--light{display:none}
.has-hero .hdr.is-top:not(.is-open)::after{content:"";position:absolute;inset:0 0 -48px;z-index:-2;pointer-events:none;background:linear-gradient(rgba(14,12,10,.62),rgba(14,12,10,0))}
.has-hero .hdr.is-top:not(.is-open){--vfchip:rgba(14,12,10,.55)}
.has-hero .hdr.is-top:not(.is-open) .hdr__theme{color:var(--vfink)}
.has-hero .hdr.is-top:not(.is-open) .logo--dark{display:block}
.hdr.is-hidden{transform:translateY(-101%)}
body{padding-top:var(--hdr-h)}
body.has-hero{padding-top:0}
.hdr__in{display:flex;align-items:center;gap:22px;min-height:var(--hdr-h);flex-wrap:wrap;padding-block:10px}
.hdr__logo{display:flex;align-items:center;flex:none}
.hdr__logo .logo{height:32px}
.hdr__nav{display:flex;gap:6px;margin-left:auto;align-items:center;flex-wrap:wrap}
.hdr__nav a{position:relative;font-size:14.5px;color:var(--vfbody);font-weight:500;padding:9px 12px;border-radius:999px;transition:color .2s ease,background-color .2s ease}
.hdr__nav a:hover{color:var(--vfink);background:color-mix(in srgb,var(--vfink) 8%,transparent)}
.hdr__nav a[aria-current="page"]{color:var(--vfink)}
.hdr__nav a[aria-current="page"]::after{content:"";position:absolute;left:50%;bottom:2px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--vfacc)}
.hdr__home{display:none}
.hdr__theme{color:var(--vfmut)}
.hdr__theme:hover{color:var(--vfink)}
.hdr__menu,.hdr__call,.hdr__nav-cta,.hdr__nav-tel{display:none}
@media (max-width:1139px){
  .hdr__in{flex-wrap:nowrap;gap:10px}
  .hdr__menu{display:inline-flex;order:5}
  .hdr__call{display:inline-flex;margin-left:auto;font:600 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;
    color:var(--vfink);border:1px solid var(--vfline);border-radius:999px;padding:9px 13px;background:var(--vfchip)}
  .hdr__nav{position:fixed;inset:0;z-index:-1;margin:0;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:0;flex-wrap:nowrap;
    background:var(--vfg);padding:calc(var(--hdr-h) + 20px) var(--gut) 40px;overflow-y:auto;overscroll-behavior:contain;justify-content:safe center;
    clip-path:circle(0 at calc(100% - 46px) 37px);visibility:hidden;transition:clip-path .7s var(--ease-io),visibility 0s linear .7s}
  .hdr.is-open .hdr__nav{clip-path:circle(150% at calc(100% - 46px) 37px);visibility:visible;transition:clip-path .8s var(--ease-io),visibility 0s}
  .hdr__nav a{font:800 clamp(2rem,8vw,3.2rem)/1.05 var(--head);letter-spacing:-.04em;color:var(--vfink);padding:12px 0;border-radius:0;border-bottom:1px solid var(--vfline)}
  .hdr__nav a:hover{background:none;color:var(--vfacct)}
  .hdr__nav a[aria-current="page"]{color:var(--vfacct)}
  .hdr__nav a[aria-current="page"]::after{display:none}
  .hdr__nav .hdr__nav-cta{display:block;color:var(--vfacct)}
  .hdr__nav .hdr__nav-tel{display:block;border-bottom:0;font:600 18px/1 var(--mono);letter-spacing:0;color:var(--vfgoldt);padding-top:26px}
}
@media (max-width:560px){
  .btn--hdr{display:none}
}

/* ── home hero ────────────────────────────────────────────────────────── */
.hero{position:relative;overflow:hidden;min-height:max(640px,100svh);display:flex;align-items:flex-end;background:#0E0C0A;color:var(--vfink);isolation:isolate}
.hero__frame{position:absolute;inset:0;overflow:hidden;will-change:clip-path}
.hero__media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:var(--vfvid);will-change:transform}
.hero__scrim{position:absolute;inset:0;background:var(--vfscrim)}
.hero__fade{position:absolute;inset:0;background:linear-gradient(to top,rgba(14,12,10,.85) 0%,rgba(14,12,10,0) 42%)}
.hero__in{position:relative;z-index:2;width:100%;--py:0;padding-top:calc(var(--hdr-h) + clamp(40px,8vw,90px));padding-bottom:clamp(40px,6vw,76px)}
.hero__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:end}
.hero__toggle{position:absolute;right:var(--gut);top:calc(var(--hdr-h) + 18px);z-index:3}
.hero .cta-row{margin-top:36px}
.hero__meta{display:flex;gap:clamp(18px,3vw,40px);flex-wrap:wrap;margin-top:clamp(36px,5vw,60px);padding-top:22px;border-top:1px solid var(--vfline)}
.hero__meta div{font:500 12px/1.5 var(--mono);color:var(--vfmut);letter-spacing:.04em}
.hero__meta b{display:block;font:700 1.05rem/1.2 var(--head);color:var(--vfink);letter-spacing:-.01em}
.hero__scroll{display:flex;flex-direction:column;align-items:center;gap:10px;font:600 10px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--vfmut)}
.hero__scroll i{display:block;width:1px;height:56px;background:linear-gradient(var(--vfacc),transparent);transform-origin:top;animation:vfdrip 2.2s var(--ease-io) infinite}
@keyframes vfdrip{0%{transform:scaleY(0)}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media (max-width:760px){.hero__row{grid-template-columns:1fr}.hero__scroll,.hero__row .spin{display:none}}

/* spinning seal (circular text) — rotates on its own and with scroll */
.spin{position:relative;width:clamp(120px,12vw,168px);aspect-ratio:1;flex:none;color:var(--vfink)}
.spin svg{width:100%;height:100%;animation:vfspin 22s linear infinite;overflow:visible}
.spin text{font:600 10.5px var(--mono);letter-spacing:.32em;text-transform:uppercase;fill:currentColor}
.spin__mark{position:absolute;inset:30%;display:grid;place-items:center;border-radius:50%;background:var(--vfacc);color:#1C1108;
  transition:transform .5s var(--ease-out)}
.spin__mark svg{width:46%;height:46%;animation:none}
.spin:hover .spin__mark{transform:scale(1.12) rotate(-12deg)}
@keyframes vfspin{to{transform:rotate(360deg)}}

/* inner page hero: text beside a panel or photo */
.hero-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:clamp(24px,4vw,64px);align-items:center}
.hero-photo{position:relative;overflow:hidden;background:var(--vfband);border-bottom:1px solid var(--vfline);isolation:isolate}
.hero-photo__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;will-change:transform}
.hero-photo__plate{position:absolute;inset:0;background:var(--vfplate);pointer-events:none}
.hero-photo__fade{position:absolute;inset:0;background:var(--vffade);pointer-events:none}
.hero-photo>.wrap{position:relative;z-index:2}
.page-hero{padding-top:calc(var(--hdr-h) + clamp(30px,6vw,80px))}
.shot{display:block;width:100%;height:clamp(260px,30vw,420px);object-fit:cover;border-radius:var(--r-m);border:1px solid var(--vfline)}

/* spec panel */
.spec{background:linear-gradient(150deg,var(--vfpanel2),var(--vfpanel));border:1px solid var(--vfline);border-top:3px solid var(--vfrust);border-radius:var(--r-m);
  padding:clamp(20px,2.4vw,30px)}
.spec dl{margin:0;display:grid;gap:0}
.spec__row{display:grid;grid-template-columns:minmax(96px,.42fr) 1fr;gap:16px;padding:13px 0;border-top:1px solid var(--vfline)}
.spec__row:first-child{border-top:0;padding-top:0}
.spec__row:last-child{padding-bottom:0}
.spec dt{font:600 10px/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--vfmut)}
.spec dd{margin:0;font-size:14.5px;color:var(--vfink)}

/* ── facts / stats ────────────────────────────────────────────────────── */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:0;border-top:1px solid var(--vfline);border-bottom:1px solid var(--vfline)}
.fact{position:relative;padding:clamp(22px,3vw,34px) clamp(18px,2vw,28px);border-left:1px solid var(--vfline);transition:background-color .4s ease}
.fact:first-child{border-left:0}
.fact:hover{background:color-mix(in srgb,var(--vfacc) 6%,transparent)}
.fact__k{font:600 10.5px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--vfmut)}
.fact__v{font:800 clamp(1.25rem,1.9vw,1.7rem)/1.12 var(--head);letter-spacing:-.025em;margin-top:12px}
.stat__n{display:block;font:800 clamp(3.4rem,7vw,6.4rem)/.86 var(--head);letter-spacing:-.06em;color:var(--vfink)}
.stat__n sup{font-size:.42em;vertical-align:.95em;margin-left:.04em;color:var(--vfacct);letter-spacing:0}
.stat__l{display:block;margin-top:14px;font:600 11px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--vfmut)}
@media (max-width:560px){.fact{border-left:0;border-top:1px solid var(--vfline)}.fact:first-child{border-top:0}}

/* ── big type marquee (ticker) ────────────────────────────────────────── */
.ticker{overflow:hidden;white-space:nowrap;padding-block:clamp(18px,2.4vw,30px);border-block:1px solid var(--vfline);user-select:none}
.ticker__track{display:inline-flex;gap:clamp(28px,4vw,56px);align-items:center;animation:vfmarquee var(--dur,38s) linear infinite;padding-right:clamp(28px,4vw,56px)}
.ticker__track>span{font:800 clamp(2.4rem,6vw,5.6rem)/1 var(--head);letter-spacing:-.045em}
.ticker__track>i{display:inline-block;width:clamp(16px,2vw,26px);aspect-ratio:1;background:var(--vfacc);transform:rotate(45deg);flex:none}
.ticker--outline .ticker__track>span:nth-child(4n+3){color:transparent;-webkit-text-stroke:1.5px var(--vfink)}
.ticker:hover .ticker__track{animation-play-state:paused}

/* ── logo marquee ─────────────────────────────────────────────────────── */
.marquee{overflow:hidden;margin-top:18px;padding:16px 0;border-radius:var(--r-m);background:var(--vflogoband);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee__track{display:flex;gap:30px;align-items:center;width:max-content;margin:0;padding:0;list-style:none;animation:vfmarquee var(--dur,44s) linear infinite}
.marquee:hover .marquee__track,.marquee:focus-within .marquee__track,.marquee.is-paused .marquee__track{animation-play-state:paused}
.marquee img{display:block;height:var(--h,36px);width:auto;transition:transform .35s var(--ease-out)}   /* full brand color in every motion setting */
.marquee li:hover img{transform:scale(1.08)}
@keyframes vfmarquee{to{transform:translateX(-50%)}}

/* ── cards ────────────────────────────────────────────────────────────── */
.card{position:relative;background:var(--vfpanel);border:1px solid var(--vfline);border-radius:var(--r-m);padding:clamp(22px,2.4vw,30px);overflow:hidden;isolation:isolate}
.card h3{font-size:1.2rem;font-weight:700;letter-spacing:-.015em}
.card p{font-size:15px;color:var(--vfbody);margin-top:10px}
/* the cursor spotlight: motion.js feeds --mx/--my; without it the glow simply sits in the corner */
.spot::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .45s ease;
  background:radial-gradient(420px circle at var(--mx,20%) var(--my,0%),color-mix(in srgb,var(--vfacc) 22%,transparent),transparent 62%)}
.spot:hover::after,.spot:focus-within::after{opacity:1}
.lift{transition:transform .5s var(--ease-out),box-shadow .5s ease,border-color .3s ease}
.lift:hover,.lift:focus-within{transform:translateY(-8px);border-color:color-mix(in srgb,var(--vfacc) 70%,var(--vfline));box-shadow:var(--vflift)}
.tilt{transform-style:preserve-3d;transition:transform .6s var(--ease-out),box-shadow .5s ease,border-color .3s ease}
.tilt>*{transform:translateZ(0)}

/* market card */
.mcard{position:relative;background:linear-gradient(150deg,var(--vfpanel2),var(--vfpanel));border:1px solid var(--vfline);border-radius:var(--r-l);
  padding:clamp(24px,2.8vw,38px);display:flex;flex-direction:column;gap:16px;min-height:clamp(270px,26vw,330px);overflow:hidden;isolation:isolate}
.mcard::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--vfrust),var(--vfacc),var(--vfgold))}
.mcard h3{font-size:clamp(1.6rem,2.6vw,2.3rem);font-weight:800;letter-spacing:-.035em;line-height:1.02}
.mcard p{color:var(--vfbody)}
.mcard .btn{align-self:flex-start;margin-top:auto}

/* numbered steps — a vertical rail that draws as you scroll (motion.js sets --p) */
.steps{position:relative;display:grid;gap:0;margin:40px 0 0;padding:0;list-style:none;counter-reset:st}
.steps::before{content:"";position:absolute;left:clamp(26px,3vw,34px);top:12px;bottom:12px;width:1px;background:var(--vfline)}
.steps::after{content:"";position:absolute;left:clamp(26px,3vw,34px);top:12px;bottom:12px;width:1px;background:linear-gradient(var(--vfacc),var(--vfgold));
  transform-origin:top;transform:scaleY(var(--p,1))}
.step{position:relative;display:grid;grid-template-columns:clamp(54px,6vw,70px) 1fr;gap:clamp(16px,2.4vw,30px);padding:clamp(18px,2.4vw,28px) 0;align-items:start;border-bottom:1px solid var(--vfline)}
.step:last-child{border-bottom:0}
.step{transition:background-color .35s ease}
.step:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--vfacc) 9%,transparent),transparent 70%)}
.step h3{transition:color .3s ease}
.step:hover h3{color:var(--vfacct)}
.step__n{position:relative;z-index:1;display:grid;place-items:center;width:clamp(52px,6vw,68px);aspect-ratio:1;border-radius:50%;background:var(--vfg);border:1px solid var(--vfline2);
  font:800 clamp(1rem,1.5vw,1.25rem)/1 var(--head);color:var(--vfacct);letter-spacing:-.02em;transition:background-color .4s ease,color .4s ease,border-color .4s ease,transform .5s var(--ease-out)}
.step:hover .step__n,.step.is-on .step__n{background:var(--vfacc);color:var(--vfonacc);border-color:var(--vfacc);transform:scale(1.06)}
.step h3{font-size:clamp(1.2rem,2vw,1.6rem);font-weight:800;letter-spacing:-.025em;padding-top:clamp(8px,1.2vw,14px)}
.step p{font-size:15.5px;color:var(--vfbody);margin-top:8px;max-width:62ch}

/* platform table */
.plat{margin-top:40px;border:1px solid var(--vfline);border-radius:var(--r-l);overflow:hidden;background:var(--vfpanel)}
.plat__row{position:relative;display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,.8fr) minmax(180px,1.55fr);gap:22px;padding:18px 24px;border-top:1px solid var(--vfline);align-items:baseline;
  transition:background-color .3s ease}
.plat__row>*{transition:transform .4s var(--ease-out)}
.plat__row:not(.plat__row--head):hover{background:color-mix(in srgb,var(--vfacc) 9%,var(--vfpanel))}
.plat__row:not(.plat__row--head):hover>*{transform:translateX(10px)}
.plat__row:not(.plat__row--head)::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--vfacc);transform:scaleY(0);transition:transform .4s var(--ease-out)}
.plat__row:not(.plat__row--head):hover::before{transform:none}
.plat__row--head{padding-block:14px;border-top:0;background:var(--vfpanel2);font:600 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--vfmut)}
.plat__name{font:600 16px/1.4 var(--mono);color:var(--vfink)}
.plat__who{font-size:14px;color:var(--vfacct)}
.plat__what{font-size:14.5px;color:var(--vfbody)}
@media (max-width:640px){
  .plat__row{grid-template-columns:1fr;gap:3px;padding:16px 18px}
  .plat__row--head{display:none}
  .plat__row:nth-child(2){border-top:0}
}

/* products: 3D sample boards */
.prod{position:relative;background:var(--vfpanel);border:1px solid var(--vfline);border-radius:var(--r-m);overflow:hidden;perspective:900px;
  transition:transform .5s var(--ease-out),box-shadow .5s ease,border-color .3s ease}
.prod:hover,.prod:focus-within{transform:translateY(-8px);border-color:var(--vfacc);box-shadow:var(--vflift)}
.prod img,.prod svg{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;display:block;background:var(--vfpanel2);padding:12px;transition:transform .7s var(--ease-out)}
.prod:hover img,.prod:hover svg{transform:scale(1.06)}
.prod svg{color:var(--vfacc)}
.prod__name{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;font:600 12px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;border-top:1px solid var(--vfline)}
.swatch{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--vfpanel2)}
.swatch__board{position:absolute;inset:16% 12%;border-radius:6px;transform:rotateX(58deg) rotateZ(-34deg);transform-style:preserve-3d;
  box-shadow:0 30px 40px rgba(0,0,0,.45);transition:transform .8s var(--ease-out)}
.prod:hover .swatch__board,.prod:focus-within .swatch__board{transform:rotateX(18deg) rotateZ(-8deg) translateY(-6%) scale(1.06)}
.swatch__board::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(120deg,rgba(255,255,255,.28),transparent 42%,rgba(0,0,0,.18))}
.swatch__edge{position:absolute;left:0;right:0;bottom:-10px;height:10px;transform-origin:top;transform:rotateX(-90deg);border-radius:0 0 4px 4px;filter:brightness(.62)}
.sw-hardwood{background:repeating-linear-gradient(90deg,#8A5A32 0 20%,#7A4C28 20% 20.6%,#9C6A3C 20.6% 40%,#6E4322 40% 40.6%,#8F5E33 40.6% 60%,#7A4C28 60% 60.6%,#A06D3F 60.6% 80%,#6E4322 80% 80.6%,#8A5A32 80.6% 100%),
  repeating-linear-gradient(0deg,rgba(0,0,0,.08) 0 2px,transparent 2px 9px)}
.sw-hardwood{background-blend-mode:multiply}
.sw-vinyl{background:repeating-linear-gradient(90deg,#B8A78E 0 33%,#A99A82 33% 33.5%,#C2B299 33.5% 66%,#9F907A 66% 66.5%,#B4A58C 66.5% 100%),repeating-linear-gradient(0deg,rgba(255,255,255,.06) 0 1px,transparent 1px 7px)}
.sw-tile{background:linear-gradient(90deg,#CFCAC2 0 calc(50% - 2px),#9E978C calc(50% - 2px) calc(50% + 2px),#D8D3CB calc(50% + 2px)),#CFCAC2;background-size:100% 100%}
.sw-tile::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,transparent calc(50% - 2px),#9E978C calc(50% - 2px) calc(50% + 2px),transparent calc(50% + 2px))}
.sw-carpet{background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.12),transparent 50%),repeating-radial-gradient(circle at 50% 50%,#6E6A66 0 1px,#7B7672 1px 2px),#726D69}
.sw-stone{background:radial-gradient(ellipse at 20% 30%,#E8E3DA,transparent 40%),radial-gradient(ellipse at 80% 70%,#D9D2C6,transparent 45%),linear-gradient(115deg,transparent 40%,rgba(120,110,100,.35) 41%,transparent 43%),#E2DCD2}

/* quotes */
.quote{position:relative;margin:0;background:var(--vfpanel);border:1px solid var(--vfline);border-radius:var(--r-l);padding:clamp(28px,3.4vw,46px);overflow:hidden;isolation:isolate}
.quote::before{content:"\201C";position:absolute;right:clamp(14px,2vw,30px);top:-.18em;z-index:-1;font:800 clamp(9rem,16vw,15rem)/1 var(--head);color:var(--vfacc);opacity:.16}
.quote p{font-size:1.05rem;line-height:1.6;color:var(--vfbody)}
.quote--lead{background:linear-gradient(135deg,var(--vfpanel2),color-mix(in srgb,var(--vfgold) 10%,var(--vfpanel)))}
.quote--lead p{font:700 clamp(1.4rem,2.6vw,2.2rem)/1.22 var(--head);letter-spacing:-.025em;color:var(--vfink);max-width:34ch}
.quote footer{display:flex;align-items:center;gap:16px;margin-top:26px;font:500 13px/1.5 var(--mono);color:var(--vfmut)}
.quote footer img{height:38px;width:auto;border-radius:8px;background:#F4F0E9;padding:6px 10px;flex:none}
.quote cite{display:block;font-style:normal;color:var(--vfgoldt);font-weight:600}
mark.hl{color:inherit;background:linear-gradient(transparent 58%,color-mix(in srgb,var(--vfacc) 55%,transparent) 58%) left/var(--hl,100%) 100% no-repeat;transition:background-size 1.2s var(--ease-out)}

/* branch list (home) + location cards */
.branch{display:block;width:100%;text-align:left;background:var(--vfpanel);border:1px solid var(--vfline);border-radius:var(--r-m);
  padding:18px 20px 18px 24px;margin-bottom:10px;cursor:pointer;color:inherit;font:inherit;overflow:hidden;isolation:isolate}
.branch::before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:var(--vfacc);transform:scaleX(.43);transform-origin:left;transition:transform .45s var(--ease-out)}
.branch:hover::before,.branch:focus-within::before{transform:none}
.branch--gold::before{background:var(--vfgold)}
.branch--ghost{background:transparent;border:1px dashed var(--vfline2)}
.branch--ghost::before{display:none}
.branch__name{font:800 1.3rem/1.15 var(--head);letter-spacing:-.025em;margin-top:8px}
.branch__addr{display:inline-block;font-size:14px;color:var(--vfmut);margin-top:4px}
a.branch__addr{text-decoration:underline;text-decoration-color:var(--vfline2);text-underline-offset:3px}
a.branch__addr:hover{color:var(--vfacct);text-decoration-color:var(--vfacc)}
.loc{position:relative;background:var(--vfpanel);border:1px solid var(--vfline);border-radius:var(--r-l);padding:clamp(24px,2.6vw,32px);display:flex;flex-direction:column;gap:12px;
  min-height:clamp(260px,22vw,300px);overflow:hidden;isolation:isolate}
.loc::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--vfacc)}
.loc--gold::before{background:var(--vfgold)}
.loc--ghost{background:transparent;border:1px dashed var(--vfline2)}
.loc--ghost::before{display:none}
.loc__kind{font:600 9.5px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--vfgoldt);min-height:2.6em}
.loc h3{font:800 1.55rem/1.1 var(--head);letter-spacing:-.03em}
.loc address{font-size:14.5px;color:var(--vfbody);min-height:3em}
.loc p{font-size:14px;color:var(--vfmut)}
.loc__go{margin-top:auto;font:600 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}
span.loc__go{color:var(--vfmut)}

/* team */
.rule-head{display:flex;align-items:center;gap:14px}
.rule-head>:first-child{white-space:nowrap}
.rule-head::after{content:"";height:1px;background:var(--vfline);flex:1}
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:18px}
.person{position:relative;background:var(--vfpanel);border:1px solid var(--vfline);border-radius:var(--r-m);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .5s var(--ease-out),box-shadow .5s ease,border-color .3s ease}
.person:hover,.person:focus-within{transform:translateY(-8px);border-color:var(--vfacc);box-shadow:var(--vflift)}
.person img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 20%;display:block;background:var(--vfg);filter:grayscale(1) contrast(1.05);
  transition:filter .6s ease,transform .8s var(--ease-out)}
.person:hover img,.person:focus-within img{filter:none;transform:scale(1.04)}
.person__ph{aspect-ratio:4/5;display:grid;place-items:center;background:var(--vfidle);border-bottom:1px solid var(--vfline)}
.person__ph span{font:800 3.2rem/1 var(--head);letter-spacing:-.04em;color:var(--vffaint)}
.person__b{position:relative;padding:16px 17px 17px;display:flex;flex-direction:column;gap:6px;flex:1;background:var(--vfpanel)}
.person h3{font:800 1.12rem/1.18 var(--head);letter-spacing:-.02em}
.person__role{font:500 12px/1.45 var(--mono);color:var(--vfmut)}
.person a{margin-top:auto;font:600 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase}
@media (max-width:460px){.people{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ── photo blocks ─────────────────────────────────────────────────────── */
.ph{position:relative;overflow:hidden;border-radius:var(--r-l);background:var(--vfpanel2);isolation:isolate}
.ph img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.2s var(--ease-out)}
.ph:hover img{transform:scale(1.07)}
.ph figcaption,.ph__cap{position:absolute;left:14px;bottom:14px;z-index:2;display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border-radius:999px;
  background:rgba(14,12,10,.6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#F5F0E8;font:600 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.ph::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(14,12,10,.45),transparent 45%);pointer-events:none}

/* bento grid: symmetric, no dead space */
.bento{display:grid;gap:clamp(12px,1.4vw,18px);grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(clamp(120px,13vw,190px),auto)}
.bento>*{min-width:0}
.b-3{grid-column:span 3}.b-4{grid-column:span 4}.b-5{grid-column:span 5}.b-6{grid-column:span 6}.b-7{grid-column:span 7}.b-8{grid-column:span 8}.b-12{grid-column:span 12}
.r-2{grid-row:span 2}.r-3{grid-row:span 3}
.bento .ph,.bento .tile{height:100%}
.tile{position:relative;border-radius:var(--r-l);border:1px solid var(--vfline);background:var(--vfpanel);padding:clamp(20px,2.2vw,30px);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;isolation:isolate}
.tile--acc{background:var(--vfacc);border-color:var(--vfacc);color:#1C1108;transition:transform .5s var(--ease-out),box-shadow .5s ease}
.tile--acc.spot::after{background:radial-gradient(380px circle at var(--mx,30%) var(--my,20%),rgba(255,236,210,.42),transparent 60%)}
.tile--acc:hover{transform:translateY(-4px);box-shadow:var(--vflift)}
.tile--acc .stat__n,.tile--acc .stat__l{color:#1C1108}
.tile--acc .stat__n sup{color:#1C1108}
@media (max-width:900px){
  .bento{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-flow:row dense}
  .b-3,.b-4,.b-5{grid-column:span 3}.b-6,.b-7,.b-8,.b-12{grid-column:span 6}
}
@media (max-width:560px){
  .bento{grid-template-columns:1fr;grid-auto-rows:auto}
  .bento>*{grid-column:1/-1!important;grid-row:auto!important}
  .bento .ph{aspect-ratio:4/3;height:auto}
}

/* horizontal gallery: pinned and scrubbed by motion.js on desktop; a native snap scroller everywhere else */
.hgal{position:relative;overflow:hidden}
.hgal__track{display:flex;gap:clamp(14px,1.6vw,22px);padding-inline:max(var(--gut),calc((100vw - 1320px) / 2 + var(--gut)));overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:6px}
.hgal__track::-webkit-scrollbar{display:none}
.hgal.is-pinned .hgal__track{overflow:visible;scroll-snap-type:none;width:max-content}
.hgal__item{flex:none;width:clamp(280px,38vw,620px);aspect-ratio:4/3;scroll-snap-align:start}
.hgal__item--wide{width:clamp(320px,56vw,900px);aspect-ratio:16/9}
.hgal__item .ph{height:100%}
.hgal__item .ph img{transform:translateX(var(--dx,0%)) scale(var(--zs,1.14));transition:transform .9s var(--ease-out)}
.hgal__item .ph:hover img{--zs:1.22}
.hgal__intro{flex:none;width:clamp(260px,26vw,400px);display:flex;flex-direction:column;justify-content:space-between;padding:clamp(22px,2.4vw,34px);border-radius:var(--r-l);background:var(--vfacc);color:#1C1108;scroll-snap-align:start}
.hgal__intro .h2{color:#1C1108;font-size:clamp(1.7rem,2.6vw,2.6rem);max-width:none}
.hgal__progress{height:2px;background:var(--vfline);margin:26px var(--gut) 0;position:relative;overflow:hidden;border-radius:2px}
.hgal__progress i{position:absolute;inset:0;background:var(--vfacc);transform-origin:left;transform:scaleX(var(--p,0))}

/* sticky stacked cards */
.stack{display:grid;gap:clamp(16px,2vw,24px)}
@media (min-width:900px){
  html:not(.rm) .stack--sticky>.stack__card{position:sticky;top:calc(var(--hdr-h) + 20px + var(--i,0) * 18px)}
}
.stack__card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);min-height:clamp(380px,46vw,560px);border-radius:var(--r-l);overflow:hidden;border:1px solid var(--vfline);
  background:var(--vfpanel);box-shadow:0 -20px 50px rgba(0,0,0,.25)}
.stack__body{display:flex;flex-direction:column;gap:16px;padding:clamp(26px,3.4vw,52px)}
.stack__body .btn{align-self:flex-start;margin-top:auto}
.stack__media{position:relative;min-height:260px}
.stack__media .ph{position:absolute;inset:0;border-radius:0}
.stack__n{font:800 clamp(3rem,6vw,5.4rem)/.8 var(--head);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px var(--vfacc)}
@media (max-width:760px){.stack__card{grid-template-columns:1fr}.stack__media{order:-1;min-height:220px}}

/* spiral: golden-ratio plank spiral drawn as you scroll (decorative) */
.spiral{position:absolute;pointer-events:none;color:var(--vfacc);opacity:.55}
.spiral path,.spiral rect{fill:none;stroke:currentColor;stroke-width:1.2;vector-effect:non-scaling-stroke}
.spiral .sp-arc{stroke:var(--vfgold);stroke-width:2}

/* SVG route map with the truck */
.route{position:relative;border-radius:var(--r-l);overflow:hidden;background:radial-gradient(120% 90% at 30% 20%,#1E1913,#0B0907);border:1px solid #2F2923;color:#F5F0E8;isolation:isolate}
.route svg{display:block;width:100%;height:auto}
.route .st{fill:rgba(255,255,255,.035);stroke:rgba(238,205,134,.28);stroke-width:1.2;vector-effect:non-scaling-stroke}
.route .rd{fill:none;stroke:#E18942;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:1 0;vector-effect:non-scaling-stroke}
.route .rd--ghost{stroke:rgba(225,137,66,.18);stroke-dasharray:4 7}
.route .pin circle{fill:#E18942}
.route .pin .ring{fill:none;stroke:#E18942;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:vfring 3.2s ease-out infinite}
.route .pin--gold circle{fill:#EECD86}.route .pin--gold .ring{stroke:#EECD86}
.route .pin--ring circle:first-child{fill:none;stroke:#EECD86;stroke-width:2}
.route text{font:600 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;fill:#F5F0E8}
.route text.sm{font-size:9.5px;fill:#BDB2A3;letter-spacing:.1em}
.route .truck{transition:transform .2s linear}
@keyframes vfring{0%{transform:scale(1);opacity:.9}100%{transform:scale(4);opacity:0}}

/* big CTA slab */
.cta-big{position:relative;overflow:hidden;isolation:isolate}
.cta-big__h{font:800 clamp(3.2rem,10vw,10.5rem)/.86 var(--head);letter-spacing:-.06em;max-width:11ch}
.cta-big__go{display:inline-grid;place-items:center;width:clamp(120px,14vw,190px);aspect-ratio:1;border-radius:50%;background:#1C1108;color:#F5D9B8;
  font:600 12px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;text-align:center;transition:transform .5s var(--ease-out),background-color .3s ease}
.cta-big__go:hover{background:#2A190B;color:#FFE6C8;transform:scale(1.06)}

/* ── lazy embeds (floor planner, coverage map) ────────────────────────── */
.embed{position:relative;border:1px solid var(--vfline);border-radius:var(--r-l);overflow:hidden;background:#0E0C0A}
.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.embed__idle{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:20px;
  background:radial-gradient(circle at 50% 40%,#241E19,#0E0C0A);color:#F5F0E8}
.embed__idle .eyebrow{color:#BDB2A3}
.embed__idle svg.plan{position:absolute;inset:8%;width:84%;height:84%;opacity:.5;color:#E18942}
.embed__idle svg.plan path,.embed__idle svg.plan rect{fill:none;stroke:currentColor;stroke-width:1.4;vector-effect:non-scaling-stroke}
.embed__idle>*:not(svg){position:relative}
.embed--planner{width:100%;max-width:100%;aspect-ratio:16/10;min-height:620px}
.embed--map{min-height:480px;height:100%}
.embed--map-wide{height:clamp(400px,48vw,580px)}
@media (max-width:700px){.embed--planner{aspect-ratio:auto;min-height:0;height:min(86svh,760px)}}

/* ── forms ────────────────────────────────────────────────────────────── */
.form-card{margin-top:28px;background:var(--vfpanel);border:1px solid var(--vfline);border-radius:var(--r-l);padding:clamp(24px,3vw,40px)}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px}
.field{display:block;min-width:0;position:relative}
.field--wide{grid-column:1/-1}
.field>span{display:block;font:600 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--vfmut);margin-bottom:8px;transition:color .2s ease}
.field:focus-within>span{color:var(--vfacct)}
.field input,.field select,.field textarea{width:100%;background:var(--vfg);border:1px solid var(--vffield);border-radius:10px;color:var(--vfink);padding:14px 15px;font-size:16px;line-height:1.3;
  transition:border-color .2s ease,box-shadow .3s ease,background-color .2s ease}
.field textarea{min-height:130px;resize:vertical;display:block}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--vfmut)}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--vfgoldt);outline-offset:2px;border-color:var(--vfacct);box-shadow:0 0 0 5px color-mix(in srgb,var(--vfacc) 18%,transparent)}
.lead__actions{display:flex;gap:14px;margin-top:22px;flex-wrap:wrap;align-items:center}
.lead__note{font-size:13.5px;color:var(--vfmut)}
.lead__error{margin-top:14px;padding:13px 15px;border:1px solid var(--vfrust);border-left-width:3px;border-radius:0 10px 10px 0;font-size:14.5px;color:var(--vfink);background:var(--vfpanel2)}
.lead__done h3{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;letter-spacing:-.03em;margin-top:10px}
.lead__done p{font-size:15.5px;color:var(--vfbody);margin-top:10px}
.lead__done .btn{margin-top:18px}
.lead.is-sending button[type="submit"]{opacity:.6;pointer-events:none}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ── footer ───────────────────────────────────────────────────────────── */
.ftr{position:relative;background:#0B0907;color:#F5F0E8;overflow:hidden;isolation:isolate;--vfg:#0B0907;--vfchip:rgba(255,255,255,.06);--vfline2:#4A4037;
  --vfink:#F5F0E8;--vfbody:#CFC6BA;--vfmut:#A39889;--vfline:#2A241E;--vfacct:#F2A167;--vfgoldt:#EECD86}
.ftr__in{--py:clamp(64px,8vw,110px)}
.ftr__top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:end;padding-bottom:clamp(40px,5vw,64px);border-bottom:1px solid var(--vfline)}
.ftr__h1{font:800 clamp(2.4rem,5vw,4.6rem)/.95 var(--head);letter-spacing:-.05em;max-width:14ch}
.ftr__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:30px;margin-top:clamp(36px,4vw,56px)}
.ftr .logo{height:36px}
.ftr__blurb{font-size:14.5px;color:var(--vfmut);margin-top:16px;max-width:32ch}
.ftr__tel{display:block;margin-top:16px;font:600 1.6rem/1.2 var(--head);letter-spacing:-.02em;color:var(--vfink)}
.ftr__tel:hover{color:var(--vfacct)}
.ftr__mail{display:block;margin-top:4px;font-size:15px;color:var(--vfbody)}
.ftr__h{font:600 10px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--vfacct)}
.ftr__h--gap{margin-top:22px}
.ftr__h--mut{color:var(--vfmut)}
.ftr address{font-size:14px;color:var(--vfmut);margin-top:10px}
.ftr nav a{display:block;width:max-content;font-size:14.5px;color:var(--vfbody);margin-top:8px;
  background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:background-size .4s var(--ease-out),color .2s ease}
.ftr nav a:hover{color:var(--vfink);background-size:100% 1px}
.ftr nav .ftr__h+a{margin-top:12px}
.ftr nav a.ftr__cta{color:var(--vfacct);margin-top:16px}
.ftr__word{display:block;margin-top:clamp(40px,6vw,80px);font:800 clamp(4.6rem,24.2vw,24.5rem)/.78 var(--head);letter-spacing:-.07em;white-space:nowrap;user-select:none;margin-left:-.04em;
  color:rgba(245,240,232,.07);background:linear-gradient(100deg,transparent 35%,rgba(225,137,66,.9) 50%,transparent 65%) -80% 0/220% 100% no-repeat;-webkit-background-clip:text;background-clip:text;
  transition:color .8s ease,background-position 1.8s var(--ease-out)}
.ftr__word:hover{color:rgba(225,137,66,.22);background-position:180% 0}
.ftr__base{margin-top:28px;padding-top:22px;border-top:1px solid var(--vfline);display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between;font-size:13px;color:var(--vfmut)}
.ftr__base a{color:var(--vfbody)}
@media (max-width:760px){.ftr__top{grid-template-columns:1fr}}

/* ── prose pages (privacy) ────────────────────────────────────────────── */
.prose{max-width:70ch}
.prose h2{font-size:1.45rem;font-weight:800;letter-spacing:-.025em;margin-top:40px}
.prose p,.prose ul{margin-top:12px;color:var(--vfbody)}
.prose ul{padding-left:20px}
.prose li{margin-top:6px}

/* ── legibility and touch ─────────────────────────────────────────────── */
@media (max-width:900px){.hero-photo__plate{background:var(--vfposter)}}
@media (pointer:coarse),(max-width:700px){
  .hdr__call,.hdr__theme,.hdr__menu{min-height:44px}
  .btn--hdr{padding-block:14px}
  .ftr nav a,.ftr__mail{padding-block:10px;margin-top:0}
  .ftr nav .ftr__h+a{margin-top:4px}
  .ftr nav a.ftr__cta{margin-top:4px}
  .loc__go,.loc a[href^="tel:"],.person a,.link-arrow{display:inline-flex;padding-block:14px}
  .loc .chip-btn{min-height:44px}
  .mcard .btn--sm{padding-block:15px}
  .branch__addr{padding-block:10px}
  .hero__toggle{min-height:40px}
}
@media (pointer:coarse) and (min-width:1140px){.hdr__call,.hdr__menu{display:none}}

/* cursor ring (fine pointers, full motion only; the system cursor stays visible) */
.cur{position:fixed;left:0;top:0;z-index:9998;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;pointer-events:none;
  border:1.5px solid var(--vfacc);opacity:0;display:grid;place-items:center;transition:width .35s var(--ease-out),height .35s var(--ease-out),margin .35s var(--ease-out),opacity .3s ease,background-color .3s ease} /* impeccable-disable-line layout-transition -- one position:fixed overlay, nothing reflows; GSAP owns its transform for position */
.cur.is-on{opacity:1}
.cur.is-big{width:54px;height:54px;margin:-27px 0 0 -27px;background:color-mix(in srgb,var(--vfacc) 14%,transparent)}
.cur.is-text{width:86px;height:86px;margin:-43px 0 0 -43px;background:var(--vfacc);border-color:var(--vfacc)}
.cur.is-down{transform:scale(.8)}
.cur span{font:600 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#1C1108}

/* page palette shifts while a [data-shift] section is on screen (motion.js) */
body.shift-paper{
  --vfg:#F1ECE4; --vfband:#F1ECE4; --vfpanel:#FFFFFF; --vfpanel2:#F7F3EC; --vfline:#E2DACE; --vfline2:#C8BDAD; --vffield:#8A8278;
  --vfink:#15120F; --vfbody:#3D3832; --vfmut:#675F55; --vffaint:#9A9186; --vfacct:#A0511C; --vfgold:#BE8A31; --vfgoldt:#8A5A12; --vfrust:#B95835;
  --vfchip:rgba(250,247,242,.7); --vflift:0 22px 48px rgba(46,34,22,.16)}
body.shift-paper main>section:not(.theme-night):not(.theme-orange):not(.hero){background-color:var(--vfg)}
main>section{transition:background-color .7s ease}

/* ── motion ───────────────────────────────────────────────────────────────
   Full motion: motion.js (GSAP + ScrollTrigger + Lenis) drives everything marked data-*.
   Reduced motion: no smooth scroll, no scrubbing, no pinning, no parallax — but things still fade in,
   buttons still respond, the video and the marquees still run with their pause controls. */
@keyframes vfup{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes vffade{from{opacity:0}to{opacity:1}}
.js .enter>*{animation:vfup .9s var(--ease-out) both;animation-delay:calc(var(--i,0) * 110ms + 80ms)}
.js .enter>:nth-child(2){--i:1}.js .enter>:nth-child(3){--i:2}.js .enter>:nth-child(4){--i:3}.js .enter>:nth-child(5){--i:4}.js .enter>:nth-child(6){--i:5}
/* reveals: the entrance transition only applies until motion.js marks the element .is-done, after which the
   component's own hover transitions (lift, zoom, tilt) take over again */
.js [data-reveal]:not(.is-done){transition:opacity .9s var(--ease-out),transform .9s var(--ease-out),clip-path 1.3s var(--ease-io);transition-delay:calc(var(--i,0) * 90ms)}
.js [data-reveal]:not(.is-in){opacity:0;transform:translateY(26px)}
.js [data-reveal="media"]:not(.is-in){opacity:1;transform:none;clip-path:inset(8% 6% 8% 6% round var(--r-l))}
.js [data-reveal="media"]:not(.is-done) img{transition:transform 1.6s var(--ease-out)}
.js [data-reveal="media"]:not(.is-in) img{transform:scale(1.18)}
@view-transition{navigation:auto}   /* skipped in script when the visitor picks reduced motion */
html.rm [data-reveal]:not(.is-in){transform:none!important}
html.rm [data-reveal]:not(.is-done){transition-duration:.5s}
html.rm [data-reveal="media"]{clip-path:none!important}
html.rm [data-reveal="media"] img{transform:scale(1.02)!important}
html.rm .enter>*{animation-name:vffade}
html.rm .spin svg{animation-duration:60s}
@media print{
  .hdr,.ftr nav,.hero__media,.hero__toggle,.embed,.skip,.ftr__word,body::after{display:none!important}
  body{font-size:11pt;padding-top:0}
  .sec{border:0}
}

/* product range: four floor boards, then the afterpaints */
.prods{display:grid;gap:clamp(12px,1.4vw,18px);grid-template-columns:repeat(4,minmax(0,1fr));margin-top:40px}
.prods--after{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:16px}
.prod__name{gap:12px}
.prod--line{display:grid;grid-template-columns:96px 1fr;align-items:center}
.prod--line svg{aspect-ratio:auto;height:72px;padding:10px;background:transparent;border-right:1px solid var(--vfline)}
.prod--line .prod__name{border-top:0;font-size:12.5px}
@media (max-width:900px){.prods{grid-template-columns:repeat(2,minmax(0,1fr))}.prods--after{grid-template-columns:1fr}}
.tile--split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,30px);align-content:space-between}
.tile--split>div{display:flex;flex-direction:column;justify-content:space-between;gap:12px}
@media (max-width:560px){.tile--split{grid-template-columns:1fr}}
.quotes{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(14px,1.8vw,22px);margin-top:44px;align-items:stretch}
.quotes .quote{display:flex;flex-direction:column;justify-content:space-between}
@media (max-width:860px){.quotes{grid-template-columns:1fr}}
@media (max-width:560px){
  .prods .prod__name{flex-direction:column;align-items:flex-start;gap:6px}
}

/* photo heroes that stay night in both page themes */
.hero-photo.is-night{background:#0E0C0A;color:var(--vfink)}
.hero-photo.is-night .hero-photo__plate{background:linear-gradient(90deg,rgba(14,12,10,.9) 0%,rgba(14,12,10,.66) 42%,rgba(14,12,10,.16) 78%,rgba(14,12,10,0) 100%)}
.hero-photo.is-night .hero-photo__fade{background:linear-gradient(to top,rgba(14,12,10,.85),rgba(14,12,10,0) 40%)}
@media (max-width:900px){.hero-photo.is-night .hero-photo__plate{background:linear-gradient(to bottom,rgba(14,12,10,.92) 0%,rgba(14,12,10,.82) 46%,rgba(14,12,10,.2) 78%,rgba(14,12,10,.55) 100%)}}

/* big CTA slab layout */
.cta-big:not(.tc) .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(24px,5vw,80px);align-items:center}
.cta-big__go{position:relative;padding:18px}
.cta-big .fine,.cta-big .sub{color:var(--vfbody)}
@media (max-width:760px){.cta-big:not(.tc) .wrap{grid-template-columns:1fr}}

/* route map labels stay legible when the 1000-unit drawing shrinks to a phone */
@media (max-width:700px){
  .route text{font-size:28px;letter-spacing:.08em}
  .route text.sm{display:none}
  .route .rd{stroke-width:3}
}


/* ── touch and small-screen pass (10/1 QA) ───────────────────────────── */
html{-webkit-tap-highlight-color:transparent}
a[href^="tel:"]{white-space:nowrap}
.hdr.is-open::before{opacity:1}
html.menu-open{overflow:hidden}
.hdr__nav-more{display:none}
@media (max-width:1139px){
  .hdr__call{align-items:center;justify-content:center}
  .hdr__nav .hdr__nav-more{display:flex;flex-wrap:wrap;gap:8px 18px;padding-top:18px}
  .hdr__nav .hdr__nav-more a{font:600 13px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--vfmut);padding:12px 0;border:0}
}
@media (max-width:359px){.hdr__in{gap:6px}.hdr__in .chip-btn{padding-inline:10px}}
/* the hero Pause chip moves below the copy on phones so it never covers the eyebrow */
@media (max-width:560px){.hero__toggle{top:auto;bottom:16px;right:var(--gut)}}
/* hero facts: 2 x 2 on tablets instead of 3 + 1 */
@media (min-width:561px) and (max-width:1099px){.hero__meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 30px}}
/* the planner placeholder is compact on phones until the planner is actually opened */
@media (max-width:700px){
  .embed--planner{height:auto;aspect-ratio:4/3;min-height:340px}
  .embed--planner.is-loaded{aspect-ratio:auto;height:min(86svh,760px)}
  .embed__idle .eyebrow{background:rgba(14,12,10,.75);padding:8px 12px;border-radius:999px;line-height:1.3}
}
/* coverage map shorter on phones */
@media (max-width:700px){.embed--map{min-height:0;height:min(60svh,420px)}}
/* finger-sized controls */
@media (pointer:coarse),(max-width:700px){
  .hdr__logo,.ftr__tel,.ftr nav a,.ftr__base a,.hero__toggle,.link-arrow,.cta-big__tel,.branch__pick,.branch__addr,.person a,.btn--sm{
    min-height:44px;display:inline-flex;align-items:center}
  .chip-btn{min-height:44px}   /* size only: each chip keeps its own show/hide rule (Home chip, Menu above 1140px) */
  .ftr nav a{display:flex}
}
/* touch screens: no sticky hover lifts; a short press response instead */
@media (hover:none){
  .lift:hover,.lift:focus-within,.card:hover,.tile:hover,.tile--acc:hover,.person:hover,.person:focus-within,.loc:hover,.prod:hover,.prod:focus-within,.chip-btn:hover,.btn:hover{transform:none;box-shadow:none}
  .person:hover img{transform:none}
  :is(.card,.mcard,.loc,.person,.prod,.tile,.chip-btn,.link-arrow,.branch,.go,.ph){transition:transform .18s ease}
  :is(.card,.mcard,.loc,.person,.prod,.tile,.chip-btn,.link-arrow,.branch,.go,.ph):active{transform:scale(.98)}
}
/* small mono caps get a 12px floor on phones */
@media (max-width:700px){
  .chip-btn,.field>span,.ftr__h,.eyebrow--xs,.eyebrow--xxs,.loc__kind,.spec dt,figcaption,.ph__cap,.fact__k,.stat__l{font-size:12px;letter-spacing:.1em}
}
/* the footer is always night: show the white mark in both themes */
.ftr .logo--dark{display:block!important}
.ftr .logo--light{display:none!important}

/* focused content inside a sticky stack rises above the next card */
.stack--sticky>.stack__card:focus-within{z-index:5;filter:none!important}
/* tickers pause on hover, focus or tap */
.ticker:focus-within .ticker__track,.ticker.is-paused .ticker__track{animation-play-state:paused}
/* reduced motion (OS setting or the footer switch): looping motion stops */
html.rm .ticker__track,html.rm .marquee__track{animation:none}
html.rm .marquee__track{flex-wrap:wrap;justify-content:center;width:auto;row-gap:14px}
html.rm .marquee__track>li[aria-hidden]{display:none}
html.rm .spin svg{animation:none}
html.rm .hero__scroll i{animation:none}
/* required fields say so */
.field__req{font:500 10px/1 var(--mono);letter-spacing:.06em;text-transform:none;color:var(--vfmut);margin-left:6px}

/* ── standard closing CTA ({{> cta }}): heading + sub on the left, a ringed round button on the right ── */
.cta-std .cta-big__in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(28px,5vw,80px);align-items:center}
.cta-std .eyebrow{color:#1C1108}
.cta-std .cta-big__h{margin-top:20px;color:#1C1108;max-width:13ch}
.cta-std .cta-big__p{margin-top:clamp(18px,2.2vw,28px);font:700 clamp(1.3rem,2.4vw,2rem)/1.2 var(--head);letter-spacing:-.025em;color:#2E1C0E;max-width:26ch}
.cta-std .cta-big__side{display:flex;flex-direction:column;align-items:center;gap:16px}
.cta-std .cta-big__ring{position:relative;display:grid;place-items:center;width:clamp(230px,23vw,320px);aspect-ratio:1}
.cta-std .cta-big__ring .spin{position:absolute;inset:0;width:100%;color:#1C1108;pointer-events:none}
.cta-std .cta-big__ring .spin__mark{display:none}
.cta-std .cta-big__go{position:relative;z-index:1;width:clamp(130px,13.5vw,186px);display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:18px}
.cta-std .cta-big__go span{max-width:9ch;line-height:1.35}
.cta-std .cta-big__go svg{width:30px;height:30px;transition:transform .45s var(--ease-out)}
.cta-std .cta-big__go:hover svg,.cta-std .cta-big__go:focus-visible svg{transform:rotate(-45deg)}
.cta-std .cta-big__go:focus-visible,.cta-std .cta-big__tel:focus-visible{outline-color:#1C1108}
.cta-std .cta-big__tel{font:600 12px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#1C1108;padding-block:14px;
  background:linear-gradient(currentColor,currentColor) left 80%/0 1px no-repeat;transition:background-size .45s var(--ease-out)}
.cta-std .cta-big__tel:hover{color:#1C1108;background-size:100% 1px}
@media (max-width:700px){.cta-std .cta-big__in{grid-template-columns:1fr}.cta-std .cta-big__side{align-items:flex-start}.cta-std .cta-big__ring{width:230px;margin-left:-14px}}

/* the hidden attribute always wins over a component display rule */
[hidden]{display:none!important}

/* a stat that is a word, not a number ("The Southeast") */
.stat__word{display:block;font:800 clamp(2.1rem,4.2vw,3.6rem)/.95 var(--head);letter-spacing:-.045em;color:var(--vfink);text-wrap:balance}
/* retail mentions link to SC Floors */
a.ret{color:inherit;text-decoration:underline;text-decoration-color:var(--vfacc);text-decoration-thickness:1.5px;text-underline-offset:3px;transition:color .2s ease}
a.ret:hover,a.ret:focus-visible{color:var(--vfacct)}
.branch__ret{color:var(--vfacct)}
/* three hero facts on tablets: the last one spans the row */
.hero__meta>:last-child:nth-child(odd){grid-column:1/-1}   /* only matters where the facts sit in a grid */
