@font-face{font-family:"Decalotype Fix";src:url(fonts/decalotype-extrabold.woff2) format("woff2"),url(fonts/decalotype-extrabold.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Bricolagegrotesque;src:url(fonts/bricolage-regular.woff2) format("woff2"),url(fonts/bricolage-regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Bricolagegrotesque;src:url(fonts/bricolage-semibold.woff2) format("woff2"),url(fonts/bricolage-semibold.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Bricolagegrotesque;src:url(fonts/bricolage-bold.woff2) format("woff2"),url(fonts/bricolage-bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}

/* Fallbacks in Arial while the real fonts arrive, so that the swap moves nothing: one face per weight and per kind
   of character (capitals, small letters, digits and signs), because the real fonts are not proportioned like Arial in
   the same way for each. size-adjust is the width of the real font over Arial, measured in Chrome; the line metrics
   are the real ones (Decalotype 800/-200, Bricolage 930/-270 per 1000 em) divided by that size-adjust. They swap like
   the real fonts, so no text is ever held invisible while a local font is resolved. Liberation Sans
   (Linux, where PageSpeed runs) has Arial's widths; Roboto (Android) is a few percent narrower, close enough. */
@font-face{font-family:"Decalotype Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Roboto Bold"),local("Roboto-Bold"),local("Arial");font-weight:700;unicode-range:U+0041-005A,U+00C0-00DE;size-adjust:74.5%;ascent-override:107.38%;descent-override:26.85%;line-gap-override:0%;font-display:swap}
@font-face{font-family:"Decalotype Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Roboto Bold"),local("Roboto-Bold"),local("Arial");font-weight:700;unicode-range:U+0061-007A,U+00DF-00FF;size-adjust:83.4%;ascent-override:95.92%;descent-override:23.98%;line-gap-override:0%;font-display:swap}
@font-face{font-family:"Decalotype Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Roboto Bold"),local("Roboto-Bold"),local("Arial");font-weight:700;unicode-range:U+0000-0040,U+005B-0060,U+007B-00BF,U+0100-FFFF;size-adjust:89.0%;ascent-override:89.89%;descent-override:22.47%;line-gap-override:0%;font-display:swap}
@font-face{font-family:"Bricolage Fallback";src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("LiberationSans"),local("Roboto"),local("Roboto-Regular");font-weight:400;unicode-range:U+0041-005A,U+00C0-00DE;size-adjust:94.1%;ascent-override:98.83%;descent-override:28.69%;line-gap-override:0%;font-display:swap}
@font-face{font-family:"Bricolage Fallback";src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("LiberationSans"),local("Roboto"),local("Roboto-Regular");font-weight:400;unicode-range:U+0061-007A,U+00DF-00FF;size-adjust:106.5%;ascent-override:87.32%;descent-override:25.35%;line-gap-override:0%;font-display:swap}
@font-face{font-family:"Bricolage Fallback";src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("LiberationSans"),local("Roboto"),local("Roboto-Regular");font-weight:400;unicode-range:U+0000-0040,U+005B-0060,U+007B-00BF,U+0100-FFFF;size-adjust:96.0%;ascent-override:96.88%;descent-override:28.13%;line-gap-override:0%;font-display:swap}
@font-face{font-family:"Bricolage Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Roboto Bold"),local("Roboto-Bold");font-weight:600;unicode-range:U+0041-005A,U+00C0-00DE;size-adjust:94.8%;ascent-override:98.10%;descent-override:28.48%;line-gap-override:0%;font-display:swap}
@font-face{font-family:"Bricolage Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Roboto Bold"),local("Roboto-Bold");font-weight:600;unicode-range:U+0061-007A,U+00DF-00FF;size-adjust:100.9%;ascent-override:92.17%;descent-override:26.76%;line-gap-override:0%;font-display:swap}
@font-face{font-family:"Bricolage Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Roboto Bold"),local("Roboto-Bold");font-weight:600;unicode-range:U+0000-0040,U+005B-0060,U+007B-00BF,U+0100-FFFF;size-adjust:97.2%;ascent-override:95.68%;descent-override:27.78%;line-gap-override:0%;font-display:swap}
@font-face{font-family:"Bricolage Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Roboto Bold"),local("Roboto-Bold");font-weight:700;unicode-range:U+0041-005A,U+00C0-00DE;size-adjust:95.7%;ascent-override:97.18%;descent-override:28.21%;line-gap-override:0%;font-display:swap}
@font-face{font-family:"Bricolage Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Roboto Bold"),local("Roboto-Bold");font-weight:700;unicode-range:U+0061-007A,U+00DF-00FF;size-adjust:102.1%;ascent-override:91.09%;descent-override:26.44%;line-gap-override:0%;font-display:swap}
@font-face{font-family:"Bricolage Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Roboto Bold"),local("Roboto-Bold");font-weight:700;unicode-range:U+0000-0040,U+005B-0060,U+007B-00BF,U+0100-FFFF;size-adjust:98.3%;ascent-override:94.61%;descent-override:27.47%;line-gap-override:0%;font-display:swap}

:root{
  --cream:#fdf8f1; --navy:#0d1526; --depth:#f2ece5; --lift:#fff;
  --teal:#2e9e9e; --teal-deep:#1f7a7a; --cyan:#08e8f8; --yellow:#ffc216;
  --ink-64:rgba(13,21,38,.64); --ink-16:rgba(13,21,38,.16); --ink-8:rgba(13,21,38,.08);
  --cream-64:rgba(253,248,241,.64); --cream-16:rgba(253,248,241,.16);
  --r-sm:.5rem; --r:1rem; --r-lg:1.5rem; --r-btn:2rem;
  --heading:"Decalotype Fix","Decalotype Fallback",Arial,sans-serif; --body:Bricolagegrotesque,"Bricolage Fallback",Arial,sans-serif;
  --pad:2rem; --section:clamp(3.5rem,7vw,6rem);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5.5rem;overflow-x:clip}
body{margin:0;background:var(--cream);color:var(--navy);font-family:var(--body);font-size:1rem;line-height:1.45;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
.container{width:100%;max-width:90rem;margin:0 auto;padding:0 var(--pad)}
.section{padding:var(--section) 0}
.section.tight{padding-top:0}
.skip{position:absolute;left:-999px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip:focus{left:1rem;top:1rem;z-index:99;background:var(--navy);color:var(--cream);padding:.75rem 1rem;border-radius:var(--r-sm)}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}

/* type */
.h1,.h2,.h3,.h4{font-family:var(--heading);font-weight:700;text-wrap:balance}
.h1{font-size:clamp(2.5rem,5.4vw,5rem);line-height:1.05;letter-spacing:.03rem;text-transform:uppercase}
.h2{font-size:clamp(2.25rem,4.6vw,4.25rem);line-height:1;letter-spacing:-.06rem;text-transform:uppercase}
.h3{font-size:clamp(1.5rem,2.2vw,2rem);line-height:1.05;letter-spacing:.03rem}
.h4{font-size:1.5rem;line-height:1.05;letter-spacing:.02rem}
.lead{font-size:1.25rem;line-height:1.4}
.muted{color:var(--ink-64)}
.label{display:inline-block;background:var(--depth);border-radius:var(--r);padding:.25rem .5rem;font-weight:700;font-size:.875rem;line-height:1rem;letter-spacing:.047rem;text-transform:uppercase}
.label.teal{background:var(--teal-deep);color:var(--cream)}
.label.dark{background:var(--cream-16);color:var(--cream)}
.head{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;margin-bottom:2.5rem}
.head.center{align-items:center;text-align:center}
.head p{max-width:38rem}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.25rem;padding:1rem 1.25rem;border-radius:var(--r-btn);border:0;background:var(--teal-deep);color:#fff;font-family:var(--heading);font-weight:700;font-size:1.125rem;line-height:1.25rem;letter-spacing:.047rem;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background-color .2s}
.btn:hover{background:var(--navy)}
.btn.on-dark:hover{background:var(--cream);color:var(--navy)}
.btn.ghost{background:var(--ink-8);color:var(--navy)}
.btn.ghost:hover{background:var(--navy);color:var(--cream)}
.btn.ghost.on-dark{background:var(--cream-16);color:var(--cream)}
.btn.ghost.on-dark:hover{background:var(--cream);color:var(--navy)}
.btn.small{min-height:2.75rem;padding:.75rem 1rem;font-size:1rem}
.link{display:inline-flex;align-items:center;gap:.25rem;color:#196969;font-family:var(--heading);font-weight:700;letter-spacing:.047rem;text-transform:uppercase;text-decoration:none}
.link:hover{color:var(--navy)}
.link svg{width:1rem;height:1rem}

/* gift card banner above the header: scrolls away, the header stays */
.topbar{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;background:var(--navy);color:var(--cream);font-size:.875rem;line-height:1.3;text-align:center;text-decoration:none}
.topbar svg{width:1rem;height:1rem;flex:none;transition:transform .25s ease}
.topbar strong{text-decoration:underline;text-underline-offset:.2em}
.topbar:hover strong{color:var(--cyan)}
.topbar:hover svg:last-child{transform:translateX(3px)}
body:has(.gc) .topbar{display:none}

/* header */
.header{position:sticky;top:0;z-index:20;background:var(--cream);border-bottom:1px solid var(--ink-8)}
.nav{display:flex;align-items:center;gap:2rem;padding-top:.75rem;padding-bottom:.75rem}
.nav-logo{display:flex;align-items:center}
.nav-logo img{width:3.5rem;height:3.5rem}
.nav-links{display:flex;gap:1.5rem;font-weight:600}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:1.25rem}
.nav-phone{font-weight:700;text-decoration:none;white-space:nowrap}
.nav-toggle{display:none;width:2.75rem;height:2.75rem;border:0;border-radius:50%;background:var(--depth);cursor:pointer;align-items:center;justify-content:center}
.nav-toggle svg{width:1.25rem;height:1.25rem}

/* hero */
.hero{padding-top:1.5rem}
.hero-bg{position:relative;display:flex;align-items:flex-end;min-height:34rem;border-radius:var(--r-lg);overflow:hidden;background:var(--navy);color:var(--cream)}
.hero-bg picture,.hero-bg picture img{position:absolute;inset:0;width:100%;height:100%}
.hero-bg picture img{object-fit:cover;object-position:60% top}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,21,38,0) 0%,rgba(13,21,38,.04) 30%,rgba(13,21,38,.58) 52%,rgba(13,21,38,.8) 74%)}
.hero-content{position:relative;z-index:1;width:100%;padding:13rem 1.25rem 1.5rem;display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
.hero-content .lead{color:rgba(253,248,241,.92);max-width:34rem;font-size:1.0625rem}
.hero-content .label{font-size:.75rem;background:rgba(13,21,38,.55)}
.hero-content .h1,.hero-content .lead{text-shadow:0 1px 14px rgba(13,21,38,.55)}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem}
.hero-bg .hero-actions{display:none}
.ratings{display:flex;flex-wrap:wrap;gap:.5rem}
.rating{display:inline-flex;align-items:center;gap:.5rem;min-height:2.25rem;padding:.375rem .625rem;border-radius:var(--r-btn);background:var(--lift);color:var(--navy);font-weight:700;font-size:.9375rem;line-height:1;text-decoration:none}
.rating svg.g{width:1.125rem;height:1.125rem}
.rating .stars svg{width:.875rem;height:.875rem}
.ha{font-weight:700;letter-spacing:-.01rem;color:#f68315}
.ha b{color:#3d3d3d;font-weight:700}
@media (min-width:40rem){
  .hero-bg{align-items:center;min-height:34rem}
  .hero-bg .hero-actions{display:flex}
  .hero-bg picture img{object-position:center}
  .hero-bg::after{background:linear-gradient(90deg,rgba(13,21,38,.76) 0%,rgba(13,21,38,.64) 32%,rgba(13,21,38,.2) 56%,rgba(13,21,38,0) 72%)}
  .hero-content{max-width:46rem;padding:clamp(2rem,4vw,3.5rem);gap:1.25rem}
  .hero-content .lead{font-size:1.25rem}
  .hero-content .label{font-size:.875rem}
}
.trust{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1rem}
.trust li{background:var(--depth);border-radius:var(--r);padding:1.25rem;display:flex;align-items:center;gap:.875rem}
.icon{flex:none;width:2.75rem;height:2.75rem;border-radius:.75rem;background:var(--lift);display:flex;align-items:center;justify-content:center;color:var(--teal-deep)}
.icon svg{width:1.375rem;height:1.375rem}
.icon.logo{width:5.5rem;height:3.25rem;padding:.375rem}
.icon.logo img{width:100%;height:100%;object-fit:contain}
.trust strong{display:block;font-family:var(--heading);font-size:1.25rem;line-height:1.1;letter-spacing:.02rem}
.trust span{font-size:.875rem;color:var(--ink-64)}


/* cards */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.card{background:var(--depth);border-radius:var(--r);padding:2rem;display:flex;flex-direction:column;gap:1rem}
.card .icon{margin-bottom:.5rem}
.card ul{display:flex;flex-direction:column;gap:.5rem;margin-top:auto;padding-top:.5rem}
.card ul a{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.625rem 0;border-top:1px solid var(--ink-16);font-weight:600;text-decoration:none}
.card ul a:hover{color:var(--teal-deep)}
.card ul svg{width:1rem;height:1rem;flex:none}

/* property management */
.pm{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem}
.pm-tile{background:var(--navy);color:var(--cream);border-radius:var(--r-lg);padding:clamp(2rem,4vw,3.5rem);display:flex;flex-direction:column;gap:1.5rem;align-items:flex-start}
.pm-tile .lead{color:rgba(253,248,241,.88)}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1.5rem;width:100%}
.checks li{display:flex;gap:.625rem;align-items:flex-start;font-weight:600}
.checks svg{flex:none;width:1.25rem;height:1.25rem;margin-top:.1rem;color:var(--cyan)}
.stats{display:flex;flex-wrap:wrap;gap:2rem;padding-top:1.5rem;border-top:1px solid var(--cream-16);width:100%}
.stats strong{display:block;font-family:var(--heading);font-size:2rem;line-height:1;color:var(--cyan)}
.stats span{font-size:.875rem;color:var(--cream-64)}
.pm-photo{border-radius:var(--r-lg);overflow:hidden}
.pm-photo img{width:100%;height:100%;object-fit:cover}

/* services */
.svc-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.75rem}
.svc{position:relative;display:block;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;color:#fff;text-decoration:none;background:var(--navy)}
.svc img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.svc:hover img{transform:scale(1.04)}
.svc::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,21,38,0) 40%,rgba(13,21,38,.88) 100%)}
.svc-tag{position:absolute;z-index:1;top:.75rem;left:.75rem;background:rgba(253,248,241,.92);color:var(--navy);border-radius:var(--r);padding:.2rem .5rem;font-size:.6875rem;font-weight:700;letter-spacing:.047rem;text-transform:uppercase}
.svc-body{position:absolute;z-index:1;left:1rem;right:1rem;bottom:1rem;display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem}
.svc-body strong{font-family:var(--heading);font-size:1.25rem;line-height:1.05;letter-spacing:-.01rem;text-transform:uppercase}
.arrow{flex:none;width:2.25rem;height:2.25rem;border-radius:50%;background:rgba(253,248,241,.16);display:flex;align-items:center;justify-content:center}
.arrow svg{width:1rem;height:1rem}
.svc-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem}

/* why */
.why{display:grid;grid-template-columns:.8fr 1.2fr;gap:1rem}
.why-photo{position:relative;border-radius:var(--r);overflow:hidden;min-height:22rem}
.why-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.why-right{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.why-head{grid-column:1/-1;background:var(--depth);border-radius:var(--r);padding:2rem;display:flex;flex-direction:column;gap:1rem;align-items:flex-start}

/* checklist */
.tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.tab{min-height:2.75rem;padding:.625rem 1rem;border:0;border-radius:var(--r-btn);background:var(--depth);color:var(--navy);font-family:var(--body);font-weight:700;font-size:1rem;cursor:pointer}
.tab[aria-selected="true"]{background:var(--navy);color:var(--cream)}
.panel{background:var(--depth);border-radius:var(--r-lg);padding:clamp(1.5rem,3vw,2.5rem)}
.panel[hidden]{display:none}
.panel ul{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem 2rem}
.panel li{display:flex;gap:.625rem;align-items:flex-start}
.panel li svg{flex:none;width:1.25rem;height:1.25rem;margin-top:.1rem;color:var(--teal-deep)}
.panel-foot{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--ink-16)}

/* reviews */
.reviews{columns:3;column-gap:1rem}
.review{break-inside:avoid;background:var(--lift);border-radius:var(--r);padding:1.5rem;margin:0 0 1rem;display:flex;flex-direction:column;gap:1.25rem}
.rev-summary{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:2rem}
.rev-box{display:flex;align-items:center;gap:1rem;background:var(--lift);border-radius:var(--r);padding:1.25rem 1.5rem;text-decoration:none;box-shadow:0 1px 2px rgba(13,21,38,.06)}
.rev-box svg.g{width:2.75rem;height:2.75rem;flex:none}
.rev-box .ha{font-size:1.5rem}
.rev-box .src{display:block;font-size:.8125rem;font-weight:600;color:var(--ink-64)}
.rev-score{display:flex;align-items:center;gap:.5rem}
.rev-score strong{font-family:var(--heading);font-size:2rem;line-height:1}
.stars.part{position:relative;color:var(--ink-16)}
.stars.part span{position:absolute;inset:0;display:flex;gap:.2rem;overflow:hidden;white-space:nowrap;color:var(--yellow)}
.stars.part span svg{flex:none}
.rev-top{display:flex;justify-content:space-between;align-items:center}
.rev-top svg.g{width:1.25rem;height:1.25rem}
.stars{display:flex;gap:.2rem;color:var(--yellow)}
.stars svg{width:1.25rem;height:1.25rem}
.review blockquote{margin:0;font-size:1.125rem;line-height:1.45}
.review cite{font-style:normal;font-weight:600}
.review cite span{display:block;font-weight:400;font-size:.875rem;color:var(--ink-64)}

/* how it works */
.hiw{display:grid;grid-template-columns:.8fr 1.2fr;gap:2rem;align-items:start}
.hiw-left{position:sticky;top:7rem;display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start}
.steps{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.step{background:var(--depth);border-radius:var(--r-lg);padding:1.75rem;display:flex;flex-direction:column;gap:.75rem}
.step .num{font-family:var(--heading);font-weight:700;font-size:3.5rem;line-height:1;letter-spacing:-.06rem;color:var(--teal-deep);margin-bottom:.75rem}

/* team */
.team{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:34rem;display:flex;align-items:flex-end;padding:1.5rem}
.team>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%}
.team-card{position:relative;background:var(--depth);border-radius:var(--r);padding:1.5rem;max-width:28rem;display:flex;flex-direction:column;gap:.875rem;align-items:flex-start}

/* areas */
.areas{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.areas-left{background:var(--depth);border-radius:var(--r-lg);padding:clamp(1.5rem,3vw,2.5rem);display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start}
.cities{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.city{display:flex;justify-content:space-between;align-items:center;gap:.5rem;background:var(--depth);border-radius:var(--r);padding:1.25rem;font-family:var(--heading);font-weight:700;font-size:1.25rem;text-decoration:none;min-height:4.5rem}
.city:hover{background:var(--navy);color:var(--cream)}
.city.home{grid-column:1/-1;background:var(--teal-deep);color:var(--cream)}
.city.home:hover{background:var(--navy)}
.city small{font-family:var(--body);font-weight:600;font-size:.8125rem;letter-spacing:.047rem;text-transform:uppercase}
.city svg{width:1rem;height:1rem;flex:none}
address{font-style:normal}

.areas-map{background:var(--depth);border-radius:var(--r-lg);padding:clamp(1.25rem,3vw,2rem);display:flex;flex-direction:column;gap:1rem;justify-content:center}

/* faq */
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:2rem;align-items:start}
.faq-list{display:flex;flex-direction:column;gap:.5rem}
details{background:var(--depth);border-radius:var(--r)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;font-family:var(--heading);font-weight:700;font-size:1.25rem;line-height:1.15}
summary::-webkit-details-marker{display:none}
summary svg{flex:none;width:1.25rem;height:1.25rem;transition:transform .2s}
details[open] summary svg{transform:rotate(45deg)}
details p{padding:0 1.5rem 1.5rem;color:var(--ink-64);max-width:44rem}

/* quote */
.quote{background:var(--navy);color:var(--cream);border-radius:var(--r-lg);padding:clamp(1.5rem,4vw,3.5rem);display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(1.5rem,4vw,3.5rem)}
.quote-left{display:flex;flex-direction:column;gap:1.5rem;align-items:flex-start}
.quote-left .lead{color:rgba(253,248,241,.88)}
.contact{display:flex;flex-direction:column;gap:.75rem;width:100%;margin-top:auto}
.contact a,.contact div{display:flex;align-items:center;gap:.875rem;text-decoration:none;font-weight:600}
.contact .icon{background:var(--cream-16);color:var(--cyan)}
.contact small{display:block;font-weight:400;font-size:.8125rem;color:var(--cream-64)}
form{background:var(--cream);color:var(--navy);border-radius:var(--r);padding:clamp(1.25rem,3vw,2rem);display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field{display:flex;flex-direction:column;gap:.375rem}
.field.full{grid-column:1/-1}
.field label{font-weight:700;font-size:.875rem;letter-spacing:.03rem}
.field label span{font-weight:400;color:var(--ink-64)}
input,select,textarea{width:100%;min-height:3rem;padding:.75rem .875rem;border:1px solid var(--ink-16);border-radius:var(--r-sm);background:var(--lift);color:var(--navy);font:inherit}
textarea{min-height:6rem;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal)}
form .btn{width:100%}
.form-note{grid-column:1/-1;font-size:.875rem;color:var(--ink-64)}
.form-ok{grid-column:1/-1;background:var(--depth);border-radius:var(--r-sm);padding:.875rem 1rem;font-weight:600}

/* footer */
.footer{margin-top:var(--section);padding:0 0 1.5rem;background:var(--navy);color:var(--cream)}
.footer a{text-decoration:none}
.footer a:hover{color:var(--cyan)}
.foot-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;padding:2.5rem 0;border-bottom:1px solid var(--cream-16)}
.foot-cta p:last-child{color:var(--cream-64);margin-top:.375rem}
.foot-main{display:grid;grid-template-columns:24rem 1fr;gap:3rem;padding:3rem 0}
.foot-brand{display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start}
.foot-logo{display:flex;align-items:center;gap:1rem}
.foot-logo img{width:6rem;height:6rem}
.foot-logo strong{display:block;font-family:var(--heading);font-size:2.25rem;line-height:1;letter-spacing:.02rem}
.foot-logo small{display:block;margin-top:.375rem;font-size:.8125rem;color:var(--cream-64)}
.foot-logo:hover{color:var(--cream)}
.foot-brand address{line-height:1.7;color:rgba(253,248,241,.88)}
.badges{display:flex;gap:.75rem;align-items:center}
.badges img{height:2.75rem;width:auto;border-radius:.375rem;background:#fff;padding:.25rem}
.foot-social{display:flex;gap:.5rem}
.foot-cols{display:grid;grid-template-columns:repeat(5,1fr);gap:1.5rem;align-content:start}
.foot-col{background:none;border-radius:0}
.foot-col summary{list-style:none;padding:0;font-family:var(--body);line-height:1.2;cursor:default;display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:700;letter-spacing:.047rem;text-transform:uppercase;color:var(--cyan);margin-bottom:.875rem}
.foot-col summary::-webkit-details-marker{display:none}
.foot-col summary svg{display:none;width:1rem;height:1rem;transition:transform .2s}
.foot-col li{margin-bottom:.5rem}
.foot-col a{color:rgba(253,248,241,.88);font-size:.9375rem}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--cream-16);font-size:.875rem;color:var(--cream-64)}

/* mobile bar */
.mbar{display:none}

/* partners, vendor docs, 5 steps */
.partners{display:flex;flex-wrap:wrap;gap:.5rem}
.partner{display:inline-flex;align-items:center;min-height:3rem;padding:.625rem 1.125rem;border-radius:var(--r);background:var(--depth);font-family:var(--heading);font-weight:700;font-size:1.125rem;letter-spacing:.01rem}
.communities{margin-top:1rem}
.communities summary{font-size:1.0625rem}
.communities ul{columns:4;column-gap:1.5rem;padding:0 1.5rem 1.5rem}
.communities li{break-inside:avoid;padding:.3rem 0}
.vendor{display:grid;grid-template-columns:.9fr 1.1fr;gap:1rem}
.vendor-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.vendor-item{background:var(--depth);border-radius:var(--r);padding:1.5rem;display:flex;flex-direction:column;gap:1rem;justify-content:center}
.vendor-item strong{display:block;font-family:var(--heading);font-size:1.5rem;line-height:1.1;margin-bottom:.375rem}
.vendor-item span{font-size:.9375rem;color:var(--ink-64)}
.vendor .pm-tile{justify-content:center}
.steps.five .step:last-child{grid-column:1/-1}
.spaces{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.spaces li{background:var(--lift);border-radius:var(--r-btn);padding:.375rem .875rem;font-weight:600;font-size:.9375rem}
.proof-photo{border-radius:var(--r);overflow:hidden;margin-bottom:1rem;width:100%}
.proof-photo img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center 30%}

/* process with photos, checklist with a photo stage */
.head.split{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:2rem}
.head.split>div{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.head.split>div:last-child{max-width:24rem}
.pcards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;align-items:start}
.pcard{display:flex;flex-direction:column;gap:.75rem}
.pcard:nth-child(even){margin-top:3rem}
.pcard-img{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;margin-bottom:.5rem;background:var(--depth)}
.pcard-img img{width:100%;height:112%;object-fit:cover;transition:transform .6s ease}
.pcard-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,21,38,0) 55%,rgba(13,21,38,.7) 100%)}
.pcard-n{position:absolute;z-index:1;left:1.25rem;bottom:.75rem;font-family:var(--heading);font-weight:700;font-size:clamp(3.5rem,5vw,5rem);line-height:1;letter-spacing:-.1rem;color:var(--cream)}
.pcard:hover .pcard-img img{transform:scale(1.04)}
.chk{display:grid;grid-template-columns:.8fr 1.2fr;gap:1rem;align-items:stretch}
.chk-stage{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:28rem;background:var(--depth)}
.chk-stage>img{position:absolute;inset:-6% 0;width:100%;height:112%;object-fit:cover;opacity:0;transition:opacity .4s ease}
.chk-stage>img.on{opacity:1}
.chk-badge{position:absolute;left:1rem;right:1rem;bottom:1rem;display:flex;align-items:center;gap:.875rem;background:var(--cream);border-radius:var(--r);padding:1rem;box-shadow:0 12px 30px rgba(13,21,38,.25)}
.chk-badge strong{display:block;font-family:var(--heading);font-size:1.125rem;line-height:1.15}
.chk-badge span{font-size:.875rem;color:var(--ink-64)}
.chk-main{background:var(--depth);border-radius:var(--r-lg);padding:clamp(1.25rem,3vw,2.25rem);display:flex;flex-direction:column}
.chk-main .tabs{margin-bottom:1.5rem}
.chk-main .tab{background:var(--lift)}
.chk-main .tab[aria-selected="true"]{background:var(--navy)}
.chk-main .panel{background:none;padding:0;border-radius:0;flex:1;display:flex;flex-direction:column}
.chk-main .panel[hidden]{display:none}
.chk-main .panel ul{grid-template-columns:1fr 1fr;gap:0 2rem}
.chk-main .panel li{padding:.75rem 0;border-bottom:1px solid var(--ink-16);font-weight:600}
.chk-main .panel-foot{margin-top:auto;border-top:0;padding-top:1.5rem}

@keyframes tick{from{transform:scale(0)}to{transform:scale(1)}}
.ticks li svg{animation:tick .4s cubic-bezier(.34,1.56,.64,1) both}
.ticks li:nth-child(2) svg{animation-delay:.04s}.ticks li:nth-child(3) svg{animation-delay:.08s}.ticks li:nth-child(4) svg{animation-delay:.12s}
.ticks li:nth-child(5) svg{animation-delay:.16s}.ticks li:nth-child(6) svg{animation-delay:.2s}.ticks li:nth-child(7) svg{animation-delay:.24s}
.ticks li:nth-child(8) svg{animation-delay:.28s}.ticks li:nth-child(n+9) svg{animation-delay:.32s}

/* soft hover */
.card,.review{transition:box-shadow .35s ease}
.card:hover,.review:hover{box-shadow:0 14px 30px rgba(13,21,38,.1)}
.btn svg,.link svg{transition:transform .25s ease}
.link:hover svg,.svc:hover .arrow svg,.card ul a:hover svg{transform:translateX(4px)}
.arrow svg,.card ul svg{transition:transform .25s ease}
.btn{transition:background-color .2s,transform .2s}
.btn:active{transform:scale(.98)}

/* editorial sections: problem, numbered scope, team line, proof band */
.prob{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.prob-head{display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start;position:sticky;top:7rem}
.prob-statement{font-family:var(--heading);font-weight:700;font-size:clamp(2.75rem,6.4vw,6rem);line-height:.95;letter-spacing:-.08rem;text-transform:uppercase;text-wrap:balance}
.prob-statement em{font-style:normal;color:var(--teal-deep)}
.prob-rows li{display:grid;grid-template-columns:3.5rem 1fr;gap:1rem;padding:1.75rem 0;border-top:1px solid var(--ink-16)}
.prob-rows li:last-child{border-bottom:1px solid var(--ink-16)}
.prob-rows .prob-fix+.muted{margin-top:.5rem}
.prob-head .hero-actions{margin-top:.5rem}
.prob-n{font-family:var(--heading);font-weight:700;font-size:1.5rem;line-height:1.2;color:var(--teal-deep)}
.prob-pain{color:var(--ink-64);text-decoration:line-through;text-decoration-color:rgba(13,21,38,.3);margin-bottom:.5rem}
.prob-fix{font-family:var(--heading);font-weight:700;font-size:clamp(1.25rem,1.9vw,1.625rem);line-height:1.15}

.scope{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem);align-items:start}
.scope-item{background:none;border-radius:0;border-top:1px solid var(--ink-16)}
.scope-item:last-child{border-bottom:1px solid var(--ink-16)}
.scope-item summary{padding:1.5rem 0;display:grid;grid-template-columns:4.5rem 1fr auto;align-items:center;gap:.5rem}
.scope-n{font-family:var(--heading);font-weight:700;font-size:clamp(2rem,3vw,2.75rem);line-height:1;color:var(--ink-64);transition:color .2s}
.scope-t{font-family:var(--heading);font-weight:700;font-size:clamp(1.5rem,2.4vw,2.25rem);line-height:1.05}
.scope-item[open] .scope-n{color:var(--teal-deep)}
.scope-body{padding:0 0 1.75rem 5rem;display:flex;flex-direction:column;gap:.875rem;align-items:flex-start}
.scope-img{display:none}
.scope-stage{position:sticky;top:6.5rem;aspect-ratio:4/5;max-height:calc(100vh - 8rem);border-radius:var(--r-lg);overflow:hidden;background:var(--depth)}
.scope-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s ease}
.scope-stage img.on{opacity:1}
.scope-spaces{margin-top:2rem}
.scope-spaces strong{font-family:var(--heading);font-size:1.25rem}
.spaces li{background:var(--depth)}

.band{background:var(--depth);padding:var(--section) 0}
.teamline{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;position:relative}
.teamline.n3{grid-template-columns:repeat(3,1fr)}
.teamline{--tl:1}
.teamline::before{content:"";position:absolute;left:0;right:0;top:.6875rem;height:2px;background:linear-gradient(90deg,var(--teal-deep),var(--cyan));transform:scaleX(var(--tl));transform-origin:left}
.teamline li{position:relative;display:flex;flex-direction:column;gap:.625rem;padding-top:2.75rem}
.tl-dot{position:absolute;left:0;top:0;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--teal-deep);border:4px solid var(--depth);box-shadow:0 0 0 2px var(--teal-deep)}

.section:has(>.band)+.section.tight,.pband+.section.tight{padding-top:var(--section)}
.pband{background:var(--navy);color:var(--cream);padding:var(--section) 0 clamp(2.5rem,5vw,4rem);margin-top:var(--section);overflow:hidden}
.section.tight.pband{padding-top:var(--section)}
.pband-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.pband-left{position:relative;display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start}
.pband-big{font-family:var(--heading);font-weight:700;font-size:clamp(9rem,24vw,22rem);line-height:.8;letter-spacing:-.6rem;color:var(--cyan);margin:0 0 .5rem -.5rem}
.pband-left .lead{color:rgba(253,248,241,.88);max-width:34rem}
.pband .stats{border-top:1px solid var(--cream-16);padding-top:1.5rem;width:100%}
.plogos{display:flex;flex-wrap:wrap;gap:.625rem;padding-top:1.5rem;border-top:1px solid var(--cream-16);width:100%}
.plogo{display:flex;align-items:center;gap:.75rem;min-height:4.25rem;padding:.625rem 1rem;border-radius:var(--r);background:var(--lift);color:var(--navy)}
.plogo svg.g{width:2rem;height:2rem;flex:none}
.plogo>span:last-child{display:flex;flex-wrap:wrap;align-items:center;column-gap:.5rem}
.plogo strong{font-family:var(--heading);font-size:1.375rem;line-height:1}
.plogo small{flex-basis:100%;font-size:.75rem;color:var(--ink-64);margin-top:.125rem}
.plogo .stars svg{width:.875rem;height:.875rem}
.plogo .ha{font-size:1.125rem}
.plogo.img{padding:.5rem .875rem}
.plogo.img img{height:2.75rem;width:auto}
.pband-years{font-size:.9375rem;color:var(--cream-64)}
.pband-right{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
.pband-photo{width:78%;align-self:flex-end;border-radius:var(--r-lg);overflow:hidden;transform:rotate(2deg);box-shadow:0 20px 50px rgba(0,0,0,.35)}
.pband-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 30%}
.pband-quote{margin:-3.5rem 0 0;width:86%;background:var(--cream);color:var(--navy);border-radius:var(--r-lg);padding:1.75rem;display:flex;flex-direction:column;gap:1rem;position:relative;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.pband-quote blockquote{margin:0;font-size:clamp(1.125rem,1.5vw,1.375rem);line-height:1.4}
.pband-quote cite{font-style:normal;font-weight:700}
.pband-quote cite span{display:block;font-weight:400;font-size:.875rem;color:var(--ink-64)}
.marq{margin-top:clamp(2.5rem,5vw,4rem);display:flex;flex-direction:column;gap:.75rem}
.marq-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem}
.marq-toggle{min-height:2.75rem;padding:.5rem 1rem;border:1px solid var(--cream-16);border-radius:var(--r-btn);background:none;color:var(--cream);font-family:var(--body);font-weight:700;font-size:.875rem;cursor:pointer}
.marq-toggle:hover{background:var(--cream);color:var(--navy)}
.marq-row{display:flex;overflow:hidden;white-space:nowrap}
.marq-track{display:flex;flex:none;align-items:center;animation:marq 60s linear infinite}
.marq-row.rev .marq-track{animation-direction:reverse;animation-duration:90s}
.marq-track li{display:flex;align-items:center;font-family:var(--heading);font-weight:700;text-transform:uppercase}
.marq-track li::after{content:"";width:.5em;height:.5em;border-radius:50%;background:var(--teal);margin:0 .75em}
.marq-row.big li{font-size:clamp(2.25rem,5.5vw,4.5rem);line-height:1.1;letter-spacing:-.04rem}
.marq-row.small li{font-size:clamp(1rem,1.6vw,1.375rem);color:var(--cream-64);letter-spacing:.03rem}
.marq-row.small li::after{background:var(--cream-16)}
.marq:hover .marq-track,.marq:focus-within .marq-track,.marq.paused .marq-track{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-100%)}}

.vstrip{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2rem;background:var(--depth);border-radius:var(--r-lg);padding:1.5rem 2rem}
.vstrip-head{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start;max-width:16rem}
.vstrip-items{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.vstrip-items li{display:flex;gap:.625rem;align-items:flex-start}
.vstrip-items svg{flex:none;width:1.5rem;height:1.5rem;color:var(--teal-deep);margin-top:.1rem}
.vstrip-items strong{display:block;line-height:1.2}
.vstrip-items span span,.vstrip-items li>span{font-size:.875rem;color:var(--ink-64)}
.vstrip-items strong{font-size:1rem;color:var(--navy)}
.vstrip-cta{display:flex;flex-direction:column;gap:.5rem}

/* mosaic, hotspots, video band, track, calendar, report phone */
.mosaic{display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:1fr 1fr;gap:1rem;min-height:36rem}
.tile{position:relative;border-radius:var(--r-lg);overflow:hidden;color:var(--cream);display:flex;align-items:flex-end;min-height:16rem;background:var(--navy)}
.tile.t1{grid-row:1 / span 2}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,21,38,0) 30%,rgba(13,21,38,.82) 100%)}
.tile:hover img{transform:scale(1.05)}
.tile-body{position:relative;z-index:1;padding:1.5rem;display:flex;flex-direction:column;gap:.5rem;max-width:30rem}
.tile-n{font-family:var(--heading);font-weight:700;font-size:1rem;color:var(--cyan);letter-spacing:.05rem}
.tile.t1 .h3{font-size:clamp(1.75rem,3vw,2.75rem)}
.tile p{color:rgba(253,248,241,.9)}
.hs-stage img{display:block}
.hs .spot-dot{animation:pulse 2.4s ease-out infinite}
.hs-item{display:flex;flex-direction:column;gap:.75rem;width:100%}
.hs-item[hidden]{display:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(8,232,248,.7)}70%{box-shadow:0 0 0 14px rgba(8,232,248,0)}100%{box-shadow:0 0 0 0 rgba(8,232,248,0)}}
.vband{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--navy);color:var(--cream);min-height:34rem;display:flex;align-items:flex-end}
.vband video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vband::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,21,38,.78) 0%,rgba(13,21,38,.5) 40%,rgba(13,21,38,0) 72%)}
.vband-body{position:relative;z-index:1;padding:clamp(1.5rem,4vw,3.5rem);max-width:40rem;display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.vband-body .lead{color:rgba(253,248,241,.92)}
.vband-points{display:flex;flex-direction:column;gap:.5rem}
.vband-points li{display:flex;gap:.625rem;align-items:flex-start;font-weight:600}
.vband-points svg{flex:none;width:1.25rem;height:1.25rem;color:var(--cyan);margin-top:.1rem}
.vband-toggle{position:absolute;z-index:2;right:1rem;top:1rem;min-height:2.75rem;padding:.5rem 1rem;border:0;border-radius:var(--r-btn);background:rgba(13,21,38,.7);color:var(--cream);font-family:var(--body);font-weight:700;font-size:.875rem;cursor:pointer}
.vband .ba-sample{z-index:2;left:auto;right:1rem;bottom:1rem;transform:none}
.track{display:grid;grid-template-columns:repeat(4,1fr);gap:.375rem;--p:1}
.seg-step{position:relative;background:var(--depth);padding:1.75rem 1.5rem 1.75rem 2.5rem;display:flex;flex-direction:column;gap:.5rem;clip-path:polygon(0 0,calc(100% - 1.5rem) 0,100% 50%,calc(100% - 1.5rem) 100%,0 100%,1.5rem 50%);min-height:12rem;transition:background-color .5s ease,color .5s ease}
.seg-step:first-child{clip-path:polygon(0 0,calc(100% - 1.5rem) 0,100% 50%,calc(100% - 1.5rem) 100%,0 100%);border-radius:var(--r) 0 0 var(--r);padding-left:1.5rem}
.seg-step:last-child{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,1.5rem 50%);border-radius:0 var(--r) var(--r) 0}
.seg-n{font-family:var(--heading);font-weight:700;font-size:2.25rem;line-height:1;color:var(--teal-deep);transition:color .5s ease}
.seg-step p{font-size:.9375rem;color:var(--ink-64);transition:color .5s ease}
.seg-step.on{background:var(--teal-deep);color:#fff}
.seg-step.on .seg-n{color:var(--cyan)}
.seg-step.on p{color:rgba(255,255,255,.9)}
.cal-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(1.5rem,4vw,4rem);align-items:center}
.cal-text{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.cal-wrap>*{min-width:0}
.cal{min-width:0;background:var(--depth);border-radius:var(--r-lg);padding:clamp(1rem,2.5vw,2rem)}
.cal-scroll{overflow-x:auto;padding-bottom:.5rem}
.cal-grid{display:grid;grid-template-columns:repeat(var(--days,14),minmax(2.75rem,1fr));gap:.375rem;min-width:calc(var(--days,14) * 3rem)}
.cal-grid[style*="--days:7"] .cal-bar{white-space:normal;text-align:center;font-size:.8125rem;line-height:1.15;padding:0 .375rem}
.cal-day{display:flex;flex-direction:column;align-items:center;gap:.125rem;font-size:.6875rem;font-weight:700;letter-spacing:.047rem;text-transform:uppercase;color:var(--ink-64);background:var(--lift);border-radius:.625rem;padding:.5rem 0}
.cal-day b{font-family:var(--heading);font-size:1.25rem;color:var(--navy);letter-spacing:0}
.cal-bar{grid-row:2;display:flex;align-items:center;justify-content:center;min-height:3.5rem;border-radius:var(--r-btn);font-weight:700;font-size:.875rem;white-space:nowrap;overflow:hidden;transform-origin:left center}
.cal-bar.stay{background:var(--navy);color:var(--cream)}
.cal-bar.clean{background:var(--teal-deep);color:#fff;font-size:.6875rem;line-height:1.1;text-align:center;white-space:normal;padding:0 .25rem;box-shadow:0 0 0 3px var(--cyan)}
.cal-legend{display:flex;flex-wrap:wrap;gap:1.25rem;margin-top:1rem;font-size:.875rem;font-weight:600}
.cal-legend span{display:flex;align-items:center;gap:.5rem}
.k{width:1rem;height:1rem;border-radius:50%}.k.stay{background:var(--navy)}.k.clean{background:var(--teal-deep);box-shadow:0 0 0 2px var(--cyan)}
.rep{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.rep-phone{justify-self:center;width:min(19rem,100%);background:var(--navy);border-radius:2.5rem;padding:.75rem;box-shadow:0 30px 60px rgba(13,21,38,.25);transform:rotate(-3deg)}
.rep-screen{background:var(--cream);border-radius:1.875rem;padding:1.25rem 1rem;display:flex;flex-direction:column;gap:.875rem}
.rep-top{display:flex;align-items:center;gap:.75rem;padding-bottom:.875rem;border-bottom:1px solid var(--ink-16)}
.rep-logo{width:2.5rem;height:2.5rem;border-radius:.75rem;background:var(--teal-deep) url(/assets/logo.png) center/70% no-repeat}
.rep-top strong{display:block;font-family:var(--heading);font-size:1.125rem;line-height:1.1}
.rep-top span span,.rep-top div span{font-size:.8125rem;color:var(--ink-64)}
.rep-list li{display:flex;align-items:center;gap:.625rem;padding:.5rem 0;border-bottom:1px solid var(--ink-8);font-weight:600;font-size:.9375rem}
.rep-list svg{flex:none;width:1.375rem;height:1.375rem;padding:.2rem;border-radius:50%;background:var(--teal-deep);color:#fff}
.rep-done{background:var(--teal-deep);color:#fff;border-radius:var(--r-btn);padding:.625rem;text-align:center;font-weight:700;font-size:.875rem}
.rep-text{display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start}
.qsteps{display:flex;flex-direction:column;gap:.75rem;width:100%;counter-reset:q;padding:1.25rem 0;border-top:1px solid var(--cream-16);border-bottom:1px solid var(--cream-16)}
.qsteps li{counter-increment:q;display:grid;grid-template-columns:2.25rem 1fr;column-gap:.5rem}
.qsteps li::before{content:counter(q,decimal-leading-zero);grid-row:1 / span 2;font-family:var(--heading);font-weight:700;color:var(--cyan)}
.qsteps strong{font-weight:700}
.qsteps span{font-size:.875rem;color:var(--cream-64)}

.hrs{display:grid;grid-template-columns:1fr 2.2fr 1fr;gap:.375rem}
.hrs .cal-bar{grid-row:auto;min-height:5rem;font-size:.9375rem;white-space:normal;text-align:center;padding:0 .5rem}
.hrs .cal-bar.clean{font-size:.875rem}
.hrs-scale{display:grid;grid-template-columns:1fr 2.2fr 1fr;gap:.375rem;margin-top:.5rem;font-size:.75rem;font-weight:700;letter-spacing:.047rem;text-transform:uppercase;color:var(--ink-64);text-align:center}
.ts{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.ts-card{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:clamp(1.5rem,3.5vw,3rem);display:flex;flex-direction:column;gap:1rem;align-items:flex-start;background:var(--depth);min-height:22rem}
.ts-card.ts1 .label{background:var(--lift)}
.ts-card.ts2{background:var(--navy);color:var(--cream)}
.ts-card.ts2 p{color:rgba(253,248,241,.88)}
.ts-card .checks{grid-template-columns:1fr;gap:.5rem}
.ts-card.ts2 .checks li{font-weight:400}
.ts-n{position:absolute;right:1rem;top:-1.5rem;font-family:var(--heading);font-weight:700;font-size:clamp(9rem,16vw,15rem);line-height:1;color:rgba(13,21,38,.07)}
.ts-card.ts2 .ts-n{color:rgba(8,232,248,.16)}
.ts-arrow{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:3.5rem;height:3.5rem;border-radius:50%;background:var(--teal-deep);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 6px var(--cream)}
.ts-arrow svg{width:1.5rem;height:1.5rem}
.ts-note{margin-top:1rem;font-size:.875rem;max-width:48rem}

.fq{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}
.fq-card{display:flex;flex-direction:column;align-items:flex-start;gap:.875rem;text-align:left;padding:1.5rem;border:2px solid transparent;border-radius:var(--r-lg);background:var(--depth);color:var(--navy);font-family:var(--body);cursor:pointer;transition:background-color .25s,color .25s,transform .25s}
.fq-card:hover{transform:translateY(-3px)}
.fq-card[aria-pressed="true"]{background:var(--navy);color:var(--cream);border-color:var(--cyan)}
.fq-weeks{display:grid;grid-template-columns:repeat(4,1fr);gap:.25rem;width:100%}
.fq-weeks i{height:2.5rem;border-radius:.5rem;background:var(--ink-8);transition:background-color .25s}
.fq-weeks i.on{background:var(--teal-deep)}
.fq-card[aria-pressed="true"] .fq-weeks i{background:var(--cream-16)}
.fq-card[aria-pressed="true"] .fq-weeks i.on{background:var(--cyan)}
.fq-text{font-size:.9375rem;color:var(--ink-64)}
.fq-card[aria-pressed="true"] .fq-text{color:rgba(253,248,241,.85)}
.offer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;background:linear-gradient(100deg,var(--teal-deep),var(--teal));color:#fff;border-radius:var(--r-lg);padding:clamp(1.5rem,3vw,2.5rem)}
.offer>div{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start;max-width:44rem}
.offer .btn{background:var(--navy)}
.offer .btn:hover{background:var(--cream);color:var(--navy)}
.filter-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}
.svc[hidden]{display:none}

/* reading and utility pages */
.phead{padding:clamp(3rem,7vw,6rem) 0 0}
.phead .container{display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start}
.phead .lead{max-width:44rem}
.maphero{display:grid;grid-template-columns:1fr 1fr;gap:1rem;background:var(--navy);color:var(--cream);border-radius:var(--r-lg);overflow:hidden}
.maphero-text{padding:clamp(1.75rem,4vw,3.5rem);display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start;justify-content:center}
.maphero-text .lead{color:rgba(253,248,241,.9)}
.maphero-map{padding:clamp(1rem,3vw,2.5rem);display:flex;align-items:center;background:rgba(253,248,241,.06)}
.maphero .cmap-city path{fill:rgba(253,248,241,.14);stroke:rgba(253,248,241,.45)}
.maphero .cmap-city.home path{fill:var(--teal-deep)}
.maphero .cmap-city.here path,.cmap-city.here path{fill:var(--cyan)}
.maphero .cmap text{fill:var(--cream);stroke:var(--navy)}
.maphero .cmap text.home{stroke:var(--teal-deep)}
.maphero .cmap-city:hover path{fill:var(--teal)}
.cities.wide{grid-template-columns:repeat(4,1fr)}
.cities.wide .city.home{grid-column:auto}
.swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}
.swatches li{background:var(--depth);border-radius:var(--r);padding:1.25rem;display:flex;flex-direction:column;gap:.375rem}
.swatches i{width:100%;height:3.5rem;border-radius:.75rem;margin-bottom:.5rem}
.swatches strong{font-family:var(--heading);font-size:1.25rem}
.swatches span{color:var(--ink-64);font-size:.9375rem}
.faq-groups{display:flex;flex-direction:column;gap:2.5rem}
.faq-group[hidden]{display:none}
.faq-group h2{margin-bottom:1rem}
.calc{display:grid;grid-template-columns:1.3fr .7fr;gap:1rem;align-items:start}
.calc-main{background:var(--depth);border-radius:var(--r-lg);padding:clamp(1.25rem,3vw,2rem);display:flex;flex-direction:column;gap:1.75rem}
.calc-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.calc-row .pb-field{max-width:none}
.addon span{justify-content:space-between;gap:.75rem}
.addon b{font-family:var(--heading);color:var(--teal-deep)}
.addon input:checked+span b{color:var(--cyan)}
.calc-side{position:sticky;top:6.5rem;background:var(--navy);color:var(--cream);border-radius:var(--r-lg);padding:1.75rem;display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.calc-side dl{width:100%;margin:0}
.calc-side dl div{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--cream-16)}
.calc-side dd{margin:0;font-family:var(--heading);font-weight:700;font-size:1.25rem;color:var(--cyan)}
.calc-side .btn{width:100%}
.calc-note{font-size:.8125rem;color:var(--cream-64)}
.jobs{display:flex;flex-direction:column}
.job{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.75rem 0;border-top:1px solid var(--ink-16)}
.job:last-child{border-bottom:1px solid var(--ink-16)}
.job>div{display:flex;flex-direction:column;gap:.625rem;align-items:flex-start;max-width:46rem}
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.post{display:flex;flex-direction:column;background:var(--depth);border-radius:var(--r-lg);overflow:hidden;text-decoration:none;color:var(--navy)}
.post[hidden]{display:none}
.post.big{grid-column:1 / -1;flex-direction:row}
.post-img{display:block;overflow:hidden;aspect-ratio:16/10}
.post.big .post-img{flex:1 1 55%;aspect-ratio:auto;min-height:20rem}
.post-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.post:hover .post-img img{transform:scale(1.04)}
.post-body{display:flex;flex-direction:column;gap:.875rem;align-items:flex-start;padding:1.5rem;flex:1 1 45%;justify-content:center}
.post-body .label{background:var(--lift)}
.progress{position:fixed;left:0;right:0;top:0;height:4px;z-index:40;pointer-events:none}
.progress i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--teal-deep),var(--cyan));transform:scaleX(0);transform-origin:left}
.art{padding-top:clamp(2rem,5vw,4rem)}
.art-head{display:flex;flex-direction:column;gap:1rem;align-items:flex-start;max-width:56rem}
.art-hero{margin:2rem 0;border-radius:var(--r-lg);overflow:hidden}
.art-hero img{width:100%;aspect-ratio:21/9;object-fit:cover}
.art-grid{display:grid;grid-template-columns:minmax(0,1fr) 20rem;gap:clamp(2rem,5vw,5rem);align-items:start}
.art-body{display:flex;flex-direction:column;gap:1.25rem;font-size:1.125rem;line-height:1.6;max-width:44rem}
.art-body h2{margin-top:1rem;scroll-margin-top:6rem}
.art-list{grid-template-columns:1fr}
.art-list li{padding:.625rem 0;border-bottom:1px solid var(--ink-16)}
.art-side{position:sticky;top:6.5rem;display:flex;flex-direction:column;gap:1rem}
.toc,.side-links{background:var(--depth);border-radius:var(--r);padding:1.25rem;display:flex;flex-direction:column;gap:.625rem}
.toc ol{list-style:decimal;padding-left:1.25rem;display:flex;flex-direction:column;gap:.375rem}
.toc a,.side-links a{text-decoration:none;font-weight:600}
.toc a:hover,.side-links a:hover{color:var(--teal-deep)}
.share{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.share span{font-size:.8125rem;font-weight:700;letter-spacing:.047rem;text-transform:uppercase;color:var(--ink-64);margin-right:.25rem}
.share a,.share button{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem 1rem;border:0;border-radius:var(--r-btn);background:var(--depth);color:var(--navy);font-family:var(--body);font-weight:700;font-size:.875rem;text-decoration:none;cursor:pointer}
.share a:hover,.share button:hover{background:var(--navy);color:var(--cream)}
.promo{display:grid;grid-template-columns:8rem 1fr;background:var(--navy);color:var(--cream);border-radius:var(--r-lg);overflow:hidden}
.promo img{width:100%;height:100%;object-fit:cover}
.promo>div{padding:1.25rem;display:flex;flex-direction:column;gap:.625rem;align-items:flex-start}
.promo p{font-size:.9375rem;line-height:1.4}
.promo .h3{font-size:1.375rem;line-height:1.1}
.art-side .promo{grid-template-columns:1fr}
.art-side .promo img{aspect-ratio:16/10}
.legal{max-width:44rem}

/* tools: shared controls */
.seg{display:flex;flex-wrap:wrap;gap:.375rem}
.seg-btn,.chip-btn{min-height:2.75rem;padding:.5rem 1rem;border:0;border-radius:var(--r-btn);background:var(--lift);color:var(--navy);font-family:var(--body);font-weight:700;font-size:.9375rem;cursor:pointer}
.seg-btn[aria-pressed="true"],.chip-btn[aria-pressed="true"]{background:var(--navy);color:var(--cream)}
/* unit map */
.umap{display:grid;grid-template-columns:1.15fr .85fr;gap:1rem;align-items:stretch}
.umap-stage{position:relative;background:var(--cream);border:1px solid var(--ink-8);border-radius:var(--r-lg);overflow:hidden}
.umap-stage img{width:100%;height:auto}
.spot{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:.375rem;border:0;background:none;padding:.5rem;cursor:pointer;font-family:var(--body)}
.spot-dot{width:1.375rem;height:1.375rem;border-radius:50%;background:var(--teal-deep);border:3px solid #fff;box-shadow:0 0 0 4px rgba(31,122,122,.3)}
.spot-label{background:var(--lift);color:var(--navy);border-radius:var(--r-btn);padding:.25rem .625rem;font-weight:700;font-size:.8125rem;box-shadow:0 1px 4px rgba(13,21,38,.2)}
.spot[aria-pressed="true"] .spot-dot{background:var(--navy);box-shadow:0 0 0 6px rgba(8,232,248,.55)}
.spot[aria-pressed="true"] .spot-label{background:var(--navy);color:var(--cream)}
.umap-panel{background:var(--depth);border-radius:var(--r-lg);padding:1.5rem;display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.umap-rooms{display:flex;flex-wrap:wrap;gap:.375rem}
.umap-list{width:100%;display:flex;flex-direction:column}
.umap-list li{display:flex;gap:.625rem;align-items:flex-start;padding:.5rem 0;border-bottom:1px solid var(--ink-16)}
.umap-list svg{flex:none;width:1.25rem;height:1.25rem;margin-top:.1rem;color:var(--teal-deep)}
.umap-list li.no{color:var(--ink-64)}
.umap-list li.no svg{color:var(--ink-64)}
.umap-list em{font-style:normal;font-size:.8125rem;background:var(--lift);border-radius:var(--r);padding:.1rem .5rem;margin-left:.25rem;white-space:nowrap}
.umap-note{font-size:.875rem}
.umap-panel .btn{margin-top:auto}
/* compare */
.cmp{background:var(--depth);border-radius:var(--r-lg);padding:clamp(1rem,3vw,2rem);display:flex;flex-direction:column;gap:1rem}
.cmp-wrap{background:var(--lift);border-radius:var(--r);overflow:hidden}
.cmp-table{width:100%;border-collapse:collapse}
.cmp-table th,.cmp-table td{padding:.625rem 1rem;border-bottom:1px solid var(--ink-8);text-align:center}
.cmp-table th[scope="row"],.cmp-table thead th:first-child{text-align:left;font-weight:400}
.cmp-table thead th{font-size:.75rem;letter-spacing:.047rem;text-transform:uppercase;color:var(--teal-deep);font-weight:700}
.cmp-table td svg{width:1.125rem;height:1.125rem;color:var(--teal-deep)}
.cmp-table td.no{color:var(--ink-16)}
.cmp-table .on{background:rgba(46,158,158,.14)}
.cmp-table thead .on{background:var(--teal-deep);color:#fff}
.cmp-note{font-size:.875rem}
/* before and after */
.ba{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--navy);touch-action:pan-y}
.ba>img{width:100%;height:auto;display:block}
.ba-before{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.ba-before img{width:100%;height:100%;object-fit:cover}
.ba-tag{position:absolute;top:1rem;background:rgba(13,21,38,.8);color:var(--cream);border-radius:var(--r);padding:.25rem .625rem;font-size:.75rem;font-weight:700;letter-spacing:.047rem;text-transform:uppercase}
.ba-tag.left{left:1rem}.ba-tag.right{right:1rem}
.ba-sample{position:absolute;left:50%;bottom:1rem;transform:translateX(-50%);background:var(--yellow);color:var(--navy);border-radius:var(--r);padding:.25rem .75rem;font-size:.8125rem;font-weight:700;white-space:nowrap}
.ba-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;margin-left:-1.5px;background:#fff;pointer-events:none}
.ba-handle svg{position:absolute;top:50%;left:50%;width:2.75rem;height:2.75rem;transform:translate(-50%,-50%);background:#fff;color:var(--navy);border-radius:50%;padding:.625rem;box-shadow:0 2px 8px rgba(13,21,38,.3)}
.ba-range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;min-height:0;padding:0;border:0}
.ba:has(.ba-range:focus-visible) .ba-handle svg{outline:3px solid var(--cyan)}
/* coverage map */
.cmap{width:100%;height:auto;max-height:30rem}
.cmap-city path{fill:var(--lift);stroke:rgba(13,21,38,.28);stroke-width:3;stroke-linejoin:round;transition:fill .2s}
.cmap-city:hover path,.cmap-city:focus-visible path{fill:var(--teal)}
.cmap-city.home path{fill:var(--teal-deep)}
.cmap text{font-family:var(--body);font-weight:700;font-size:34px;text-anchor:middle;fill:var(--navy);pointer-events:none;paint-order:stroke;stroke:var(--lift);stroke-width:6}
.cmap text.home{fill:#fff;stroke:var(--teal-deep)}
/* proposal builder */
.pb{background:var(--depth);border-radius:var(--r-lg);overflow:hidden}
.pb-steps{display:grid;grid-template-columns:.8fr 1.4fr .9fr;gap:1.5rem;padding:clamp(1.25rem,3vw,2rem)}
.pb-step{display:flex;flex-direction:column;gap:.875rem;align-items:flex-start}
.pb-num{width:2.25rem;height:2.25rem;border-radius:50%;background:var(--teal-deep);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--heading);font-weight:700}
.pb-set{border:0;margin:0;padding:0;min-width:0}
.pb-set legend{font-family:var(--heading);font-weight:700;font-size:1.25rem;padding:0;margin-bottom:.75rem}
.pb-opts{display:flex;flex-wrap:wrap;gap:.375rem}
.pb-opt{position:relative;display:inline-flex}
.pb-opt input{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;opacity:0;cursor:pointer}
.pb-opt span{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem .875rem;border-radius:var(--r-btn);background:var(--lift);font-weight:600;font-size:.9375rem}
.pb-opt input:checked+span{background:var(--navy);color:var(--cream)}
.pb-opt input:focus-visible+span{outline:3px solid var(--cyan);outline-offset:2px}
.pb-field{display:flex;flex-direction:column;gap:.375rem;width:100%;max-width:16rem;font-weight:700;font-size:.875rem}
.pb-field em{font-style:normal;font-weight:400;color:var(--ink-64)}
.pb-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;background:var(--navy);color:var(--cream);padding:1.25rem clamp(1.25rem,3vw,2rem)}
.pb-summary p{margin-top:.5rem;font-weight:600;max-width:50rem}

/* service pages */
.checks.on-light{grid-template-columns:1fr;gap:.5rem}
.checks.on-light li{font-weight:400}
.checks.on-light svg{color:var(--teal-deep)}
.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.split-grid.one{grid-template-columns:1fr}
.split-card{display:grid;grid-template-columns:.42fr .58fr;background:var(--depth);border-radius:var(--r);overflow:hidden}
.split-card.no-img{grid-template-columns:1fr}
.split-img{position:relative;min-height:16rem}
.split-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.split-body{padding:1.75rem;display:flex;flex-direction:column;gap:.875rem;align-items:flex-start}
.split-body .link{margin-top:auto;padding-top:.5rem}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;background:var(--depth);border-radius:var(--r);padding:1.25rem 1.75rem}
.cta-row p{max-width:44rem}
.proof{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem;align-items:start}
.proof-reviews{display:flex;flex-direction:column;align-items:flex-start}
.proof-reviews .review{width:100%}
.svc-grid.four{grid-template-columns:repeat(4,1fr)}
.area-strip{display:grid;grid-template-columns:.8fr 1.2fr;gap:1.5rem;align-items:center;background:var(--depth);border-radius:var(--r-lg);padding:clamp(1.5rem,3vw,2.5rem)}
.area-strip>div:first-child{display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem 1rem;border-radius:var(--r-btn);background:var(--lift);font-weight:700;text-decoration:none}
.chip:hover{background:var(--navy);color:var(--cream)}
.chip.home{background:var(--teal-deep);color:#fff}
.chip.home:hover{background:var(--navy)}

@media (max-width:64rem){
  .split-grid,.proof,.area-strip,.vendor,.umap,.pb-steps,.prob,.scope,.pband-grid,.vstrip{grid-template-columns:1fr}
  .prob-head{position:static}
  .maphero,.calc,.art-grid{grid-template-columns:1fr}
  .calc-side,.art-side{position:static}
  .cities.wide{grid-template-columns:1fr 1fr}
  .swatches{grid-template-columns:1fr 1fr}
  .posts{grid-template-columns:1fr 1fr}
  .post.big{flex-direction:column}
  .post.big .post-img{min-height:0;aspect-ratio:16/10}
  .fq{grid-template-columns:1fr 1fr}
  .ts{grid-template-columns:1fr}
  .ts-arrow{transform:translate(-50%,-50%) rotate(90deg)}
  .ts-card{min-height:0}
  .cal-wrap,.rep{grid-template-columns:1fr}
  .track{grid-template-columns:1fr 1fr}
  .seg-step,.seg-step:first-child,.seg-step:last-child{clip-path:none;border-radius:var(--r);padding:1.5rem;min-height:0}
  .vband{min-height:30rem}
  .vband::after{background:linear-gradient(180deg,rgba(13,21,38,.1) 0%,rgba(13,21,38,.82) 60%)}
  .chk{grid-template-columns:1fr}
  .chk-stage{min-height:0;aspect-ratio:16/10}
  .pcards{grid-template-columns:1fr 1fr}
  .pcard:nth-child(even){margin-top:0}
  .head.split{flex-direction:column;align-items:flex-start}
  .scope-stage{display:none}
  .scope-img{display:block;width:100%;border-radius:var(--r);overflow:hidden}
  .scope-img img{width:100%;aspect-ratio:16/10;object-fit:cover}
  .scope-body{padding-left:0}
  .scope-item summary{grid-template-columns:3.25rem 1fr auto}
  .teamline,.teamline.n3{grid-template-columns:1fr 1fr}
  .teamline::before{display:none}
  .teamline li{padding-top:2.25rem}
  .vstrip{gap:1.25rem;padding:1.5rem}
  .vstrip-items{grid-template-columns:1fr 1fr}
  .vstrip-cta{flex-direction:row;flex-wrap:wrap}
  .pband-photo{width:70%}
  .communities ul{columns:2}
  .svc-grid.four{grid-template-columns:repeat(2,1fr)}
  .nav-links{display:none}
  .nav-links.open{display:flex;flex-direction:column;gap:0;position:absolute;left:0;right:0;top:100%;background:var(--cream);padding:.5rem var(--pad) 1.5rem;border-bottom:1px solid var(--ink-8)}
  .nav-toggle{display:flex}
  .pm,.why,.hiw,.faq,.quote,.areas{grid-template-columns:1fr}
  .trust{grid-template-columns:1fr 1fr}
  .grid-3{grid-template-columns:1fr}
  .svc-grid{grid-template-columns:repeat(3,1fr)}
  .why-photo{min-height:0;height:20rem}
  .hiw-left{position:static}
  .panel ul{grid-template-columns:1fr 1fr}
  .reviews{columns:2}
  .pm-photo{aspect-ratio:16/10;order:-1}
  .foot-main{grid-template-columns:1fr;gap:2rem}
  .foot-cols{grid-template-columns:1fr;gap:0}
  .foot-col{border-top:1px solid var(--cream-16)}
  .foot-col summary{cursor:pointer;min-height:3.25rem;margin:0}
  .foot-col summary svg{display:block}
  .foot-col[open] summary svg{transform:rotate(45deg)}
  .foot-col ul{padding-bottom:1rem}
  .foot-col a{display:block;padding:.375rem 0}
}
@media (max-width:40rem){
  :root{--pad:1rem}
  .nav-phone,.nav-right .btn{display:none}
  .trust li{padding:1rem;flex-direction:column;align-items:flex-start;gap:.625rem}
  .svc-grid{grid-template-columns:1fr 1fr}
  .svc-body strong{font-size:1.0625rem}
  .arrow{display:none}
  .why-right,.steps,.checks,.panel ul,form{grid-template-columns:1fr}
  .split-card,.vendor-list{grid-template-columns:1fr}
  .posts,.calc-row{grid-template-columns:1fr}
  .job{flex-direction:column;align-items:flex-start}
  .art-body{font-size:1.0625rem}
  .mosaic{grid-template-columns:1fr;grid-template-rows:none;min-height:0}
  .tile.t1{grid-row:auto;min-height:20rem}
  .track{grid-template-columns:1fr}
  .rep-phone{transform:none}
  .vband .ba-sample{left:1rem;right:1rem;width:auto;bottom:auto;top:4.25rem;text-align:center;white-space:normal}
  .chk-main .panel ul{grid-template-columns:1fr}
  .pcards{gap:.75rem}
  .pcard .h3{font-size:1.25rem}
  .teamline,.teamline.n3{grid-template-columns:1fr}
  .pband-photo{width:88%}
  .pband-quote{width:100%;margin-top:-2rem;padding:1.25rem}
  .pband-big{letter-spacing:-.3rem}
  .prob-rows li{grid-template-columns:2.5rem 1fr}
  .communities ul{columns:1}
  .spot-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .cmp-table th:not([scope="row"]):not(.on),.cmp-table td:not(.on){display:none}
  .cmp .cmp-table thead tr th:first-child{display:table-cell}
  .ba-sample{white-space:normal;text-align:center;width:calc(100% - 2rem)}
  .ba>img{aspect-ratio:4/3;object-fit:cover}
  .pb-summary .btn{width:100%}
  .cmap text{font-size:38px}
  .split-img{min-height:0;aspect-ratio:16/10}
  .split-body{padding:1.25rem}
  .cta-row{padding:1.25rem}
  .cta-row .btn{width:100%}
  .city{font-size:1.0625rem;padding:1rem;min-height:3.5rem}
  .reviews{columns:1}
  .review:nth-child(n+5){display:none}
  .team{min-height:0;padding:0;flex-direction:column;border-radius:var(--r)}
  .team>img{position:static;aspect-ratio:4/3;border-radius:var(--r)}
  .team-card{max-width:none;margin-top:.75rem}
  body{padding-bottom:0}
  .footer{padding-bottom:6rem}
  .foot-cta .btn{flex:1 1 100%}
  .mbar{display:grid;grid-template-columns:1fr auto;gap:.5rem;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:.625rem 1rem calc(.625rem + env(safe-area-inset-bottom));background:var(--cream);border-top:1px solid var(--ink-16)}
  .mbar .btn{min-height:3rem;padding:.75rem 1rem;font-size:1rem}
}
@media (prefers-reduced-motion:reduce){.hs .spot-dot{animation:none}.tile:hover img{transform:none}.ticks li svg{animation:none}.pcard:hover .pcard-img img{transform:none}.marq-row{flex-wrap:wrap;white-space:normal}.marq-track{animation:none;flex-wrap:wrap;flex:1 1 100%;padding:0 var(--pad)}.marq-track[aria-hidden]{display:none}.marq-toggle{display:none}.scope-stage img{transition:none}html{scroll-behavior:auto}.svc img,.btn,summary svg{transition:none}}

/* ---------- places: areas hub, city pages, why E3R (own sections, mobile first) ---------- */
.credit,.pc-credit,.credits{font-size:.6875rem;line-height:1.3;color:var(--ink-64)}
.credit a,.pc-credit a,.credits a{color:inherit}
h2 em,.mv-big em{font-style:normal;color:var(--teal-deep)}
.tlink{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:var(--teal-deep);text-decoration:none;min-height:2.75rem}
.tlink svg{width:1rem;height:1rem;transition:transform .25s}
.tlink:hover svg{transform:translateX(4px)}

/* map modes */
.cmap.all .cmap-city path{fill:var(--teal);stroke:var(--navy);stroke-width:4}
.cmap.all .cmap-city:hover path,.cmap.all .cmap-city:focus-visible path,.cmap.all .cmap-city.on path{fill:var(--cyan)}
.cmap.all text{fill:var(--cream);stroke:var(--navy);stroke-width:7;font-size:30px}
.cmap-pin circle{fill:var(--navy);stroke:var(--cream);stroke-width:4}
.cmap-pin .pulse{fill:var(--yellow);stroke:none;opacity:.55;transform-box:fill-box;transform-origin:center;animation:pin 2.4s ease-out infinite}
.cmap .cmap-pin text{display:none}
@keyframes pin{0%{transform:scale(.5);opacity:.7}100%{transform:scale(1.7);opacity:0}}
.cmap.only .cmap-city path{fill:rgba(253,248,241,.1);stroke:rgba(253,248,241,.34);stroke-width:2.5}
.cmap.only a.cmap-city:hover path{fill:rgba(253,248,241,.22)}
.cmap.only .cmap-city.here path{fill:var(--cyan);stroke:var(--cream);stroke-width:4}
.cmap.only text{fill:var(--navy);stroke:none;font-size:38px}
.route-line{fill:none;stroke:var(--yellow);stroke-width:7;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.route-from{fill:var(--cream);stroke:var(--navy);stroke-width:4}
.route-to{fill:var(--yellow);stroke:var(--navy);stroke-width:5}

/* areas hub: explorer */
.xp{display:grid;gap:1.25rem;background:var(--navy);color:var(--cream);border-radius:var(--r-lg);padding:1.5rem 1.25rem;overflow:hidden}
.xp>*{min-width:0}
.xp-text{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.xp-text .lead{color:rgba(253,248,241,.88);font-size:1.0625rem}
.xp-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.xp-chip{min-height:2.75rem;padding:.5rem .875rem;border-radius:var(--r-btn);border:1px solid var(--cream-16);background:transparent;color:var(--cream);font:inherit;font-weight:700;font-size:.9375rem;cursor:pointer;transition:background .2s,color .2s}
.xp-chip.on,.xp-chip:hover{background:var(--cyan);color:var(--navy);border-color:var(--cyan)}
.xp-map{background:rgba(253,248,241,.05);border-radius:var(--r);padding:.75rem}
.xp-map{flex-direction:column;gap:.5rem}
.xp-legend{margin:0;font-size:.8125rem;color:rgba(253,248,241,.75);display:flex;align-items:center;gap:.5rem}
.xp-legend i{width:.75rem;height:.75rem;border-radius:50%;background:var(--navy);border:2px solid var(--cream);box-shadow:0 0 0 3px rgba(255,194,22,.5)}
.xp-body .btn svg{width:1rem;height:1rem}
.xp-cards{display:grid}
.xp-card{grid-area:1/1;min-width:0;position:relative;border-radius:var(--r);overflow:hidden;min-height:18rem;display:flex;align-items:flex-end;opacity:0;visibility:hidden;transition:opacity .45s,visibility .45s}
.xp-card.on{opacity:1;visibility:visible}
.xp-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.xp-card.on img{transform:none}
.xp-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,21,38,.05) 20%,rgba(13,21,38,.86) 78%)}
.xp-body{min-width:0;position:relative;z-index:1;padding:1.25rem;display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}
.xp-side{font-size:.75rem;font-weight:700;letter-spacing:.08rem;text-transform:uppercase;color:var(--cyan)}
.xp-body .credit{color:rgba(253,248,241,.7)}
/* two sides of the water */
.sides-grid{display:grid;gap:1.25rem;margin-top:2rem}
.side{min-width:0}
.side .h3{display:flex;align-items:baseline;gap:.75rem;margin-bottom:.875rem}
.side .h3 small{font-family:var(--body);font-size:.8125rem;font-weight:700;letter-spacing:.047rem;text-transform:uppercase;color:var(--ink-64)}
.side-tiles{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}
.side-tile{position:relative;display:block;border-radius:var(--r);overflow:hidden;aspect-ratio:1/1;color:var(--cream);text-decoration:none;min-width:0}
.side-tile.big{grid-column:1/-1;aspect-ratio:16/10}
.side-tile img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.side-tile:hover img{transform:scale(1.06)}
.side-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,21,38,0) 45%,rgba(13,21,38,.82))}
.side-name{position:absolute;z-index:1;left:.875rem;right:.875rem;bottom:.75rem;display:flex;justify-content:space-between;align-items:center;font-family:var(--heading);font-weight:700;font-size:1.125rem;line-height:1.1}
.side-name svg{width:1rem;height:1rem;flex:none}
.water{position:relative;height:3.5rem;border-radius:var(--r);background:repeating-linear-gradient(100deg,rgba(46,158,158,.2) 0 14px,rgba(46,158,158,.08) 14px 28px);display:grid;place-items:center}
.water span{font-size:.75rem;font-weight:700;letter-spacing:.14rem;text-transform:uppercase;color:var(--teal-deep);background:var(--cream);padding:.25rem .75rem;border-radius:var(--r-btn)}
.credits{margin-top:1.25rem}
/* office */
.office{display:grid;background:var(--navy);color:var(--cream);border-radius:var(--r-lg);overflow:hidden}
.office-text{padding:1.75rem 1.25rem;display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.office address{font-style:normal;font-size:1.25rem;line-height:1.35}
.office dl{display:grid;gap:.75rem;margin:0}
.office dt{font-size:.75rem;font-weight:700;letter-spacing:.08rem;text-transform:uppercase;color:var(--cyan)}
.office dd{margin:0;font-weight:600}
.office dd a{color:inherit}
.office-photo{position:relative;margin:0;min-height:15rem}
.office-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.office-photo figcaption{position:absolute;right:.5rem;bottom:.5rem;background:rgba(13,21,38,.7);padding:.2rem .5rem;border-radius:.5rem}
.office-photo .credit{color:var(--cream)}

/* city page: postcard hero */
.pc{position:relative;margin:1rem var(--pad) 0;border-radius:var(--r-lg);overflow:hidden;background:var(--navy);color:var(--cream);min-height:38rem;display:flex;align-items:flex-end}
.pc-bg,.pc-bg img{position:absolute;inset:0;width:100%;height:100%}
.pc-bg img{object-fit:cover}
.pc::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,21,38,.1) 0%,rgba(13,21,38,.2) 30%,rgba(13,21,38,.86) 66%,rgba(13,21,38,.94))}
.pc-in{position:relative;z-index:1;display:grid;gap:1.25rem;padding:1.5rem 1.25rem 3rem}
.pc-in>*{min-width:0}
.pc-text{display:flex;flex-direction:column;gap:.875rem;align-items:flex-start}
.pc-side{font-size:.75rem;font-weight:700;letter-spacing:.1rem;text-transform:uppercase;color:var(--cyan)}
.pc-h1{font-family:var(--heading);font-weight:700;text-transform:uppercase;line-height:.9;margin:0}
.pc-h1 span{display:block;font-size:1rem;letter-spacing:.06rem;margin-bottom:.5rem}
.pc-h1 strong{display:block;font-size:clamp(2.75rem,13.5vw,9rem);letter-spacing:-.03em;text-wrap:balance}
.pc .lead{font-size:1.0625rem;color:rgba(253,248,241,.92);max-width:38rem}
.pc .hero-actions{display:none}
.pc-loc{display:flex;align-items:center;gap:.875rem;background:rgba(13,21,38,.55);backdrop-filter:blur(8px);border:1px solid var(--cream-16);border-radius:var(--r);padding:.625rem .875rem;width:max-content;max-width:100%}
.pc-loc .cmap{width:5.5rem;flex:none}
.pc-loc .cmap text{display:none}
.pc-loc p{margin:0;font-size:.8125rem;line-height:1.3;color:rgba(253,248,241,.8)}
.pc-loc strong{display:block;font-family:var(--heading);font-size:1.0625rem;color:var(--cream)}
.pc-credit{position:absolute;z-index:1;right:.75rem;left:1.25rem;text-align:right;bottom:.5rem;color:rgba(253,248,241,.6);font-size:.625rem}
/* scenes */
.scenes .head{margin-bottom:2rem}
.scene{display:grid;gap:1.25rem;padding:1.5rem 0;align-items:center}
.scene>*{min-width:0}
.scene figure{margin:0;overflow:hidden;aspect-ratio:4/5;max-height:28rem;width:82%}
.scene figure img{width:100%;height:100%;object-fit:cover}
.scene.s1 figure{border-radius:999px 999px var(--r-lg) var(--r-lg)}
.scene.s2 figure{border-radius:var(--r-lg);transform:rotate(-3deg);margin-left:auto;margin-right:1rem;box-shadow:.75rem .75rem 0 var(--teal)}
.scene.s3 figure{border-radius:var(--r-lg) 999px 999px var(--r-lg);aspect-ratio:1/1}
.scene-text{display:flex;flex-direction:column;gap:.75rem;align-items:flex-start;position:relative}
.scene-n{font-size:.75rem;font-weight:700;letter-spacing:.1rem;text-transform:uppercase;color:var(--teal-deep)}
.scene-h{font-family:var(--heading);font-weight:700;font-size:clamp(2rem,5vw,3.75rem);line-height:.98;text-transform:uppercase;letter-spacing:-.02em;margin:0;text-wrap:balance}
.scene-text p{font-size:1.125rem;line-height:1.5;max-width:32rem;color:var(--ink-64)}
/* route */
.route{background:var(--navy);color:var(--cream);padding:var(--section) 0}
.route h2 em{color:var(--cyan)}
.route-in{display:grid;gap:2rem}
.route-in>*{min-width:0}
.route-text{display:flex;flex-direction:column;gap:1.5rem;align-items:flex-start}
.stops{list-style:none;margin:0;padding:0;display:grid;gap:1.5rem;position:relative}
.stops::before{content:"";position:absolute;left:.4375rem;top:.5rem;bottom:2.5rem;width:2px;background:repeating-linear-gradient(180deg,var(--yellow) 0 6px,transparent 6px 12px)}
.stops li{position:relative;padding-left:2rem;display:flex;flex-direction:column;gap:.25rem}
.stops li::before{content:"";position:absolute;left:0;top:.3rem;width:1rem;height:1rem;border-radius:50%;background:var(--cream);box-shadow:0 0 0 4px var(--navy)}
.stops li:last-child::before{background:var(--yellow)}
.stops strong{font-family:var(--heading);font-size:1.375rem;line-height:1.1}
.stops span{color:rgba(253,248,241,.78)}
.route-map{background:rgba(253,248,241,.05);border-radius:var(--r-lg);padding:1rem}
.route-map .cmap{max-height:26rem}
.route-map .cmap text{display:none}
.route-note{margin:.5rem 0 0;font-size:.75rem;color:rgba(253,248,241,.55);text-align:center}
.route+.section.tight{padding-top:var(--section)}
/* rail */
.rail-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem}
.rail-nav{display:none;gap:.5rem}
.rail-btn{width:3rem;height:3rem;border-radius:50%;border:0;background:var(--navy);color:var(--cream);display:grid;place-items:center;cursor:pointer;transition:background .2s}
.rail-btn:hover{background:var(--teal-deep)}
.rail-btn:disabled{opacity:.3;cursor:default}
.rail-btn svg{width:1.125rem;height:1.125rem}
.rail-btn.prev svg{transform:rotate(180deg)}
.rail{list-style:none;margin:0;display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--pad) 2.5rem;scroll-padding-left:var(--pad);scrollbar-width:none;-webkit-overflow-scrolling:touch}
.rail::-webkit-scrollbar{display:none}
.rail>li{flex:none;width:72vw;max-width:19rem;scroll-snap-align:start}
.rail>li:nth-child(even){margin-top:1.5rem}
.rail-card{position:relative;display:flex;align-items:flex-end;aspect-ratio:3/4;border-radius:var(--r-lg);overflow:hidden;color:var(--cream);text-decoration:none;background:var(--navy);margin:0}
.rail-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.rail-card:hover img{transform:scale(1.06)}
.rail-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,21,38,.1) 35%,rgba(13,21,38,.9))}
.rail-n{position:absolute;z-index:1;top:1rem;left:1rem;font-family:var(--heading);font-size:1rem;background:var(--cream);color:var(--navy);border-radius:var(--r-btn);padding:.2rem .6rem}
.rail-body{position:relative;z-index:1;padding:1.125rem;display:flex;flex-direction:column;gap:.375rem}
.rail-body strong{font-family:var(--heading);font-size:1.375rem;line-height:1.05}
.rail-body span{font-size:.9375rem;line-height:1.35;color:rgba(253,248,241,.84)}
.rail-card.all{background:var(--teal-deep);align-items:flex-start;flex-direction:column-reverse;justify-content:space-between}
.rail-card.all::after{display:none}
.rail-card.all>svg{width:2rem;height:2rem;margin:1.125rem}
.rail-card.shot .rail-body strong{font-size:1.125rem}
/* big quote */
.bigq{position:relative;overflow:hidden;background:var(--navy);color:var(--cream);padding:clamp(4rem,10vw,8rem) 0;isolation:isolate}
.bigq>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.28;z-index:-1;filter:saturate(.7)}
.bigq figure{margin:0;display:flex;flex-direction:column;gap:1.5rem;max-width:62rem}
.bigq-top{display:flex;align-items:center;gap:.75rem}
.bigq-top svg.g{width:1.75rem;height:1.75rem;background:#fff;border-radius:50%;padding:.2rem}
.bigq blockquote{margin:0;font-family:var(--heading);font-weight:700;font-size:clamp(1.625rem,4.4vw,3.5rem);line-height:1.08;letter-spacing:-.01em;text-wrap:balance}
.bigq figcaption{font-weight:700;display:flex;flex-direction:column;gap:.125rem}
.bigq figcaption span{font-weight:400;color:rgba(253,248,241,.7);font-size:.9375rem}
.bigq+.section.tight{padding-top:var(--section)}

/* why E3R */
.founder-in{display:grid;gap:2rem;align-items:center}
.founder-in>*{min-width:0}
.founder-photo{position:relative;margin:0 1rem 0 .5rem;max-width:24rem}
.founder-photo img{width:100%;height:auto;border-radius:999px 999px var(--r-lg) var(--r-lg);box-shadow:1rem 1rem 0 var(--teal)}
.founder-photo figcaption{position:absolute;left:-.5rem;bottom:1.5rem;background:var(--navy);color:var(--cream);border-radius:var(--r);padding:.625rem 1rem;font-family:var(--heading);font-size:1.25rem;line-height:1.1;transform:rotate(-3deg)}
.founder-photo figcaption span{display:block;font-family:var(--body);font-size:.75rem;font-weight:700;letter-spacing:.08rem;text-transform:uppercase;color:var(--cyan)}
.founder-text{display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start}
.founder-facts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;width:100%}
.founder-facts li{border-top:3px solid var(--navy);padding-top:.625rem;display:flex;flex-direction:column;gap:.25rem}
.founder-facts strong{font-family:var(--heading);font-size:clamp(2rem,6vw,3.5rem);line-height:1}
.founder-facts span{font-size:.875rem;line-height:1.3;color:var(--ink-64)}
.founder .rating{background:var(--lift);box-shadow:0 0 0 1px var(--ink-16)}
.mv{background:var(--navy);color:var(--cream);padding:var(--section) 0}
.mv-in{display:grid;gap:3rem}
.mv-block{display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start;min-width:0}
.mv-big{font-family:var(--heading);font-weight:700;font-size:clamp(1.75rem,4.6vw,3.75rem);line-height:1.04;letter-spacing:-.01em;margin:0;text-wrap:balance}
.mv-big em{color:var(--cyan)}
.mv-small{color:rgba(253,248,241,.78);max-width:36rem;font-size:1.0625rem;margin:0}
.mv+.section{padding-top:var(--section)}
.values-in{display:grid;gap:1.5rem}
.values-in>*{min-width:0}
.values-list ol{list-style:none;margin:1.5rem 0 0;padding:0}
.val{width:100%;display:flex;gap:1rem;align-items:flex-start;text-align:left;background:none;border:0;border-top:1px solid var(--ink-16);padding:1.125rem 0;font:inherit;color:var(--ink-64);cursor:pointer;transition:color .25s,padding .35s}
.val-n{font-family:var(--heading);font-size:.9375rem;padding-top:.5rem;color:var(--teal-deep)}
.val-t{display:flex;flex-direction:column;gap:.25rem}
.val-t strong{font-family:var(--heading);font-size:clamp(1.75rem,4vw,3rem);line-height:1;text-transform:uppercase;transition:color .25s}
.val-t span{font-size:1.0625rem;max-height:0;overflow:hidden;transition:max-height .45s}
.val.on{color:var(--navy);padding-left:.5rem}
.val.on .val-t strong{color:var(--teal-deep)}
.val.on .val-t span{max-height:6rem}
.values-stage{position:relative;aspect-ratio:4/5;max-height:30rem;border-radius:var(--r-lg);overflow:hidden;background:var(--depth)}
.values-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity .6s,transform 1.1s cubic-bezier(.2,.7,.2,1)}
.values-stage img.on{opacity:1;transform:none}
.crew{list-style:none;margin:2rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.crew-card{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--depth);transition:rotate .45s cubic-bezier(.2,.7,.2,1),translate .45s cubic-bezier(.2,.7,.2,1)}
.crew-card img{width:100%;height:auto;display:block;transition:scale .9s cubic-bezier(.2,.7,.2,1)}
.crew-card p{position:absolute;left:.5rem;bottom:.5rem;margin:0;background:var(--cream);border-radius:.75rem;padding:.375rem .625rem;display:flex;flex-direction:column;line-height:1.15}
.crew-card strong{font-family:var(--heading);font-size:.9375rem}
.crew-card span{font-size:.6875rem;font-weight:700;letter-spacing:.08rem;text-transform:uppercase;color:var(--teal-deep)}
.crew-card:nth-child(even){margin-top:1.5rem;margin-bottom:-1.5rem}
.crew-card.lead p{background:var(--navy);color:var(--cream)}
.crew-card.lead span{color:var(--cyan)}
.crewsec{padding-bottom:calc(clamp(2.5rem,5vw,4rem) + 1.5rem)}
.crew-join{position:relative;overflow:hidden;border-radius:var(--r-lg);background:var(--navy);color:#fff;display:flex;margin-top:1.5rem;margin-bottom:-1.5rem;isolation:isolate}
.crew-join img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;z-index:-2;transition:scale .9s cubic-bezier(.2,.7,.2,1)}
.crew-join::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,21,38,.72),rgba(13,21,38,.5) 45%,rgba(31,122,122,.86))}
.crew-join a{flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:1rem;padding:1.125rem;color:inherit;text-decoration:none;text-shadow:0 1px 10px rgba(13,21,38,.6)}
.crew-join strong{font-family:var(--heading);font-size:clamp(1.375rem,3vw,2.5rem);line-height:1;text-transform:uppercase}
.crew-join span{display:inline-flex;align-items:center;gap:.5rem;font-weight:700}
.crew-join svg{width:1rem;height:1rem}
.why-gap{height:clamp(2.5rem,5vw,4rem)}
.why-marq{margin-top:0;padding:clamp(2rem,4vw,3rem) 0;background:var(--navy);color:var(--cream)}
.why-marq .marq{margin-top:0}

@media (hover:hover){
  .crew-card:hover{rotate:-2deg;translate:0 -4px}
  .crew-card:nth-child(even):hover{rotate:2deg}
  .crew-card:hover img,.crew-join:hover img{scale:1.05}
}
@media (min-width:40rem){
  .pc{min-height:40rem}
  .pc-in{padding:2.5rem 2.5rem 3rem}
  .pc .hero-actions{display:flex}
  .pc .lead{font-size:1.25rem}
  .pc::after{background:linear-gradient(180deg,rgba(13,21,38,.05) 0%,rgba(13,21,38,.3) 40%,rgba(13,21,38,.9))}
  .rail-nav{display:flex}
  .rail>li{width:19rem}
  .crew{grid-template-columns:repeat(3,1fr);gap:1rem}
  .crew-join{margin-top:0;margin-bottom:0}
  .crew-card strong{font-size:1.125rem}
  .side-tile.big{aspect-ratio:16/8}
}
@media (min-width:64rem){
  .xp{grid-template-columns:1fr 1.05fr;grid-template-rows:auto 1fr;padding:2.5rem;gap:1.5rem 2.5rem}
  .xp-text{grid-column:1;grid-row:1}
  .xp-map{grid-column:2;grid-row:1/3;display:flex;align-items:center;padding:1.5rem}
  .xp-cards{grid-column:1;grid-row:2}
  .xp-card{min-height:17rem}
  .sides-grid{grid-template-columns:5fr auto 2fr;align-items:stretch}
  .side{display:flex;flex-direction:column}
  .side .side-tiles{flex:1}
  .side.south .side-tiles{grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr}
  .side .side-tile{aspect-ratio:auto;min-height:12rem}
  .side.south .side-tile.big{grid-column:1;grid-row:1/3;aspect-ratio:auto}
  .side.north .side-tiles{grid-template-columns:1fr;grid-template-rows:1fr 1fr}
  .water{width:3.5rem;height:auto;background:repeating-linear-gradient(190deg,rgba(46,158,158,.2) 0 14px,rgba(46,158,158,.08) 14px 28px)}
  .water span{writing-mode:vertical-rl;padding:.75rem .25rem}
  .office{grid-template-columns:1fr 1.2fr}
  .office-text{padding:3.5rem}
  .pc-in{grid-template-columns:1fr auto;align-items:end;padding:3.5rem}
  .pc-loc{flex-direction:column;align-items:flex-start;padding:1rem;width:13rem}
  .pc-loc .cmap{width:100%}
  .scene{grid-template-columns:1fr 1fr;gap:4rem;padding:2.5rem 0}
  .scene figure{width:76%;max-height:34rem;justify-self:end}
  .scene.s2 figure{order:2;justify-self:start;margin-left:0}
  .scene.s2 .scene-text{align-items:flex-end;text-align:right}
  .scene.s3 figure{width:86%}
  .route-in{grid-template-columns:1fr 1.1fr;gap:4rem;align-items:center}
  .founder-in{grid-template-columns:.8fr 1.2fr;gap:5rem}
  .founder-photo{justify-self:end}
  .mv-in{grid-template-columns:1.25fr 1fr;gap:5rem}
  .mv-block.alt{margin-top:7rem;padding-left:2.5rem;border-left:2px solid var(--cream-16)}
  .values-in{grid-template-columns:1.2fr .8fr;gap:4rem;align-items:start}
  .values-stage{position:sticky;top:6rem;max-height:none}
  .crew{grid-template-columns:repeat(6,1fr)}
  .crew-card.lead{grid-column:span 2;grid-row:span 2}
  .crew-card:nth-child(even),.crew-join{margin-top:0;margin-bottom:0}
  .crew-join a{padding:2rem}
  .crew-join{grid-column:span 4}
  .crew-join::after{background:linear-gradient(90deg,rgba(13,21,38,.88),rgba(13,21,38,.55) 45%,rgba(31,122,122,.35))}
  .crewsec{padding-bottom:clamp(2.5rem,5vw,4rem)}
}
@media (prefers-reduced-motion:reduce){.cmap-pin .pulse{animation:none}.xp-card img,.values-stage img{transition:none}}

/* ---------- points checklist: the list is the page ---------- */
.pt{padding:1.5rem 0 var(--section)}
.pt-top{display:flex;flex-direction:column;gap:.75rem;align-items:flex-start;margin-bottom:1.25rem}
.pt-h1{font-family:var(--heading);font-weight:700;text-transform:uppercase;font-size:clamp(1.625rem,4vw,3.25rem);line-height:1.02;letter-spacing:-.01em;margin:0;max-width:52rem;text-wrap:balance}
.pt-h1 em{font-style:normal;color:var(--teal-deep)}
.pt-bar{position:sticky;top:3.5rem;z-index:5;display:flex;flex-direction:column;gap:.5rem;background:var(--cream);padding:.625rem 0;margin:0 calc(var(--pad)*-1);padding-inline:var(--pad);box-shadow:0 8px 12px -12px rgba(13,21,38,.35)}
.pt-switch{display:grid;grid-template-columns:1fr 1fr;gap:.375rem;background:var(--depth);border-radius:var(--r);padding:.375rem}
.pt-switch button{min-height:3.5rem;border:0;border-radius:.75rem;background:transparent;color:var(--navy);font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;transition:background .25s,color .25s}
.pt-switch strong{font-family:var(--heading);font-size:1.125rem;line-height:1.1}
.pt-switch span{font-size:.8125rem;color:var(--ink-64)}
.pt-switch button[aria-pressed="true"]{background:var(--navy);color:var(--cream)}
.pt-switch button[aria-pressed="true"] span{color:var(--cyan)}
.pt-switch button[data-mode="deep"][aria-pressed="true"]{background:var(--teal-deep)}
.pt-switch button[data-mode="deep"][aria-pressed="true"] span{color:var(--yellow)}
.pt-jump{display:flex;gap:.375rem;overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--pad)*-1);padding:0 var(--pad)}
.pt-jump::-webkit-scrollbar{display:none}
.pt-jump a{flex:none;min-height:2.5rem;display:inline-flex;align-items:center;padding:.25rem .875rem;border-radius:var(--r-btn);border:1px solid var(--ink-16);font-weight:700;font-size:.875rem;text-decoration:none;color:var(--navy)}
.pt-note{margin:1rem 0;color:var(--ink-64);font-size:1rem}
.pt-grid{display:grid;gap:.75rem}
.pt-card{background:var(--lift);border-radius:var(--r-lg);padding:1.125rem;scroll-margin-top:11.5rem;min-width:0}
.pt-card header{display:flex;align-items:center;gap:.75rem;padding-bottom:.875rem;border-bottom:1px solid var(--ink-8)}
.pt-card .icon{width:2.5rem;height:2.5rem;border-radius:.75rem;background:var(--depth);display:grid;place-items:center;flex:none}
.pt-card .icon svg{width:1.25rem;height:1.25rem}
.pt-card .h3{font-size:1.5rem;margin:0;flex:1}
.pt-count{font-size:.8125rem;color:var(--ink-64);white-space:nowrap}
.pt-count b{font-family:var(--heading);font-size:1.25rem;color:var(--navy)}
.pt-card ul{list-style:none;margin:0;padding:0}
.pt-card li{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--ink-8);font-size:1.0625rem;line-height:1.3;font-weight:600;transition:opacity .3s}
.pt-card li:last-child{border-bottom:0;padding-bottom:0}
.pt-card li>svg{width:1.5rem;height:1.5rem;flex:none;padding:.3rem;border-radius:50%;background:var(--teal-deep);color:#fff}
.pt-card li span{flex:1}
.pt-card li em{font-style:normal;flex:none;white-space:nowrap;font-size:.6875rem;font-weight:700;letter-spacing:.06rem;text-transform:uppercase;background:var(--yellow);color:var(--navy);border-radius:var(--r-btn);padding:.2rem .5rem;margin-top:.1rem}
.pt[data-mode="standard"] li.deep{font-weight:400;color:var(--ink-64)}
.pt[data-mode="standard"] li.deep>svg{background:transparent;color:transparent;box-shadow:inset 0 0 0 2px var(--ink-16)}
.pt[data-mode="standard"] li.deep em{background:var(--depth);color:var(--ink-64)}
.pt[data-mode="deep"] li.deep>svg{background:var(--yellow);color:var(--navy)}
.pt[data-mode="deep"] li.deep{animation:ptin .45s ease both}
@keyframes ptin{from{transform:translateX(-8px);opacity:.3}to{transform:none;opacity:1}}
.pt-foot{display:flex;flex-wrap:wrap;gap:1rem;margin:1.25rem 0 0;font-size:.875rem;color:var(--ink-64)}
.pt-key{display:inline-flex;align-items:center;gap:.5rem}
.pt-key svg{width:1.125rem;height:1.125rem;padding:.2rem;border-radius:50%;background:var(--teal-deep);color:#fff}
.pt-key i{width:1.125rem;height:1.125rem;border-radius:50%;background:var(--yellow)}
@media (min-width:48rem){
  .pt{padding-top:2.5rem}
  .pt-bar{flex-direction:row;align-items:center;justify-content:space-between;position:static;box-shadow:none;margin:0;padding:0}
  .pt-switch{min-width:26rem}
  .pt-jump{display:none}
  .pt-grid{grid-template-columns:1fr 1fr;gap:1rem}
  .pt-card{padding:1.5rem}
}
@media (min-width:75rem){.pt-grid{grid-template-columns:repeat(4,1fr);align-items:start}.pt-card li{font-size:1rem}}
@media (prefers-reduced-motion:reduce){.pt[data-mode="deep"] li.deep{animation:none}}

/* careers: short header, the positions come first */
.jobhead{padding:1.5rem 0 var(--section)}
.jobhead .pt-top{margin-bottom:1.5rem}
.job-tags{display:flex;flex-wrap:wrap;gap:.375rem}
.jobhead .job .btn{flex:none}
@media (min-width:48rem){.jobhead{padding-top:2.5rem}}
@media (max-width:40rem){.jobhead .job{padding:1.25rem 0;gap:1rem}.jobhead .job .btn{width:100%;justify-content:center}}

/* ---------- green cleaning page: calmer, natural, organic shapes ---------- */
.gr-hero,.gr-what,.gr-surf,.gr-waste,.gr-who,.gr-tips{--sage:#e4eee6;--moss:#1f5d54}
.gr-leaf{width:1.5rem;height:1.5rem;color:var(--teal-deep);flex:none}
.gr-hero{padding:1.5rem 0 0;overflow:hidden}
.gr-hero-in{display:grid;gap:2rem;align-items:center}
.gr-hero-in>*{min-width:0}
.gr-hero-text{display:flex;flex-direction:column;gap:1.125rem;align-items:flex-start}
.gr-h1{font-family:var(--heading);font-weight:700;font-size:clamp(2.25rem,5.6vw,4.75rem);line-height:1;letter-spacing:-.02em;margin:0;text-wrap:balance}
.gr-h1 em,.gr-big em{font-style:normal;color:var(--moss,#1f5d54)}
.gr-hero .lead{max-width:34rem;color:var(--ink-64)}
.gr-hero .hero-actions{display:none;align-items:center;gap:1.25rem}
.gr-hero-art{position:relative;max-width:26rem;margin:0 auto;width:86%}
.gr-hero-art::before{content:"";position:absolute;inset:-6% -10% 8% 10%;background:var(--sage);border-radius:48% 52% 46% 54%/56% 44% 56% 44%;z-index:-1}
.gr-hero-art img{width:100%;height:auto;border-radius:999px 999px 1.5rem 1.5rem;display:block}
.gr-hero-art>.gr-leaf{position:absolute;left:-1.5rem;bottom:12%;width:5rem;height:5rem;transform:rotate(-18deg);color:var(--teal)}
.gr-pill{position:absolute;background:var(--lift);border-radius:var(--r-btn);padding:.5rem .875rem;font-weight:700;font-size:.875rem;box-shadow:0 6px 20px rgba(13,21,38,.12);white-space:nowrap}
.gr-pill::before{content:"";display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:var(--teal);margin-right:.5rem;vertical-align:middle}
.gr-pill.p1{top:16%;right:-8%}.gr-pill.p2{top:48%;left:-10%}.gr-pill.p3{bottom:7%;right:-6%}
.gr-def{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.gr-big{font-family:var(--heading);font-weight:700;font-size:clamp(1.625rem,3.8vw,3.25rem);line-height:1.08;letter-spacing:-.01em;margin:0;max-width:60rem;text-wrap:balance}
.gr-principles{list-style:none;margin:2.5rem 0 0;padding:0;display:grid;gap:.75rem}
.gr-principles li{background:var(--sage);padding:1.5rem;display:flex;flex-direction:column;gap:.625rem}
.gr-principles li:nth-child(1){border-radius:2.5rem 1rem 1rem 1rem}.gr-principles li:nth-child(2){border-radius:1rem 2.5rem 1rem 1rem}
.gr-principles li:nth-child(3){border-radius:1rem 1rem 1rem 2.5rem}.gr-principles li:nth-child(4){border-radius:1rem 1rem 2.5rem 1rem}
.gr-principles p{color:var(--ink-64)}
.gr-surf{background:var(--sage);padding:var(--section) 0;border-radius:2.5rem 2.5rem 0 0}
.gr-surf h2 em,.gr-waste h2 em,.gr-who h2 em,.gr-tips h2 em{color:var(--moss)}
.gr-surf-in{display:grid;gap:2rem}
.gr-surf-in>*{min-width:0}
.gr-tabs{display:flex;gap:.375rem;overflow-x:auto;scrollbar-width:none;margin:1.5rem calc(var(--pad)*-1) 0;padding:0 var(--pad)}
.gr-tabs::-webkit-scrollbar{display:none}
.gr-tabs button{flex:none;min-height:2.75rem;padding:.5rem 1rem;border-radius:var(--r-btn);border:1px solid rgba(31,93,84,.25);background:transparent;color:var(--navy);font:inherit;font-weight:700;font-size:.9375rem;cursor:pointer;transition:background .2s,color .2s}
.gr-tabs button[aria-selected="true"]{background:var(--moss);border-color:var(--moss);color:#fff}
.gr-panel{margin-top:1rem;background:var(--cream);border-radius:1.5rem;padding:1.5rem;display:flex;flex-direction:column;gap:.875rem}
.gr-panel[hidden]{display:none}
.gr-sub{font-size:.75rem;font-weight:700;letter-spacing:.08rem;text-transform:uppercase;color:var(--moss)}
.gr-use{font-family:var(--heading);font-weight:700;font-size:clamp(1.375rem,2.6vw,2rem);line-height:1.1;margin:0}
.gr-why{color:var(--ink-64);margin:0}
.gr-why strong{display:block;font-size:.75rem;letter-spacing:.08rem;text-transform:uppercase;color:var(--navy);margin-bottom:.25rem}
.gr-cloth{display:flex;align-items:center;gap:.5rem;margin:0;font-size:.875rem;font-weight:600;padding-top:.875rem;border-top:1px solid var(--ink-8)}
.gr-cloth i{width:1.75rem;height:1rem;border-radius:.25rem}
.gr-surf-photo{position:relative;margin:0;aspect-ratio:4/3;border-radius:1.5rem 6rem 1.5rem 1.5rem;overflow:hidden}
.gr-surf-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s}
.gr-surf-photo img.on{opacity:1}
.gr-surf+.section{padding-top:var(--section)}
.gr-waste-in{display:grid;gap:2rem;align-items:center}
.gr-waste-in>*{min-width:0}
.gr-waste figure{margin:0;max-width:26rem}
.gr-waste figure img{width:100%;height:auto;border-radius:50%;display:block}
.gr-swaps{list-style:none;margin:1.5rem 0 0;padding:0}
.gr-swaps li{display:grid;gap:.25rem;padding:1rem 0;border-top:1px solid var(--ink-16)}
.gr-swaps s{color:var(--ink-64);font-size:.9375rem}
.gr-swaps span{display:flex;gap:.625rem;align-items:flex-start;font-weight:600;font-size:1.0625rem;line-height:1.3}
.gr-swaps svg{width:1.375rem;height:1.375rem;flex:none;padding:.25rem;border-radius:50%;background:var(--moss);color:#fff}
.gr-who{background:var(--sage);padding:var(--section) 0}
.gr-who-in{display:grid;gap:2rem;align-items:center}
.gr-who-in>*{min-width:0}
.gr-who figure{margin:0}
.gr-who figure img{width:100%;height:auto;display:block;border-radius:6rem 1.5rem 6rem 1.5rem}
.gr-wholist{margin:1.5rem 0 0;display:grid;gap:1.25rem}
.gr-wholist dt{font-family:var(--heading);font-weight:700;font-size:1.5rem;line-height:1.1}
.gr-wholist dd{margin:.25rem 0 0;color:var(--ink-64)}
.gr-honest-box{background:var(--moss,#1f5d54);background:#1f5d54;color:var(--cream);border-radius:2.5rem;padding:2rem 1.25rem}
.gr-honest-box h2 em{color:var(--yellow)}
.gr-honest-box ul{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:1.25rem}
.gr-honest-box li{border-top:1px solid rgba(253,248,241,.25);padding-top:1rem}
.gr-honest-box p{color:rgba(253,248,241,.85);margin-top:.5rem}
.gr-tips-in{display:grid;gap:2rem;align-items:center}
.gr-tips-in>*{min-width:0}
.gr-tips figure{margin:0}
.gr-tips figure img{width:100%;height:auto;display:block;border-radius:999px 999px 1.5rem 1.5rem}
.gr-tiplist{list-style:none;counter-reset:tip;margin:1.5rem 0 0;padding:0}
.gr-tiplist li{counter-increment:tip;display:grid;grid-template-columns:2.5rem 1fr;gap:.125rem .75rem;padding:.875rem 0;border-top:1px solid var(--ink-16)}
.gr-tiplist li::before{content:counter(tip);grid-row:1/3;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--sage);color:var(--moss);font-family:var(--heading);font-weight:700;display:grid;place-items:center}
.gr-tiplist strong{font-size:1.0625rem}
.gr-tiplist span{color:var(--ink-64);grid-column:2}
.gr-method{margin-top:2.5rem;background:var(--sage);border-radius:1.5rem;padding:1.25rem;display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.gr-method p{margin:0}
.gr-quote{margin:0;background:var(--sage,#e4eee6);background:#e4eee6;border-radius:2.5rem 1rem 2.5rem 1rem;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:1rem}
.gr-quote blockquote{margin:0;font-family:var(--heading);font-weight:700;font-size:clamp(1.25rem,2.6vw,2rem);line-height:1.2}
.gr-quote figcaption{font-weight:700}.gr-quote figcaption span{display:block;font-weight:400;color:var(--ink-64);font-size:.9375rem}
@media (min-width:40rem){
  .gr-hero .hero-actions{display:flex}
  .gr-principles{grid-template-columns:1fr 1fr}
  .gr-tabs{flex-wrap:wrap;overflow:visible;margin-inline:0;padding:0}
  .gr-method{flex-direction:row;align-items:center;padding:1.5rem 2rem}.gr-method p{flex:1}
  .gr-honest-box{padding:3rem}
}
@media (min-width:64rem){
  .gr-hero{padding-top:3rem}
  .gr-hero-in{grid-template-columns:1.15fr .85fr;gap:4rem}
  .gr-hero-art{width:100%;max-width:28rem}
  .gr-principles{grid-template-columns:repeat(4,1fr)}
  .gr-surf-in{grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
  .gr-waste-in{grid-template-columns:.8fr 1.2fr;gap:5rem}
  .gr-who-in{grid-template-columns:1fr 1fr;gap:5rem}
  .gr-wholist{grid-template-columns:1fr 1fr;gap:2rem}
  .gr-honest-box ul{grid-template-columns:repeat(3,1fr);gap:2.5rem}
  .gr-tips-in{grid-template-columns:1.2fr .8fr;gap:5rem}
  .gr-quote{padding:3.5rem}
}

/* ---------- article template: icon share row, rich text body, generated contents ---------- */
.share{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.share a,.share button{position:relative;display:grid;place-items:center;width:2.75rem;height:2.75rem;min-height:0;padding:0;border:0;border-radius:50%;background:var(--depth);color:var(--navy);cursor:pointer;transition:background .2s,color .2s,transform .2s}
.share a:hover,.share button:hover,.share a:focus-visible,.share button:focus-visible{background:var(--navy);color:var(--cream);transform:translateY(-2px)}
.share svg{width:1.125rem;height:1.125rem}
.share [data-tip]::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + .5rem);transform:translate(-50%,4px);background:var(--navy);color:var(--cream);font-family:var(--body);font-size:.75rem;font-weight:700;line-height:1;white-space:nowrap;padding:.4rem .6rem;border-radius:.5rem;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:3}
.share [data-tip]:hover::after,.share [data-tip]:focus-visible::after,.share [data-tip].tip-on::after{opacity:1;transform:translate(-50%,0)}
.share [data-tip].tip-on{background:var(--teal-deep);color:#fff}
.share a:first-child[data-tip]::after{left:0;transform:translate(0,4px)}
.share a:first-child[data-tip]:hover::after,.share a:first-child[data-tip]:focus-visible::after{transform:none}
.share.end{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--ink-16)}
.art-main{min-width:0}
.art{padding-bottom:clamp(3rem,6vw,5rem)}
.rich{display:block;font-size:1.125rem;line-height:1.65;max-width:44rem}
.rich>*+*{margin-top:1.125rem}
.rich>p:first-child{font-size:1.25rem;line-height:1.5}
.rich h2{font-family:var(--heading);font-weight:700;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.1;margin-top:2.5rem;scroll-margin-top:6rem}
.rich h3{font-family:var(--heading);font-weight:700;font-size:1.375rem;line-height:1.15;margin-top:2rem;scroll-margin-top:6rem}
.rich h4{font-weight:700;font-size:1.125rem;margin-top:1.5rem}
.rich a{color:var(--teal-deep);font-weight:600;text-underline-offset:.2em}
.rich ul,.rich ol{padding-left:0;list-style:none;display:grid;gap:.5rem;counter-reset:r}
.rich li{position:relative;padding-left:1.75rem}
.rich ul>li::before{content:"";position:absolute;left:.25rem;top:.62em;width:.5rem;height:.5rem;border-radius:50%;background:var(--teal)}
.rich ol>li{counter-increment:r}
.rich ol>li::before{content:counter(r) ".";position:absolute;left:0;font-weight:700;color:var(--teal-deep)}
.rich blockquote{margin-left:0;margin-right:0;padding:1rem 1.25rem;border-left:4px solid var(--teal);background:var(--depth);border-radius:0 var(--r) var(--r) 0;font-size:1.25rem;line-height:1.4}
.rich img,.rich figure{max-width:100%;height:auto;border-radius:var(--r)}
.rich figcaption{font-size:.875rem;color:var(--ink-64);margin-top:.5rem}
.rich-table{overflow-x:auto;border:1px solid var(--ink-16);border-radius:var(--r);-webkit-overflow-scrolling:touch}
.rich table{width:100%;min-width:28rem;border-collapse:collapse;font-size:1rem}
.rich tr:last-child td{border-bottom:0}
.rich td{vertical-align:top}
.rich th,.rich td{text-align:left;padding:.625rem .75rem;border-bottom:1px solid var(--ink-16)}
.rich th{font-weight:700;background:var(--depth)}
.rich hr{border:0;border-top:1px solid var(--ink-16);margin:2rem 0}
.toc h3,.side-links h3,.toc .toc-title,.side-links .side-title{margin-top:0;font-family:var(--heading);font-weight:700;font-size:1.25rem;line-height:1.1;color:var(--teal-deep);padding-bottom:.625rem;margin-bottom:.25rem;border-bottom:2px solid var(--teal)}
.toc[hidden]{display:none}
.toc ol{list-style:none;padding-left:0;counter-reset:toc;gap:0}
.toc li{counter-increment:toc}
.toc a{display:flex;gap:.625rem;padding:.5rem 0;font-weight:600;color:var(--ink-64);border-bottom:1px solid var(--ink-8);transition:color .2s}
.toc li:last-child a{border-bottom:0}
.toc a::before{content:counter(toc,decimal-leading-zero);font-family:var(--heading);font-size:.8125rem;color:var(--teal-deep);padding-top:.15rem}
.toc a.on,.toc a:hover{color:var(--navy)}
.toc a.on{font-weight:700}
.side-links a{padding:.375rem 0}
@media (max-width:64rem){.art-side{margin-top:2.5rem}}

/* ---------- mega menu ---------- */
.nav-links{align-items:center}
.nav-top{display:inline-flex;align-items:center;gap:.25rem;text-decoration:none;font-weight:600;padding:.5rem 0;white-space:nowrap}
.nav-chev{width:1rem;height:1rem;transition:transform .25s}
.mega{background:var(--cream)}
.mega a{text-decoration:none}
.mega img{background:var(--depth);object-fit:cover}
.mega-in{display:grid;gap:1.5rem;padding:1.25rem 0}
.mega-col{min-width:0}
.mega-lead{display:flex;align-items:center;gap:.75rem;padding:.5rem;margin:-.5rem;border-radius:var(--r);transition:background .2s}
.mega-lead:hover{background:var(--depth)}
.mega-lead img{width:3.25rem;height:3.25rem;border-radius:.75rem;flex:none}
.mega-lead span{display:flex;flex-direction:column;line-height:1.2}
.mega-lead strong{font-family:var(--heading);font-size:1.125rem}
.mega-lead small,.mega-list small{font-size:.8125rem;font-weight:400;color:var(--ink-64)}
.mega-col ul{list-style:none;margin:.875rem 0 0;padding:.75rem 0 0;border-top:1px solid var(--ink-16);display:grid;gap:.125rem}
.mega-col li a{display:block;padding:.4rem 0;font-weight:600;font-size:.9375rem}
.mega-col li a:hover,.mega-list a:hover strong,.mega-city:hover span{color:var(--teal-deep)}
.mega-card{position:relative;display:flex;align-items:flex-end;border-radius:var(--r-lg);overflow:hidden;background:var(--navy);color:var(--cream);min-height:13rem;isolation:isolate}
.mega-card img{position:absolute;inset:0;width:100%;height:100%;z-index:-2;background:var(--navy)}
.mega-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,21,38,.25),rgba(13,21,38,.9) 70%)}
.mega-card>div{padding:1.125rem;display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}
.mega-card p{font-size:.875rem;line-height:1.35;margin:0}
.mega-card .mega-big{font-family:var(--heading);font-weight:700;font-size:1.875rem;line-height:1}
.mega-h{display:block;font-size:.75rem;font-weight:700;letter-spacing:.08rem;text-transform:uppercase;color:var(--teal-deep);margin-bottom:.625rem}
.mega-cities{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.625rem}
.mega-city{display:flex;flex-direction:column;gap:.375rem;font-weight:700;font-size:.9375rem}
.mega-city img{width:100%;height:auto;aspect-ratio:200/136;border-radius:.75rem;transition:transform .4s}
.mega-city:hover img{transform:scale(1.03)}
.mega-list{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}
.mega-list a{display:flex;flex-direction:column;gap:.125rem;padding:.625rem .75rem;margin:0 -.75rem;border-radius:var(--r);transition:background .2s}
.mega-list a:hover{background:var(--depth)}
.mega-list strong{font-family:var(--heading);font-size:1.125rem;line-height:1.2;display:flex;align-items:center;gap:.5rem}
.mega-list em{font-style:normal;font-family:var(--body);font-size:.6875rem;font-weight:700;letter-spacing:.06rem;text-transform:uppercase;background:var(--yellow);color:var(--navy);border-radius:var(--r-btn);padding:.15rem .5rem}
.mega-foot{display:flex;align-items:center;gap:.5rem;padding:1rem 0;border-top:1px solid var(--ink-16);font-weight:700;color:var(--teal-deep)}
.mega-foot svg{width:1rem;height:1rem;transition:transform .25s}
.mega-foot:hover svg{transform:translateX(4px)}
@media (min-width:64.0625rem){
  .nav{padding-top:0;padding-bottom:0}
  .nav-logo{padding:.5rem 0}
  .nav-logo img{width:4.25rem;height:4.25rem}
  .nav-links{align-self:stretch}
  .nav-item{display:flex;align-items:stretch}
  .nav-links>.nav-top,.nav-item>.nav-top{align-self:stretch;padding:0}
  .nav-item>.nav-top:hover,.nav-links>.nav-top:hover,.nav-item.open>.nav-top{color:var(--teal-deep)}
  .mega{position:absolute;left:0;right:0;top:100%;border-top:1px solid var(--ink-8);box-shadow:0 24px 40px -24px rgba(13,21,38,.35);border-radius:0 0 var(--r-lg) var(--r-lg);
        opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s ease,transform .25s ease,visibility 0s linear .2s;max-height:calc(100vh - 5rem);overflow:auto}
  .nav-item.open>.mega,.nav-item:focus-within>.mega{opacity:1;visibility:visible;transform:none;transition-delay:0s}
  .no-js .nav-item:hover>.mega{opacity:1;visibility:visible;transform:none}
  .nav-item.open .nav-chev{transform:rotate(180deg)}
  .mega-in{padding:2rem 0 1.5rem;gap:2.5rem}
  .mega-in.services{grid-template-columns:repeat(3,1fr) 19rem}
  .mega-in.areas{grid-template-columns:5fr 2fr}
  .mega-in.areas .mega-side:first-child .mega-cities{grid-template-columns:repeat(5,1fr)}
  .mega-in.company{grid-template-columns:1fr 22rem;align-items:start}
  .mega-in.company .mega-list{grid-template-columns:1fr 1fr;gap:.5rem 2rem}
}
@media (max-width:64rem){
  .nav{padding-top:.5rem;padding-bottom:.5rem}
  .nav-links.open{max-height:calc(100dvh - 4.5rem);overflow-y:auto;align-items:stretch}
  .nav-links.open .nav-top{justify-content:space-between;padding:.875rem 0;border-bottom:1px solid var(--ink-8);min-height:3rem}
  .mega{display:none;border-bottom:1px solid var(--ink-8)}
  .mega>.container{padding:0}
  .nav-item.open>.mega{display:block}
  .nav-item.open .nav-chev{transform:rotate(180deg)}
  .nav-item.open>.nav-top{color:var(--teal-deep)}
  .mega-card{min-height:9rem}
  .mega-card .mega-big{font-size:1.5rem}
  .mega-cities{grid-template-columns:repeat(3,1fr)}
  .mega-col li a,.mega-city{min-height:2.75rem}
  .mega-col li a{display:flex;align-items:center}
}
@media (prefers-reduced-motion:reduce){.mega,.nav-chev{transition:none}}

/* ---------- service process: photo per step, slides on phones, sticky stage on wide screens ---------- */
.proc{background:var(--navy);color:var(--cream);padding:var(--section) 0;overflow:hidden;--p:.2}
.proc h2 em{font-style:normal;color:var(--cyan)}
.proc+.section.tight{padding-top:var(--section)}
.proc+.pband{margin-top:0;border-top:1px solid var(--cream-16)}
.section:has(>.band)+.proc{margin-top:calc(var(--section)*-1)}
.proc-grid{margin-top:2rem}
.proc-stage{display:none}
.proc-steps{list-style:none;margin:0 calc(var(--pad)*-1);padding:0 var(--pad) .5rem;display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:var(--pad);scrollbar-width:none}
.proc-steps::-webkit-scrollbar{display:none}
.proc-steps li{flex:none;width:78vw;max-width:20rem;scroll-snap-align:start;background:rgba(253,248,241,.06);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;opacity:.55;transform:scale(.97);transform-origin:left center;transition:opacity .4s,transform .4s}
.proc-steps li.on{opacity:1;transform:none}
.proc-steps figure{margin:0;aspect-ratio:4/3;overflow:hidden}
.proc-steps figure img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transform:scale(1.08);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.proc-steps li.on figure img{transform:none}
.proc-text{padding:1.125rem 1.125rem 1.375rem;display:flex;flex-direction:column;gap:.5rem}
.proc-n{font-family:var(--heading);font-weight:700;font-size:2.25rem;line-height:1;color:var(--cyan)}
.proc-text .h3{font-size:1.375rem}
.proc-text p{color:rgba(253,248,241,.78);font-size:1rem;line-height:1.45;margin:0}
.proc-bar{height:4px;border-radius:2px;background:var(--cream-16);margin-top:1.25rem;overflow:hidden}
.proc-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--cyan));transform-origin:left;transform:scaleX(.2);transition:transform .25s}
@media (min-width:64rem){
  .proc{overflow:visible}
  .proc-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:5rem;align-items:start;margin-top:3rem}
  .proc-stage{display:block;position:sticky;top:6.5rem;aspect-ratio:4/5;max-height:calc(100vh - 9rem);border-radius:var(--r-lg);overflow:hidden;background:rgba(253,248,241,.06)}
  .proc-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.1);clip-path:inset(0 0 100% 0);transition:opacity .5s,transform 1.4s cubic-bezier(.2,.7,.2,1),clip-path .7s cubic-bezier(.6,0,.2,1)}
  .proc-stage img.on{opacity:1;transform:none;clip-path:inset(0)}
  .proc-count{position:absolute;left:1.25rem;bottom:1.25rem;background:rgba(13,21,38,.7);backdrop-filter:blur(8px);border-radius:var(--r-btn);padding:.5rem 1rem;font-weight:700;font-size:.9375rem;letter-spacing:.04rem}
  .proc-count b{font-family:var(--heading);font-size:1.5rem;color:var(--cyan)}
  .proc-ring{position:absolute;right:1.25rem;bottom:1.25rem;width:3.5rem;height:3.5rem;transform:rotate(-90deg);background:rgba(13,21,38,.7);border-radius:50%;padding:.375rem}
  .proc-ring circle{fill:none;stroke:var(--cream-16);stroke-width:4}
  .proc-ring .arc{stroke:var(--cyan);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:.8;transition:stroke-dashoffset .6s cubic-bezier(.2,.7,.2,1)}
  .proc-steps{display:block;overflow:visible;margin:0;padding:0 0 0 2.5rem;position:relative}
  .proc-steps::before,.proc-steps::after{content:"";position:absolute;left:.4375rem;top:1rem;bottom:1rem;width:2px;background:var(--cream-16)}
  .proc-steps::after{background:var(--cyan);transform-origin:top;transform:scaleY(var(--p));transition:transform .6s cubic-bezier(.2,.7,.2,1)}
  .proc-steps li{width:auto;max-width:none;background:none;border-radius:0;overflow:visible;position:relative;padding:2.75rem 0;opacity:.38;transform:none;cursor:pointer;transition:opacity .4s}
  .proc-steps li.on,.proc-steps li:hover{opacity:1}
  .proc-steps li::before{content:"";position:absolute;left:-2.5rem;top:3.4rem;width:1rem;height:1rem;border-radius:50%;background:var(--navy);box-shadow:inset 0 0 0 2px var(--cream-64);z-index:1;transition:background .3s,box-shadow .3s,transform .3s}
  .proc-steps li.on::before,.proc-steps li.done::before{background:var(--cyan);box-shadow:0 0 0 5px rgba(8,232,248,.18)}
  .proc-steps li.on::before{transform:scale(1.25)}
  .proc-steps figure{display:none}
  .proc-text{padding:0;gap:.75rem;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
  .proc-steps li.on .proc-text{transform:translateX(.75rem)}
  .proc-n{font-size:3.5rem}
  .proc-text .h3{font-size:clamp(1.75rem,2.6vw,2.5rem)}
  .proc-text p{font-size:1.125rem;max-width:30rem}
  .proc-bar{display:none}
}
@media (prefers-reduced-motion:reduce){.proc-steps li,.proc-steps figure img,.proc-stage img,.proc-text{transition:none}}

/* ---------- pricing calculator ---------- */
.px{padding:1.5rem 0 var(--section)}
.px .pt-top{margin-bottom:1.5rem}
.px-grid{display:grid;gap:1.25rem}
.px-steps{display:grid;gap:1rem;min-width:0}
.px-card{background:var(--lift);border-radius:var(--r-lg);padding:1.125rem;min-width:0}
.px-card>header{display:flex;gap:.875rem;align-items:flex-start;margin-bottom:1.125rem}
.px-num{flex:none;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--navy);color:var(--cream);font-family:var(--heading);font-weight:700;display:grid;place-items:center}
.px-card header .h3{font-size:1.5rem;margin:0}
.px-card header p{margin:.125rem 0 0;font-size:.9375rem;color:var(--ink-64)}
/* size */
.px-size{display:flex;align-items:flex-end;gap:1rem;margin-bottom:.75rem}
.px-house{width:5.5rem;height:5rem;display:flex;align-items:flex-end;justify-content:center;background:var(--depth);border-radius:var(--r);padding:.375rem;flex:none}
.px-house svg{width:4.5rem;height:4.5rem;color:var(--teal-deep);transform-origin:bottom center;transform:scale(calc(.5 + var(--s,.4)*.5));transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.px-sqft{margin:0;font-size:1rem;color:var(--ink-64)}
.px-sqft strong{font-family:var(--heading);font-size:clamp(2.5rem,9vw,3.5rem);line-height:1;color:var(--navy);font-variant-numeric:tabular-nums;margin-right:.25rem}
.px-range{-webkit-appearance:none;appearance:none;width:100%;height:2.75rem;background:transparent;margin:0;cursor:pointer}
.px-range::-webkit-slider-runnable-track{height:.5rem;border-radius:.25rem;background:linear-gradient(90deg,var(--teal) var(--fill,40%),var(--depth) var(--fill,40%))}
.px-range::-moz-range-track{height:.5rem;border-radius:.25rem;background:var(--depth)}
.px-range::-moz-range-progress{height:.5rem;border-radius:.25rem;background:var(--teal)}
.px-range::-webkit-slider-thumb{-webkit-appearance:none;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--teal-deep);border:4px solid #fff;box-shadow:0 2px 8px rgba(13,21,38,.3);margin-top:-.625rem}
.px-range::-moz-range-thumb{width:1.25rem;height:1.25rem;border-radius:50%;background:var(--teal-deep);border:4px solid #fff;box-shadow:0 2px 8px rgba(13,21,38,.3)}
.px-range:focus-visible{outline:2px solid var(--teal-deep);outline-offset:4px;border-radius:.5rem}
.px-ends{display:flex;justify-content:space-between;font-size:.75rem;color:var(--ink-64);margin-top:-.25rem}
.px-presets{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-top:1rem}
.px-presets button{display:grid;grid-template-columns:auto 1fr;gap:0 .625rem;align-items:center;text-align:left;min-height:3.25rem;padding:.5rem .75rem;border:2px solid transparent;border-radius:var(--r);background:var(--depth);color:var(--navy);font:inherit;cursor:pointer;transition:border-color .2s,background .2s}
.px-presets svg{grid-row:1/3;width:1.5rem;height:1.5rem;color:var(--teal-deep)}
.px-presets button:nth-child(1) svg{width:1rem;height:1rem}.px-presets button:nth-child(2) svg{width:1.25rem;height:1.25rem}.px-presets button:nth-child(4) svg{width:1.75rem;height:1.75rem}
.px-presets strong{font-size:.9375rem;line-height:1.2}
.px-presets span{font-size:.75rem;color:var(--ink-64)}
.px-presets button[aria-pressed="true"]{border-color:var(--teal-deep);background:#eaf6f5}
/* frequency */
.px-freqs{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.px-freqs button{display:flex;flex-direction:column;align-items:flex-start;gap:.125rem;text-align:left;padding:.875rem;border:2px solid transparent;border-radius:var(--r);background:var(--depth);color:var(--navy);font:inherit;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s}
.px-freqs button:hover{border-color:var(--ink-16)}
.px-cal{display:flex;gap:.25rem;height:1.5rem;align-items:center;margin-bottom:.375rem;color:var(--teal-deep)}
.px-cal i{width:.875rem;height:1.125rem;border-radius:.25rem;background:var(--ink-16)}
.px-cal i.on{background:var(--teal)}
.px-cal svg{width:1.5rem;height:1.5rem}
.px-freqs strong{font-family:var(--heading);font-size:1.25rem;line-height:1.1}
.px-freqs small{font-size:.8125rem;color:var(--ink-64)}
.px-price{margin-top:.625rem;display:flex;align-items:baseline;gap:.375rem}
.px-price b{font-family:var(--heading);font-size:1.75rem;line-height:1;font-variant-numeric:tabular-nums}
.px-freqs button[aria-pressed="true"]{background:var(--navy);color:var(--cream)}
.px-freqs button[aria-pressed="true"] small{color:rgba(253,248,241,.7)}
.px-freqs button[aria-pressed="true"] .px-price b,.px-freqs button[aria-pressed="true"] .px-cal{color:var(--cyan)}
.px-freqs button[aria-pressed="true"] .px-cal i{background:rgba(253,248,241,.2)}
.px-freqs button[aria-pressed="true"] .px-cal i.on{background:var(--cyan)}
.px-move{margin-top:.75rem}
.px-move[hidden]{display:none}
.px-switch{display:flex;align-items:center;gap:.875rem;padding:.875rem;border-radius:var(--r);background:var(--depth);cursor:pointer}
.px-switch input{position:absolute;opacity:0;width:1px;height:1px}
.px-switch i{flex:none;width:2.75rem;height:1.5rem;border-radius:1rem;background:var(--ink-16);position:relative;transition:background .2s}
.px-switch i::after{content:"";position:absolute;top:.1875rem;left:.1875rem;width:1.125rem;height:1.125rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s}
.px-switch input:checked+i{background:var(--teal-deep)}
.px-switch input:checked+i::after{transform:translateX(1.25rem)}
.px-switch input:focus-visible+i{outline:2px solid var(--teal-deep);outline-offset:3px}
.px-switch span{display:flex;flex-direction:column;line-height:1.25}
.px-switch small{font-size:.8125rem;color:var(--ink-64)}
/* extras and zones */
.px-addons,.px-zones{display:grid;gap:.5rem;align-items:start}
.px-addon,.px-zone{border:2px solid transparent;border-radius:var(--r);background:var(--depth);transition:border-color .2s,background .2s}
.px-addon label,.px-zone{display:flex;align-items:center;gap:.75rem;padding:.75rem;cursor:pointer;min-height:3.5rem}
.px-ico{flex:none;width:2.5rem;height:2.5rem;border-radius:.75rem;background:var(--lift);display:grid;place-items:center;color:var(--teal-deep);transition:background .2s,color .2s}
.px-ico svg{width:1.375rem;height:1.375rem}
.px-name{flex:1;display:flex;flex-direction:column;line-height:1.25;min-width:0}
.px-name strong{font-size:.9375rem}
.px-name small{font-size:.8125rem;color:var(--ink-64)}
.px-tick{flex:none;width:1.5rem;height:1.5rem;border-radius:50%;box-shadow:inset 0 0 0 2px var(--ink-16);display:grid;place-items:center;color:transparent;transition:background .2s,box-shadow .2s}
.px-tick svg{width:.875rem;height:.875rem}
.px-addon.on,.px-zone:has(input:checked){border-color:var(--teal-deep);background:#eaf6f5}
.px-addon.on .px-ico,.px-zone:has(input:checked) .px-ico{background:var(--teal-deep);color:#fff}
.px-addon.on .px-tick{background:var(--teal-deep);box-shadow:none;color:#fff}
.px-zone:has(input:checked) small{color:var(--teal-deep);font-weight:700}
.px-addon:has(input:focus-visible),.px-zone:has(input:focus-visible){outline:2px solid var(--teal-deep);outline-offset:2px}
.px-step{display:flex;align-items:center;gap:.5rem;padding:0 .75rem .75rem 4rem}
.px-step[hidden]{display:none}
.px-step button{width:2.75rem;height:2.75rem;border-radius:50%;border:0;background:var(--lift);color:var(--navy);display:grid;place-items:center;cursor:pointer}
.px-step button svg{width:1rem;height:1rem}
.px-step output{min-width:1.75rem;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
.px-step b{margin-left:auto;font-family:var(--heading);font-size:1.125rem;color:var(--teal-deep)}
.px-notes{background:var(--depth);border-radius:var(--r-lg);padding:1.25rem}
.px-notes .h3{font-size:1.25rem;margin-bottom:.75rem}
.px-notes ul{list-style:none;margin:0;padding:0;display:grid;gap:.625rem}
.px-notes li{position:relative;padding-left:1.25rem;font-size:.9375rem;line-height:1.45;color:var(--ink-64)}
.px-notes li::before{content:"";position:absolute;left:.125rem;top:.55em;width:.4375rem;height:.4375rem;border-radius:50%;background:var(--teal)}
/* quote */
.px-quote{display:none}
.px-receipt{background:var(--lift);border-radius:var(--r-lg);padding:1.5rem;border:1px solid var(--ink-8);box-shadow:0 24px 40px -28px rgba(13,21,38,.35)}
.px-receipt .h3{font-size:1.5rem;margin-bottom:1rem}
.px-lines{list-style:none;margin:0;padding:0;display:grid;gap:.625rem}
.px-lines li{display:flex;align-items:flex-start;gap:.5rem;font-size:.9375rem;line-height:1.35}
.px-lines li span{flex:1;min-width:0}
.px-lines li strong{white-space:nowrap;font-variant-numeric:tabular-nums}
.px-x{flex:none;width:1.5rem;height:1.5rem;margin:-.125rem 0 0 -.25rem;border:0;border-radius:50%;background:none;color:#c0392b;font-size:1.125rem;line-height:1;cursor:pointer}
.px-x:hover{background:#fde8e8}
.px-total{display:flex;justify-content:space-between;align-items:baseline;margin:1.125rem 0;padding-top:1rem;border-top:1px dashed var(--ink-16)}
.px-total span{font-size:.9375rem;color:var(--ink-64)}
.px-total strong{font-family:var(--heading);font-size:3rem;line-height:1;font-variant-numeric:tabular-nums}
.px-receipt .btn{width:100%;justify-content:center}
.px-fine{margin:.75rem 0 0;font-size:.75rem;line-height:1.45;color:var(--ink-64);text-align:center}
.px-promo{margin:1rem 0 0}
.px-promo img{width:100%;height:auto;display:block;border-radius:var(--r-lg)}
.px-promo figcaption{font-size:.75rem;color:var(--ink-64);margin-top:.375rem;text-align:center}
.px-promo-m .px-promo{margin:0}
/* phone: the total rides at the bottom */
body:has(.px) .mbar{display:none}
.px-bar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--lift);border-top:1px solid var(--ink-16);box-shadow:0 -8px 28px rgba(13,21,38,.12);padding:.625rem var(--pad) calc(.625rem + env(safe-area-inset-bottom))}
.px-bar-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.px-bar-toggle{display:flex;align-items:center;gap:.5rem;background:none;border:0;padding:0;font:inherit;color:var(--navy);cursor:pointer;text-align:left;min-height:2.75rem}
.px-bar-toggle span{display:flex;flex-direction:column;line-height:1.05}
.px-bar-toggle small{font-size:.6875rem;color:var(--ink-64)}
.px-bar-toggle strong{font-family:var(--heading);font-size:1.75rem;font-variant-numeric:tabular-nums}
.px-bar-toggle svg{width:1.25rem;height:1.25rem;color:var(--ink-64);transition:transform .25s}
.px-bar.open .px-bar-toggle svg{transform:rotate(180deg)}
.px-bar-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}
.px-bar-more>ul{overflow:hidden;min-height:0}
.px-bar.open .px-bar-more{grid-template-rows:1fr}
.px-bar.open .px-bar-more>ul{padding-bottom:.75rem;margin-bottom:.625rem;border-bottom:1px solid var(--ink-16);max-height:45vh;overflow:auto}
.px~.section:last-of-type,body:has(.px) .footer{padding-bottom:5.5rem}
@media (min-width:40rem){
  .px-presets{grid-template-columns:repeat(4,1fr)}
  .px-freqs{grid-template-columns:repeat(4,1fr)}
  .px-addons,.px-zones{grid-template-columns:1fr 1fr}
  .px-card{padding:1.5rem}
}
@media (min-width:64rem){
  .px{padding-top:2.5rem}
  .px-grid{grid-template-columns:minmax(0,1fr) 22rem;gap:2rem;align-items:start}
  .px-quote{display:block;position:sticky;top:6.5rem}
  .px-bar,.px-promo-m{display:none}
  body:has(.px) .footer,.px~.section:last-of-type{padding-bottom:0}
}
@media (prefers-reduced-motion:reduce){.px-house svg,.px-bar-more{transition:none}}

/* ---------- booking form ---------- */
.bk{padding:1.5rem 0 var(--section)}
.bk .pt-top{margin-bottom:1.5rem}
.bk-layout{display:grid;gap:1.25rem}
.bk-form{display:block;min-width:0;--railn:0;background:none;padding:0;border-radius:0}
.bk-form .bk-nav .btn{width:auto}
.bk-rail{list-style:none;margin:0 0 1rem;padding:0;display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.bk-rail::before,.bk-rail::after{content:"";position:absolute;top:1.0625rem;left:12.5%;height:3px;border-radius:2px;background:var(--ink-16);width:75%}
.bk-rail::after{background:var(--teal-deep);width:calc(75%*var(--railn,0));transform-origin:left;transition:width .4s cubic-bezier(.2,.7,.2,1)}
.bk-rail li{display:flex;flex-direction:column;align-items:center;gap:.375rem;position:relative;z-index:1;font-size:.8125rem;font-weight:700;color:var(--ink-64)}
.bk-dot{width:2.25rem;height:2.25rem;border-radius:50%;background:var(--cream);box-shadow:inset 0 0 0 2px var(--ink-16);display:grid;place-items:center;font-family:var(--heading);color:var(--ink-64);transition:background .3s,color .3s,box-shadow .3s}
.bk-dot svg{display:none;width:1rem;height:1rem}
.bk-rail li.is-active{color:var(--navy)}
.bk-rail li.is-active .bk-dot{background:var(--navy);color:var(--cream);box-shadow:0 0 0 5px rgba(13,21,38,.1)}
.bk-rail li.is-done .bk-dot{background:var(--teal-deep);color:#fff;box-shadow:none}
.bk-rail li.is-done .bk-dot svg{display:block}.bk-rail li.is-done .bk-dot b{display:none}
.bk-card{background:var(--lift);border-radius:var(--r-lg);padding:1.25rem;border:1px solid var(--ink-8)}
.bk-panel[hidden],.bk-block[hidden]{display:none}
.bk-panel.is-active{animation:bkin .35s ease both}
@keyframes bkin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.bk-title{font-family:var(--heading);font-weight:700;font-size:clamp(1.5rem,3vw,2rem);line-height:1.1;margin:0;outline:0}
.bk-sub{margin:.375rem 0 1.25rem;color:var(--ink-64);font-size:.9375rem}
.bk-row{display:grid;gap:0 .75rem}
.bk-field{display:flex;flex-direction:column;gap:.375rem;margin-bottom:.875rem;min-width:0}
.bk-field label,.bk-label{font-size:.875rem;font-weight:700;margin:0}
.bk-label{margin:1rem 0 .5rem}
.bk-field label span,.bk-label span{color:var(--teal-deep)}
.bk-field input,.bk-field select,.bk-field textarea{width:100%;min-height:3rem;padding:.625rem .875rem;border:1.5px solid var(--ink-16);border-radius:.75rem;background:var(--cream);color:var(--navy);font:inherit;font-size:1rem}
.bk-field textarea{min-height:5.5rem;resize:vertical}
.bk-field input:focus,.bk-field select:focus,.bk-field textarea:focus{outline:2px solid var(--teal-deep);outline-offset:1px;border-color:var(--teal-deep)}
.bk-zip{margin:-.25rem 0 .875rem;font-size:.875rem;font-weight:700;border-radius:.75rem}
.bk-zip:empty{display:none}
.bk-zip.is-ok{background:#e3f4ee;color:#1d6b4f;padding:.5rem .75rem}
.bk-zip.is-no{background:#fdf0dc;color:#8a5a00;padding:.5rem .75rem}
.bk-zip[hidden]{display:none}
.bk-group{display:flex;flex-wrap:wrap;gap:.5rem}
.bk-chip{min-height:2.75rem;padding:.5rem 1rem;border:2px solid transparent;border-radius:var(--r-btn);background:var(--depth);color:var(--navy);font:inherit;font-weight:700;font-size:.9375rem;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.bk-chip:hover{border-color:var(--ink-16)}
.bk-chip.is-selected{background:var(--navy);color:var(--cream)}
.bk-group.big{display:grid;gap:.5rem}
.bk-group.big .bk-chip{display:grid;grid-template-columns:auto 1fr;gap:0 .875rem;align-items:center;text-align:left;border-radius:var(--r);padding:.875rem;min-height:4rem}
.bk-group.big svg{grid-row:1/3;width:2.75rem;height:2.75rem;padding:.625rem;border-radius:.75rem;background:var(--lift);color:var(--teal-deep)}
.bk-group.big span{font-family:var(--heading);font-size:1.25rem;line-height:1.1}
.bk-group.big small{font-size:.8125rem;font-weight:400;color:var(--ink-64)}
.bk-group.big .bk-chip.is-selected small{color:rgba(253,248,241,.75)}
.bk-group.big .bk-chip.is-selected svg{background:var(--teal-deep);color:#fff}
.bk-block{margin-top:.5rem;animation:bkin .3s ease both}
.bk-err{margin:.375rem 0 0;font-size:.875rem;font-weight:700;color:#b3261e}
.bk-err:empty{display:none}
.bk-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--ink-8)}
.bk-nav .btn svg{width:1rem;height:1rem}
.bk-back{min-height:2.75rem;padding:.5rem .25rem;background:none;border:0;font:inherit;font-weight:700;color:var(--ink-64);cursor:pointer;text-decoration:underline;text-underline-offset:.2em}
.bk-when{display:grid;gap:1.25rem;margin-bottom:1rem}
.bk-cal{background:var(--depth);border-radius:var(--r);padding:.875rem}
.bk-cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.625rem}
.bk-cal-head strong{font-family:var(--heading);font-size:1.25rem}
.bk-cal-head div{display:flex;gap:.375rem}
.bk-cal-nav{width:2.75rem;height:2.75rem;border-radius:50%;border:0;background:var(--lift);color:var(--navy);display:grid;place-items:center;cursor:pointer}
.bk-cal-nav svg{width:1rem;height:1rem}
.bk-cal-nav[data-cal-nav="prev"] svg{transform:rotate(180deg)}
.bk-cal-nav:disabled{opacity:.35;cursor:default}
.bk-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem}
.bk-when>*,.bk-card,.bk-panel{min-width:0}
.bk-dow{text-align:center;font-size:.75rem;font-weight:700;color:var(--ink-64);padding:.25rem 0}
.bk-day{aspect-ratio:1/1;min-width:0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--navy);font:inherit;font-weight:600;cursor:pointer;transition:background .15s,color .15s}
.bk-day:hover:not(:disabled){background:var(--lift)}
.bk-day.is-today{box-shadow:inset 0 0 0 2px var(--teal)}
.bk-day.is-selected{background:var(--teal-deep);color:#fff}
.bk-day:disabled{color:var(--ink-16);cursor:default}
.bk-slots{display:grid;gap:.5rem}
.bk-slot{display:flex;justify-content:space-between;align-items:center;gap:.75rem;min-height:3.25rem;padding:.625rem 1rem;border:2px solid transparent;border-radius:var(--r);background:var(--depth);color:var(--navy);font:inherit;cursor:pointer;transition:background .2s,color .2s}
.bk-slot strong{font-family:var(--heading);font-size:1.125rem}
.bk-slot span{font-size:.875rem;color:var(--ink-64)}
.bk-slot.is-selected{background:var(--navy);color:var(--cream)}
.bk-slot.is-selected span{color:var(--cyan)}
.bk-slot:disabled{opacity:.45;cursor:default}
.bk-slot.is-unavailable strong{text-decoration:line-through}
.bk-hint{margin:.5rem 0 0;font-size:.8125rem;color:var(--ink-64);min-height:1.2em}
.bk-picked{margin:.75rem 0 0;padding:.625rem .875rem;border-radius:.75rem;background:#eaf6f5;font-size:.9375rem;font-weight:600}
.bk-call{margin:0;padding:.875rem;border-radius:var(--r);background:var(--depth);font-size:.9375rem}
.bk-call a{font-weight:700;color:var(--teal-deep)}
.bk-summary{display:grid;gap:0;margin-bottom:1rem}
.bk-summary>div{display:grid;grid-template-columns:7.5rem 1fr;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--ink-8);font-size:.9375rem}
.bk-summary span{color:var(--ink-64)}
.bk-summary strong{overflow-wrap:anywhere}
.bk-summary.small>div{grid-template-columns:1fr;gap:.125rem;padding:.625rem 0}
.bk-summary.small span{font-size:.75rem;font-weight:700;letter-spacing:.06rem;text-transform:uppercase}
.bk-empty{margin:0;color:var(--ink-64);font-size:.9375rem}
.cf-turnstile{margin:.5rem 0}
.bk-preview-note{display:none;margin:.5rem 0;padding:.625rem .875rem;border-radius:.75rem;border:1px dashed var(--ink-16);font-size:.8125rem;color:var(--ink-64)}
.is-preview .bk-preview-note{display:block}
.is-preview .cf-turnstile{display:none}
.bk-form:not(.is-preview) .bk-sent{display:none}
.bk-success{text-align:center;padding:1.5rem 0;display:flex;flex-direction:column;align-items:center;gap:.75rem}
.bk-success[hidden]{display:none}
.bk-ok{width:4rem;height:4rem;border-radius:50%;background:var(--teal-deep);color:#fff;display:grid;place-items:center;animation:bkpop .5s cubic-bezier(.2,1.4,.4,1) both}
.bk-ok svg{width:2rem;height:2rem}
@keyframes bkpop{from{transform:scale(0)}to{transform:none}}
.bk-sent{width:100%;text-align:left;margin-top:.5rem;font-size:.875rem}
.bk-sent summary{cursor:pointer;color:var(--ink-64);padding:.5rem 0}
.bk-sent pre{margin:0;padding:.875rem;border-radius:.75rem;background:var(--navy);color:var(--cream);font-size:.75rem;line-height:1.5;overflow:auto;max-height:18rem}
.bk-side{display:grid;gap:1rem;align-content:start;min-width:0}
.bk-card2{background:var(--lift);border-radius:var(--r-lg);padding:1.25rem;border:1px solid var(--ink-8)}
.bk-card2 .h3,.bk-contact .h3{font-size:1.375rem;margin-bottom:.625rem}
.bk-contact{background:var(--navy);color:var(--cream);border-radius:var(--r-lg);padding:1.25rem}
.bk-contact ul{list-style:none;margin:0;padding:0;display:grid;gap:.875rem}
.bk-contact li{display:flex;gap:.75rem;align-items:flex-start}
.bk-contact svg{flex:none;width:2.25rem;height:2.25rem;padding:.5rem;border-radius:.625rem;background:var(--cream-16);color:var(--cyan)}
.bk-contact span{display:flex;flex-direction:column;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.bk-contact a{color:inherit}
.bk-contact small{font-weight:400;font-size:.8125rem;color:rgba(253,248,241,.7)}
.bk-next{list-style:none;margin:0 0 2rem;padding:0;display:grid;gap:.75rem}
.bk-next li{background:var(--depth);border-radius:var(--r-lg);padding:1.25rem;display:flex;flex-direction:column;gap:.5rem}
.bk-next li>span{font-family:var(--heading);font-weight:700;font-size:2rem;line-height:1;color:var(--teal-deep)}
.bk-next p{color:var(--ink-64);margin:0}
body:has(.bk) .mbar{display:none}
@media (min-width:40rem){
  .bk-row{grid-template-columns:1fr 1fr}
  .bk-row.three{grid-template-columns:repeat(3,1fr)}
  .bk-card{padding:2rem}
  .bk-group.big{grid-template-columns:repeat(3,1fr)}
  .bk-group.big .bk-chip{grid-template-columns:1fr;gap:.5rem;align-content:start}
  .bk-group.big svg{grid-row:auto}
  .bk-when{grid-template-columns:1.1fr .9fr;align-items:start}
  .bk-next{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:39.99rem){.bk-row.three{grid-template-columns:repeat(3,1fr)}.bk-step-name{font-size:.75rem}}
@media (min-width:64rem){
  .bk{padding-top:2.5rem}
  .bk-layout{grid-template-columns:minmax(0,1fr) 21rem;gap:2rem;align-items:start}
  .bk-side{position:sticky;top:6.5rem}
}
@media (prefers-reduced-motion:reduce){.bk-panel.is-active,.bk-block,.bk-ok{animation:none}}

/* ---------- social icons, thank-you page, gift cards ---------- */
.foot-social a,.socials a{display:grid;place-items:center;width:2.75rem;height:2.75rem;min-height:0;padding:0;border-radius:50%;background:var(--cream-16);color:inherit;transition:background .2s,color .2s,transform .2s}
.foot-social a:hover,.socials.on-dark a:hover{background:var(--cream);color:var(--navy);transform:translateY(-2px)}
.foot-social svg,.socials svg{width:1.25rem;height:1.25rem}
.socials{display:flex;gap:.5rem}
.socials a{background:var(--depth);color:var(--navy)}
.socials.on-dark a{background:var(--cream-16);color:var(--cream)}
.btn svg{flex:none}
.ty{padding:2rem 0 var(--section)}
.ty-in{display:grid;gap:2rem;align-items:center}
.ty-in>*{min-width:0}
.ty-text{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.ty-check{width:4.5rem;height:4.5rem;border-radius:50%;background:var(--teal-deep);color:#fff;display:grid;place-items:center;box-shadow:0 0 0 .75rem rgba(31,122,122,.14);animation:bkpop .6s cubic-bezier(.2,1.4,.4,1) both;margin:.75rem 0 .5rem .75rem}
.ty-check svg{width:2.25rem;height:2.25rem}
.ty .pt-h1{font-size:clamp(2rem,5vw,4rem)}
.ty-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem}
.ty-photo{margin:0;position:relative}
.ty-photo img{width:100%;height:auto;display:block;border-radius:var(--r-lg) 6rem var(--r-lg) var(--r-lg)}
.ty-photo figcaption{position:absolute;left:1rem;bottom:1rem;background:var(--navy);color:var(--cream);border-radius:var(--r-btn);padding:.5rem 1rem;font-weight:700;font-size:.875rem}
.ty-cards{display:grid;gap:.75rem}
.ty-card{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem;aspect-ratio:16/10;border-radius:var(--r-lg);overflow:hidden;color:var(--cream);text-decoration:none;padding:1.125rem;isolation:isolate}
.ty-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.ty-card:hover img{transform:scale(1.06)}
.ty-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,21,38,.05) 30%,rgba(13,21,38,.9))}
.ty-card span{display:flex;flex-direction:column;gap:.125rem}
.ty-card strong{font-family:var(--heading);font-size:1.375rem;line-height:1.1}
.ty-card small{font-size:.875rem;color:rgba(253,248,241,.82)}
.ty-card>svg{width:1.25rem;height:1.25rem;flex:none}
.ty-reviews{display:grid;gap:.75rem}
.ty-reach{background:var(--navy);color:var(--cream);border-radius:var(--r-lg);padding:1.5rem;display:grid;gap:1.25rem}
.ty-reach p{color:rgba(253,248,241,.8);margin:.25rem 0 0}
.ty-reach-btns{display:flex;flex-wrap:wrap;gap:.625rem;align-items:center}
.ty-reach .btn svg{width:1.125rem;height:1.125rem}
body:has(.ty) main>.section:last-child{padding-bottom:var(--section)}
.bk-to-thanks{margin-top:.25rem}
/* gift cards */
.gc{padding:1.5rem 0 var(--section)}
.gc-hero{display:grid;gap:1rem;align-items:center}
.gc-hero>*{min-width:0}
.gc-hero-text{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.gc .pt-h1{font-size:clamp(2.25rem,5.5vw,4.5rem)}
.gc-hero-img{margin:0}
.gc-hero-img img{width:100%;height:auto;display:block;border-radius:2.5rem;animation:gcfloat 6s ease-in-out infinite}
@keyframes gcfloat{50%{transform:translateY(-10px) rotate(-1deg)}}
.gc-build{display:grid;gap:1.5rem;margin-top:2rem;scroll-margin-top:6rem}
.gc-build>*{min-width:0}
.gc-form{display:block;background:var(--lift);border:1px solid var(--ink-8);border-radius:var(--r-lg);padding:1.25rem}
.gc-form .h3{font-size:1.5rem;margin-bottom:1rem}
.gc-label,.gc-field label{display:block;font-size:.875rem;font-weight:700;margin:0 0 .5rem}
.gc-field label span{font-weight:400;color:var(--ink-64)}
.gc-amts{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem}
.gc-amt{min-height:3.5rem;border:2px solid transparent;border-radius:var(--r);background:var(--depth);color:var(--navy);font-family:var(--heading);font-weight:700;font-size:1.5rem;cursor:pointer;transition:background .2s,color .2s}
.gc-amt[aria-pressed="true"]{background:var(--teal-deep);color:#fff}
.gc-other{grid-column:1/-1;display:flex;align-items:center;gap:.5rem;min-height:3.25rem;padding:0 .875rem;border:2px solid transparent;border-radius:var(--r);background:var(--depth);font-weight:700}
.gc-other.on{border-color:var(--teal-deep);background:#eaf6f5}
.gc-other .gc-dollar{margin-left:auto;font-family:var(--heading);font-size:1.25rem}
.gc-other input{width:7rem;min-height:2.5rem;border:0;background:transparent;font:inherit;font-family:var(--heading);font-size:1.25rem;color:var(--navy)}
.gc-other input:focus{outline:0}
.gc-other:focus-within{outline:2px solid var(--teal-deep);outline-offset:2px}
.gc-row{display:grid;grid-template-columns:1fr 1fr;gap:0 .75rem}
.gc-field{margin-bottom:.875rem;min-width:0}
.gc-field input,.gc-field textarea{width:100%;min-height:3rem;padding:.625rem .875rem;border:1.5px solid var(--ink-16);border-radius:.75rem;background:var(--cream);color:var(--navy);font:inherit;font-size:1rem}
.gc-field textarea{resize:vertical}
.gc-field input:focus,.gc-field textarea:focus{outline:2px solid var(--teal-deep);outline-offset:1px;border-color:var(--teal-deep)}
.gc-form .btn{width:100%;justify-content:center}
.gc-form .btn svg{width:1rem;height:1rem}
.gc-fine{margin:.625rem 0 0;font-size:.75rem;color:var(--ink-64);text-align:center}
.gc-stage{perspective:70rem;display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem 0}
.gc-card{--rx:0deg;--ry:0deg;--sx:30%;--sy:20%;width:100%;max-width:26rem;aspect-ratio:1.586/1;border-radius:1.25rem;background:linear-gradient(135deg,#2e9e9e 0%,#35c3c6 48%,#7ef0f5 100%);color:var(--navy);transform:rotateX(var(--rx)) rotateY(var(--ry));transform-style:preserve-3d;transition:transform .25s cubic-bezier(.2,.7,.2,1);box-shadow:0 2.5rem 3.5rem -1.5rem rgba(31,122,122,.6),0 0 0 1px rgba(255,255,255,.35) inset;position:relative;overflow:hidden}
.gc-card-in{position:absolute;inset:0;padding:6% 7%;display:flex;flex-direction:column}
.gc-card-top{display:flex;justify-content:space-between;align-items:center}
.gc-logo{display:grid;place-items:center;width:3.25rem;height:3.25rem;border-radius:.875rem;background:#fff;box-shadow:0 4px 12px rgba(13,21,38,.15)}
.gc-card-top img{width:2.5rem;height:2.5rem}
.gc-card-top>span:last-child{font-size:.75rem;font-weight:700;letter-spacing:.14rem;text-transform:uppercase;color:var(--navy);background:rgba(255,255,255,.55);border-radius:var(--r-btn);padding:.25rem .625rem}
.gc-card-amt{font-family:var(--heading);font-weight:700;font-size:clamp(2.5rem,11vw,4.25rem);line-height:1;margin:auto 0 .25rem;font-variant-numeric:tabular-nums}
.gc-card-msg{margin:0;font-size:.875rem;line-height:1.3;font-weight:600;color:var(--navy);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.gc-card-names{display:flex;justify-content:space-between;gap:1rem;margin:.75rem 0 0;padding-top:.625rem;border-top:1px solid rgba(13,21,38,.2);font-size:.75rem;color:var(--navy)}
.gc-card-names b{color:var(--navy);font-size:.875rem;overflow-wrap:anywhere}
.gc-card::before{content:"";position:absolute;right:16%;top:-10%;bottom:-10%;width:9%;background:linear-gradient(90deg,#e6a800,var(--yellow) 45%,#ffe08a 60%,var(--yellow));box-shadow:0 0 12px rgba(13,21,38,.15)}
.gc-bow{position:absolute;right:calc(20.5% - 1.6rem);top:26%;width:3.2rem;height:1.5rem;z-index:1}
.gc-bow::before,.gc-bow::after{content:"";position:absolute;top:0;width:52%;height:100%;background:radial-gradient(circle at 60% 40%,#ffe08a,var(--yellow) 55%,#d99a00);box-shadow:0 3px 8px rgba(13,21,38,.2)}
.gc-bow::before{left:-6%;border-radius:80% 20% 20% 80%/60% 50% 50% 60%;transform:rotate(-14deg)}
.gc-bow::after{right:-6%;border-radius:20% 80% 80% 20%/50% 60% 60% 50%;transform:rotate(14deg)}
.gc-card-in{z-index:2}
.gc-card-amt{text-shadow:0 2px 0 rgba(255,255,255,.35)}
.gc-shine{position:absolute;inset:0;z-index:3;background:radial-gradient(circle at var(--sx) var(--sy),rgba(255,255,255,.55),transparent 42%);pointer-events:none;mix-blend-mode:soft-light}
.gc-hint{margin:0;font-size:.8125rem;color:var(--ink-64)}
.gc-occ{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:.5rem}
.gc-occ button{min-height:2.5rem;padding:.25rem .875rem;border:1px solid var(--ink-16);border-radius:var(--r-btn);background:transparent;color:var(--navy);font:inherit;font-weight:700;font-size:.8125rem;cursor:pointer;transition:background .2s,border-color .2s}
.gc-occ button:hover{background:var(--yellow);border-color:var(--yellow)}
/* how it works: a path on a teal band */
.gc-how{background:linear-gradient(120deg,var(--teal-deep),var(--teal));color:#fff;padding:var(--section) 0;border-radius:2.5rem;margin:0 var(--pad)}
.gc-how .label.dark{background:rgba(255,255,255,.2);color:#fff}
.gc-how h2 em{font-style:normal;color:var(--yellow)}
.gc-path{list-style:none;margin:2.5rem 0 0;padding:0;display:grid;gap:2rem;position:relative}
.gc-path::before{content:"";position:absolute;left:1.9375rem;top:2rem;bottom:2rem;width:2px;background:repeating-linear-gradient(180deg,rgba(255,255,255,.7) 0 6px,transparent 6px 12px)}
.gc-path li{position:relative;display:flex;gap:1.25rem;align-items:flex-start}
.gc-node{flex:none;width:4rem;height:4rem;border-radius:50%;background:var(--yellow);color:var(--navy);display:grid;place-items:center;box-shadow:0 0 0 .5rem rgba(255,255,255,.15);position:relative;z-index:1}
.gc-node svg{width:1.75rem;height:1.75rem}
.gc-step{font-size:.75rem;font-weight:700;letter-spacing:.1rem;text-transform:uppercase;color:rgba(255,255,255,.8)}
.gc-path .h3{margin:.125rem 0 .375rem}
.gc-path p{margin:0;color:rgba(255,255,255,.88);max-width:22rem}
/* who it is for: photo and an editorial list */
.gc-who-in{display:grid;gap:2rem;align-items:center}
.gc-who-in>*{min-width:0}
.gc-who figure{margin:0}
.gc-who figure img{width:100%;height:auto;display:block;border-radius:999px 999px 1.5rem 1.5rem;aspect-ratio:4/5;object-fit:cover}
.gc-who h2{margin:.75rem 0 1.25rem}
.gc-lines{list-style:none;margin:0;padding:0}
.gc-lines li{display:grid;gap:.25rem;padding:1.125rem 0;border-top:1px solid var(--ink-16);transition:padding-left .35s cubic-bezier(.2,.7,.2,1)}
.gc-lines li:last-child{border-bottom:1px solid var(--ink-16)}
.gc-lines strong{font-family:var(--heading);font-size:clamp(1.625rem,3.4vw,2.75rem);line-height:1.05;text-transform:uppercase;transition:color .25s}
.gc-lines span{color:var(--ink-64);font-size:1.0625rem}
.gc-lines li:hover{padding-left:.75rem}
.gc-lines li:hover strong{color:var(--teal-deep)}
.gc-dialog{border:0;border-radius:var(--r-lg);padding:1.5rem;max-width:min(30rem,calc(100vw - 2rem));color:var(--navy);background:var(--cream)}
.gc-dialog::backdrop{background:rgba(13,21,38,.6)}
.gc-dialog dl{display:grid;grid-template-columns:auto 1fr;gap:.375rem 1rem;margin:1rem 0 1.25rem;font-size:.9375rem}
.gc-dialog dt{color:var(--ink-64)}.gc-dialog dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.gc-dialog form{display:block;background:none;padding:0}
@media (min-width:40rem){
  .ty-cards,.ty-reviews{grid-template-columns:repeat(3,1fr)}
  .ty-reach{grid-template-columns:1fr auto;align-items:center;padding:2rem 2.5rem}
  .gc-form{padding:2rem}
}
@media (min-width:64rem){
  .ty{padding-top:3.5rem}
  .ty-in{grid-template-columns:1.05fr .95fr;gap:4rem}
  .gc-hero{grid-template-columns:1fr 1fr;gap:3rem}
  .gc-build{grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
  .gc-stage{position:sticky;top:7rem;padding-top:2rem}
  .gc-path{grid-template-columns:repeat(3,1fr);gap:2.5rem}
  .gc-path::before{left:2rem;right:2rem;top:1.9375rem;bottom:auto;width:auto;height:2px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.7) 0 6px,transparent 6px 12px)}
  .gc-path li{flex-direction:column}
  .gc-how{padding-left:2rem;padding-right:2rem}
  .gc-who-in{grid-template-columns:.75fr 1.25fr;gap:5rem}
  .gc-how+.section{padding-top:var(--section)}
}
@media (prefers-reduced-motion:reduce){.gc-hero-img img,.ty-check{animation:none}.gc-card{transition:none}}

/* forms: hidden trap field for bots, verification slot and error line */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf-slot:empty{display:none}
.form-err{margin:0;padding:.625rem .875rem;border-radius:.75rem;background:#fdecea;color:#8a1c14;font-weight:700;font-size:.9375rem}
.form-err[hidden]{display:none}

/* post-construction: phases, before/after clips, checklist, home feature (2026-10-13) */
.phases{background:var(--navy);color:var(--cream);border-radius:var(--r-lg);padding:clamp(1.5rem,4vw,3.5rem)}
.phases .head p{color:var(--cream-64)}
.ph-list{display:flex;flex-direction:column}
.ph{display:grid;grid-template-columns:minmax(6rem,.5fr) 1.1fr 1.4fr;gap:clamp(1.25rem,3vw,3rem);align-items:start;padding:clamp(1.5rem,3vw,2.5rem) 0;border-top:1px solid var(--cream-16)}
.ph-n{font-family:var(--heading);font-weight:700;font-size:clamp(4rem,9vw,8rem);line-height:.8;letter-spacing:-.2rem;color:var(--cyan)}
.ph-name{display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}
.ph-k{font-weight:700;font-size:.875rem;letter-spacing:.047rem;text-transform:uppercase;color:var(--cream-64)}
.ph-name p{color:rgba(253,248,241,.88)}
.ph-name strong{color:var(--cream)}
.ph-items{display:flex;flex-direction:column;gap:.75rem}
.ph-items li{display:flex;gap:.625rem;align-items:flex-start}
.ph-items svg{flex:none;width:1.25rem;height:1.25rem;margin-top:.15rem;color:var(--cyan)}
.bav{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.bav-item{margin:0;display:flex;flex-direction:column;gap:1rem}
.bav-frame{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--navy);aspect-ratio:3/4}
.bav-frame video{display:block;width:100%;height:100%;object-fit:cover}
.bav-tag{position:absolute;top:1rem;left:1rem;border-radius:var(--r);padding:.25rem .625rem;font-size:.875rem;font-weight:700;letter-spacing:.047rem;text-transform:uppercase;background:var(--navy);color:var(--cream)}
.bav-tag.after{background:var(--teal-deep);color:#fff}
.bav-item figcaption{display:flex;flex-direction:column;gap:.25rem}
.bav-item figcaption strong{font-family:var(--heading);font-size:1.5rem;line-height:1.05}
.bav-item figcaption span{color:var(--ink-64)}
.vband-toggle.bav-toggle{position:static;margin-top:1rem;background:var(--navy)}
.ckl{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.ckl-col{background:var(--depth);border-radius:var(--r);padding:1.75rem;display:flex;flex-direction:column;gap:1rem}
.ckl-ic{width:2.75rem;height:2.75rem;border-radius:50%;background:var(--teal-deep);color:#fff;display:flex;align-items:center;justify-content:center}
.ckl-ic svg{width:1.375rem;height:1.375rem}
.ckl-col ul{display:flex;flex-direction:column}
.ckl-col li{padding:.75rem 0;border-top:1px solid var(--ink-16)}
.ckl-note{text-align:center;margin-top:1.5rem;font-size:.9375rem}
.pch{display:grid;grid-template-columns:1.15fr minmax(15rem,21rem) 1fr;gap:clamp(1.5rem,3.5vw,3.5rem);align-items:center;background:var(--depth);border-radius:var(--r-lg);padding:clamp(1.5rem,4vw,3.5rem)}
.pch-text{display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start}
.pch-text .h2{font-size:clamp(2rem,3.6vw,3.5rem)}
.pch-tags{display:flex;flex-wrap:wrap;gap:.5rem}
.pch-tags li{background:var(--lift);border-radius:var(--r-btn);padding:.5rem 1rem;font-weight:700}
.pch-clip{position:relative}
.pch-clip .bav-frame{box-shadow:0 20px 50px rgba(13,21,38,.18)}
.pch-steps{display:flex;flex-direction:column}
.pch-steps li{display:flex;gap:1.25rem;align-items:flex-start;padding:1.5rem 0;border-top:1px solid var(--ink-16)}
.pch-steps li:first-child{border-top:0;padding-top:0}
.pch-steps li:last-child{padding-bottom:0}
.pch-steps li>span{flex:none;font-family:var(--heading);font-weight:700;font-size:2.25rem;line-height:1;color:var(--teal-deep);min-width:3rem}
.pch-steps div{display:flex;flex-direction:column;gap:.375rem}
.pch-steps p{color:var(--ink-64)}
@media (max-width:64rem){
  .ph{grid-template-columns:5rem 1fr}
  .ph-items{grid-column:2}
  .ckl{grid-template-columns:1fr 1fr}
  .pch{grid-template-columns:1fr minmax(13rem,18rem)}
  .pch-steps{grid-column:1 / -1}
}
@media (max-width:40rem){
  .ph{grid-template-columns:1fr;gap:1rem}
  .ph-items{grid-column:auto}
  .bav{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(var(--pad)*-1);padding:0 var(--pad);scrollbar-width:none}
  .bav-item{scroll-snap-align:center}
  .ckl{grid-template-columns:1fr}
  .pch{grid-template-columns:1fr}
  .pch-clip{max-width:20rem;width:100%;justify-self:center}
}
@media (prefers-reduced-motion:reduce){.bav{scroll-behavior:auto}}

/* wide hero: the H1 runs across the photo instead of stacking in a narrow column (home, post-construction) */
.hero-bg.wide .h1{font-size:clamp(1.875rem,8vw,2.5rem)}
@media (min-width:40rem){
  .hero-bg.wide{align-items:flex-end}
  .hero-bg.wide::after{background:linear-gradient(180deg,rgba(13,21,38,.1) 0%,rgba(13,21,38,.3) 34%,rgba(13,21,38,.82) 78%)}
  .hero-bg.wide .hero-content{max-width:none}
  .hero-bg.wide .h1{max-width:72rem;font-size:clamp(2.5rem,4.6vw,4.5rem)}
  .hero-bg.wide .lead{max-width:46rem}
}
