:root{--k:#0a0a0a;--w:#fff;--r:#e3172d;--b:#1d3fbf;--g:#c9a24a;--gr:#f3f2ef;--pad:20px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:"Space Grotesk",system-ui,sans-serif;background:var(--w);color:var(--k);line-height:1.5;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:hidden;padding-bottom:84px}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit}
h1,h2{font-family:Anton,Impact,sans-serif;font-weight:400;text-transform:uppercase;line-height:.92;letter-spacing:-.005em}
h2{font-size:clamp(2.6rem,12vw,6rem)}
section{padding:56px var(--pad)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;background:var(--k);color:var(--w);text-decoration:none;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.9rem;padding:.8rem 1.3rem;border:2px solid var(--k);border-radius:999px;transition:.2s;text-align:center}
.btn:hover{background:var(--r);border-color:var(--r)}
.btn.line{background:transparent;color:var(--k)}
.btn.line:hover{background:var(--k);color:var(--w)}
.btn.sm{min-height:40px;padding:.4rem 1.1rem;font-size:.8rem}
.btn.big{min-height:56px;font-size:1rem}
.btn.wide{width:100%;margin-top:28px}
.ctas{display:grid;gap:10px}
/* header */
.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:10px var(--pad);background:#0a0a0a;backdrop-filter:blur(10px);border-bottom:1px solid #e4e4e4}
.mark{display:flex;align-items:center;gap:.5rem;text-decoration:none}
.mark img{display:block;width:auto;height:60px}
.final-logo{display:block;width:min(220px,60vw);height:auto;margin:0 auto 24px}
@media(min-width:900px){.mark img{height:72px}}
.mark span{font-family:Anton,sans-serif;font-size:1.35rem;letter-spacing:.02em}
.mark b{font-weight:400;margin-left:.25em}
.top nav{display:none;gap:2rem}
.top nav a{text-decoration:none;font-weight:700;text-transform:uppercase;font-size:.85rem;letter-spacing:.06em}
.top nav a:hover{color:var(--r)}
/* hero */
.hero{display:grid;padding:0}
.hero-img{aspect-ratio:1/1;overflow:hidden}
.hero-img img{object-position:50% 12%}
.hero-txt{padding:32px var(--pad) 44px}
.tag{font-weight:700;text-transform:uppercase;font-size:.78rem;letter-spacing:.1em;margin-bottom:14px;color:#555}
.hero h1{font-size:clamp(3.2rem,15.5vw,9rem);margin-bottom:18px}
.out{color:transparent;-webkit-text-stroke:2px var(--k)}
.lede{font-size:1.1rem;max-width:32ch;margin-bottom:26px}
/* band */
.band{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 14px;background:var(--k);color:var(--w);padding:22px var(--pad);text-align:center}
.band b{font-family:Anton,sans-serif;font-weight:400;font-size:2.6rem;line-height:1;color:var(--g)}
.band span:last-child{flex-basis:100%;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;opacity:.85}
/* work */
.head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:22px}
.more{font-weight:700;font-size:.9rem;text-decoration:none;padding:12px 0;white-space:nowrap}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.grid figure{aspect-ratio:4/5;overflow:hidden;border-radius:14px;background:#ddd}
/* menu */
.menu{background:var(--gr)}
.sub{color:#555;margin:10px 0 26px}
.cols{display:grid;gap:34px}
.grp h3{font-family:Anton,sans-serif;font-weight:400;text-transform:uppercase;font-size:1.7rem;border-bottom:2px solid var(--k);padding-bottom:8px;display:flex;justify-content:space-between;align-items:baseline}
.grp h3 small{font-family:"Space Grotesk";font-size:.72rem;font-weight:700;letter-spacing:.08em;color:#666}
dl div{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:14px 0;border-bottom:1px solid #d6d6d2}
dt{font-weight:700;line-height:1.25}
dt i{display:block;font-style:normal;font-weight:400;font-size:.85rem;color:#666;margin-top:3px}
dd{font-family:Anton,sans-serif;font-size:1.5rem;flex:none}
/* team */
.team{display:grid;padding:0;background:var(--k);color:var(--w)}
.team figure{aspect-ratio:5/4;overflow:hidden}
.tt{padding:40px var(--pad) 48px}
.tt h2{margin-bottom:24px}
.ppl{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ppl b{font-family:Anton,sans-serif;font-weight:400;font-size:1.9rem;text-transform:uppercase;display:block;line-height:1.05}
.ppl span{display:block;margin-top:6px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--g)}
/* visit */
.visit{display:grid;padding:0;background:var(--gr)}
.visit figure{aspect-ratio:4/3;overflow:hidden}
.vt{padding:40px var(--pad) 48px}
.vt h2{margin-bottom:16px}
.addr{font-weight:700;font-size:1.2rem;margin-bottom:8px}
.vt>p{max-width:42ch;color:#333}
.hours{width:100%;border-collapse:collapse;margin-top:22px}
.hours th,.hours td{padding:13px 0;border-bottom:1px solid #d6d6d2;text-align:left;font-size:1.05rem}
.hours td{text-align:right;font-weight:700}
/* final */
.final{text-align:center;padding:56px var(--pad) 48px}
.final img{width:86px;height:auto;margin:0 auto 18px}
.final h2{margin-bottom:26px}
.final .ctas{max-width:420px;margin:0 auto}
.foot{display:flex;flex-direction:column;gap:6px;padding:24px var(--pad);font-size:.85rem;background:var(--k);color:#bbb}
.foot a{color:#fff}
/* mobile dock */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-top:1px solid #e4e4e4}
.dock .btn{min-height:52px;padding:.6rem}
@media(min-width:900px){
 :root{--pad:6vw}
 body{padding-bottom:0}
 .dock{display:none}
 section{padding:96px var(--pad)}
 .top nav{display:flex}
 .hero{grid-template-columns:1fr 1fr;padding:0;min-height:calc(100svh - 65px)}
 .hero-img{aspect-ratio:auto;order:2}
 .hero-img img{object-position:50% 30%}
 .hero-txt{display:flex;flex-direction:column;justify-content:center;padding:64px var(--pad)}
 .hero h1{font-size:clamp(5rem,8vw,8.5rem)}
 .ctas{display:flex;flex-wrap:wrap}
 .band{padding:26px var(--pad);gap:18px}
 .band span:last-child{flex-basis:auto;font-size:.9rem}
 .grid{grid-template-columns:repeat(3,1fr);gap:14px}
 .cols{grid-template-columns:1fr 1fr;gap:64px}
 .btn.wide{width:auto}
 .team,.visit{grid-template-columns:1fr 1fr;padding:0}
 .team figure,.visit figure{aspect-ratio:auto;min-height:560px}
 .tt,.vt{padding:80px var(--pad);display:flex;flex-direction:column;justify-content:center}
 .vt .btn{align-self:flex-start}
 .q{grid-template-columns:1.4fr 1fr;grid-template-rows:auto auto}
 .q .big{grid-row:span 2;display:flex;flex-direction:column;justify-content:center}
 .q .big p{font-size:1.4rem}
 .final .ctas{max-width:none;justify-content:center}
}

/* hero v5: full-bleed cut photo */
.hero.v-full{position:relative;display:block;min-height:calc(100svh - 65px);background:#000;color:#fff;overflow:hidden;isolation:isolate}
.v-full .hero-img{position:absolute;inset:0;aspect-ratio:auto;z-index:-1}
.v-full .hero-img{bottom:auto;height:62%}
.v-full .hero-img picture{display:block;height:100%}
.v-full .hero-img img{object-position:50% 50%}
.v-full .hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,0) 25%,rgba(0,0,0,.35) 60%,#000 100%)}
.v-full .hero-txt{position:relative;min-height:calc(100svh - 65px);display:flex;flex-direction:column;justify-content:flex-end;padding:40px var(--pad) 40px}
.v-full .tag{color:var(--g)}
.v-full h1{font-size:clamp(3.4rem,17vw,10rem);text-shadow:0 2px 30px rgba(0,0,0,.35)}
.v-full .out{-webkit-text-stroke:2px #fff}
.v-full .lede{color:rgba(255,255,255,.88)}
.v-full .btn{background:#fff;color:#000;border-color:#fff}
.v-full .btn:hover{background:var(--r);border-color:var(--r);color:#fff}
.v-full .btn.line{background:transparent;color:#fff}
@media(min-width:900px){
 .hero.v-full{min-height:calc(100svh - 65px)}
 .v-full .hero-txt{min-height:calc(100svh - 65px);padding:64px var(--pad) 72px;max-width:none}
 .v-full .hero-img img{object-position:50% 38%}
 .v-full .hero-img::after{background:linear-gradient(90deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.6) 38%,rgba(0,0,0,0) 70%),linear-gradient(0deg,rgba(0,0,0,.5),transparent 40%)}
 .v-full .hero-img{left:30%;bottom:0;height:auto}
 .v-full h1{font-size:clamp(5.5rem,9.5vw,10rem)}
}

.map{margin:18px 0;border:2px solid var(--k);border-radius:16px;overflow:hidden;aspect-ratio:4/3}.map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(1) contrast(1.05)}

/* v6 */

.ctanote{font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75;margin-bottom:10px}
.final .ctanote{margin:-6px 0 22px}
.btn .arr{margin-left:.5em}
.grp ul{list-style:none;display:grid;gap:10px;margin-top:16px}
.svc{display:flex;justify-content:space-between;align-items:center;gap:14px;background:#fff;border:1px solid #dcdcd6;border-radius:14px;padding:16px 18px}
.svc b{display:block;line-height:1.25;font-size:1.02rem}
.svc span{display:block;font-size:.82rem;color:#777;margin-top:4px}
.svc strong{font-family:Anton,sans-serif;font-weight:400;font-size:2rem;line-height:1;flex:none;text-align:right}
.svc.key{border:2px solid var(--k)}
.grid figure img{transition:transform .4s}.grid figure:hover img{transform:scale(1.03)}
@media(min-width:900px){.final .ctanote{margin-bottom:28px}}

.ppl .sq{margin:12px 0 0;font-size:.85rem;line-height:1.45}.ppl .sq cite{display:block;margin-top:6px;font-size:.72rem;font-style:normal;opacity:.7}
.band span:last-child{flex-basis:auto}
.hero .ctanote{margin-top:10px;font-size:.75rem;opacity:.7}
.vt .btn+.btn{margin-top:10px}

/* sample build */
.mark span{font-size:1.5rem;text-transform:uppercase}
.mark b{color:var(--r)}
.dock{grid-template-columns:2fr 1fr}
.svc{min-height:72px}
.ppl b{font-size:1.7rem}
.mono{font-family:Anton,sans-serif;font-size:3.2rem;line-height:1;width:96px;height:96px;margin:0 auto 22px;display:grid;place-items:center;border:3px solid var(--k);border-radius:50%}
.sample-badge{display:block;position:static;margin:0;padding:7px 12px;background:#000;color:#fff;text-align:center;font:500 12px/1.3 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.02em;text-decoration:none;border:0;border-radius:0;box-shadow:none}
.sample-badge:hover{text-decoration:underline}
.top{justify-content:center}
@media(min-width:900px){.top{justify-content:space-between}}
/* R3: monochrome */
:root{--r:#0a0a0a;--b:#0a0a0a;--g:#d4d4d4;--gr:#f2f2f2}
img{filter:grayscale(1) contrast(1.06)}
.btn:hover,.v-full .btn:hover{background:#2b2b2b;border-color:#2b2b2b;color:#fff}
.top nav a:hover{color:#6b6b6b}
.mark b{color:transparent;-webkit-text-stroke:1.2px #0a0a0a}
.band b{color:#fff}
/* R4: black header, white logo */
.top{background:#0a0a0a;border-bottom:1px solid #1f1f1f}
.mark span{color:#fff}
.mark b{color:transparent;-webkit-text-stroke:1.2px #fff}
.top nav a{color:#fff}
.top nav a:hover{color:#bdbdbd}
/* R6: band one line, final wordmark, book-in ways */
.band{display:block;padding:16px var(--pad);overflow:hidden}
.band p{margin:0;font-family:Anton,sans-serif;text-transform:uppercase;white-space:nowrap;font-size:clamp(1rem,4.6vw,2rem);letter-spacing:.04em;line-height:1.1;color:#fff;text-align:center}
.band i{font-style:normal;color:#8a8a8a;margin:0 .35em}
.final-mark{margin:0 0 22px;font-family:Anton,sans-serif;text-transform:uppercase;font-size:clamp(1.9rem,8vw,2.8rem);line-height:1;letter-spacing:.02em;color:var(--k)}
.final-mark b{font-weight:400;margin-left:.25em;color:transparent;-webkit-text-stroke:1.4px var(--k)}
.ways{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:6px 0 22px}
.ways div{border:1px solid #d6d6d6;border-radius:14px;padding:14px 16px;background:#fff}
.ways b{display:block;font-family:Anton,sans-serif;font-weight:400;text-transform:uppercase;font-size:1.35rem;line-height:1.1}
.ways span{display:block;margin-top:4px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#6b6b6b}
/* R7: Book In ways as open text */
.ways{gap:0 28px;margin:4px 0 22px}
.ways div{border:0;border-radius:0;background:none;padding:0 0 0 14px;border-left:2px solid #d6d6d6}
/* R10: uniform open service rows, merged closing section, solid hero line */
.svc,.svc.key{background:none;border:0;border-radius:0;border-bottom:1px solid #d6d6d2;padding:14px 0;min-height:0}
.grp ul li.svc:last-child{border-bottom:0}
.v-full .out,.out{color:#fff;-webkit-text-stroke:0}
.close .vt h2{margin-bottom:18px}
.close .ways{margin:18px 0 18px}
.open-hrs{margin:0 0 24px;max-width:340px}
.open-hrs div{padding:9px 0}
.open-hrs dt{font-weight:700;text-transform:uppercase;font-size:.85rem;letter-spacing:.08em}
.open-hrs dd{font-size:1.3rem}
.hrs-note{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:#777;margin:-16px 0 24px}
.close .ctas{display:flex;flex-direction:column;gap:10px}
.close .ctas .btn{width:100%}
@media(min-width:900px){.close .ctas{flex-direction:row}.close .ctas .btn{width:auto}}
.close .vt .btn{align-self:auto;margin-top:0}.close .vt .btn+.btn{margin-top:0}
/* Desktop polish (min-width only; mobile untouched) */
@media(min-width:900px){
 .v-full .hero-img::after{background:linear-gradient(90deg,#000 0%,rgba(0,0,0,.75) 22%,rgba(0,0,0,.2) 55%,rgba(0,0,0,0) 75%),linear-gradient(0deg,rgba(0,0,0,.5),transparent 40%)}
 .v-full .hero-txt{max-width:820px}
 .v-full .lede{max-width:36ch}
 .work .head{margin-bottom:36px}
 .grid{gap:12px}
 .grid figure{border-radius:10px}
 .menu{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:6vw;grid-template-rows:auto auto 1fr;align-items:start}
 .menu>h2{grid-column:1;grid-row:1;font-size:clamp(3.6rem,6vw,6rem)}
 .menu>.sub{grid-column:1;grid-row:2;max-width:30ch;margin:16px 0 28px}
 .menu>.btn.wide{grid-column:1;grid-row:3;justify-self:start;align-self:start;margin-top:0}
 .menu>.cols{grid-column:2;grid-row:1/span 3;gap:48px}
 .grp h3{font-size:1.9rem}
 .svc,.svc.key{padding:20px 0}
 .svc b{font-size:1.15rem}
 .svc span{font-size:.92rem;margin-top:5px}
 .visit.close figure{position:relative;min-height:0}
 .visit.close figure img{position:absolute;inset:0}
 .visit.close .vt{padding:120px var(--pad) 120px 6vw;min-height:min(86svh,820px)}
 .visit.close .vt>*{max-width:520px}
 .open-hrs{max-width:420px}
 .foot{flex-direction:row;justify-content:space-between;padding:28px var(--pad)}
}
@media(min-width:900px) and (max-width:1099px){
 .menu{grid-template-columns:1fr;row-gap:0}
 .menu>h2,.menu>.sub,.menu>.btn.wide,.menu>.cols{grid-column:1;grid-row:auto}
 .menu>.btn.wide{margin-top:36px}
 .visit.close .vt{padding:96px 48px}
}
/* bottom-clearance fix: body clears fixed dock + safe area + 24px; no scroll traps */
html,body{overflow-x:clip!important}
html{overflow-y:visible}
@media(max-width:899px){body{padding-bottom:calc(74px + env(safe-area-inset-bottom) + 24px)!important}}

/* dock auto-hide when page Call/Text buttons are on screen */
.dock{transition:transform .28s ease,opacity .28s ease}
.dock.dock-off{transform:translateY(130%)!important;opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){.dock{transition:none}}
/* opaque dock + solid extension below the screen edge */
.dock{background:#ffffff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.dock::after{content:"";position:absolute;left:0;right:0;top:100%;height:240px;background:#ffffff;pointer-events:none}
/* v8: dock to screen bottom */
@media(max-width:860px){.dock{padding-bottom:calc(14px + env(safe-area-inset-bottom))!important}}
.dock::after{top:calc(100% - 1px)!important;height:160px!important}

/* solid header v10: opaque, colour extends 300px above viewport */
html{background:#0a0a0a}
.top{background:#0a0a0a!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:0 -300px 0 0 #0a0a0a!important}
