/* Gardens Seamless Gutters: site.css
   Palette from the logo: charcoal roof + bar (#303030 / #181818 / #303018 measured by the brief),
   badge yellow #ebd000, roofline blue #0994cf. Neutrals for text and paper.
   Type: Archivo (expanded, 800) for display, echoing the wide GARDENS letters; Hanken Grotesk for body. */

@font-face{font-family:"Archivo";src:url(/fonts/archivo.woff2) format("woff2");font-weight:500 900;font-stretch:100% 125%;font-style:normal;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url(/fonts/hanken.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}

:root{
  --ink:#181818;
  --char:#303030;
  --olive:#303018;
  --coal:#121212;
  --panel:#222222;
  --yellow:#ebd000;
  --yellow-2:#f7df2b;
  --yellow-3:#c9b200;
  --blue:#0994cf;
  --paper:#f4f2ec;
  --paper-2:#ebe7dc;
  --line:#dcd7c9;
  --text:#181818;
  --mute:#5c574d;
  --on-dark:#f4f2ec;
  --on-dark-mute:#b8b3a6;
  --display:"Archivo","Arial Narrow",Arial,sans-serif;
  --body:"Hanken Grotesk","Segoe UI",Arial,sans-serif;
  --r:10px;
  --gut:max(20px,env(safe-area-inset-left),env(safe-area-inset-right)); /* notch-safe in landscape */
  --ease:cubic-bezier(.2,.7,.2,1);
}
@media (min-width:900px){:root{--gut:max(40px,env(safe-area-inset-left),env(safe-area-inset-right))}}

/* ---------- base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px;-webkit-tap-highlight-color:rgba(235,208,0,.2)}
a,button,summary,label,select,input,textarea{touch-action:manipulation}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media (max-width:899px){html{scroll-padding-bottom:96px}}
body{margin:0;font-family:var(--body);font-size:17px;line-height:1.6;color:var(--text);background:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}
@media (max-width:640px){body{font-size:16px}}
img,video,iframe{max-width:100%;display:block}
img{height:auto}
a{color:inherit}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
h1,h2,h3{font-family:var(--display);font-weight:800;font-stretch:112%;letter-spacing:-.02em;line-height:1;margin:0;text-wrap:balance}
h2{font-size:clamp(32px,6.2vw,62px)}
h3{font-size:clamp(20px,2.2vw,24px);font-stretch:108%;letter-spacing:-.01em;line-height:1.15}
.ic{width:20px;height:20px;flex:none}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}
::selection{background:var(--yellow);color:var(--ink)}
.wrap{width:min(100% - var(--gut)*2, 1240px);margin-inline:auto}
.narrow{max-width:780px}
.skip{position:absolute;left:12px;top:-80px;z-index:100;background:var(--yellow);color:var(--ink);padding:12px 18px;border-radius:6px;font-weight:700;text-decoration:none;transition:top .2s}
.skip:focus{top:12px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- buttons */
.btn{--h:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--h);padding:0 22px;border-radius:6px;border:1.5px solid transparent;font-family:var(--display);font-weight:700;font-stretch:108%;font-size:15px;line-height:1.1;letter-spacing:.01em;text-decoration:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .2s var(--ease),background-color .2s,color .2s,border-color .2s,box-shadow .2s}
.btn .ic{width:18px;height:18px}
.btn-y{background:var(--yellow);color:var(--ink);box-shadow:0 12px 26px -12px rgba(235,208,0,.6)}
.btn-y:hover{background:var(--yellow-2);transform:translateY(-1px);box-shadow:0 16px 30px -12px rgba(235,208,0,.7)}
.btn-y:active{transform:translateY(0)}
.btn-ghost{background:rgba(18,18,18,.28);color:#fff;border-color:rgba(255,255,255,.55)}
.btn-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn-line{background:transparent;color:var(--on-dark);border-color:rgba(244,242,236,.35)}
.btn-line:hover{border-color:var(--yellow);color:var(--yellow)}
.btn-lg{--h:58px;padding:0 28px;font-size:16px}
.btn-block{width:100%}
.link-arrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-weight:700;font-stretch:110%;font-size:15px;color:var(--text);text-decoration:none;border-bottom:2px solid var(--yellow);padding:6px 0 4px}
.link-arrow .ic{width:18px;height:18px;transition:transform .25s var(--ease)}
.link-arrow:hover .ic{transform:translateX(4px)}
.link-arrow.light{color:var(--on-dark)}
.ink-link{color:inherit;font-weight:700;text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:3px;text-underline-offset:4px}
.dark .ink-link,.olive .ink-link{color:var(--on-dark)}

/* ---------- header */
.hdr{position:fixed;top:0;left:0;right:0;z-index:60;padding-top:env(safe-area-inset-top);transition:transform .38s var(--ease),background-color .3s,box-shadow .3s}
.hdr::before{content:"";position:absolute;inset:0 0 -40px;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.6),rgba(0,0,0,0));pointer-events:none;transition:opacity .3s}
.hdr.solid{background:var(--ink);box-shadow:0 1px 0 rgba(255,255,255,.07),0 10px 30px -20px rgba(0,0,0,.8)}
.hdr.solid::before{opacity:0}
.hdr.hide{transform:translateY(-110%)}
.hdr-in{display:flex;align-items:center;gap:12px;height:72px}
.brand{display:block;flex:none;border-radius:3px}
.brand img{height:46px;width:auto;border-radius:2px;box-shadow:0 6px 16px -8px rgba(0,0,0,.7)}
.nav{display:none;margin-left:auto}
.nav-list{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.nav-list>li>a{display:inline-flex;align-items:center;height:44px;padding:0 12px;color:var(--on-dark);font-weight:600;font-size:15px;text-decoration:none;border-radius:4px;text-shadow:0 1px 8px rgba(0,0,0,.45);transition:color .2s}
.nav-list>li>a:hover,.nav-list>li>a[aria-current]{color:var(--yellow)}
.nav-list>li>a[aria-current]{box-shadow:inset 0 -2px 0 var(--yellow)}
.has-sub{position:relative}
.sub{position:absolute;top:100%;left:0;min-width:260px;list-style:none;margin:0;padding:10px;background:var(--ink);border:1px solid var(--char);border-radius:10px;box-shadow:0 24px 50px -10px rgba(0,0,0,.6);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .2s var(--ease),visibility .2s}
.has-sub:hover .sub,.has-sub:focus-within .sub{opacity:1;visibility:visible;transform:none}
.sub a{display:block;padding:10px 12px;color:#e7e3d8;text-decoration:none;font-size:14.5px;border-radius:6px}
.sub a:hover{background:var(--char);color:var(--yellow)}
.hdr-call{--h:46px;margin-left:auto;padding:0 16px}
.hdr-short{display:none}
.burger{flex:none;width:46px;height:46px;display:grid;place-content:center;gap:5px;border:1.5px solid rgba(244,242,236,.35);border-radius:6px;background:rgba(18,18,18,.3);cursor:pointer;touch-action:manipulation}
.burger span{display:block;width:20px;height:2px;background:var(--on-dark);border-radius:2px;transition:transform .3s var(--ease),opacity .2s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:640px){.hdr-num{display:none}.hdr-short{display:inline}.hdr-call{padding:0 14px}}
@media (min-width:1080px){.nav{display:block}.burger{display:none}.hdr-call{margin-left:12px}.brand img{height:50px}}

.drawer{position:fixed;inset:calc(72px + env(safe-area-inset-top)) 0 0 0;z-index:55;background:var(--ink);overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--char)}
.drawer[hidden]{display:none}
.drawer-in{padding:18px var(--gut) calc(40px + env(safe-area-inset-bottom))}
.drawer-h{margin:18px 0 6px;font-family:var(--display);font-weight:700;font-stretch:122%;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--yellow)}
.drawer ul{list-style:none;margin:0;padding:0}
.drawer a{display:flex;align-items:center;min-height:46px;color:var(--on-dark);text-decoration:none;font-size:17px;border-bottom:1px solid #262626}
.drawer-towns{display:grid;grid-template-columns:1fr 1fr;column-gap:16px}
.drawer-main a{font-family:var(--display);font-weight:800;font-stretch:110%;font-size:22px;min-height:54px}
.drawer-main{margin-top:14px}
.drawer-cta{display:grid;gap:10px;margin-top:24px}
.drawer-cta a{border-bottom:0;justify-content:center}
body.menu-open{overflow:hidden}

/* ---------- shared section scaffolding */
.sec{position:relative;padding:clamp(68px,10vw,128px) 0}
.dark{background:var(--ink);color:var(--on-dark)}
.paper{background:var(--paper);color:var(--text)}
.olive{background:var(--olive);color:var(--on-dark)}
.sec-head{margin-bottom:clamp(32px,5vw,58px);max-width:860px}
.sec-head.split{max-width:none;display:grid;gap:20px}
@media (min-width:900px){.sec-head.split{grid-template-columns:1.25fr .75fr;align-items:end;gap:48px}}
.sec-head.split>.link-arrow{justify-self:start}
@media (min-width:900px){.sec-head.split>.link-arrow{justify-self:end}}
.eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 18px;font-family:var(--display);font-weight:700;font-stretch:122%;font-size:12px;line-height:1.2;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
.eyebrow::before{content:"";flex:none;width:30px;height:3px;border-radius:2px;background:var(--yellow)}
.dark .eyebrow,.olive .eyebrow,.est .eyebrow,.eyebrow.light{color:var(--yellow)}
a[href^="tel:"]{white-space:nowrap}
.dark h2 em,.olive h2 em,.moment h2 em,.hero em,.phero em{font-style:normal;color:var(--yellow)}
.paper h2 em{font-style:normal;background:linear-gradient(180deg,transparent 62%,var(--yellow) 62%,var(--yellow) 90%,transparent 90%);padding:0 .06em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.lede{font-size:clamp(18px,2vw,21px);line-height:1.55;font-weight:500}
.muted{color:var(--mute)}
.muted-l{color:var(--on-dark-mute)}
.credit{margin-top:28px;font-size:12.5px;color:#8f8b80}

/* reveal: content is visible without JS; with JS it rises in once */
.js [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .75s ease,transform .75s var(--ease)}
.js [data-reveal].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js [data-reveal]{opacity:1;transform:none;transition:none}}

/* slow Ken Burns on full-bleed photos */
@keyframes kb{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.13) translate3d(-1.6%,-1.2%,0)}}
.kb{animation:kb 26s ease-in-out infinite alternate;transform-origin:50% 45%;will-change:transform}
@media (prefers-reduced-motion:reduce){.kb{animation:none}}

/* ---------- home hero */
.hero{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100svh;padding:calc(96px + env(safe-area-inset-top)) 0 88px;text-align:center;color:#fff;background:var(--ink);overflow:hidden}
.hero-media{position:absolute;inset:0;z-index:-2;overflow:hidden;background:#1d1f22}
.hero-poster,.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.js .hero-video{opacity:0;transition:opacity 1s ease}
.js .hero-video.is-playing{opacity:1}
@media (prefers-reduced-motion:reduce){.hero-video{display:none}}
.hero-veil,.phero-veil{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 80% 60% at 50% 52%,rgba(18,18,18,.56),rgba(18,18,18,0) 72%),linear-gradient(180deg,rgba(18,18,18,.78) 0%,rgba(18,18,18,.5) 42%,rgba(18,18,18,.9) 100%)}
.hero-in{max-width:920px}
.hero-logo{display:block;width:min(50vw,218px);height:auto;margin:0 auto 24px;border-radius:3px;box-shadow:0 26px 50px -16px rgba(0,0,0,.75),0 0 0 1px rgba(0,0,0,.25)}
.pill{display:inline-flex;align-items:center;gap:9px;max-width:100%;margin:0 0 4px;padding:8px 14px;border:1px solid rgba(255,255,255,.26);border-radius:999px;background:rgba(18,18,18,.42);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--display);font-weight:700;font-stretch:116%;font-size:11px;line-height:1.25;letter-spacing:.13em;text-transform:uppercase;color:var(--on-dark);white-space:nowrap}
.pill-dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 4px rgba(235,208,0,.22)}
.pill-sep{opacity:.45;margin-right:9px}
.pill-x{display:inline-flex;align-items:center;margin-left:9px}
@media (max-width:560px){.pill-x{display:none}}
.h1-k{display:block;margin:22px 0 14px;font-family:var(--display);font-weight:700;font-stretch:118%;font-size:12px;line-height:1.35;letter-spacing:.16em;text-transform:uppercase;color:var(--yellow)}
.hero .h1-big{display:block;font-size:clamp(42px,11.2vw,116px);line-height:.92;letter-spacing:-.03em}
.ln{display:block}
.hero-sub{max-width:min(31ch,100%);margin:20px auto 0;font-size:clamp(16px,1.6vw,19px);line-height:1.55;color:rgba(244,242,236,.9)}
.hero-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:30px}
.hero-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 22px;margin:28px 0 0;padding:0;list-style:none;font-size:14px;color:rgba(244,242,236,.82)}
.hero-trust li{display:inline-flex;align-items:center;gap:8px}
.hero-trust li+li::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--yellow);margin-right:14px;margin-left:-8px}
.stars{display:inline-flex;gap:2px;color:var(--yellow)}
.stars svg{width:15px;height:15px}
.hero-scroll{position:absolute;left:50%;bottom:22px;width:26px;height:42px;margin-left:-13px;border:2px solid rgba(255,255,255,.5);border-radius:14px}
.hero-scroll span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--yellow);animation:sc 1.8s ease-in-out infinite}
@keyframes sc{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}
@media (prefers-reduced-motion:reduce){.hero-scroll span{animation:none}}
.vid-toggle{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:20px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);background:rgba(18,18,18,.45);color:#fff;cursor:pointer;touch-action:manipulation;transition:background-color .2s,border-color .2s}
.vid-toggle:hover{background:rgba(18,18,18,.8);border-color:var(--yellow)}
.vid-toggle .ic{width:16px;height:16px}
.vid-toggle .i-play,.vid-toggle[aria-pressed="true"] .i-pause{display:none}
.vid-toggle[aria-pressed="true"] .i-play{display:block}
html:not(.js) .vid-toggle{display:none}
/* the hero toggle pauses every ambient loop on the page, not only the video */
.motion-off .kb,.motion-off .ticker-track,.motion-off .seam.in .drip,.motion-off .hero-scroll span{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.vid-toggle{display:none}}
@media (max-width:560px){
  .hero{padding-bottom:76px}
  .hero-cta{flex-direction:column;align-items:stretch}
  .hero-cta .btn{width:100%}
  .hero-trust{gap:8px 16px;font-size:13.5px}
  .hero-scroll{display:none}
  .pill{font-size:10px;letter-spacing:.1em;padding:7px 12px;gap:7px}
}
@media (min-width:900px){.hero-sub{max-width:44ch}}
@media (max-height:700px) and (min-width:900px){.hero-logo{width:170px;margin-bottom:16px}.hero .h1-big{font-size:clamp(42px,8vw,88px)}}

/* ---------- ticker */
.ticker{background:var(--yellow);color:var(--ink);overflow:hidden;border-block:1px solid rgba(0,0,0,.12)}
.ticker-track{display:flex;width:max-content;animation:tick 42s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker ul{display:flex;margin:0;padding:0;list-style:none}
.ticker li{display:flex;align-items:center;white-space:nowrap;padding:17px 0;font-family:var(--display);font-weight:800;font-stretch:125%;font-size:14px;line-height:1;letter-spacing:.08em;text-transform:uppercase}
.ticker li::after{content:"//";margin:0 24px;opacity:.4}
@keyframes tick{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker-track{animation:none}}

/* ---------- made on site + the seam signature */
.made-grid{display:grid;gap:44px;align-items:center}
@media (min-width:1000px){.made-grid{grid-template-columns:5fr 7fr;gap:72px}}
.made-copy h2{margin-bottom:22px}
.made-copy .link-arrow{margin-top:8px}
.made-photo{position:relative;margin:0}
.made-photo::before{content:"";position:absolute;inset:14px -10px 34px 14px;border:3px solid var(--yellow);border-radius:12px}
.made-photo img{position:relative;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:10px;box-shadow:0 34px 60px -34px rgba(0,0,0,.55)}
.made-photo figcaption{position:relative;margin-top:16px;font-size:14px;color:var(--mute)}
@media (min-width:1000px){.made-photo::before{inset:24px -22px 40px 24px}.made-grid.rev{grid-template-columns:7fr 5fr}}
.dark .made-photo figcaption{color:var(--on-dark-mute)}
.dark .made-copy .lede{color:var(--on-dark)}

.seam{margin-top:clamp(52px,8vw,92px);padding:clamp(22px,4vw,44px);background:var(--ink);color:var(--on-dark);border-radius:14px;box-shadow:0 30px 60px -40px rgba(0,0,0,.6)}
.seam-row{display:grid;grid-template-columns:1fr auto;grid-template-areas:"lbl n" "bar bar";gap:12px 16px;align-items:end;margin-bottom:30px}
.seam-lbl{grid-area:lbl;margin:0;display:flex;flex-direction:column;gap:2px}
.seam-lbl b{font-family:var(--display);font-weight:800;font-stretch:112%;font-size:19px}
.seam-lbl span{font-size:13.5px;color:var(--on-dark-mute)}
.seam-n{grid-area:n;margin:0;text-align:right;font-size:14px;color:var(--on-dark-mute)}
.seam-n b{display:inline-block;margin-right:6px;font-family:var(--display);font-weight:800;font-size:34px;line-height:1;color:var(--on-dark)}
.seam-row:nth-child(2) .seam-n b{color:var(--yellow)}
.seam-bar{grid-area:bar;position:relative;display:flex;gap:5px;height:24px}
.seam-sec i{position:relative;flex:1;background:linear-gradient(180deg,#6a6a6a,#3a3a3a 70%,#2c2c2c);border-radius:2px 2px 6px 6px}
.drip{position:absolute;top:100%;right:-6px;width:7px;height:10px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:var(--blue);opacity:0}
.seam.in .drip{animation:drip 2.6s ease-in infinite}
.seam-sec i:nth-child(2) .drip{animation-delay:.35s}
.seam-sec i:nth-child(3) .drip{animation-delay:1.1s}
.seam-sec i:nth-child(4) .drip{animation-delay:.6s}
.seam-sec i:nth-child(5) .drip{animation-delay:1.6s}
.seam-sec i:nth-child(6) .drip{animation-delay:.2s}
.seam-sec i:nth-child(7) .drip{animation-delay:1.3s}
@keyframes drip{0%{opacity:0;transform:translateY(-4px) scale(.5)}18%{opacity:1;transform:translateY(0) scale(1)}72%{opacity:1;transform:translateY(16px)}100%{opacity:0;transform:translateY(24px)}}
.seam-one i{flex:1;background:linear-gradient(180deg,var(--yellow-2),var(--yellow) 55%,var(--yellow-3));border-radius:2px 2px 7px 7px;transform-origin:left center;transform:scaleX(0);transition:transform 1.9s cubic-bezier(.65,0,.25,1) .35s}
.seam.in .seam-one i,html:not(.js) .seam-one i{transform:none}
.seam-ruler{display:flex;justify-content:space-between;padding-top:12px;border-top:1px dashed #4a4a4a;font-size:12px;color:var(--on-dark-mute);font-variant-numeric:tabular-nums}
@media (min-width:800px){
  .seam-row{grid-template-columns:200px 1fr 120px;grid-template-areas:"lbl bar n";align-items:center;gap:28px}
  .seam-ruler{margin-left:228px;margin-right:148px}
}
@media (prefers-reduced-motion:reduce){.seam-one i{transform:none;transition:none}.seam.in .drip{animation:none;opacity:1;transform:translateY(4px)}}

/* ---------- services (home) */
.feat{display:grid;gap:16px}
@media (min-width:900px){.feat{grid-template-columns:7fr 5fr;gap:20px}}
.feat-card{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-height:460px;overflow:hidden;border-radius:12px;color:#fff;text-decoration:none;background:var(--panel)}
.feat-card>img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.feat-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(18,18,18,.08) 25%,rgba(18,18,18,.9) 80%)}
.feat-card:hover>img{transform:scale(1.05)}
.feat-num{position:absolute;top:18px;left:22px;font-family:var(--display);font-weight:800;font-stretch:118%;font-size:64px;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.8)}
.feat-body{display:flex;flex-direction:column;gap:9px;padding:26px}
.feat-k{font-family:var(--display);font-weight:700;font-stretch:122%;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--yellow)}
.feat-t{font-family:var(--display);font-weight:800;font-stretch:112%;font-size:clamp(28px,3.4vw,42px);line-height:1;letter-spacing:-.02em}
.feat-p{max-width:44ch;color:rgba(244,242,236,.86)}
.feat-go{display:inline-flex;align-items:center;gap:8px;margin-top:4px;font-family:var(--display);font-weight:700;color:var(--yellow)}
.feat-go .ic{width:18px;height:18px;transition:transform .25s var(--ease)}
.feat-card:hover .feat-go .ic{transform:translateX(4px)}
/* copper card: the photo is small, so it is shown as a framed print at honest size */
.feat-b{background:linear-gradient(160deg,#2a2a2a,var(--ink) 70%);border:1px solid var(--char)}
.feat-b::after{display:none}
.feat-b>img{position:relative;inset:auto;z-index:0;width:min(58%,250px);height:auto;aspect-ratio:3/4;margin:86px auto 6px;border-radius:6px;box-shadow:0 0 0 6px #2f2f2f,0 30px 50px -20px rgba(0,0,0,.8)}
.feat-b:hover>img{transform:rotate(-1.2deg) scale(1.02)}
@media (min-width:900px){.feat-card{min-height:600px}.feat-b>img{margin-top:96px}}

.rows{list-style:none;margin:30px 0 0;padding:0;border-top:1px solid rgba(255,255,255,.13)}
.row{display:grid;grid-template-columns:auto 1fr 88px;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.13);color:inherit;text-decoration:none}
.row-n{min-width:38px;font-family:var(--display);font-weight:800;font-stretch:118%;font-size:22px;line-height:1;color:transparent;-webkit-text-stroke:1.2px rgba(244,242,236,.65)}
.row-t{display:block;font-family:var(--display);font-weight:800;font-stretch:110%;font-size:clamp(20px,2.6vw,30px);line-height:1.1;letter-spacing:-.015em;transition:color .2s}
.row-p{display:block;margin-top:6px;font-size:15px;line-height:1.5;color:var(--on-dark-mute)}
.row-img{width:88px;height:66px;overflow:hidden;border-radius:7px;background:var(--panel)}
.row-img img{width:100%;height:100%;object-fit:cover;filter:saturate(.85);transition:transform .6s var(--ease),filter .4s}
.row-go{display:none}
.row:hover .row-t{color:var(--yellow)}
.row:hover .row-img img{transform:scale(1.07);filter:none}
@media (min-width:900px){
  .row{grid-template-columns:72px 1fr 210px 52px;gap:28px;padding:26px 0}
  .row-n{font-size:30px}
  .row-img{width:210px;height:118px}
  .row-go{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1.5px solid rgba(244,242,236,.3);transition:background-color .2s,border-color .2s,color .2s}
  .row:hover .row-go{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
}
.svc-all{margin:38px 0 0}

/* ---------- full-bleed photo moment */
.moment{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:min(86vh,780px);overflow:hidden;color:#fff;background:var(--ink)}
.moment-sm{min-height:min(72vh,620px)}
.moment-media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.moment-media img{width:100%;height:100%;object-fit:cover}
.moment-veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(18,18,18,.05) 28%,rgba(18,18,18,.86) 88%),linear-gradient(90deg,rgba(18,18,18,.5),rgba(18,18,18,0) 62%)}
.moment-in{padding:clamp(60px,9vw,116px) 0}
.moment h2{max-width:12ch;font-size:clamp(40px,7.4vw,92px);line-height:.95;letter-spacing:-.03em}
.moment-in p:last-child{max-width:40ch;margin-top:18px;font-size:clamp(16px,1.6vw,19px);color:rgba(244,242,236,.9)}

/* ---------- gallery (masonry) */
.gal{columns:2;column-gap:10px}
@media (min-width:900px){.gal{columns:3;column-gap:16px}}
.gal-i{position:relative;margin:0 0 10px;break-inside:avoid;overflow:hidden;border-radius:9px;background:var(--paper-2)}
@media (min-width:900px){.gal-i{margin-bottom:16px}}
.gal-i img{width:100%;height:auto;transition:transform .9s var(--ease)}
.gal-i:hover img{transform:scale(1.04)}
.gal-i.g-xl{column-span:all;margin-bottom:10px}
.gal-i.g-xl img{aspect-ratio:4/3;object-fit:cover}
@media (min-width:900px){.gal-i.g-xl{margin-bottom:16px}.gal-i.g-xl img{aspect-ratio:21/9;object-position:50% 40%}}
.gal-i figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 12px 10px;font-size:12.5px;line-height:1.3;font-weight:600;color:#fff;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.72))}
@media (min-width:900px){.gal-i figcaption{padding:40px 16px 14px;font-size:14px}}

/* ---------- steps (gutter line + outlets) */
.steps-list{position:relative;display:grid;gap:36px;margin:0;padding:0;list-style:none}
.steps-list::before{content:"";position:absolute;left:21px;top:10px;bottom:10px;width:4px;border-radius:2px;background:var(--yellow)}
.steps-list li{position:relative;padding-left:66px}
.st-n{position:absolute;left:0;top:-4px;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--olive);border:3px solid var(--yellow);font-family:var(--display);font-weight:800;font-size:14px;color:var(--yellow)}
.steps-list h3{margin:6px 0 8px}
.steps-list p{color:var(--on-dark-mute);max-width:34ch}
@media (min-width:900px){
  .steps-list{grid-template-columns:repeat(4,1fr);gap:30px}
  .steps-list::before{left:0;right:0;top:21px;bottom:auto;width:auto;height:4px}
  .steps-list li{padding:76px 0 0}
  .st-n{top:0}
}

/* ---------- reviews */
.reviews{padding-bottom:clamp(56px,8vw,100px)}
.rv-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
@media (min-width:900px){.rv-meta{justify-content:flex-end}}
.g-badge{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:8px 18px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--text);text-decoration:none;transition:border-color .2s}
.g-badge:hover{border-color:var(--ink)}
.g-score{font-family:var(--display);font-weight:800;font-size:22px}
.g-badge .stars{color:#d6b800}
.g-txt{font-size:14px;color:var(--mute)}
.rv-nav{display:none;gap:8px}
@media (min-width:700px){.rv-nav{display:flex}}
.rv-btn{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;touch-action:manipulation;transition:background-color .2s,color .2s}
.rv-btn:first-child .ic{transform:rotate(180deg)}
.rv-btn:hover{background:var(--ink);color:var(--yellow)}
.rv-track{display:grid;grid-auto-flow:column;grid-auto-columns:min(84vw,430px);gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:max(var(--gut),(100vw - 1240px)/2);padding:6px max(var(--gut),(100vw - 1240px)/2) 26px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.rv-track:focus-visible{outline-offset:-3px}
.rv{position:relative;display:flex;flex-direction:column;margin:0;padding:30px 24px 22px;scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:12px}
.rv-q{position:absolute;top:2px;right:18px;font-family:var(--display);font-weight:800;font-size:96px;line-height:1;color:var(--yellow)}
.rv .stars{color:#d6b800}
.rv blockquote{flex:1;margin:14px 0 20px}
.rv blockquote p{margin:0;font-size:16px;line-height:1.62}
.rv figcaption{display:flex;flex-direction:column;gap:2px;padding-top:14px;border-top:1px solid var(--line)}
.rv figcaption strong{font-family:var(--display);font-weight:800;font-stretch:108%;font-size:16px}
.rv figcaption span{font-size:13px;color:var(--mute)}
.rv-dark{background:var(--panel);border-color:var(--char);color:var(--on-dark)}
.rv-dark .stars{color:var(--yellow)}
.rv-dark figcaption{border-top-color:var(--char)}
.rv-dark figcaption span{color:var(--on-dark-mute)}
.rv-grid{display:grid;gap:16px}
@media (min-width:900px){.rv-grid{grid-template-columns:repeat(3,1fr)}}

/* ---------- service area list */
.area-grid{display:grid;gap:40px}
@media (min-width:960px){.area-grid{grid-template-columns:5fr 7fr;gap:76px;align-items:start}}
.area-copy h2{margin-bottom:20px}
.area-copy .link-arrow{margin-top:10px}
.towns{list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.14)}
.towns a{display:grid;grid-template-columns:1fr auto 20px;align-items:center;gap:14px;padding:18px 2px;border-bottom:1px solid rgba(255,255,255,.14);color:var(--on-dark);text-decoration:none;transition:color .2s}
.towns .town-n{transition:transform .3s var(--ease)}
.towns a:hover .town-n{transform:translateX(10px)}
.town-n{font-family:var(--display);font-weight:800;font-stretch:112%;font-size:clamp(21px,3vw,34px);line-height:1.1;letter-spacing:-.015em}
.town-d{font-size:14px;color:var(--on-dark-mute);white-space:nowrap;font-variant-numeric:tabular-nums}
.towns .ic{color:var(--yellow);transition:transform .25s var(--ease)}
.towns a:hover{color:var(--yellow)}
.towns a:hover .ic{transform:translateX(4px)}
.towns-sm .town-n{font-size:clamp(20px,2.4vw,27px)}

/* ---------- FAQ */
.faq-grid{display:grid;gap:34px}
@media (min-width:960px){.faq-grid{grid-template-columns:4fr 8fr;gap:76px}.faq-side{position:sticky;top:110px;align-self:start}}
.faq-side h2{margin-bottom:18px;font-size:clamp(30px,4.6vw,50px)}
.qa{border-bottom:1px solid var(--line)}
.qa:first-child{border-top:1px solid var(--line)}
.qa summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;cursor:pointer;list-style:none;font-family:var(--display);font-weight:700;font-stretch:106%;font-size:clamp(17px,2vw,20px);line-height:1.3;touch-action:manipulation}
.qa summary::-webkit-details-marker{display:none}
.qa summary:hover{color:#000}
.qa-i{position:relative;flex:none;width:32px;height:32px;border-radius:50%;background:var(--ink)}
.qa-i::before,.qa-i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;border-radius:1px;background:var(--yellow);transition:transform .3s var(--ease)}
.qa-i::after{transform:rotate(90deg)}
.qa[open] .qa-i::after{transform:rotate(0)}
.qa-a p{margin:0 0 24px;max-width:62ch;color:#3d3a33}
.qa-a a{color:inherit;font-weight:600;text-decoration-color:var(--blue);text-decoration-thickness:2px;text-underline-offset:3px}

/* ---------- estimate + form */
.est{color-scheme:dark;background:var(--ink) radial-gradient(ellipse 60% 50% at 88% 6%,rgba(235,208,0,.09),rgba(235,208,0,0) 70%);color:var(--on-dark)}
.est-grid{display:grid;gap:44px}
@media (min-width:960px){.est-grid{grid-template-columns:5fr 7fr;gap:70px;align-items:start}}
.est-copy h2{margin-bottom:18px;font-size:clamp(32px,5vw,56px)}
.est-copy .lede{color:rgba(244,242,236,.88)}
.est-direct{display:grid;gap:14px;margin-top:30px}
.est-big{display:inline-flex;align-items:center;gap:16px;margin-bottom:8px;color:var(--on-dark);text-decoration:none}
.est-big .ic{width:56px;height:56px;padding:15px;border-radius:50%;background:var(--yellow);color:var(--ink);transition:transform .25s var(--ease)}
.est-big:hover .ic{transform:rotate(-12deg)}
.est-big span{font-family:var(--display);font-weight:800;font-stretch:110%;font-size:clamp(26px,3.4vw,38px);line-height:1.05}
.est-big small{display:block;margin-bottom:4px;font-family:var(--body);font-weight:600;font-stretch:100%;font-size:13px;color:var(--on-dark-mute)}
.est-line{display:flex;align-items:flex-start;gap:12px;margin:0;font-size:15px;color:var(--on-dark-mute)}
.est-line .ic{margin-top:2px;color:var(--yellow)}
.est-line a{color:var(--on-dark);font-weight:600;text-underline-offset:3px;text-decoration-color:var(--yellow)}
.est-form{padding:clamp(20px,3.4vw,38px);background:var(--panel);border:1px solid var(--char);border-radius:14px;box-shadow:0 40px 80px -50px rgba(0,0,0,.9)}
.lead{display:grid;gap:16px}
.f-two{display:grid;gap:16px}
@media (min-width:640px){.f-two{grid-template-columns:1fr 1fr}}
.f{display:grid;gap:7px}
.f-l{font-size:14px;font-weight:600;color:#ebe7dc}
.f-l small{font-weight:400;color:var(--on-dark-mute)}
.lead input,.lead select,.lead textarea{width:100%;min-height:52px;padding:12px 14px;font:inherit;font-size:16px;color:var(--on-dark);background:var(--ink);border:1.5px solid #3e3e3e;border-radius:8px;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.lead textarea{min-height:124px;resize:vertical;line-height:1.5}
.lead select{padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23ebd000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px}
.lead select option{background:var(--ink);color:var(--on-dark)}
.lead ::placeholder{color:#8e8a7f}
.lead input:focus-visible,.lead select:focus-visible,.lead textarea:focus-visible{outline:none;border-color:var(--yellow);box-shadow:0 0 0 3px rgba(235,208,0,.25)}
.f.bad input{border-color:#ff9a8a}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.f-go{--h:58px;margin-top:4px;font-size:16px}
.f-go[disabled]{opacity:.65;cursor:progress}
.f-note{min-height:1.4em;margin:0;font-size:14.5px;color:var(--on-dark-mute)}
.f-note.err{color:#ffb4a8}
.f-note a{color:var(--yellow);font-weight:700}
.sent-msg{padding:10px 0}
.sent-msg h3{margin-bottom:10px;color:var(--yellow);font-size:clamp(24px,3vw,32px)}
.sent-msg p{color:rgba(244,242,236,.88)}

/* ---------- footer + mobile dock */
.ftr{background:var(--ink);color:var(--on-dark)}
.ftr-band{background:var(--yellow);color:var(--ink)}
.ftr-band-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:26px 0}
.ftr-band-t{margin:0;font-family:var(--display);font-weight:800;font-stretch:112%;font-size:clamp(22px,3vw,32px);line-height:1.1;letter-spacing:-.015em}
.ftr-band .btn-y{background:var(--ink);color:var(--yellow);box-shadow:none}
.ftr-band .btn-y:hover{background:var(--char)}
.ftr-grid{display:grid;gap:38px;padding:64px 0 42px}
@media (min-width:700px){.ftr-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1040px){.ftr-grid{grid-template-columns:1.3fr 1fr 1fr 1fr;gap:44px}}
.ftr-brand img{width:132px;height:auto;margin-bottom:20px;border-radius:2px}
.ftr-nap{line-height:1.75;color:#e2ded2}
.ftr-tel{font-family:var(--display);font-weight:800;font-size:21px;color:var(--yellow);text-decoration:none}
.ftr-hours{display:flex;gap:10px;font-size:15px;color:var(--on-dark-mute)}
.ftr-hours .ic{width:18px;height:18px;margin-top:3px;color:var(--yellow)}
.ftr-lic{font-size:14px;color:var(--on-dark-mute)}
.ftr-h{margin:0 0 12px;font-family:var(--display);font-weight:700;font-stretch:122%;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--yellow)}
.ftr-col ul{display:grid;gap:2px;margin:0;padding:0;list-style:none}
.ftr-col a{display:inline-block;padding:7px 0;font-size:15px;color:#e2ded2;text-decoration:none;transition:color .2s}
.ftr-col a:hover{color:var(--yellow)}
.ftr-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding:22px 0 calc(26px + env(safe-area-inset-bottom));border-top:1px solid var(--char);font-size:13px;color:#9b978b}
.ftr-base p{margin:0}
@media (max-width:899px){.ftr-base{padding-bottom:calc(96px + env(safe-area-inset-bottom))}}

.dock{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px max(12px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:rgba(24,24,24,.96);border-top:1px solid var(--char);transform:translateY(110%);transition:transform .35s var(--ease)}
.dock.show,html:not(.js) .dock{transform:none}
.dock a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;border-radius:8px;font-family:var(--display);font-weight:700;font-size:15px;text-decoration:none;touch-action:manipulation}
.dock-call{background:var(--yellow);color:var(--ink)}
.dock-est{border:1.5px solid rgba(244,242,236,.4);color:var(--on-dark)}
.dock .ic{width:18px;height:18px}
@media (min-width:900px){.dock{display:none}}

/* ---------- inner page hero */
.phero{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;min-height:clamp(540px,80svh,780px);padding:calc(104px + env(safe-area-inset-top)) 0 70px;text-align:center;color:#fff;background:var(--ink);overflow:hidden}
.phero-media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.phero-media img{width:100%;height:100%;object-fit:cover}
.phero-in{max-width:940px}
.phero .pill{margin-bottom:20px}
.phero h1 .h1-big{display:block;font-size:clamp(40px,8.6vw,96px);line-height:.95;letter-spacing:-.03em}
.phero h1 .h1-sm{display:block;margin-top:14px;font-family:var(--display);font-weight:700;font-stretch:112%;font-size:clamp(15px,1.9vw,21px);line-height:1.3;letter-spacing:.01em;color:var(--yellow)}
.phero h1 .h1-sm:first-child{margin:0 0 10px}
.phero-sub{max-width:40ch;margin:20px auto 0;font-size:clamp(16px,1.6vw,19px);line-height:1.55;color:rgba(244,242,236,.9)}
.crumbs ol{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:0 0 18px;padding:0;list-style:none;font-size:13px;color:rgba(244,242,236,.78)}
.crumbs li+li::before{content:"/";margin-right:6px;opacity:.5}
.crumbs a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3)}
.crumbs a:hover{color:var(--yellow)}
@media (max-width:560px){.phero .hero-cta{flex-direction:column;align-items:stretch}.phero .hero-cta .btn{width:100%}}

/* ---------- service page parts */
.intro-grid{display:grid;gap:40px}
@media (min-width:900px){.intro-grid{grid-template-columns:7fr 5fr;gap:68px;align-items:center}}
.intro-copy p{max-width:64ch}
.intro-copy p:not(.lede){color:#34312b}
.intro-photo{margin:0}
.intro-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;box-shadow:0 30px 60px -36px rgba(0,0,0,.55)}
.intro-photo.is-small img{width:auto;max-width:100%;aspect-ratio:auto;margin-inline:auto}
.intro-photo figcaption{margin-top:12px;font-size:14px;color:var(--mute)}
.intro-photo.is-small figcaption{text-align:center}

.strip{display:grid;grid-auto-flow:column;grid-auto-columns:min(72vw,300px);gap:12px;margin-top:clamp(44px,6vw,72px);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:none}
.strip::-webkit-scrollbar{display:none}
.strip-i{position:relative;margin:0;overflow:hidden;border-radius:10px;scroll-snap-align:start;background:var(--panel)}
.strip-i img{width:100%;aspect-ratio:4/3;object-fit:cover}
.strip-i figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 12px 10px;font-size:12.5px;line-height:1.3;font-weight:600;color:#fff;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.75))}
@media (min-width:900px){.strip{grid-auto-flow:row;grid-template-columns:repeat(3,1fr);overflow:visible;gap:18px}}
.check-grid{display:grid;gap:30px}
@media (min-width:900px){.check-grid{grid-template-columns:5fr 7fr;gap:68px;align-items:start}}
.check-grid h2{font-size:clamp(30px,4.6vw,50px)}
.trough{display:grid;margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.13)}
@media (min-width:640px){.trough{grid-template-columns:1fr 1fr;column-gap:34px}}
.trough li{position:relative;padding:17px 0 17px 36px;border-bottom:1px solid rgba(255,255,255,.13);font-size:16.5px;line-height:1.45}
.trough li::before{content:"";position:absolute;left:0;top:23px;width:19px;height:10px;border:3px solid var(--yellow);border-top:0;border-radius:0 0 5px 5px}

.blocks-grid{display:grid;gap:40px}
@media (min-width:900px){.blocks-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:52px}}
.blk{padding-top:24px;border-top:3px solid var(--ink)}
.blk-n{display:block;margin-bottom:14px;font-family:var(--display);font-weight:800;font-stretch:118%;font-size:14px;letter-spacing:.12em;color:var(--mute)}
.blk h2{margin-bottom:14px;font-size:clamp(24px,2.8vw,32px);line-height:1.08}
.blk p{color:#34312b}
.blk a{color:inherit;font-weight:600;text-decoration-color:var(--blue);text-decoration-thickness:2px;text-underline-offset:3px}

.pull{background:var(--olive);color:var(--on-dark)}
.pull-in{max-width:920px;text-align:center}
.pull-q{display:block;height:58px;font-family:var(--display);font-weight:800;font-size:130px;line-height:.9;color:var(--yellow)}
.pull blockquote{margin:0}
.pull blockquote p{font-family:var(--display);font-weight:600;font-stretch:100%;font-size:clamp(19px,2.5vw,27px);line-height:1.45;letter-spacing:-.005em}
.pull-by{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin:24px 0 20px;font-size:15px}
.pull-by strong{font-family:var(--display);font-weight:800}
.pull-by span{color:var(--on-dark-mute)}
.pull-by .stars{color:var(--yellow)}
.pull-in.is-long blockquote p{font-size:clamp(17px,1.9vw,22px);line-height:1.55}
.pull .link-arrow{color:var(--on-dark)}

.where-grid{display:grid;gap:30px}
@media (min-width:960px){.where-grid{grid-template-columns:5fr 7fr;gap:68px;align-items:center}}
.where h2{margin-bottom:16px;font-size:clamp(28px,4.2vw,46px)}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.chips a{display:inline-flex;align-items:center;min-height:44px;padding:0 17px;border:1.5px solid rgba(244,242,236,.26);border-radius:999px;color:var(--on-dark);font-size:15px;font-weight:600;text-decoration:none;transition:border-color .2s,color .2s,background-color .2s}
.chips a:hover{border-color:var(--yellow);color:var(--yellow)}
.chips-paper a{background:#fff;border-color:var(--line);color:var(--text)}
.chips-paper a:hover{border-color:var(--ink);color:var(--ink);background:var(--yellow)}
.more-svc{margin-top:52px;padding-top:30px;border-top:1px solid rgba(255,255,255,.13)}
.more-h{margin:0 0 14px;font-family:var(--display);font-weight:700;font-stretch:122%;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-mute)}

/* ---------- town page parts */
.town-grid{display:grid;gap:40px}
@media (min-width:960px){.town-grid{grid-template-columns:7fr 4fr;gap:68px;align-items:start}.town-side{position:sticky;top:100px}}
.town-copy p{max-width:66ch}
.town-copy p:not(.lede){color:#34312b}
.town-side{display:grid;gap:20px}
.town-photo{margin:0}
.town-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px}
.town-photo.is-small img{aspect-ratio:auto}
.town-photo figcaption{margin-top:10px;font-size:13.5px;color:var(--mute)}
.town-card{padding:22px;background:#fff;border:1px solid var(--line);border-radius:12px}
.town-card-h{margin:0 0 12px;font-family:var(--display);font-weight:800;font-stretch:108%;font-size:18px}
.town-card dl{display:grid;gap:8px;margin:0 0 18px}
.town-card dl div{display:flex;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px dashed var(--line);font-size:15px}
.town-card dt{color:var(--mute)}
.town-card dd{margin:0;font-weight:600;text-align:right}
.ts-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:0;list-style:none}
@media (min-width:900px){.ts-list{grid-template-columns:repeat(4,1fr);gap:18px}}
.ts-list a{display:flex;flex-direction:column;height:100%;overflow:hidden;border-radius:12px;background:var(--panel);border:1px solid var(--char);color:var(--on-dark);text-decoration:none;transition:border-color .2s,transform .3s var(--ease)}
.ts-list a:hover{border-color:var(--yellow);transform:translateY(-3px)}
.ts-img{display:block;aspect-ratio:4/3;overflow:hidden}
.ts-img img{width:100%;height:100%;object-fit:cover}
.ts-t{padding:14px 14px 4px;font-family:var(--display);font-weight:800;font-stretch:106%;font-size:clamp(16px,1.8vw,19px);line-height:1.15}
.ts-p{padding:0 14px 16px;font-size:14px;line-height:1.45;color:var(--on-dark-mute)}
.ts-more{margin-top:26px;color:var(--on-dark-mute)}
.ts-more a{color:var(--on-dark);text-decoration-color:var(--yellow);text-underline-offset:3px}
.local-grid{display:grid;gap:18px}
@media (min-width:900px){.local-grid{grid-template-columns:5fr 7fr;gap:60px;align-items:start}}
.local h2{font-size:clamp(28px,4.2vw,46px)}
.local p{font-size:clamp(17px,1.8vw,19px);color:#34312b}
.nb-grid{display:grid;gap:26px}
@media (min-width:900px){.nb-grid{grid-template-columns:5fr 7fr;gap:68px;align-items:center}}
.nearby h2{font-size:clamp(28px,4.2vw,46px)}

/* ---------- hubs */
.hub{display:grid;gap:18px;margin:0;padding:0;list-style:none}
.hub-row{display:grid;overflow:hidden;border-radius:14px;background:#202020;border:1px solid var(--char);color:var(--on-dark);text-decoration:none;transition:border-color .2s}
.hub-img{display:block;overflow:hidden}
.hub-img img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .9s var(--ease)}
.hub-body{display:flex;flex-direction:column;justify-content:center;gap:10px;padding:24px}
.hub-t{font-family:var(--display);font-weight:800;font-stretch:110%;font-size:clamp(24px,3vw,36px);line-height:1.05;letter-spacing:-.015em;transition:color .2s}
.hub-p{max-width:60ch;color:var(--on-dark-mute)}
.hub-body .link-arrow{align-self:flex-start}
.hub-row:hover{border-color:var(--yellow)}
.hub-row:hover .hub-t{color:var(--yellow)}
.hub-row:hover .hub-img img{transform:scale(1.04)}
@media (min-width:800px){
  .hub-row{grid-template-columns:minmax(260px,40%) 1fr}
  .hub-img img{aspect-ratio:auto;min-height:260px}
  .hub-body{padding:34px 40px}
  .hub li:nth-child(even) .hub-row{grid-template-columns:1fr minmax(260px,40%)}
  .hub li:nth-child(even) .hub-img{order:2}
}
.tcards{display:grid;gap:16px;margin:0;padding:0;list-style:none}
@media (min-width:700px){.tcards{grid-template-columns:1fr 1fr}.tcards li:first-child{grid-column:1/-1}}
@media (min-width:1040px){.tcards{grid-template-columns:repeat(3,1fr)}}
.tcard{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-height:400px;overflow:hidden;border-radius:14px;color:#fff;text-decoration:none}
.tcard>img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.tcard::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(18,18,18,.05) 22%,rgba(18,18,18,.9) 82%)}
.tcard:hover>img{transform:scale(1.05)}
.tcard-b{display:flex;flex-direction:column;gap:7px;padding:24px}
.tcard-d{font-family:var(--display);font-weight:700;font-stretch:122%;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--yellow)}
.tcard-t{font-family:var(--display);font-weight:800;font-stretch:112%;font-size:clamp(26px,3vw,36px);line-height:1}
.tcard-p{font-size:14.5px;line-height:1.5;color:rgba(244,242,236,.86)}
.tcards li:first-child .tcard{min-height:460px}

/* ---------- contact */
.visit-grid{display:grid;gap:40px}
@media (min-width:960px){.visit-grid{grid-template-columns:5fr 7fr;gap:60px;align-items:start}}
.visit h2{margin-bottom:16px;font-size:clamp(30px,4.6vw,50px)}
.contact-list{display:grid;gap:12px;margin:22px 0 28px;padding:0;list-style:none}
.contact-list li{display:flex;align-items:center;gap:12px}
.contact-list .ic{color:var(--ink)}
.map{overflow:hidden;border-radius:14px;border:1px solid var(--line);background:var(--paper-2)}
.map iframe{width:100%;height:420px;border:0}
@media (min-width:960px){.map iframe{height:540px}}

/* ---------- 404 */
.chero{position:relative;display:flex;align-items:center;min-height:86vh;padding:150px 0 110px;text-align:center;color:#fff;background:radial-gradient(ellipse 70% 60% at 50% 30%,rgba(235,208,0,.12),rgba(235,208,0,0) 70%),var(--ink)}
.chero h1 .h1-big{display:block;font-size:clamp(38px,7.4vw,84px);line-height:.98}
.chero .phero-sub{margin-bottom:8px}
.chero .eyebrow{justify-content:center}

/* ---------- print */
@media print{.hdr,.dock,.drawer,.hero-media,.phero-media,.ticker,.est-form{display:none!important}.js [data-reveal]{opacity:1!important;transform:none!important}body{background:#fff;color:#000}}
