body{margin:0}
img{max-width:100%}
/* Layout: split hero (copy left, night scene right) → service index rail → long-form service ledger → process → area → booking → contact. Single dark look by design, matching the client's brand concept. */
:root{
  --night:#0B1220;        /* page ground, deep marine navy */
  --night-2:#101A2C;      /* raised bands */
  --line:#24314A;         /* hairlines */
  --ivory:#F5EBDD;        /* headlines, primary button */
  --brass:#D9B98A;        /* accent: lamplight on paint */
  --mist:#A9B3C4;         /* body copy */
  --mist-2:#7D889C;       /* captions */
  --day-1:#E4E8EE;        /* daylight studio backdrop for the tint preview */
  --day-2:#B9C1CC;
  --f-display:"Cormorant","Cormorant Garamond",Garamond,"Times New Roman",serif;
  --f-body:"Jost","Futura","Avenir Next","Segoe UI",system-ui,sans-serif;
  --wrap:1240px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{background:var(--night);color:var(--mist);font-family:var(--f-body);font-weight:300;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--night)}
a{color:inherit}
:focus-visible{outline:1px solid var(--brass);outline-offset:4px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
.eyebrow{font-family:var(--f-body);font-size:12px;font-weight:400;letter-spacing:.32em;text-transform:uppercase;color:var(--mist)}
h1,h2,h3{font-family:var(--f-display);font-weight:400;color:var(--ivory);margin:0;text-wrap:balance;line-height:1.02}
h2{font-size:clamp(40px,5.4vw,68px)}
h2 em,h1 em{font-style:italic;color:var(--brass)}
p{margin:0}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:18px;font-family:var(--f-display);font-size:19px;text-decoration:none;padding:15px 30px;border:1px solid var(--ivory);color:var(--ivory);background:transparent;cursor:pointer;transition:background .25s,color .25s}
.btn:hover{background:var(--ivory);color:var(--night)}
.btn.solid{background:var(--ivory);color:var(--night)}
.btn.solid:hover{background:var(--brass);border-color:var(--brass)}
.btn svg{width:18px;height:10px;flex:none}
.link{font-family:var(--f-display);font-size:19px;color:var(--ivory);text-decoration:none;border-bottom:1px solid var(--mist-2);padding-bottom:4px}
.link:hover{border-color:var(--brass);color:var(--brass)}

/* header */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:linear-gradient(var(--night),rgba(11,18,32,.86));backdrop-filter:blur(8px);border-bottom:1px solid transparent}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:20px}
.mark{text-decoration:none;display:flex;flex-direction:row;align-items:center;gap:14px}
.mark .mk,.gc-mark .mk{display:flex;flex-direction:column;gap:4px}
.badge{width:48px;height:48px;border-radius:50%;flex:none;box-shadow:0 0 0 1px rgba(217,185,138,.35),0 0 18px rgba(217,185,138,.22)}
footer .badge{width:64px;height:64px}
.gc-mark{display:flex;align-items:center;gap:10px}.gc-mark .badge{width:44px;height:44px;box-shadow:0 0 0 1px rgba(217,185,138,.4)}
@media (max-width:520px){.badge{width:40px;height:40px}.mark{gap:10px}}
.mark b{font-family:var(--f-display);font-weight:400;font-size:22px;letter-spacing:.16em;color:var(--ivory);line-height:1;white-space:nowrap}
.mark span{font-size:9.5px;letter-spacing:.42em;text-transform:uppercase;color:var(--brass)}
nav{display:flex;align-items:center;gap:30px}
nav a{white-space:nowrap;font-family:var(--f-display);font-size:18px;color:var(--ivory);text-decoration:none;opacity:.86}
nav a:hover{opacity:1;color:var(--brass)}
header .btn{padding:11px 22px;font-size:17px;white-space:nowrap}
@media (max-width:1180px){nav{display:none}}
@media (max-width:520px){.mark b{font-size:14px;letter-spacing:.1em}.mark span{font-size:7.5px;letter-spacing:.3em}header .btn{padding:9px 14px;font-size:15px;gap:10px}header .btn svg{display:none}}

/* hero */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero-img{position:absolute;inset:0 0 0 38%;background:url("hero.jpg") center/cover no-repeat}
.hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--night) 0%,rgba(11,18,32,.55) 22%,rgba(11,18,32,0) 48%),linear-gradient(0deg,var(--night) 0%,rgba(11,18,32,0) 22%)}
.hero .wrap{position:relative;padding-block:96px 112px}
.hero-copy{max-width:560px;display:flex;flex-direction:column;gap:30px}
.hero h1{font-size:clamp(52px,7.2vw,104px);letter-spacing:-.01em;line-height:.92}
.hero h1 em{color:var(--ivory)}
.hero .lede{font-size:19px;color:var(--ivory);opacity:.88;max-width:30ch}
.hero .ctas{display:flex;flex-wrap:wrap;align-items:center;gap:28px 36px;margin-top:8px}
.tagline{position:absolute;right:max(24px,env(safe-area-inset-right,0px));bottom:36px;display:flex;align-items:center;gap:18px;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--ivory)}
.tagline::before{content:"";width:48px;height:1px;background:var(--mist-2)}
@media (max-width:820px){
  .hero-img{position:relative;inset:auto;aspect-ratio:946/595;max-width:100%}
  .hero-img::after{background:linear-gradient(0deg,var(--night) 0%,rgba(11,18,32,0) 40%)}
  .hero .wrap{padding-block:8px 72px}
  .tagline{display:none}
}

/* service index rail */
.rail{background:var(--night)}
.rail .wrap{padding-block:40px 56px}
.rail-head{display:flex;align-items:center;gap:22px;margin-bottom:34px}
.rail-head::after{content:"";flex:1;height:1px;background:var(--line)}
.rail ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,1fr)}
.rail li{border-left:1px solid var(--line);padding:6px 18px}
.rail li:first-child{border-left:0;padding-left:0}
.rail a{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;row-gap:16px;text-decoration:none;align-items:center}
.rail .n{font-family:var(--f-display);font-size:15px;color:var(--mist-2)}
.rail svg{width:42px;height:30px;stroke:var(--ivory);fill:none;stroke-width:1.1}
.rail .t{grid-column:1/-1;font-family:var(--f-display);font-size:23px;color:var(--ivory);line-height:1.1;transition:color .2s}
.rail a:hover .t{color:var(--brass)}
@media (max-width:1100px){.rail ol{grid-template-columns:repeat(4,1fr);row-gap:28px}.rail li:nth-child(5){border-left:0;padding-left:0}}
@media (max-width:600px){.rail ol{grid-template-columns:repeat(2,1fr)}.rail li{border-left:0;padding-left:0}.rail li:nth-child(odd){padding-left:0}}

/* intro */
.intro{background:var(--night-2);border-block:1px solid var(--line)}
.intro .wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding-block:112px;align-items:end}
.intro.seo .wrap{align-items:start}
.seo-copy{display:grid;gap:18px}
.seo-copy p{font-size:16.5px;max-width:58ch}
.seo-copy a{color:var(--ivory);text-decoration:none;border-bottom:1px solid var(--brass)}
.seo-copy a:hover{color:var(--brass)}
.seo-copy strong{color:var(--ivory);font-weight:400}
.intro p{font-size:19px;max-width:52ch}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px;border-top:1px solid var(--line);padding-top:28px}
.facts b{display:block;font-family:var(--f-display);font-weight:400;font-size:30px;color:var(--ivory);line-height:1.1}
.facts span{font-size:13px;color:var(--mist-2);letter-spacing:.04em}
@media (max-width:860px){.intro .wrap{grid-template-columns:1fr;gap:32px;padding-block:80px}}
@media (max-width:480px){.facts{grid-template-columns:1fr}}

/* service ledger */
.services .wrap{padding-block:120px 40px}
.services-head{display:flex;justify-content:space-between;align-items:end;gap:32px;flex-wrap:wrap;margin-bottom:64px}
.services-head p{max-width:42ch}
.svc{display:grid;grid-template-columns:90px minmax(0,1.1fr) minmax(0,1fr) auto;gap:40px;padding-block:48px;border-top:1px solid var(--line);align-items:start;scroll-margin-top:100px}
.svc:last-child{border-bottom:1px solid var(--line)}
.svc .n{font-family:var(--f-display);font-size:18px;color:var(--brass);padding-top:10px}
.svc h3{font-size:clamp(34px,3.6vw,46px)}
.svc .kw{display:block;margin-top:12px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--mist-2)}
.svc ul{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px}
.svc li{padding-left:22px;position:relative;font-size:15.5px}
.svc li::before{content:"";position:absolute;left:0;top:.8em;width:10px;height:1px;background:var(--brass)}
.svc .go{padding-top:12px}
@media (max-width:980px){.svc{grid-template-columns:60px minmax(0,1fr);gap:20px 24px}.svc .body,.svc .go{grid-column:2}}
@media (max-width:520px){.svc{grid-template-columns:minmax(0,1fr)}.svc .body,.svc .go{grid-column:1}.svc .n{padding-top:0}}

/* tint shade lab */
.tintlab{grid-column:1/-1;border:1px solid var(--line);background:var(--night-2);padding:32px;display:grid;gap:24px}
.tl-top{display:flex;justify-content:space-between;align-items:end;gap:16px 32px;flex-wrap:wrap}
.tl-top h4{font-family:var(--f-display);font-weight:400;font-size:30px;color:var(--ivory);margin:10px 0 0;line-height:1.1}
.tl-top p.tl-note{font-size:14px;color:var(--mist-2);max-width:40ch}
.tl-vehicle{display:flex;gap:0;border:1px solid var(--line);width:max-content;max-width:100%}
.vt{font-family:var(--f-display);font-size:19px;color:var(--mist);background:transparent;border:0;border-left:1px solid var(--line);padding:10px 26px;cursor:pointer}
.vt:first-child{border-left:0}
.vt:hover{color:var(--ivory)}
.vt[aria-pressed="true"]{background:var(--ivory);color:var(--night)}
.tl-stage{background:#E6E8EB;border-radius:2px;overflow:hidden;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1.81fr);align-items:stretch}
.tl-stage figure{margin:0;position:relative;min-width:0}
.tl-stage svg{display:block;width:100%;height:auto}
.tl-stage figcaption{position:absolute;left:14px;top:12px;font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:#3A4250}
.tl-front{border-left:1px solid rgba(11,18,32,.14)}
@media (max-width:820px){.tl-stage{grid-template-columns:1fr}.tl-front{border-left:0;border-top:1px solid rgba(11,18,32,.14)}}
.tl-stage .tint{transition:opacity .45s ease}
.tl-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 40px}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--mist);margin-bottom:12px;padding:0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-family:var(--f-body);font-size:14px;color:var(--mist);background:transparent;border:1px solid var(--line);padding:8px 14px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:border-color .2s,color .2s}
.chip i{width:14px;height:14px;border:1px solid var(--mist-2);display:inline-block}
.chip:hover{border-color:var(--mist-2);color:var(--ivory)}
.chip[aria-pressed="true"]{border-color:var(--brass);color:var(--ivory)}
.tl-read{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 40px;border-top:1px solid var(--line);padding-top:20px}
.tl-read b{display:block;font-family:var(--f-display);font-weight:400;font-size:24px;color:var(--ivory)}
.tl-read p{font-size:15px}
.tl-legal{grid-column:1/-1;font-size:14px!important;color:var(--mist-2);border-left:1px solid var(--line);padding-left:16px}
.tl-legal.warn{border-color:var(--brass);color:var(--ivory)}
@media (max-width:1000px){.tl-controls{grid-template-columns:1fr}}
@media (max-width:700px){.tintlab{padding:20px 16px}.tl-read{grid-template-columns:1fr}}

.prices{margin:22px 0 0;display:grid;gap:0;border-top:1px solid var(--line)}
.prices div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.prices dt{font-size:15.5px}
.prices dd{margin:0;font-family:var(--f-display);font-size:22px;color:var(--ivory);font-variant-numeric:tabular-nums}
.tl-quote{display:flex;justify-content:space-between;align-items:center;gap:20px 32px;flex-wrap:wrap;border:1px solid var(--brass);padding:22px 26px}
.tl-q-txt{display:grid;grid-template-columns:auto 1fr;column-gap:24px;align-items:center;min-width:0}
.tl-q-txt small{grid-column:1/-1;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--brass)}
.tl-q-txt b{font-family:var(--f-display);font-weight:400;font-size:52px;line-height:1.1;color:var(--ivory);font-variant-numeric:tabular-nums}
.tl-q-txt span{font-size:15px;max-width:40ch}
@media (max-width:520px){.tl-q-txt{grid-template-columns:1fr}.tl-quote .btn{width:100%;justify-content:center}}

.svc-photo{grid-column:1/-1;margin:8px 0 0;position:relative;overflow:hidden;border:1px solid var(--line)}
.svc-photo img{display:block;width:100%;height:auto;aspect-ratio:1672/760;object-fit:cover;object-position:center 40%}
.svc-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:48px 28px 22px;background:linear-gradient(0deg,rgba(11,18,32,.85),rgba(11,18,32,0));font-family:var(--f-display);font-style:italic;font-size:clamp(20px,2.2vw,28px);color:var(--ivory)}
@media (max-width:520px){.svc-photo img{aspect-ratio:4/3;object-position:62% center}.svc-photo figcaption{padding:36px 16px 14px}}

/* ceramic rain test */
.clab{gap:28px}
.rs-surf{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.rsurf{position:relative;padding:0;border:1px solid var(--line);background:var(--night);cursor:pointer;overflow:hidden;text-align:left;transition:border-color .25s,transform .25s}
.rsurf img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;filter:saturate(.6) brightness(.6);transition:filter .35s,transform .6s}
.rsurf span{position:absolute;left:12px;bottom:10px;font-family:var(--f-display);font-size:21px;color:var(--ivory)}
.rsurf:hover img{filter:saturate(.9) brightness(.8);transform:scale(1.04)}
.rsurf[aria-pressed="true"]{border-color:var(--brass)}
.rsurf[aria-pressed="true"] img{filter:none}
.rsurf[aria-pressed="true"]::after{content:"Testing";position:absolute;top:8px;right:8px;font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--night);background:var(--brass);padding:3px 7px}
@media (max-width:560px){.rs-surf{grid-template-columns:repeat(2,minmax(0,1fr))}.rsurf span{font-size:18px}}
@media (max-width:520px){.rs-surf .vt,.rs-modes .vt{padding:10px 14px;font-size:17px}}
.rain-stage{position:relative;aspect-ratio:1672/941;max-width:100%;overflow:hidden;cursor:ew-resize;touch-action:pan-y;background:#0d0f13;user-select:none;-webkit-user-select:none}
.rain-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.rs-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}
.rain-stage.noscript .rs-fallback{opacity:1}
.rs-label{position:absolute;top:14px;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--ivory);background:rgba(11,18,32,.55);padding:6px 10px;backdrop-filter:blur(4px);pointer-events:none}
.rs-label.l{left:14px}.rs-label.r{right:14px;color:var(--brass)}
.rs-handle{position:absolute;top:0;bottom:0;left:50%;width:44px;margin-left:-22px;display:flex;align-items:center;justify-content:center;outline:none}
.rs-handle::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:linear-gradient(var(--brass),rgba(217,185,138,.25),var(--brass));box-shadow:0 0 18px rgba(217,185,138,.55)}
.rs-knob{position:relative;width:44px;height:44px;border-radius:50%;border:1px solid var(--brass);background:rgba(11,18,32,.75);backdrop-filter:blur(6px);display:grid;place-items:center;color:var(--brass);transition:transform .2s}
.rs-knob svg{width:22px;height:12px}
.rs-handle:focus-visible .rs-knob,.rain-stage:hover .rs-knob{transform:scale(1.08)}
@keyframes knobpulse{0%,100%{box-shadow:0 0 0 0 rgba(217,185,138,.45)}50%{box-shadow:0 0 0 10px rgba(217,185,138,0)}}
.rain-stage:not(.touched) .rs-knob{animation:knobpulse 2.2s ease-in-out infinite}
.rs-controls{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px}
.rs-mode-note{font-size:14.5px;color:var(--mist);margin:0;max-width:52ch}
.chip .dot{width:8px;height:8px;border-radius:50%;border:0;background:var(--mist-2)}
.chip[aria-pressed="true"] .dot{background:var(--brass);box-shadow:0 0 8px var(--brass)}
.chip:disabled{cursor:default;opacity:1}
.rs-compare{display:grid;grid-template-columns:1fr 1fr;gap:20px 40px;border-top:1px solid var(--line);padding-top:22px}
.rs-compare>div{display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:center}
.rs-compare svg{width:96px;height:32px}
.rs-compare p{font-size:15px}
.rs-compare span{display:block}
.rs-compare b{display:block;font-family:var(--f-display);font-weight:400;font-size:24px;color:var(--ivory)}
.cb{display:grid;gap:22px;border-top:1px solid var(--line);padding-top:28px}
.cb-head{display:flex;justify-content:space-between;align-items:end;gap:16px 32px;flex-wrap:wrap}
.cb-head h4{font-family:var(--f-display);font-weight:400;font-size:30px;color:var(--ivory);margin:10px 0 0;line-height:1.1}
.cb-group{display:grid;gap:0}
.layers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.layer{position:relative;display:grid;gap:6px;justify-items:start;text-align:left;padding:20px 20px 18px;background:var(--night);border:1px solid var(--line);color:var(--mist);cursor:pointer;transition:border-color .25s,background .25s,transform .25s}
.layer:hover{border-color:var(--mist-2);transform:translateY(-2px)}
.layer b{font-family:var(--f-display);font-weight:400;font-size:26px;color:var(--ivory);line-height:1.1}
.layer em{font-style:normal;font-family:var(--f-display);font-size:22px;color:var(--brass);font-variant-numeric:tabular-nums}
.layer[aria-pressed="true"]{border-color:var(--brass);background:linear-gradient(160deg,rgba(217,185,138,.10),rgba(217,185,138,0) 60%),var(--night)}
.stack{display:flex;flex-direction:column-reverse;gap:3px;height:34px;justify-content:flex-start;width:56px;margin-bottom:10px}
.stack i{display:block;height:5px;border-radius:1px;background:linear-gradient(90deg,var(--mist-2),var(--ivory),var(--mist-2));opacity:.45;transition:opacity .3s}
.layer[aria-pressed="true"] .stack i{background:linear-gradient(90deg,#8C6E45,var(--brass),#FFF1D6,var(--brass),#8C6E45);background-size:200% 100%;opacity:1;animation:sheen 2.4s linear infinite}
.layer[aria-pressed="true"] .stack i:nth-child(2){animation-delay:-.6s}.layer[aria-pressed="true"] .stack i:nth-child(3){animation-delay:-1.2s}.layer[aria-pressed="true"] .stack i:nth-child(4){animation-delay:-1.8s}
@keyframes sheen{to{background-position:-200% 0}}
.addons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.addon{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:14px;align-items:center;text-align:left;padding:12px 14px 12px 12px;background:var(--night);border:1px solid var(--line);color:var(--mist);cursor:pointer;transition:border-color .25s}
.addon img{width:72px;height:52px;object-fit:cover;filter:saturate(.6) brightness(.7);transition:filter .3s}
.addon b{display:block;font-family:var(--f-display);font-weight:400;font-size:21px;color:var(--ivory);line-height:1.15}
.addon small{font-size:12.5px;color:var(--mist-2)}
.addon em{font-style:normal;font-family:var(--f-display);font-size:20px;color:var(--brass);font-variant-numeric:tabular-nums}
.addon .tick{position:absolute;top:6px;left:6px;width:14px;height:14px;border:1px solid var(--mist-2)}
.addon:hover{border-color:var(--mist-2)}
.addon[aria-pressed="true"]{border-color:var(--brass)}
.addon[aria-pressed="true"] img{filter:none}
.addon[aria-pressed="true"] .tick{background:var(--brass);border-color:var(--brass);box-shadow:inset 0 0 0 3px var(--night)}
.receipt{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 48px;align-items:end;border:1px solid var(--brass);padding:26px 28px;background:linear-gradient(120deg,rgba(217,185,138,.07),rgba(217,185,138,0) 50%)}
.rc-lines ul{list-style:none;margin:14px 0 0;padding:0;display:grid}
.rc-lines li::before{display:none}
.rc-lines li{padding-left:0!important;display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:15.5px;animation:lineIn .35s ease both}
.rc-lines li span:last-child{font-family:var(--f-display);font-size:19px;color:var(--ivory);font-variant-numeric:tabular-nums}
@keyframes lineIn{from{opacity:.001;transform:translateX(-8px)}to{opacity:1;transform:none}}
.rc-total{display:grid;gap:6px;justify-items:end;text-align:right}
.rc-total small{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--brass)}
.rc-total b{font-family:var(--f-display);font-weight:400;font-size:64px;line-height:1;color:var(--ivory);font-variant-numeric:tabular-nums;margin-bottom:14px}
.prices.addl{margin-top:14px}
@media (max-width:980px){.layers{grid-template-columns:repeat(2,minmax(0,1fr))}.addons{grid-template-columns:1fr}}
@media (max-width:700px){.receipt{grid-template-columns:1fr}.rc-total{justify-items:stretch;text-align:left}.rc-total .btn{justify-content:center}}
@media (max-width:700px){.rs-compare{grid-template-columns:1fr}.rs-label{font-size:9.5px;letter-spacing:.2em}}

/* process */
.process .wrap{padding-block:100px}
.steps{list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:40px;counter-reset:s}
.steps li{border-top:1px solid var(--brass);padding-top:24px;counter-increment:s}
.steps li::before{content:"Step " counter(s);display:block;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--brass);margin-bottom:16px}
.steps h3{font-size:28px;margin-bottom:10px}
.steps p{font-size:15.5px}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* area */
.area{background:var(--night-2);border-block:1px solid var(--line)}
.area .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:64px;padding-block:110px;align-items:center}
.towns{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr}
.towns li{font-family:var(--f-display);font-size:clamp(28px,3vw,40px);color:var(--ivory);padding-block:14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-right:20px}
.towns li small{font-family:var(--f-body);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--mist-2)}
.area p{margin-top:24px;max-width:44ch}
@media (max-width:860px){.area .wrap{grid-template-columns:1fr;gap:40px;padding-block:80px}}
@media (max-width:460px){.towns{grid-template-columns:1fr}}

/* booking */
.book .wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:72px;padding-block:120px}
.book-copy{display:flex;flex-direction:column;gap:24px}
.contact-lines{display:grid;gap:18px;margin-top:16px}
.cl{display:flex;flex-direction:column;gap:2px}
.cl small{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--mist-2)}
.cl-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.cl a,.cl span.v{font-family:var(--f-display);font-size:28px;color:var(--ivory);text-decoration:none;user-select:all;overflow-wrap:anywhere}
.copy{font-family:var(--f-body);font-size:11px;letter-spacing:.2em;text-transform:uppercase;background:none;border:1px solid var(--line);color:var(--mist);padding:5px 10px;cursor:pointer}
.copy:hover{border-color:var(--brass);color:var(--brass)}
form{border:1px solid var(--line);padding:44px;display:grid;grid-template-columns:1fr 1fr;gap:26px 28px;background:var(--night-2)}
.f{display:flex;flex-direction:column;gap:8px;min-width:0}
.f.full{grid-column:1/-1}
label{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--mist)}
input,select,textarea{font:inherit;font-size:16px;color:var(--ivory);background:transparent;border:0;border-bottom:1px solid var(--line);padding:10px 0;border-radius:0;width:100%}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--mist) 50%),linear-gradient(135deg,var(--mist) 50%,transparent 50%);background-position:calc(100% - 10px) 52%,calc(100% - 5px) 52%;background-size:5px 5px;background-repeat:no-repeat}
select option{background:var(--night-2)}
textarea{resize:vertical;min-height:84px}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--brass)}
.form-end{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:8px}
.form-end small{font-size:13px;color:var(--mist-2);max-width:34ch}
.notice{grid-column:1/-1;border-left:1px solid var(--brass);padding:4px 0 4px 18px;color:var(--ivory)}
@media (max-width:900px){.book .wrap{grid-template-columns:1fr;gap:48px;padding-block:80px}}
@media (max-width:560px){form{grid-template-columns:1fr;padding:28px 22px}}

/* faq */
.faq .wrap{padding-block:40px 120px;max-width:920px}
details{border-top:1px solid var(--line)}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;padding-block:26px;font-family:var(--f-display);font-size:26px;color:var(--ivory)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--brass);font-size:28px;line-height:1;transition:transform .2s}
details[open] summary::after{transform:rotate(45deg)}
details p{padding-bottom:26px;max-width:62ch}

/* footer */
footer{border-top:1px solid var(--line);background:var(--night-2)}
footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-block:44px}
footer p{font-size:13px;color:var(--mist-2)}

/* ---- motion layer ---- */
/* hero: slow push-in, a light pass across the paint, and a soft spotlight that follows the pointer */
@keyframes kenburns{from{transform:scale(1.04)}to{transform:scale(1.12) translateX(-1.5%)}}
.hero-img{animation:kenburns 26s ease-in-out infinite alternate;transform-origin:70% 60%}
.hero-sheen{position:absolute;inset:0 0 0 38%;pointer-events:none;overflow:hidden;mix-blend-mode:screen}
.hero-sheen::before{content:"";position:absolute;top:-20%;bottom:-20%;width:22%;left:-30%;background:linear-gradient(100deg,rgba(255,236,205,0),rgba(255,236,205,.16),rgba(255,236,205,0));transform:skewX(-14deg);animation:sheenpass 9s cubic-bezier(.6,0,.3,1) 1.6s infinite}
@keyframes sheenpass{0%{left:-30%}38%,100%{left:120%}}
.hero-spot{position:absolute;inset:0;pointer-events:none;background:radial-gradient(420px circle at var(--mx,70%) var(--my,55%),rgba(217,185,138,.13),transparent 60%);transition:opacity .4s;opacity:0}
.hero:hover .hero-spot{opacity:1}
@media (max-width:820px){.hero-sheen{inset:0;height:auto;aspect-ratio:946/595}}
/* drifting lights in the hero */
.motes{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.motes i{position:absolute;bottom:-10px;width:3px;height:3px;border-radius:50%;background:var(--brass);box-shadow:0 0 8px var(--brass);opacity:0;animation:mote linear infinite}
@keyframes mote{0%{transform:translateY(0);opacity:0}15%{opacity:.7}85%{opacity:.5}100%{transform:translateY(-70vh) translateX(30px);opacity:0}}
/* headline: brass rule draws under the italic word */
.hero h1 em{position:relative}
.hero h1 em::after{content:"";position:absolute;left:2%;right:6%;bottom:.04em;height:2px;background:linear-gradient(90deg,var(--brass),rgba(217,185,138,0));transform-origin:left;animation:rule 1.4s cubic-bezier(.2,.7,.2,1) 1s both}
@keyframes rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* service rail: icons draw themselves on hover, rail items rise in on load */
.rail svg *{stroke-dasharray:160;stroke-dashoffset:0;transition:stroke .3s}
.rail a:hover svg *{animation:draw 1.1s ease forwards;stroke:var(--brass)}
@keyframes draw{from{stroke-dashoffset:160}to{stroke-dashoffset:0}}
.rail li{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
.rail li:nth-child(2){animation-delay:.06s}.rail li:nth-child(3){animation-delay:.12s}.rail li:nth-child(4){animation-delay:.18s}.rail li:nth-child(5){animation-delay:.24s}.rail li:nth-child(6){animation-delay:.3s}.rail li:nth-child(7){animation-delay:.36s}
/* scroll-linked reveals (browsers without support simply show everything) */
@supports (animation-timeline:view()){
  .reveal{animation:revealUp linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
  @keyframes revealUp{from{opacity:.001;transform:translateY(36px)}to{opacity:1;transform:none}}
  .steps li{animation:stepIn linear both;animation-timeline:view();animation-range:entry 10% entry 70%}
  @keyframes stepIn{from{border-top-color:transparent;opacity:.001;transform:translateY(20px)}to{border-top-color:var(--brass);opacity:1;transform:none}}
  .towns li{animation:townIn linear both;animation-timeline:view();animation-range:entry 0% entry 60%}
  @keyframes townIn{from{opacity:.001;transform:translateX(-24px)}to{opacity:1;transform:none}}
  .svc-photo img{animation:parallax linear both;animation-timeline:view()}
  @keyframes parallax{from{transform:scale(1.12) translateY(-3%)}to{transform:scale(1.12) translateY(3%)}}
}
/* section numbers: a brass line grows beside the service number */
.svc .n{position:relative}
.svc .n::after{content:"";position:absolute;left:0;top:calc(100% + 10px);width:28px;height:1px;background:var(--brass);transform-origin:left;transform:scaleX(.35);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.svc:hover .n::after{transform:scaleX(1)}
.svc{transition:background .5s}
.svc:hover{background:linear-gradient(90deg,rgba(217,185,138,.035),transparent 70%)}
/* buttons: a glint passes over on hover */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);pointer-events:none}
.btn:hover::after{animation:glint .8s ease}
@keyframes glint{to{left:130%}}
/* area marquee */
.marquee{border-block:1px solid var(--line);overflow:hidden;background:var(--night);padding-block:22px}
.marquee-track{display:flex;gap:56px;width:max-content;animation:marq 38s linear infinite;font-family:var(--f-display);font-style:italic;font-size:clamp(26px,3.4vw,44px);color:var(--ivory);white-space:nowrap}
.marquee-track span{display:flex;align-items:center;gap:56px}
.marquee-track span::after{content:"";width:8px;height:8px;transform:rotate(45deg);border:1px solid var(--brass)}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}
/* prices tick up when they come into view */
.prices dd.counting{color:var(--brass)}

/* ---- luxe controls ---- */
@property --ang{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes spinAng{to{--ang:360deg}}
.foil{background:linear-gradient(100deg,#8C6E45 0%,#D9B98A 20%,#FFF3DC 34%,#E2C595 46%,#9C7B4E 62%,#F2DDB5 80%,#B8955F 100%);background-size:240% auto;-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent;animation:foilShift 7s linear infinite}
@keyframes foilShift{to{background-position:-240% 0}}
/* mode buttons */
.rs-modes{border:0;gap:10px;background:none}
.rs-modes .vt.rm{display:flex;align-items:center;gap:10px;border:1px solid var(--line)!important;background:var(--night);color:var(--mist);padding:10px 20px 10px 14px;position:relative;transition:color .3s,border-color .3s,transform .3s}
.rs-modes .vt.rm:hover{color:var(--ivory);transform:translateY(-2px)}
.rs-modes .vt.rm[aria-pressed="true"]{color:var(--ivory);background:linear-gradient(var(--night),var(--night)) padding-box,conic-gradient(from var(--ang),#3a2e1e,#D9B98A,#FFF3DC,#D9B98A,#3a2e1e 45%,#1c1710 70%,#3a2e1e) border-box;border:1px solid transparent!important;animation:spinAng 4s linear infinite;box-shadow:0 0 24px -6px rgba(217,185,138,.45)}
.ic{width:26px;height:26px;flex:none;color:var(--mist-2);transition:color .3s}
.rm[aria-pressed="true"] .ic,.rm:hover .ic{color:var(--brass)}
.ic g path{stroke:currentColor;stroke-width:1.3;stroke-linecap:round;fill:none}
.ic-rain .drops path{stroke-dasharray:4 8}
.rm:hover .ic-rain .drops path,.rm[aria-pressed="true"] .ic-rain .drops path{animation:fall .7s linear infinite}
.ic-rain .drops path:nth-child(2){animation-delay:-.23s!important}.ic-rain .drops path:nth-child(3){animation-delay:-.46s!important}
@keyframes fall{from{stroke-dashoffset:12}to{stroke-dashoffset:0}}
.ic-hose .jet path{stroke-dasharray:3 4}
.rm:hover .ic-hose .jet path,.rm[aria-pressed="true"] .ic-hose .jet path{animation:spray .45s linear infinite}
@keyframes spray{from{stroke-dashoffset:7}to{stroke-dashoffset:0}}
.ic-gloss .star{transform-origin:14px 14px}
.rm:hover .ic-gloss .star,.rm[aria-pressed="true"] .ic-gloss .star{animation:twinkle 2.2s ease-in-out infinite}
.ic-gloss .tw{opacity:.3}
.rm:hover .ic-gloss .tw,.rm[aria-pressed="true"] .ic-gloss .tw{animation:tw 1.6s ease-in-out infinite}.ic-gloss .t2{animation-delay:-.8s!important}
@keyframes twinkle{0%,100%{transform:scale(.85) rotate(0deg)}50%{transform:scale(1.08) rotate(45deg);filter:drop-shadow(0 0 4px #D9B98A)}}
@keyframes tw{0%,100%{opacity:.15}50%{opacity:1}}
.rm-l{font-family:var(--f-display);font-size:19px}
/* layer cards: 3D plates that separate when chosen */
.layer{overflow:hidden;transform-style:preserve-3d;will-change:transform}
.layer::before{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--lx,50%) var(--ly,0%),rgba(217,185,138,.16),transparent 60%);opacity:0;transition:opacity .35s;pointer-events:none}
.layer:hover::before,.layer[aria-pressed="true"]::before{opacity:1}
.layer[aria-pressed="true"]{background:linear-gradient(160deg,#16120c,var(--night) 60%) padding-box,conic-gradient(from var(--ang),#3a2e1e,#D9B98A,#FFF3DC,#D9B98A,#3a2e1e 45%,#1c1710 70%,#3a2e1e) border-box!important;border:1px solid transparent!important;animation:spinAng 5s linear infinite;box-shadow:0 18px 40px -18px rgba(217,185,138,.45)}
.plates{display:block;width:70px;height:70px;margin:6px 0 6px;perspective:400px}
.pl-wrap{position:relative;display:block;width:44px;height:44px;margin:24px 0 0 12px;transform-style:preserve-3d;transform:rotateX(58deg) rotateZ(-42deg);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.pl-wrap i{position:absolute;inset:0;border:1px solid rgba(217,185,138,.55);background:linear-gradient(135deg,rgba(255,243,220,.28),rgba(217,185,138,.06));transform:translateZ(calc(var(--k,0)*4px));transition:transform .6s cubic-bezier(.2,.7,.2,1),background .4s,box-shadow .4s}
.pl-wrap i.base{border-color:var(--mist-2);background:linear-gradient(135deg,#3a4250,#141a24)}
.layer:hover .pl-wrap i,.layer[aria-pressed="true"] .pl-wrap i{transform:translateZ(calc(var(--k,0)*10px))}
.layer[aria-pressed="true"] .pl-wrap{animation:hover3d 3.6s ease-in-out infinite}
.layer[aria-pressed="true"] .pl-wrap i:not(.base){background:linear-gradient(135deg,rgba(255,243,220,.75),rgba(217,185,138,.25) 40%,rgba(217,185,138,.05));box-shadow:0 0 14px rgba(217,185,138,.45)}
@keyframes hover3d{0%,100%{transform:rotateX(58deg) rotateZ(-42deg) translateZ(0)}50%{transform:rotateX(58deg) rotateZ(-30deg) translateZ(4px)}}
.layer em.foil{font-size:24px}
/* receipt: a black-card finish */
.receipt{position:relative;overflow:hidden;border:1px solid transparent!important;background:
  repeating-linear-gradient(115deg,rgba(255,255,255,.012) 0 2px,transparent 2px 5px) padding-box,
  radial-gradient(120% 140% at 100% 0%,rgba(217,185,138,.16),transparent 55%) padding-box,
  linear-gradient(160deg,#141009,#0B1220 55%,#0a0f1a) padding-box,
  conic-gradient(from var(--ang),#3a2e1e,#D9B98A,#FFF3DC,#D9B98A,#3a2e1e 40%,#1c1710 65%,#3a2e1e) border-box!important;
  animation:spinAng 8s linear infinite;box-shadow:0 30px 60px -30px rgba(0,0,0,.8),0 0 50px -20px rgba(217,185,138,.35)}
.receipt::after{content:"";position:absolute;top:-40%;bottom:-40%;width:18%;left:-30%;background:linear-gradient(100deg,transparent,rgba(255,240,215,.08),transparent);transform:skewX(-18deg);animation:sheenpass 7s cubic-bezier(.6,0,.3,1) 1s infinite;pointer-events:none}
.receipt .eyebrow,.rc-total small{color:var(--brass)}
.rc-total b{font-size:clamp(56px,7vw,88px);letter-spacing:-.01em;transition:transform .35s cubic-bezier(.2,.7,.2,1),filter .35s}
.rc-total b.bump{transform:scale(1.06);filter:drop-shadow(0 0 18px rgba(217,185,138,.55))}
.rc-note{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--mist-2);margin:-8px 0 12px}
@media (prefers-reduced-motion:reduce){.foil{animation:none;background-position:30% 0}}

/* ---- luxe tint controls ---- */
.tintlab:not(.clab) .tl-vehicle{border:0;gap:10px}
@media (max-width:560px){.tintlab:not(.clab) .tl-vehicle{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.vt.tv{flex-direction:column;gap:4px;padding:10px 6px!important}.rs-modes{flex-wrap:wrap;width:100%}}
.vt.tv{display:flex;align-items:center;gap:10px;border:1px solid var(--line)!important;background:var(--night);padding:10px 22px 10px 16px;transition:color .3s,transform .3s}
.vt.tv:hover{transform:translateY(-2px);color:var(--ivory)}
.vt.tv[aria-pressed="true"]{color:var(--ivory)!important;background:linear-gradient(var(--night),var(--night)) padding-box,conic-gradient(from var(--ang),#3a2e1e,#D9B98A,#FFF3DC,#D9B98A,#3a2e1e 45%,#1c1710 70%,#3a2e1e) border-box!important;border:1px solid transparent!important;animation:spinAng 4s linear infinite;box-shadow:0 0 24px -6px rgba(217,185,138,.45)}
.carico{width:38px;height:24px;color:var(--mist-2);transition:color .3s,transform .4s}
.carico .beam{stroke:var(--brass);stroke-width:1.4;stroke-linecap:round;opacity:0}
.vt.tv:hover .carico,.vt.tv[aria-pressed="true"] .carico{color:var(--brass)}
.vt.tv:hover .carico{animation:roll .9s cubic-bezier(.3,.7,.3,1)}
@keyframes roll{0%{transform:translateX(-6px);opacity:.3}100%{transform:none;opacity:1}}
.vt.tv[aria-pressed="true"] .beam{animation:beam 2.4s ease-in-out infinite}
@keyframes beam{0%,100%{opacity:0}40%,60%{opacity:1;filter:drop-shadow(0 0 3px #D9B98A)}}
.carico .wh{transform-box:fill-box;transform-origin:center;stroke-dasharray:3 2}
.vt.tv:hover .carico .wh{animation:spinW .9s linear}
@keyframes spinW{to{transform:rotate(360deg)}}
/* shade chips become glass samples */
.chips[data-win] .chip{position:relative;overflow:hidden;padding:9px 14px 9px 10px;gap:10px;background:var(--night);transition:border-color .3s,color .3s,transform .3s}
.chips[data-win] .chip:hover{transform:translateY(-2px)}
.chips[data-win] .chip i{width:30px;height:20px;border:1px solid rgba(217,185,138,.35);border-radius:2px;position:relative;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.chips[data-win] .chip i::after{content:"";position:absolute;top:-50%;bottom:-50%;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg)}
.chips[data-win] .chip:hover i::after,.chips[data-win] .chip[aria-pressed="true"] i::after{animation:glint 1.6s ease infinite}
.chips[data-win] .chip[aria-pressed="true"]{color:var(--ivory);background:linear-gradient(var(--night),var(--night)) padding-box,conic-gradient(from var(--ang),#3a2e1e,#D9B98A,#FFF3DC,#D9B98A,#3a2e1e 45%,#1c1710 70%,#3a2e1e) border-box;border:1px solid transparent;animation:spinAng 4s linear infinite;box-shadow:0 0 20px -8px rgba(217,185,138,.5)}
.rc-lines li.muted span:last-child{font-family:var(--f-body);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass)}
.tl-receipt{margin-top:4px}
/* price lists in gold foil */
.prices dd{background:linear-gradient(100deg,#8C6E45 0%,#D9B98A 20%,#FFF3DC 34%,#E2C595 46%,#9C7B4E 62%,#F2DDB5 80%,#B8955F 100%);background-size:240% auto;-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent;animation:foilShift 7s linear infinite}

/* film choice */
.films{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.film{grid-template-columns:auto 1fr;column-gap:16px;align-items:start}
.film .fswatch{grid-row:span 3;width:54px;height:54px;border:1px solid rgba(217,185,138,.35);position:relative;overflow:hidden}
.fswatch.carbon{background:repeating-linear-gradient(45deg,#0b0d10 0 3px,#15181d 3px 6px),#0b0d10}
.fswatch.ceramic{background:linear-gradient(135deg,#2a3340,#0e1218 60%),#111}
.fswatch.ceramic::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(140,190,255,.35),transparent 55%),radial-gradient(circle at 70% 75%,rgba(217,185,138,.3),transparent 50%)}
.fswatch.nano{background:linear-gradient(135deg,#1f2a38,#07090d 60%),#0a0c10}
.fswatch.nano::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 28% 28%,rgba(160,210,255,.5),transparent 50%),radial-gradient(circle at 72% 72%,rgba(217,185,138,.42),transparent 48%),repeating-radial-gradient(circle at 50% 50%,rgba(255,255,255,.05) 0 1px,transparent 1px 4px)}
.fswatch::after{content:"";position:absolute;top:-50%;bottom:-50%;width:35%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg)}
.film:hover .fswatch::after,.film[aria-pressed="true"] .fswatch.nano{background:linear-gradient(135deg,#1f2a38,#07090d 60%),#0a0c10}
.fswatch.nano::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 28% 28%,rgba(160,210,255,.5),transparent 50%),radial-gradient(circle at 72% 72%,rgba(217,185,138,.42),transparent 48%),repeating-radial-gradient(circle at 50% 50%,rgba(255,255,255,.05) 0 1px,transparent 1px 4px)}
.fswatch::after{animation:glint 2s ease infinite}
.fdesc{font-size:14px;line-height:1.5;color:var(--mist)}
.film em.foil{font-size:22px}
.prices.two div{display:grid;grid-template-columns:1fr 96px 96px;gap:12px;align-items:baseline}
.prices.two dd{text-align:right}
.prices.two .ph dt,.prices.two .ph dd{font-family:var(--f-body)!important;font-size:11px!important;letter-spacing:.24em;text-transform:uppercase;color:var(--brass)!important;-webkit-text-fill-color:var(--brass);background:none!important;animation:none!important}
@media (max-width:640px){.films{grid-template-columns:1fr}.prices.two div{grid-template-columns:1fr 64px 64px}}

/* interior wipe test */
.price-note{font-size:13.5px;color:var(--mist-2);margin-top:12px}
.wipe-stage{position:relative;aspect-ratio:1672/941;max-width:100%;overflow:hidden;background:#0d0f13;cursor:crosshair;touch-action:none;user-select:none;-webkit-user-select:none}
.wipe-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.wipe-stage.noscript .rs-fallback{opacity:1}
.wipe-meter{position:absolute;right:14px;top:14px;display:grid;grid-template-columns:auto auto;align-items:baseline;column-gap:10px;padding:10px 14px;background:rgba(11,18,32,.66);backdrop-filter:blur(6px);border:1px solid rgba(217,185,138,.35);min-width:150px;pointer-events:none}
.wipe-meter small{font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--brass)}
.wipe-meter b{font-family:var(--f-display);font-weight:400;font-size:30px;color:var(--ivory);text-align:right;font-variant-numeric:tabular-nums}
.wm-bar{grid-column:1/-1;height:2px;background:rgba(255,255,255,.12);margin-top:6px;overflow:hidden}
.wm-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#8C6E45,#FFF3DC,#D9B98A);transition:width .25s}
.wipe-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;padding:12px 20px;background:rgba(11,18,32,.7);backdrop-filter:blur(6px);border:1px solid var(--brass);color:var(--ivory);font-family:var(--f-display);font-size:21px;pointer-events:none;transition:opacity .5s}
.wipe-hint svg{width:26px;height:26px;color:var(--brass);animation:swipe 1.8s ease-in-out infinite}
@keyframes swipe{0%,100%{transform:translateX(-8px) rotate(-8deg)}50%{transform:translateX(8px) rotate(8deg)}}
.wipe-stage.touched .wipe-hint{opacity:0}
.wipe-done{position:absolute;left:24px;bottom:22px;display:grid;gap:2px;padding:14px 20px;background:rgba(11,18,32,.7);backdrop-filter:blur(6px);border:1px solid transparent;background-clip:padding-box;animation:doneIn .6s cubic-bezier(.2,.7,.2,1)}
.wipe-done b{font-family:var(--f-display);font-weight:400;font-size:28px;color:var(--ivory)}
@keyframes doneIn{from{opacity:.001;transform:translateY(12px)}to{opacity:1;transform:none}}
.films-3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:900px){.films-3{grid-template-columns:1fr}}
.fswatch.complet{background:radial-gradient(circle at 30% 30%,rgba(255,243,220,.85),transparent 55%),linear-gradient(135deg,#C89A5B,#6b4a2c)}
.fswatch.refresh{background:radial-gradient(circle at 30% 30%,rgba(255,243,220,.35),transparent 60%),linear-gradient(135deg,#6b4a2c,#3a2716)}
.fswatch.restore{background:radial-gradient(circle at 30% 30%,rgba(255,243,220,.6),transparent 55%),linear-gradient(135deg,#a8743f,#5a3a1c)}
.isizes{border:0!important;gap:10px}
.vt.isz span{display:grid;text-align:left;line-height:1.15}
.vt.isz small{font-family:var(--f-body);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.vt.isz[aria-pressed="true"]{color:var(--ivory)!important;background:linear-gradient(var(--night),var(--night)) padding-box,conic-gradient(from var(--ang),#3a2e1e,#D9B98A,#FFF3DC,#D9B98A,#3a2e1e 45%,#1c1710 70%,#3a2e1e) border-box!important;border:1px solid transparent!important;animation:spinAng 4s linear infinite;box-shadow:0 0 24px -6px rgba(217,185,138,.45)}
.iaddons{grid-template-columns:repeat(2,minmax(0,1fr))}
.addon .pet{width:72px;height:52px;display:grid;place-items:center;background:linear-gradient(135deg,#1a2130,#0e131c);color:var(--mist-2);transition:color .3s}
.addon .pet svg{width:28px;height:28px}
.addon[aria-pressed="true"] .pet{color:var(--brass)}
.addon:hover .pet svg{animation:paw .6s ease}
@keyframes paw{50%{transform:translateY(-3px) rotate(-8deg)}}
@media (max-width:760px){.iaddons{grid-template-columns:1fr}.isizes{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.vt.isz{flex-direction:column;gap:4px;padding:10px 6px!important}.vt.isz span{text-align:center}}

/* paint correction bay */
.pc-stage{position:relative;aspect-ratio:1672/941;max-width:100%;overflow:hidden;background:#0d0f13;cursor:none;touch-action:none;user-select:none;-webkit-user-select:none}
.pc-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.pc-stage.noscript .rs-fallback{opacity:1}
.pad{position:absolute;left:0;top:0;width:min(13vw,150px);height:min(13vw,150px);margin:calc(min(13vw,150px)/-2) 0 0 calc(min(13vw,150px)/-2);pointer-events:none;opacity:0;transition:opacity .2s}
.pc-stage.hover .pad{opacity:1}
.pad i{display:block;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 50% 50%,#f3eee4 0 14%,#d9d2c4 15% 40%,#b9b1a1 41% 58%,#2a2d33 60% 66%,#15181d 67% 100%);box-shadow:0 14px 28px -10px rgba(0,0,0,.8),inset 0 0 0 1px rgba(255,255,255,.08);position:relative}
.pad i::before{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(0,0,0,.12) 0 6deg,transparent 6deg 18deg);mask:radial-gradient(circle,transparent 58%,#000 60%);-webkit-mask:radial-gradient(circle,transparent 58%,#000 60%)}
.pad i::after{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(255,255,255,0) 0 70%,rgba(255,255,255,.35) 85%,rgba(255,255,255,0));mask:radial-gradient(circle,#000 0 57%,transparent 58%);-webkit-mask:radial-gradient(circle,#000 0 57%,transparent 58%)}
.pc-stage.spin .pad i{animation:padspin .14s linear infinite}
.pc-stage.spin .pad{transform:translate(0,0) scale(.96)}
@keyframes padspin{to{transform:rotate(360deg)}}
.pc-hud{position:absolute;left:14px;top:14px;display:flex;gap:10px;pointer-events:none}
.pc-chip{display:grid;padding:8px 12px;background:rgba(11,18,32,.66);backdrop-filter:blur(6px);border:1px solid rgba(217,185,138,.35)}
.pc-chip small{font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--brass)}
.pc-chip b{font-family:var(--f-display);font-weight:400;font-size:20px;color:var(--ivory);font-variant-numeric:tabular-nums}
.pc-hint svg{animation:none}
.pc-gauges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:14px;align-items:stretch}
.gauge{display:grid;justify-items:center;gap:2px;padding:14px 10px 12px;border:1px solid var(--line);background:var(--night);position:relative;overflow:hidden}
.gauge::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.012) 0 2px,transparent 2px 5px)}
.gauge svg{width:120px;max-width:100%;height:auto}
.g-track{fill:none;stroke:var(--line);stroke-width:5;stroke-linecap:round}
.g-fill{fill:none;stroke:url(#g-grad);stroke:var(--brass);stroke-width:5;stroke-linecap:round;stroke-dasharray:151;stroke-dashoffset:151;transition:stroke-dashoffset .45s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(0 0 4px rgba(217,185,138,.6))}
.g-needle{transform-origin:60px 64px;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.g-needle line{stroke:var(--ivory);stroke-width:1.6;stroke-linecap:round}
.g-needle circle{fill:var(--ivory)}
.gauge b{font-family:var(--f-display);font-weight:400;font-size:34px;line-height:1;color:var(--ivory);font-variant-numeric:tabular-nums;margin-top:-18px}
.gauge small{font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--mist-2)}
.gauge small span{color:var(--brass);margin-left:6px;text-transform:none;letter-spacing:.08em}
[hidden]{display:none!important}
.pc-light-ctl{display:grid;gap:10px;align-content:start;padding:14px;border:1px solid var(--line);background:var(--night)}
.pc-light-ctl>small{font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--mist-2)}
.pc-light-ctl .rs-modes{flex-direction:column;align-items:stretch}
.pc-light-ctl .vt.rm{padding:8px 14px 8px 10px}
.pcm .rays{transform-origin:14px 14px}
.pcm[aria-pressed="true"] .rays{animation:rayspin 6s linear infinite}
@keyframes rayspin{to{transform:rotate(360deg)}}
.stg{font-family:var(--f-display);font-size:17px;color:var(--brass);width:26px;height:26px;border:1px solid currentColor;display:grid;place-items:center;border-radius:50%}
.pc-pk{grid-template-columns:repeat(3,minmax(0,1fr))}
.pcpk .fdesc{margin-top:2px}
.pc-legend{grid-template-columns:repeat(3,minmax(0,1fr))}
.pc-legend b{font-size:21px}
.pc-legend span{display:block;font-size:14px;color:var(--mist)}
.pcsizes{display:flex!important;grid-template-columns:none!important}
@media (max-width:980px){.pc-gauges{grid-template-columns:repeat(3,minmax(0,1fr))}.pc-light-ctl{grid-column:1/-1}.pc-light-ctl .rs-modes{flex-direction:row;flex-wrap:wrap}.pc-pk{grid-template-columns:1fr}.pc-legend{grid-template-columns:1fr}}
@media (max-width:560px){.pc-gauges{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.gauge{padding:10px 4px 8px}.gauge b{font-size:24px;margin-top:-12px}.gauge small{font-size:8.5px;letter-spacing:.14em}.pc-hud{flex-direction:column}.pad{width:26vw;height:26vw;margin:-13vw 0 0 -13vw}}

/* boat detailing */
.hull-stage{cursor:ew-resize}
.season{border:1px solid var(--line);background:var(--night);padding:16px 10px 8px;overflow:hidden}
.season svg{display:block;width:100%;height:auto}
.season .ph{cursor:pointer;transition:fill .3s,stroke .3s}
.season .ph.on{fill:rgba(217,185,138,.22);stroke:#D9B98A;filter:drop-shadow(0 0 8px rgba(217,185,138,.5))}
.waves .w1{animation:wave 6s linear infinite}.waves .w2{animation:wave 9s linear infinite reverse}
@keyframes wave{to{transform:translateX(80px)}}
.boat{animation:bob 3s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-3px) rotate(-1.5deg)}}
.boatico{width:56px;height:30px}
.boatico .wake{stroke:var(--brass);stroke-width:1.2;opacity:0;stroke-dasharray:6 6}
.vt.btsz[aria-pressed="true"] .wake{opacity:1;animation:wakeflow 1.4s linear infinite}
@keyframes wakeflow{to{stroke-dashoffset:-24}}
.btsizes{flex-wrap:wrap}
.len-row{display:grid;gap:10px}
.len-ship{display:grid;justify-items:center;gap:6px}
.len-ship svg{height:52px;width:auto;max-width:100%;transition:width .4s cubic-bezier(.2,.7,.2,1)}
.len-rule{display:flex;align-items:center;gap:10px;width:100%;max-width:520px}
.len-rule i{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--brass))}
.len-rule i:last-child{background:linear-gradient(90deg,var(--brass),transparent)}
.len-rule b{font-family:var(--f-display);font-weight:400;font-size:30px;color:var(--ivory);font-variant-numeric:tabular-nums}
input[type=range]#bt-len{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;border:0;padding:0;margin:0;cursor:pointer}
#bt-len::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,var(--brass) var(--p,40%),var(--line) var(--p,40%))}
#bt-len::-moz-range-track{height:2px;background:var(--line)}
#bt-len::-moz-range-progress{height:2px;background:var(--brass)}
#bt-len::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;margin-top:-10px;background:radial-gradient(circle at 35% 35%,#FFF3DC,#D9B98A 55%,#8C6E45);border:1px solid #FFF3DC;box-shadow:0 0 14px rgba(217,185,138,.6)}
#bt-len::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#FFF3DC,#D9B98A 55%,#8C6E45);border:1px solid #FFF3DC;box-shadow:0 0 14px rgba(217,185,138,.6)}
.len-ticks{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--mist-2)}
.btaddons{grid-template-columns:repeat(3,minmax(0,1fr))}
.bt-ic{color:var(--mist-2)}
.addon[aria-pressed="true"] .bt-ic{color:var(--brass)}
.addon[aria-pressed="true"] .bt-ic svg{animation:paw .6s ease}
.dock{display:grid;gap:22px;border-top:1px solid var(--line);padding-top:28px}
.river-map{border:1px solid var(--line);background:linear-gradient(180deg,#0E1626,#0B1220);overflow:hidden}
.river-map svg{display:block;width:100%;height:auto}
.river-line{animation:flow 8s linear infinite}
@keyframes flow{to{stroke-dashoffset:-160}}
.pin circle{fill:var(--brass)}
.pin .ring{fill:none;stroke:var(--brass);stroke-width:1;animation:ping 3s ease-out infinite;animation-delay:var(--d);transform-box:fill-box;transform-origin:center}
@keyframes ping{0%{transform:scale(1);opacity:.9}100%{transform:scale(4);opacity:0}}
.map-boat{filter:drop-shadow(0 2px 4px rgba(0,0,0,.6))}
@media (max-width:980px){.btaddons{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.btsizes{grid-template-columns:repeat(3,minmax(0,1fr))!important}.btaddons{grid-template-columns:1fr}.boatico{width:46px}}

/* PPF */
.pp-stage{cursor:ew-resize}
.pp-hud{top:auto;bottom:14px}
.years{display:grid;gap:10px;border:1px solid var(--line);padding:18px 20px;background:var(--night)}
.years .len-rule{max-width:none}
input[type=range]#pp-years{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;border:0;padding:0;margin:0;cursor:pointer}
#pp-years::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,var(--brass) var(--p,0%),var(--line) var(--p,0%))}
#pp-years::-moz-range-track{height:2px;background:var(--line)}#pp-years::-moz-range-progress{height:2px;background:var(--brass)}
#pp-years::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;margin-top:-10px;background:radial-gradient(circle at 35% 35%,#FFF3DC,#D9B98A 55%,#8C6E45);border:1px solid #FFF3DC;box-shadow:0 0 14px rgba(217,185,138,.6)}
#pp-years::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#FFF3DC,#D9B98A 55%,#8C6E45);border:1px solid #FFF3DC;box-shadow:0 0 14px rgba(217,185,138,.6)}
.film-gauge{display:grid;gap:22px;border-top:1px solid var(--line);padding-top:28px}
.layers-x{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.xsec{margin:0;border:1px solid var(--line);background:var(--night);padding:14px}
.xsec figcaption{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--brass);margin-bottom:8px}
.xsec svg{display:block;width:100%;height:auto}
.cover{border:1px solid var(--line);background:#111;overflow:hidden}
.cover svg{display:block;width:100%;height:auto}
.zone{fill:rgba(217,185,138,0);stroke:rgba(217,185,138,.35);stroke-width:2;cursor:pointer;transition:fill .3s,stroke .3s;stroke-dasharray:6 6}
.zone:hover{fill:rgba(217,185,138,.18);stroke:var(--brass)}
.zone.on{fill:rgba(217,185,138,.42);stroke:#FFF3DC;stroke-dasharray:none;filter:drop-shadow(0 0 10px rgba(217,185,138,.6));animation:zoneSheen 3s ease-in-out infinite}
@keyframes zoneSheen{50%{fill:rgba(255,243,220,.5)}}
.zone.na{cursor:not-allowed;stroke:rgba(125,136,156,.3)}
.zone.edge{pointer-events:none;stroke-width:0}.zone.edge:not(.on){fill:transparent;stroke:transparent;filter:none}
.pp-pk{grid-template-columns:repeat(4,minmax(0,1fr))}
.xpel-badge{display:grid;align-content:center;gap:2px;padding:12px 18px;border:1px solid var(--brass);background:linear-gradient(135deg,rgba(217,185,138,.12),transparent 60%)}
.xpel-badge b{font-family:var(--f-display);font-weight:400;font-size:30px;letter-spacing:.22em;color:var(--ivory)}
.xpel-badge small{font-size:12px;color:var(--mist)}
@media (max-width:980px){.pp-pk{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.layers-x{grid-template-columns:1fr}.pp-pk{grid-template-columns:1fr}}

/* load sequence */
@keyframes rise{from{transform:translateY(14px);opacity:.001}to{transform:none;opacity:1}}
.hero-copy>*{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
.hero-copy>*:nth-child(2){animation-delay:.08s}.hero-copy>*:nth-child(3){animation-delay:.18s}.hero-copy>*:nth-child(4){animation-delay:.28s}

/* multi-page */
.page-hero{border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--night-2),var(--night))}
.page-hero .wrap{padding-block:72px 56px;display:grid;gap:18px;justify-items:start}
.page-hero h1{font-size:clamp(44px,6.5vw,84px);line-height:.98}
.page-hero .lede2{font-size:18px;color:var(--mist);max-width:62ch}
.crumb{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--mist-2)}
.crumb a{color:var(--mist-2);text-decoration:none}
.crumb a:hover{color:var(--brass)}
.svc h3 a{color:inherit;text-decoration:none;transition:color .25s}
.svc h3 a:hover{color:var(--brass)}
.svc .from{font-family:var(--f-display);font-size:23px;color:var(--brass);margin-top:16px}

/* ---- Forge Booking widget, dressed for the atelier ---- */
.fb-shell{border:1px solid var(--line);background:var(--night-2);padding:30px 28px 20px}
.fb-foot{font-size:13px;color:var(--mist-2);border-top:1px solid var(--line);margin:18px 0 0;padding-top:14px}
.fb-app{--fb-accent:#D9B98A;--fb-ink:#F5EBDD;--fb-muted:#A9B3C4;--fb-line:#24314A;--fb-bg:#0B1220;--fb-soft:#16213551;--fb-err:#E39B82;font-family:var(--f-body)}
.fb{font-size:15px}
.fb-steps li{background:rgba(255,255,255,.05);letter-spacing:.1em;text-transform:uppercase;font-size:10.5px;font-weight:400}
.fb-steps li.on{background:var(--brass);color:var(--night)}
.fb-h,.fb-group h3,.fb-opt b,.fb-done h2,.fb-price{font-family:var(--f-display);font-weight:400}
.fb-h{font-size:24px}
.fb-group h3{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--brass);font-family:var(--f-body)}
.fb-opt{border-radius:0;transition:border-color .25s,background .25s,transform .25s}
.fb-opt:hover{transform:translateY(-2px);background:rgba(217,185,138,.05)}
.fb-opt b{font-size:21px}
.fb-price{font-size:21px;color:var(--brass)}
.fb-sum{border-radius:0}
.fb-day,.fb-slot,.fb-btn{border-radius:0}
.fb-slot:hover,.fb-day:not([disabled]):hover{border-color:var(--brass)}
.fb-day[aria-pressed="true"],.fb-primary{background:var(--brass);color:var(--night);border-color:var(--brass)}
.fb-done h2{font-size:34px}
.fb-ref{font-family:var(--f-display);letter-spacing:.2em;color:var(--brass)}
.fb-form input,.fb-form textarea{border-radius:0;background:transparent}
@media (max-width:560px){.fb-shell{padding:20px 16px 14px}}

/* ---- gift cards ---- */
.gc-hero .wrap{padding-block:72px 48px}
.gc .wrap{padding-block:12px 80px}
.gc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}
@media (max-width:1000px){.gc-grid{grid-template-columns:1fr;gap:40px}}

.gc-stage{position:sticky;top:20px;display:grid;gap:22px;justify-items:center}
@media (max-width:1000px){.gc-stage{position:static}}
.gc-tilt{perspective:1400px;width:100%;max-width:560px}
.gc-card{position:relative;width:100%;aspect-ratio:1.586;transform-style:preserve-3d;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.gc-card.flipped{transform:rotateY(180deg)}
.gc-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:14px;overflow:hidden;padding:clamp(18px,3.4vw,30px);display:flex;flex-direction:column;justify-content:space-between;border:1px solid rgba(217,185,138,.45);box-shadow:0 36px 70px -30px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.1)}
.gc-back{transform:rotateY(180deg)}
/* finishes */
.gc-card[data-finish="midnight"] .gc-face{background:radial-gradient(120% 140% at 85% 0%,rgba(217,185,138,.16),transparent 55%),linear-gradient(145deg,#16233A,#0B1220 60%,#070C15)}
.gc-card[data-finish="brass"] .gc-face{background:radial-gradient(120% 140% at 80% 0%,rgba(255,243,220,.3),transparent 55%),linear-gradient(145deg,#6A5230,#3A2C17 55%,#1C1509)}
.gc-card[data-finish="marine"] .gc-face{background:radial-gradient(120% 140% at 85% 0%,rgba(140,200,210,.16),transparent 55%),linear-gradient(145deg,#113039,#07202A 60%,#04141B)}
/* engine-turned guilloché */
.gc-face::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background:repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 1px,transparent 1px 7px),repeating-linear-gradient(65deg,rgba(255,255,255,.025) 0 1px,transparent 1px 9px)}
.gc-sheen{position:absolute;inset:-40%;pointer-events:none;background:linear-gradient(105deg,transparent 42%,rgba(255,243,220,.3) 50%,transparent 58%);transform:translateX(var(--sx,-30%));transition:transform .18s linear}
.gc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;position:relative}
.gc-mark b{display:block;font-family:var(--f-display);font-weight:400;font-size:clamp(15px,2.3vw,21px);letter-spacing:.26em;color:var(--ivory);line-height:1}
.gc-mark span{font-size:clamp(7px,1.05vw,9px);letter-spacing:.38em;text-transform:uppercase;color:var(--brass)}
.gc-chipicon{width:clamp(34px,5.4vw,46px);height:clamp(26px,4.1vw,35px);border-radius:5px;flex:none;background:linear-gradient(135deg,#F2DDB5,#B8955F 45%,#8C6E45);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.gc-chipicon::after{content:"";display:block;height:100%;background:repeating-linear-gradient(90deg,transparent 0 7px,rgba(0,0,0,.22) 7px 8px),repeating-linear-gradient(0deg,transparent 0 9px,rgba(0,0,0,.22) 9px 10px)}
.gc-value{position:relative;font-family:var(--f-display);font-weight:400;font-size:clamp(52px,9.4vw,86px);line-height:1;color:var(--ivory);font-variant-numeric:tabular-nums;display:flex;align-items:flex-start;gap:4px;
  background:linear-gradient(100deg,#8C6E45,#D9B98A 20%,#FFF3DC 34%,#E2C595 46%,#9C7B4E 62%,#F2DDB5 80%,#B8955F);background-size:240% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:foilShift 7s linear infinite}
.gc-value .gc-cur{font-size:.46em;padding-top:.22em}
.gc-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;position:relative}
.gc-bottom small{display:block;font-size:clamp(7.5px,1.1vw,9.5px);letter-spacing:.3em;text-transform:uppercase;color:var(--brass);margin-bottom:3px}
.gc-bottom b{font-family:var(--f-display);font-weight:400;font-size:clamp(14px,2.2vw,20px);color:var(--ivory);line-height:1.15;overflow-wrap:anywhere}
.gc-right{text-align:right;flex:none}
.gc-stripe{position:absolute;left:0;right:0;top:13%;height:17%;background:linear-gradient(180deg,#05080D,#11161E)}
.gc-back{justify-content:flex-end;gap:10px}
.gc-msg{position:relative;font-family:var(--f-display);font-style:italic;font-size:clamp(17px,2.8vw,26px);line-height:1.35;color:var(--ivory);margin-top:34%;overflow-wrap:anywhere}
.gc-code{letter-spacing:.14em}
.gc-terms{position:relative;font-size:clamp(8px,1.15vw,10.5px);letter-spacing:.1em;color:var(--mist-2);border-top:1px solid rgba(217,185,138,.25);padding-top:8px}
.gc-flip{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-display);font-size:18px;color:var(--mist);background:transparent;border:1px solid var(--line);padding:9px 18px;cursor:pointer;transition:color .25s,border-color .25s}
.gc-flip:hover{color:var(--brass);border-color:var(--brass)}
.gc-flip svg{width:17px;height:17px}

.gc-form{display:grid;gap:26px}
.gc-amts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.gc-amt{font-family:var(--f-display);font-size:30px;color:var(--mist);background:var(--night);border:1px solid var(--line);padding:16px 8px;cursor:pointer;font-variant-numeric:tabular-nums;transition:color .25s,transform .25s}
.gc-amt .gc-cur{font-size:.55em;vertical-align:super;color:var(--brass)}
.gc-amt:hover{color:var(--ivory);transform:translateY(-2px)}
.gc-amt[aria-pressed="true"]{color:var(--ivory);background:linear-gradient(var(--night),var(--night)) padding-box,conic-gradient(from var(--ang),#3a2e1e,#D9B98A,#FFF3DC,#D9B98A,#3a2e1e 45%,#1c1710 70%,#3a2e1e) border-box;border:1px solid transparent;animation:spinAng 4s linear infinite;box-shadow:0 0 22px -8px rgba(217,185,138,.5)}
.gc-custom{display:grid;gap:7px;margin-top:14px}
.gc-custom label{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--mist)}
.gc-own-row{display:flex;align-items:baseline;gap:8px;border-bottom:1px solid var(--line)}
.gc-own-row span{font-family:var(--f-display);font-size:24px;color:var(--brass)}
.gc-own-row input{flex:1;font-family:var(--f-display);font-size:26px;color:var(--ivory);background:transparent;border:0;padding:8px 0;width:100%}
.gc-own-row input:focus{outline:0}
.gc-own-row:focus-within{border-color:var(--brass)}
.gc-buys{font-size:15px;color:var(--brass);border-left:1px solid var(--brass);padding:3px 0 3px 14px;margin-top:16px;min-height:1.5em}
.gc-finishes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.gc-fin{display:flex;align-items:center;gap:11px;font-family:var(--f-display);font-size:19px;color:var(--mist);background:var(--night);border:1px solid var(--line);padding:11px 14px;cursor:pointer;transition:color .25s,border-color .25s}
.gc-fin:hover{color:var(--ivory)}
.gc-fin[aria-pressed="true"]{color:var(--ivory);border-color:var(--brass)}
.sw{width:22px;height:22px;border-radius:50%;flex:none;border:1px solid rgba(255,255,255,.22)}
.sw-midnight{background:linear-gradient(145deg,#16233A,#070C15)}
.sw-brass{background:linear-gradient(145deg,#6A5230,#1C1509)}
.sw-marine{background:linear-gradient(145deg,#113039,#04141B)}
.gc-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}
.gc-fields label{display:grid;gap:7px;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--mist);min-width:0}
.gc-fields label.full{grid-column:1/-1}
.gc-fields input,.gc-fields textarea{font-family:var(--f-body);font-size:16px;color:var(--ivory);background:transparent;border:0;border-bottom:1px solid var(--line);padding:9px 0;letter-spacing:normal;text-transform:none;width:100%;border-radius:0}
.gc-fields textarea{resize:vertical;min-height:58px}
.gc-fields input:focus,.gc-fields textarea:focus{outline:0;border-color:var(--brass)}
.gc-fields small{font-size:11px;letter-spacing:.14em;color:var(--mist-2);justify-self:end}
.gc-receipt{margin-top:4px}
.gc-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;border-top:1px solid var(--line);margin-top:64px;padding-top:34px}
.gc-notes .col{display:grid;gap:9px;align-content:start}
.gc-notes h3{font-family:var(--f-display);font-weight:400;font-size:25px;color:var(--ivory)}
.gc-notes p{font-size:15px}
@media (max-width:760px){.gc-notes{grid-template-columns:1fr;gap:24px}.gc-fields{grid-template-columns:1fr}.gc-amts{grid-template-columns:repeat(2,minmax(0,1fr))}}

.gc-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.gc-issued{border:1px solid var(--brass);background:linear-gradient(140deg,#16120c,var(--night) 55%);padding:34px 36px;margin-top:34px;display:grid;gap:10px;justify-items:start}
.gc-issued h3{font-family:var(--f-display);font-weight:400;font-size:34px;color:var(--ivory);margin:0}
.gc-issued-sub{font-size:16px}
.gc-issued-code{font-family:var(--f-display);font-size:clamp(30px,5vw,46px);letter-spacing:.16em;color:var(--brass);margin:6px 0;user-select:all}
.gc-issued-note{font-size:14px;color:var(--mist-2);max-width:60ch}
.gc-issued .btn{margin-top:10px}
.gc-err{border-left:1px solid #E39B82;color:#E39B82;padding:4px 0 4px 14px;font-size:15px;margin-top:12px}

.giftstrip{padding:110px 0;border-top:1px solid rgba(201,169,110,.16)}
.giftstrip .wrap{display:grid;grid-template-columns:1fr .85fr;gap:64px;align-items:center}
.giftstrip-copy h2{margin-top:18px}
.giftstrip-copy p{max-width:52ch;margin:20px 0 32px}
.giftstrip-card{perspective:1200px}
.gsc{aspect-ratio:1.6/1;border:1px solid var(--brass);border-radius:14px;padding:30px 32px;
  background:linear-gradient(145deg,#16233A,#0B1220 70%);display:grid;align-content:space-between;
  box-shadow:0 30px 70px -30px rgba(0,0,0,.9);transform:rotate(-3deg);transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.giftstrip:hover .gsc{transform:rotate(0deg) translateY(-6px)}
.gsc-brand{font-size:13px;letter-spacing:.3em;color:var(--ivory);font-weight:600}
.gsc-kind{font-size:9px;letter-spacing:.34em;color:var(--brass);margin-top:-14px}
.gsc-val{font-family:var(--f-display);font-size:clamp(40px,6vw,62px);color:var(--brass);line-height:1}
.gsc-code{font-size:13px;letter-spacing:.22em;color:var(--mist-2)}
@media(max-width:860px){.giftstrip{padding:80px 0}.giftstrip .wrap{grid-template-columns:1fr;gap:44px}}

/* Skip link — visible only when tabbed to. */
.skip{position:absolute;left:-9999px;top:0;z-index:999;background:var(--brass,#C9A96E);color:#0B1220;padding:12px 20px;font-weight:600}
.skip:focus{left:12px;top:12px}

/* WordPress core classes the editor can emit on a generic page. */
.alignleft{float:left;margin:0 24px 18px 0}
.alignright{float:right;margin:0 0 18px 24px}
.aligncenter{display:block;margin-left:auto;margin-right:auto}
.wp-caption-text,.screen-reader-text{font-size:14px;color:var(--mist-2,#8A94A6)}
.screen-reader-text{position:absolute;left:-9999px}

/* ---------------------------------------------- services dropdown in the nav */
.has-sub{position:relative}
.sub-t{display:inline-flex;align-items:center;gap:7px;background:none;border:0;padding:0;margin:0;
  font:inherit;color:inherit;cursor:pointer;letter-spacing:inherit;text-transform:inherit}
.sub-t svg{width:10px;height:6px;transition:transform .28s cubic-bezier(.2,.7,.2,1)}
.has-sub[data-open="1"] .sub-t svg{transform:rotate(180deg)}
.sub{position:absolute;top:calc(100% + 16px);left:50%;transform:translateX(-50%) translateY(-6px);
  min-width:232px;display:grid;background:#0E1626;border:1px solid rgba(201,169,110,.3);
  box-shadow:0 30px 60px -24px rgba(0,0,0,.85);padding:8px 0;z-index:60;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s,transform .22s,visibility .22s}
.has-sub[data-open="1"] .sub{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.sub::before{content:"";position:absolute;top:-16px;left:0;right:0;height:16px}
.sub a{display:block;padding:11px 22px;font-size:14px;letter-spacing:.04em;white-space:nowrap;
  color:var(--mist);text-transform:none;border-left:1px solid transparent;transition:.2s}
.sub a:hover,.sub a:focus-visible{color:var(--ivory);background:rgba(201,169,110,.08);border-left-color:var(--brass)}
.sub a:first-child{color:var(--brass);border-bottom:1px solid rgba(201,169,110,.18);margin-bottom:6px;padding-bottom:13px}
@media(max-width:900px){
  .sub{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;
    min-width:0;border:0;box-shadow:none;background:none;padding:2px 0 8px;display:none}
  .has-sub[data-open="1"] .sub{display:grid;transform:none}
  .sub a{padding:8px 0 8px 14px}
}

/* ------------------------------------------------------- mobile navigation */
.nav-t{display:none;width:40px;height:40px;background:none;border:0;padding:9px 8px;cursor:pointer;
  flex-direction:column;justify-content:space-between;order:3}
.nav-t span{display:block;height:1px;width:100%;background:var(--ivory);transition:.3s cubic-bezier(.2,.7,.2,1)}
body[data-nav="1"] .nav-t span:nth-child(1){transform:translateY(10px) rotate(45deg)}
body[data-nav="1"] .nav-t span:nth-child(2){opacity:0}
body[data-nav="1"] .nav-t span:nth-child(3){transform:translateY(-10px) rotate(-45deg)}
@media (max-width:1180px){
  .nav-t{display:flex}
  header .wrap{flex-wrap:wrap}
  header .btn{order:2;margin-left:auto;margin-right:12px}
  nav{display:none;order:4;width:100%;flex-direction:column;align-items:stretch;gap:0;
    border-top:1px solid rgba(201,169,110,.18);margin-top:14px;padding-top:6px}
  body[data-nav="1"] nav{display:flex}
  nav>a,.has-sub>.sub-t{display:block;width:100%;text-align:left;padding:14px 0;
    border-bottom:1px solid rgba(255,255,255,.06)}
  .has-sub{width:100%}
  .sub-t{justify-content:space-between}
}

@media (max-width:1180px){
  header .wrap{gap:10px}
  .mark{flex:0 1 auto;min-width:0}
  .mark b{font-size:15px;letter-spacing:.16em}
  .mark span{font-size:8px;letter-spacing:.2em}
  header .btn{order:2;margin-left:auto;margin-right:0;padding:10px 14px;font-size:12px;white-space:nowrap}
  .nav-t{order:3;margin-left:4px;flex:0 0 auto}
}
@media (max-width:400px){
  .mark span{display:none}
  header .btn{padding:9px 12px;font-size:11px}
}

@media (max-width:520px){.mark b{font-size:12px;letter-spacing:.05em}.mark{gap:8px}.badge{width:34px;height:34px}header .wrap{flex-wrap:wrap}.nav-t{margin-left:2px;width:36px}header .btn{margin-right:0;padding:8px 10px}}

/* Demo stages on phones: full-bleed, taller, readouts out of the way */
@media (max-width:700px){
  .rain-stage,.wipe-stage,.pc-stage{aspect-ratio:4/3;margin-left:-16px;margin-right:-16px;max-width:none;width:calc(100% + 32px)}
  .pp-stage{touch-action:none}
  .pc-hud{left:auto;right:auto;top:auto;bottom:8px;left:8px;right:8px;flex-direction:row!important;gap:6px;justify-content:space-between}
  .pc-chip{padding:5px 8px;flex:1;min-width:0}
  .pc-chip small{font-size:7.5px;letter-spacing:.14em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pc-chip b{font-size:15px}
  .rs-label{top:8px;font-size:8.5px;letter-spacing:.16em;padding:4px 7px}.rs-label.l{left:8px}.rs-label.r{right:8px}
  .wipe-hint{top:auto;bottom:52px;transform:translateX(-50%);padding:7px 12px;font-size:13px;gap:7px;white-space:nowrap;max-width:calc(100% - 24px)}
  .wipe-hint svg{width:18px;height:18px}
  .pc-stage .wipe-hint{bottom:52px}
  .rs-modes{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%}
  .rs-modes .vt.rm{flex-direction:column;gap:4px;padding:10px 6px!important;text-align:center;justify-content:center}
  .rm-l{font-size:14px;line-height:1.15}
  .pc-light-ctl .rs-modes{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pad{width:22vw;height:22vw;margin:-11vw 0 0 -11vw}
  .wipe-meter{right:8px;top:8px;padding:5px 9px;column-gap:7px}.wipe-meter small{font-size:8px;letter-spacing:.14em}.wipe-meter b{font-size:18px}
}
@media (max-width:380px){.rm-l{font-size:12.5px}}

/* ---- Pricing cards, inclusion lists, benefit tiles, add-on cards, tax rows ---- */
.svcx{grid-column:1/-1;display:grid;gap:0;margin-top:8px}
.pricing{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:8px}
.pcard{position:relative;border:1px solid var(--line);background:var(--night-2);padding:30px 28px 28px;display:grid;gap:18px;align-content:start}
.pcard.feat{border-color:rgba(217,185,138,.6);box-shadow:0 0 0 1px rgba(217,185,138,.18),0 24px 60px -30px rgba(217,185,138,.35)}
.pcard .tag{position:absolute;top:-11px;left:26px;font-size:10px;letter-spacing:.26em;text-transform:uppercase;background:var(--brass);color:#0B1220;padding:4px 10px}
.pcard h3{font-family:var(--f-display);font-weight:400;font-size:30px;line-height:1.05;margin:0;color:var(--ivory)}
.pcard .pdesc{color:var(--mist);font-size:15px;margin:0}
.ptiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);background:var(--night)}
.ptier{padding:14px 12px 12px;display:grid;gap:3px;border-left:1px solid var(--line);min-width:0}
.ptier:first-child{border-left:0}
.ptier small{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);white-space:nowrap}
.ptier b{font-family:var(--f-display);font-weight:400;font-size:28px;line-height:1;color:var(--ivory);font-variant-numeric:tabular-nums}
.ptier b i{font-style:normal;font-family:var(--f-body);font-size:11px;letter-spacing:.14em;color:var(--mist-2);margin-left:5px;text-transform:uppercase}
.ptier span{font-size:12px;color:var(--mist-2);font-variant-numeric:tabular-nums}
.inc{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.inc li{padding-left:0!important;display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--ivory);line-height:1.35}
.inc li::before{display:none}
.inc li svg{width:18px;height:18px;flex:none;color:var(--brass);margin-top:2px}
.inc li.all{color:var(--brass);font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:2px}
.pcard .btn{justify-self:start;margin-top:4px}
.sec-h{display:flex;justify-content:space-between;align-items:end;gap:16px 32px;flex-wrap:wrap;margin-top:44px}
.sec-h h4{font-family:var(--f-display);font-weight:400;font-size:30px;color:var(--ivory);margin:8px 0 0;line-height:1.1}
.sec-h p{margin:0;max-width:52ch;color:var(--mist);font-size:15px}
.ben{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:22px}
.benx{border:1px solid var(--line);background:var(--night-2);padding:22px 20px;display:grid;gap:8px;align-content:start}
.benx svg{width:30px;height:30px;color:var(--brass)}
.benx b{font-family:var(--f-display);font-weight:400;font-size:21px;line-height:1.1;color:var(--ivory)}
.benx p{margin:0;font-size:14px;color:var(--mist)}
.xtras{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:22px}
.xtra{border:1px solid var(--line);background:var(--night-2);padding:20px;display:grid;gap:6px;align-content:start}
.xtra svg{width:28px;height:28px;color:var(--brass);margin-bottom:4px}
.xtra b{font-family:var(--f-display);font-weight:400;font-size:21px;color:var(--ivory);line-height:1.1}
.xtra .xp{font-family:var(--f-display);font-size:24px;color:var(--brass);font-variant-numeric:tabular-nums}
.xtra .xp i{font-style:normal;font-family:var(--f-body);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mist-2);margin-left:5px}
.xtra p{margin:0;font-size:13.5px;color:var(--mist)}
.taxnote{font-size:13px;color:var(--mist-2);margin:14px 0 0;max-width:70ch}
.rc-tax{display:grid;grid-template-columns:auto auto;gap:4px 18px;justify-content:end;font-size:13px;color:var(--mist);margin:2px 0 4px;font-variant-numeric:tabular-nums}
.rc-tax span:nth-child(even){text-align:right;color:var(--ivory)}
.rc-tax .from{grid-column:1/-1;color:var(--brass);font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.ptable{width:100%;border-collapse:collapse;margin-top:22px;font-variant-numeric:tabular-nums}
.ptable th,.ptable td{padding:14px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.ptable th{font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--brass);font-weight:400}
.ptable td b{font-family:var(--f-display);font-weight:400;font-size:26px;color:var(--ivory)}
.ptable td small{display:block;font-size:12px;color:var(--mist-2)}
.ptable td.nm{color:var(--ivory);font-size:16px;font-family:var(--f-body)}
.ptable td.nm span{display:block;color:var(--mist);font-size:13.5px;margin-top:3px}
@media (max-width:900px){.pricing{grid-template-columns:1fr}.ben,.xtras{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.ben,.xtras{grid-template-columns:1fr}.ptier b{font-size:22px}.ptier{padding:12px 8px 10px}.ptier small{font-size:8.5px;letter-spacing:.14em}.ptier b i{display:block;margin:4px 0 0}.pcard{padding:26px 20px 22px}.ptable th,.ptable td{padding:10px 6px}.ptable td b{font-size:20px}}

/* Home page service rows: a photo for every service */
.services .svc:has(.svc-pic){grid-template-columns:60px 300px minmax(0,1fr) auto;grid-template-areas:"n pic t go" "n pic b go";gap:12px 36px}
.svc:has(.svc-pic)>.n{grid-area:n}.svc:has(.svc-pic)>.svc-pic{grid-area:pic}.svc:has(.svc-pic)>div:not(.body):not(.go){grid-area:t}.svc:has(.svc-pic)>.body{grid-area:b;grid-column:auto}.svc:has(.svc-pic)>.go{grid-area:go;grid-column:auto;align-self:start}
.svc-pic{display:block;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);background:var(--night-2);position:relative}
.svc-pic img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.02);transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s;filter:saturate(.9)}
.svc:hover .svc-pic img{transform:scale(1.08);filter:saturate(1)}
.svc-pic::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(11,18,32,.55));pointer-events:none}
@media (max-width:980px){.services .svc:has(.svc-pic){grid-template-columns:minmax(0,1fr);grid-template-areas:"pic" "t" "b" "go";gap:16px}.svc:has(.svc-pic)>.n{display:none}.svc-pic{aspect-ratio:16/9}}
@media (max-width:380px){.mark b{font-size:10.5px;letter-spacing:.03em}header .btn{padding:7px 8px;font-size:11px}.badge{width:30px;height:30px}}
