/* AXEL Roofing Construction LLC: site.css
   Palette from the logo: roof red #ce0f15 (bright #df0a12, deep #8e0a0e) on shingle black #0f1012,
   white wordmark, silver trim #c9ccd1. Display: Big Shoulders Display. Body: Hanken Grotesk. */

@font-face{font-family:"Big Shoulders Display";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/bigshoulders-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Big Shoulders Display";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/bigshoulders-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/hanken-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/hanken-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --red:#ce0f15;
  --red-hi:#df0a12;
  --red-deep:#8e0a0e;
  --red-ink:#f0353b;
  --ink:#0f1012;
  --ink-2:#0b0c0e;
  --ink-3:#17181b;
  --ink-4:#212226;
  --paper:#f3f1ed;
  --paper-2:#e8e5df;
  --white:#fff;
  --steel:#c9ccd1;
  --text:#16171a;
  --muted:#55585e;
  --on-dark:#f4f4f5;
  --muted-dark:#a9adb4;
  --line:rgba(22,23,26,.13);
  --line-dark:rgba(255,255,255,.11);
  --display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;
  --body:"Hanken Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --hdr-h:76px;
  --r:18px;
  --r-sm:12px;
  --wrap:1240px;
  --pad:clamp(20px,5vw,44px);
  --sec:clamp(76px,10vw,136px);
  --ridge-h:clamp(34px,6.4vw,96px);
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ------------------------------------------------------------------ base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr-h) + 14px);background:var(--ink)}
body{margin:0;font-family:var(--body);font-size:17px;line-height:1.6;color:var(--text);background:var(--paper);overflow-x:clip;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
img,svg,video,iframe{display:block;max-width:100%}
img{height:auto}
h1,h2,h3,p,ul,ol,figure,blockquote,dl,dd,address{margin:0}
ul,ol{padding:0}
a{color:inherit;text-underline-offset:3px}
button{font:inherit;color:inherit;cursor:pointer}
a,button,summary,input,select,textarea,label{touch-action:manipulation;-webkit-tap-highlight-color:rgba(206,15,21,.18)}
::selection{background:var(--red);color:#fff}
:focus-visible{outline:3px solid var(--red-hi);outline-offset:3px;border-radius:4px}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:#fff;color:var(--ink);padding:12px 18px;border-radius:10px;font-weight:800;text-decoration:none;transition:top .2s}
.skip:focus{top:12px}

h1,h2,h3{font-family:var(--display);font-weight:800;letter-spacing:.004em;text-wrap:balance}
h2{font-size:clamp(38px,5.4vw,72px);line-height:.95}
h3{font-size:clamp(24px,2.4vw,32px);line-height:1.02}
.hl{color:var(--red)}
.ink .hl,.ink2 .hl,.hero .hl,.phero .hl,.moment .hl,.scene .hl{color:var(--red-hi)}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.wrap.narrow{max-width:900px}
.sec{position:relative;padding-block:var(--sec)}
.ink{background-color:var(--ink);color:var(--on-dark);background-image:repeating-linear-gradient(180deg,rgba(255,255,255,.022) 0 1px,transparent 1px 36px)}
.ink2{background:var(--ink-2);color:var(--on-dark)}
.paper{background:radial-gradient(1100px 560px at 100% 0,rgba(206,15,21,.05),transparent 62%),var(--paper)}
.paper-2{background:var(--paper-2)}

.kicker{display:flex;align-items:center;gap:12px;font:800 12.5px/1.2 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:18px}
.kicker::before{content:"";width:30px;height:2px;background:currentColor;flex:none}
.ink .kicker,.ink2 .kicker,.phero .kicker,.moment .kicker,.scene .kicker{color:var(--red-ink)}
.kicker.light,.red-band .kicker,.phero .kicker{color:#fff}
.phero .kicker::before{background:var(--red-hi);height:3px}
.phero .kicker{text-shadow:0 1px 10px rgba(0,0,0,.6)}
.lede{font-size:clamp(16.5px,1.35vw,18.5px);line-height:1.65;color:var(--muted);max-width:56ch}
.ink .lede,.ink2 .lede{color:var(--muted-dark)}

.sec-head{max-width:780px;margin-bottom:clamp(34px,5vw,60px)}
.sec-head.duo{max-width:none;display:grid;gap:18px 56px;align-items:end}
@media (min-width:900px){.sec-head.duo{grid-template-columns:1.2fr .8fr}.sec-head.duo .lede{padding-bottom:8px}}

/* ------------------------------------------------------------------ buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font:800 16px/1 var(--body);letter-spacing:.01em;text-decoration:none;border:2px solid transparent;white-space:nowrap;transition:transform .2s var(--ease),background-color .2s,border-color .2s,color .2s,box-shadow .2s}
.btn svg{width:18px;height:18px;flex:none}
.btn-red{background:var(--red);color:#fff;box-shadow:0 12px 26px -12px rgba(206,15,21,.75)}
.btn-red:hover{background:var(--red-hi);transform:translateY(-2px);box-shadow:0 16px 30px -12px rgba(223,10,18,.85)}
.btn-ghost{color:#fff;border-color:rgba(255,255,255,.55);background:rgba(15,16,18,.28)}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.12);transform:translateY(-2px)}
.btn-line{color:var(--text);border-color:var(--text);background:transparent}
.btn-line:hover{background:var(--text);color:#fff}
.btn-block{width:100%}
.ctas{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:clamp(24px,4vh,36px)}
.ctas.left{justify-content:flex-start}
.txt-link{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:var(--red);text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:3px;transition:gap .2s}
.txt-link svg{width:18px;height:18px}
.txt-link:hover{gap:12px}
.ink .txt-link,.ink2 .txt-link,.scene .txt-link,.txt-link.light{color:#fff;border-bottom-color:var(--red-hi)}

/* ------------------------------------------------------------------ header */
.hdr{position:fixed;inset:0 0 auto 0;z-index:50;height:var(--hdr-h);color:#fff;transition:background-color .3s,box-shadow .3s,transform .35s var(--ease)}
.hdr::before{content:"";position:absolute;inset:0 0 -30px 0;background:linear-gradient(180deg,rgba(0,0,0,.55),transparent);pointer-events:none;transition:opacity .3s}
.hdr.solid{background:rgba(15,16,18,.96);box-shadow:0 1px 0 var(--line-dark),0 10px 30px -18px rgba(0,0,0,.8)}
.hdr.solid::before{opacity:0}
.hdr.hide{transform:translateY(-100%)}
.hdr-in{position:relative;height:100%;max-width:1340px;margin-inline:auto;padding-inline:max(var(--pad),env(safe-area-inset-left)) max(var(--pad),env(safe-area-inset-right));display:flex;align-items:center;gap:18px}
.brand{display:block;flex:none;border-radius:6px;transition:opacity .35s,visibility .35s}
.brand img{height:48px;width:auto}
.hdr.on-home:not(.solid) .brand{opacity:0;visibility:hidden}
.nav{margin-left:auto;display:none}
.nav ul{display:flex;gap:2px;list-style:none}
.nav a{display:block;padding:10px 13px;border-radius:8px;font-weight:700;font-size:15px;text-decoration:none;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.35);transition:background-color .2s}
.nav a:hover{background:rgba(255,255,255,.1)}
.nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--red-hi)}
.hdr-call{margin-left:auto;display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:0 18px;border-radius:999px;background:var(--red);color:#fff;font-weight:800;font-size:15.5px;text-decoration:none;white-space:nowrap;transition:background-color .2s,transform .2s}
.hdr-call svg{width:18px;height:18px}
.hdr-call:hover{background:var(--red-hi);transform:translateY(-1px)}
.burger{width:46px;height:46px;flex:none;display:grid;place-items:center;border:1.5px solid rgba(255,255,255,.35);border-radius:12px;background:rgba(15,16,18,.35)}
.burger span,.burger span::before,.burger span::after{display:block;width:20px;height:2px;background:#fff;border-radius:2px;transition:transform .3s var(--ease),background-color .2s}
.burger span{position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0}
.burger span::before{top:-6px}
.burger span::after{top:6px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}
@media (min-width:1080px){.nav{display:block}.hdr-call{margin-left:8px}.burger{display:none}}
@media (max-width:560px){:root{--hdr-h:68px}.brand img{height:44px}.hdr-call{width:46px;padding:0;justify-content:center}.hdr-call .lbl{display:none}}

.drawer{position:fixed;inset:var(--hdr-h) 0 0 0;z-index:49;background:var(--ink);color:#fff;overflow-y:auto;overscroll-behavior:contain;padding:22px var(--pad) calc(40px + env(safe-area-inset-bottom));transform:translateX(100%);visibility:hidden;transition:transform .4s var(--ease),visibility .4s}
.drawer.open{transform:none;visibility:visible;transition:transform .4s var(--ease),visibility 0s}
.drawer ul{list-style:none}
.drawer-main a{display:block;padding:12px 0;font:900 34px/1 var(--display);text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--line-dark)}
.drawer-main a[aria-current="page"]{color:var(--red-ink)}
.drawer-cols{display:grid;gap:26px;margin:28px 0}
.drawer-cols a{display:block;padding:7px 0;color:var(--muted-dark);text-decoration:none;font-weight:600}
.drawer .sub-h{font:800 12px/1 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--red-ink);margin-bottom:8px}
.drawer-note{margin-top:14px;text-align:center;color:var(--muted-dark);font-size:14px}
@media (min-width:600px){.drawer-cols{grid-template-columns:1fr 1fr}}
html.menu-open{overflow:hidden}

/* ------------------------------------------------------------------ ridge (logo roofline) */
.ridge{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:var(--ridge-h);z-index:2;pointer-events:none}
.ridge-line{fill:none;stroke:var(--red);stroke-width:3;vector-effect:non-scaling-stroke;stroke-linejoin:miter}

/* ------------------------------------------------------------------ hero */
.hero{position:relative;isolation:isolate;min-height:max(660px,min(100svh,1000px));display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden;background:var(--ink);padding:calc(var(--hdr-h) + 26px) 0 calc(var(--ridge-h) + 54px)}
.hero-media{position:absolute;inset:0;z-index:-2;background:var(--ink)}
.hero-media img,.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-poster{animation:kb 26s ease-in-out infinite alternate}
.scrim{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 80% 60% at 50% 50%,rgba(10,11,13,.6),transparent 74%),linear-gradient(180deg,rgba(10,11,13,.78) 0%,rgba(10,11,13,.52) 44%,rgba(10,11,13,.9) 100%)}
.hero-in{width:100%;max-width:920px;padding-inline:var(--pad);display:flex;flex-direction:column;align-items:center}
.hero-logo{width:min(74vw,380px);height:auto;margin-bottom:clamp(18px,3vh,30px);filter:drop-shadow(0 12px 30px rgba(0,0,0,.55))}
.pill{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:8px;max-width:100%;padding:9px 16px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(15,16,18,.45);font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.pill svg{width:15px;height:15px;color:var(--red-ink)}
.pill .dot{color:var(--red-ink)}
.hero h1{margin-top:clamp(18px,3vh,28px)}
.h1-kick{display:block;font:800 clamp(12.5px,1.25vw,15px)/1.3 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--steel);margin-bottom:12px}
.h1-main{display:block;font-family:var(--display);font-weight:900;font-size:clamp(56px,10.6vw,134px);line-height:.88;letter-spacing:.006em;text-transform:uppercase;text-shadow:0 4px 40px rgba(0,0,0,.4)}
.hero-sub{max-width:36ch;margin-top:clamp(16px,2.6vh,24px);font-size:clamp(16px,1.6vw,19px);line-height:1.6;color:rgba(255,255,255,.9)}
.hero-yrs{display:block;color:#fff;font-weight:700}
.trust{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 24px;margin-top:clamp(22px,3.6vh,32px);list-style:none;font-size:14.5px;font-weight:600;color:rgba(255,255,255,.88)}
.trust li{display:inline-flex;align-items:center;gap:8px}
.trust svg{width:17px;height:17px;color:var(--red-ink)}
/* the lead's 3:1 truck shot as the home background: the whole truck across the bottom with its sky carried up behind the copy; on phones a top band */
.hero-truck{background:linear-gradient(0deg,#1189e4 0,#1189e4 33vw,#0c4f93 calc(33vw + 90px),#071a33 calc(33vw + 300px),#050d18 100%)}
.hero-media .hero-photo{top:auto;bottom:0;height:auto;aspect-ratio:1233/416;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 18%);mask-image:linear-gradient(180deg,transparent 0,#000 18%)}
.hero-wide .scrim{background:radial-gradient(ellipse 70% 50% at 50% 42%,rgba(10,11,13,.62),transparent 76%),linear-gradient(180deg,rgba(10,11,13,.8) 0%,rgba(10,11,13,.5) 46%,rgba(10,11,13,.45) 62%,rgba(10,11,13,.28) 78%,rgba(10,11,13,.62) 100%)}
.hero-wide .h1-main{text-shadow:0 2px 6px rgba(0,0,0,.5),0 0 34px rgba(0,0,0,.75)}
.hero-wide .hero-sub,.hero-wide .trust,.hero-wide .cta-es{text-shadow:0 1px 3px rgba(0,0,0,.8),0 0 16px rgba(0,0,0,.85)}
.hero-wide .btn-ghost{background:rgba(15,16,18,.55)}
@media (max-width:640px){
  .hero-wide{padding-top:236px}
  .hero-truck{background:var(--ink)}
  .hero-media .hero-photo{bottom:auto;top:0;height:250px;aspect-ratio:auto;object-position:68% 50%;-webkit-mask-image:linear-gradient(180deg,#000 84%,transparent);mask-image:linear-gradient(180deg,#000 84%,transparent)}
  .hero-wide .scrim{background:linear-gradient(180deg,rgba(10,11,13,.55) 0,rgba(10,11,13,.04) 76px,rgba(10,11,13,.04) 206px,rgba(10,11,13,.92) 250px)}
}
.motion-btn{position:absolute;right:clamp(14px,3vw,30px);bottom:calc(var(--ridge-h) + 16px);z-index:3;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:1.5px solid rgba(255,255,255,.4);background:rgba(15,16,18,.45);color:#fff}
.motion-btn svg{width:16px;height:16px}
.motion-btn .i-play,.motion-off .motion-btn .i-pause{display:none}
.motion-off .motion-btn .i-play{display:block}
.motion-off .hero-video{visibility:hidden}
.motion-off *{animation-play-state:paused!important}
@media (max-width:560px){
  .hero{min-height:max(640px,100svh)}
  .hero .ctas,.phero .ctas{flex-direction:column;align-items:stretch;width:100%}
  .hero .ctas .btn,.phero .ctas .btn{width:100%}
  .trust{gap:8px 16px;font-size:13.5px}
  .pill{font-size:11.5px;letter-spacing:.1em}
}
@keyframes kb{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.13) translate3d(-1.8%,-1.2%,0)}}

/* ------------------------------------------------------------------ strip */
.strip{position:relative;background:var(--ink-2);color:#fff;padding:16px 0 20px;overflow:hidden;border-bottom:1px solid var(--line-dark)}
.strip-track{display:flex;width:max-content;animation:marquee 42s linear infinite}
.strip:hover .strip-track{animation-play-state:paused}
.strip-row{display:flex;align-items:center;gap:24px;padding-right:24px;font:800 clamp(21px,2.4vw,30px)/1 var(--display);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.strip-row i{font-style:normal;color:var(--red-hi)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ------------------------------------------------------------------ layer-by-layer stacking cards */
.layers{list-style:none;position:relative}
.layers-sec{padding-bottom:clamp(56px,7vw,96px)}
.layer{position:sticky;top:calc(var(--hdr-h) + 14px + var(--i) * 20px);height:min(76vh,700px);border-radius:var(--r);overflow:hidden;background:#000;box-shadow:0 -24px 60px rgba(0,0,0,.6);margin-bottom:24vh}
.layer:last-child{margin-bottom:0}
.layer img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.layer-cap{position:absolute;inset:auto 0 0 0;display:flex;align-items:flex-end;gap:clamp(14px,2.6vw,30px);padding:clamp(22px,4vw,46px);padding-top:120px;background:linear-gradient(180deg,transparent,rgba(10,11,13,.88) 62%)}
.layer-n{font:900 clamp(66px,11vw,156px)/.78 var(--display);color:transparent;-webkit-text-stroke:2px var(--red-hi);flex:none}
.layer-cap h3{font-size:clamp(32px,4.2vw,56px);text-transform:uppercase;color:#fff;line-height:.92}
.layer-cap p{max-width:46ch;margin-top:10px;color:rgba(255,255,255,.88);font-size:clamp(15px,1.3vw,17.5px);line-height:1.55}
@media (max-width:640px){.layer{height:min(66svh,540px);top:calc(var(--hdr-h) + 10px + var(--i) * 12px);margin-bottom:18vh}.layer-cap{flex-direction:column;align-items:flex-start;gap:6px}.layer-n{font-size:58px}}

/* ------------------------------------------------------------------ bento gallery */
.bento{display:grid;gap:12px;grid-template-columns:1fr 1fr;grid-auto-rows:38vw;grid-auto-flow:dense}
.tile{position:relative;margin:0;border-radius:var(--r-sm);overflow:hidden;background:var(--ink-4)}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.tile:hover img{transform:scale(1.045)}
.tile figcaption{position:absolute;left:10px;bottom:10px;right:10px;width:max-content;max-width:calc(100% - 20px);padding:6px 11px;border-radius:999px;background:rgba(10,11,13,.78);color:#fff;font-size:12px;font-weight:700;letter-spacing:.02em}
.g-big{grid-column:1/-1;grid-row:span 2}
.g-tall{grid-row:span 2}
.g-wide{grid-column:1/-1}
.tile-cta{display:flex;flex-direction:column;justify-content:flex-end;gap:4px;padding:18px;text-decoration:none;color:#fff;background:linear-gradient(150deg,var(--red-hi),var(--red) 50%,var(--red-deep))}
.tc-n{font:900 clamp(56px,7vw,92px)/.8 var(--display)}
.tc-t{font:800 15px/1.2 var(--body);text-transform:uppercase;letter-spacing:.12em}
.tc-go{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-weight:800}
.tc-go svg{width:18px;transition:transform .25s}
.tile-cta:hover .tc-go svg{transform:translateX(4px)}
@media (min-width:900px){
  .bento{grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(190px,17vw,250px);gap:14px}
  .g-big{grid-column:1/3;grid-row:1/3}
  .g-tall{grid-column:3;grid-row:2/4}
  .g-wide{grid-column:1/3;grid-row:3}
}

/* ------------------------------------------------------------------ reviews */
.g-line{display:flex;align-items:center;gap:10px;margin-bottom:16px;font-weight:700;color:var(--muted)}
.g-line b{color:var(--text);font-size:18px}
.g-mark{width:22px;height:22px}
.rev-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding:4px 2px 14px;scrollbar-width:thin;scrollbar-color:var(--red) transparent}
.rev-track:focus-visible{outline-offset:6px}
.rev-card{flex:0 0 min(86vw,420px);scroll-snap-align:start;display:flex;flex-direction:column;gap:16px;margin:0;padding:clamp(22px,3vw,32px);background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 24px 40px -32px rgba(15,16,18,.45)}
.rev-card blockquote{flex:1;font-size:16px;line-height:1.66;color:var(--text)}
.rev-card blockquote p+p{margin-top:10px}
.rev-card figcaption{display:flex;align-items:center;gap:12px;padding-top:16px;border-top:1px solid var(--line)}
.rev-card figcaption b{display:block;font-size:16px}
.rev-card figcaption small{color:var(--muted);font-size:13px}
.rev-av{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:#fff;font:900 20px/1 var(--display)}
.stars{display:flex;gap:3px;color:var(--red)}
.stars svg{width:18px;height:18px;fill:currentColor}
.rev-nav{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:18px}
.rev-btn{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--text);background:transparent;transition:background-color .2s,color .2s}
.rev-btn svg{width:20px;height:20px}
.rev-btn:hover{background:var(--text);color:#fff}
.rev-nav .txt-link{margin-left:auto}
@media (max-width:560px){.rev-nav .txt-link{margin-left:0;width:100%;justify-content:flex-start}}

/* ------------------------------------------------------------------ scenes */
.scenes-sec{padding-bottom:0}
.scenes-sec .sec-head{margin-bottom:clamp(28px,4vw,48px)}
.scene{position:relative;isolation:isolate;min-height:min(88vh,780px);display:flex;align-items:flex-end;overflow:hidden;color:#fff;border-top:1px solid var(--line-dark)}
.scene-bg{position:absolute;inset:0;z-index:-2}
.scene-bg img{width:100%;height:100%;object-fit:cover}
.scene-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(10,11,13,.95) 0%,rgba(10,11,13,.66) 46%,rgba(10,11,13,.12) 100%)}
.scene-in{padding-block:clamp(60px,9vw,110px)}
@media (max-width:640px){.scene{min-height:78svh}.scene-in{padding-block:56px 48px}}
.scene-col{max-width:540px}
.scene-n{display:block;font:900 clamp(84px,12vw,170px)/.78 var(--display);color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.6);margin-bottom:10px}
.scene h3{font-size:clamp(42px,5.4vw,76px);line-height:.9;text-transform:uppercase}
.scene p{margin-top:14px;color:rgba(255,255,255,.88);font-size:clamp(16px,1.3vw,18px);line-height:1.6}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 24px!important}
.chips span{padding:7px 12px;border:1px solid rgba(255,255,255,.34);border-radius:999px;font-size:12.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff}
@media (min-width:900px){
  .scene{align-items:center}
  .scene-shade{background:linear-gradient(90deg,rgba(10,11,13,.93) 0%,rgba(10,11,13,.7) 40%,rgba(10,11,13,.08) 78%)}
  .scene.right .scene-shade{background:linear-gradient(270deg,rgba(10,11,13,.93) 0%,rgba(10,11,13,.7) 40%,rgba(10,11,13,.08) 78%)}
  .scene.right .scene-col{margin-left:auto}
}
.also{padding-block:34px 60px}
.also p{font-weight:700;color:var(--muted-dark);line-height:2}
.also a{color:#fff;text-decoration-color:var(--red-hi);text-decoration-thickness:2px}
.also a:hover{color:var(--red-ink)}
.also i,.nearby i{font-style:normal;color:var(--red-hi);margin:0 10px}

/* ------------------------------------------------------------------ split / framed photo */
.split{display:grid;gap:clamp(36px,5vw,76px);align-items:center}
@media (min-width:900px){.split{grid-template-columns:1fr 1fr}.split.swap>:first-child{order:2}}
.framed{position:relative;margin:0 14px 14px 0}
.framed::before{content:"";position:absolute;top:16px;left:16px;right:-14px;bottom:auto;aspect-ratio:4/3;border:2px solid var(--red);border-radius:var(--r);pointer-events:none}
.framed img{position:relative;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);box-shadow:0 30px 60px -36px rgba(15,16,18,.6)}
.framed figcaption{position:relative;margin-top:26px;font-size:14px;color:var(--muted);line-height:1.5}
.ink .framed figcaption{color:var(--muted-dark)}
.stock-tag{position:absolute;left:12px;top:12px;z-index:3;padding:5px 9px;border-radius:6px;background:rgba(10,11,13,.75);color:#fff;font:800 10.5px/1.2 var(--body);letter-spacing:.12em;text-transform:uppercase}
.stock-tag.top{left:auto;right:var(--pad);top:calc(var(--hdr-h) + 14px)}
.copy>*+*{margin-top:0}
.why{list-style:none;display:grid;gap:20px;margin:30px 0}
.why li{display:grid;grid-template-columns:28px 1fr;gap:14px;align-items:start}
.why svg{width:26px;height:26px;color:var(--red)}
.why b{display:block;font:800 22px/1.1 var(--display);text-transform:uppercase;margin-bottom:4px}
.why span{color:var(--muted);line-height:1.6}
.copy .lede{margin-top:18px}

/* ------------------------------------------------------------------ prose (inner pages) */
.prose h2{margin-bottom:22px}
.prose p{font-size:clamp(16.5px,1.3vw,18px);line-height:1.75;max-width:64ch}
.prose p+p{margin-top:16px}
.ink .prose p{color:var(--muted-dark)}
.prose a{font-weight:700;color:var(--red)}
.badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px!important}
.badges span{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1.5px solid var(--line);border-radius:999px;background:#fff;font-size:13.5px;font-weight:800}
.badges svg{width:16px;height:16px;color:var(--red)}

/* ------------------------------------------------------------------ moment */
.moment{position:relative;isolation:isolate;min-height:min(92vh,820px);display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden;padding-block:var(--sec)}
.moment-bg{position:absolute;inset:0;z-index:-2}
.moment-bg img{width:100%;height:100%;object-fit:cover}
.kb{animation:kb 28s ease-in-out infinite alternate}
.moment-shade{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 70% 58% at 50% 50%,rgba(10,11,13,.56),rgba(10,11,13,.2) 72%),linear-gradient(180deg,rgba(10,11,13,.5),rgba(10,11,13,.28) 42%,rgba(10,11,13,.72))}
.moment-in{max-width:880px}
.moment-in .kicker{justify-content:center}
.moment h2{font-size:clamp(48px,8.4vw,112px);line-height:.88;text-transform:uppercase;font-weight:900;text-shadow:0 4px 30px rgba(0,0,0,.45)}
.moment p{margin:20px auto 0;max-width:40ch;font-size:clamp(16.5px,1.5vw,19px);color:rgba(255,255,255,.9)}

/* ------------------------------------------------------------------ storm */
.storm{align-items:stretch}
.checks{list-style:none;display:grid;gap:12px;margin:26px 0}
.checks li{display:flex;align-items:flex-start;gap:12px;font-weight:700;font-size:17px;line-height:1.45}
.checks svg{width:22px;height:22px;flex:none;color:var(--red);margin-top:1px}
.law{margin-top:6px;padding:18px 20px;border-left:4px solid var(--red);border-radius:0 var(--r-sm) var(--r-sm) 0;background:#fff;font-size:15.5px;line-height:1.6;color:var(--text)}
.storm .ctas{margin-top:28px}
.storm-photo{position:relative;margin:0;min-height:420px;border-radius:var(--r);overflow:hidden;background:var(--ink-4)}
.storm-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ------------------------------------------------------------------ area map */
.areas-grid{display:grid;gap:clamp(36px,5vw,68px);align-items:center}
@media (min-width:980px){.areas-grid{grid-template-columns:1.05fr .95fr}}
.map-fig{position:relative;margin:0;padding:clamp(8px,1.6vw,16px);border:1px solid var(--line-dark);border-radius:var(--r);background:radial-gradient(circle at 70% 46%,rgba(206,15,21,.14),transparent 55%),#141518;overflow:hidden}
.amap{width:100%;height:auto;font-family:var(--body)}
.amap .water{fill:rgba(96,140,184,.2);stroke:rgba(140,180,220,.3)}
.amap .hwy{fill:none;stroke:rgba(255,255,255,.17);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.amap .lbl-hwy{fill:rgba(255,255,255,.46);font-size:13px;font-weight:800;letter-spacing:.06em}
.amap .lbl-muted{fill:rgba(255,255,255,.42);font-size:13px;font-weight:800;letter-spacing:.14em}
.amap .ring{fill:none;stroke:rgba(240,53,59,.4);stroke-width:1.5;stroke-dasharray:4 6}
.amap .lbl-ring{fill:rgba(240,53,59,.85);font-size:13px;font-weight:800}
.amap .mt circle{fill:#fff;transition:fill .2s}
.amap .mt text{fill:#fff;font-size:20px;font-weight:800;paint-order:stroke;stroke:#141518;stroke-width:5px;stroke-linejoin:round}
.amap .mt:hover circle,.amap .mt.on circle,.amap .mt:focus-visible circle{fill:var(--red-hi)}
.amap .mt:hover text,.amap .mt:focus-visible text{fill:var(--red-ink);text-decoration:underline}
.amap a:focus{outline:none}
.amap .mt .mt-ring{fill:none;stroke:var(--red-hi);stroke-width:2.5}
.amap .base circle{fill:var(--red-hi)}
.amap .base .base-pulse{fill:rgba(223,10,18,.3);transform-box:fill-box;transform-origin:center;animation:pulse 2.6s ease-out infinite}
.amap .base text{fill:#fff;font-size:15px;font-weight:800;letter-spacing:.04em;paint-order:stroke;stroke:#141518;stroke-width:5px}
@keyframes pulse{from{transform:scale(.6);opacity:1}to{transform:scale(2.6);opacity:0}}

.town-links{list-style:none;margin-top:26px;border-top:1px solid var(--line-dark)}
.town-links a{display:grid;grid-template-columns:1fr auto 20px;align-items:center;gap:14px;padding:16px 2px;border-bottom:1px solid var(--line-dark);text-decoration:none;color:inherit}
.town-links span{font:800 clamp(21px,2.2vw,28px)/1.05 var(--display);text-transform:uppercase;transition:color .2s}
.town-links small{font-size:13px;font-weight:700;color:var(--muted-dark);letter-spacing:.03em;text-align:right}
.town-links svg{width:20px;color:var(--red-ink);transition:transform .25s}
.town-links a:hover span{color:var(--red-ink)}
.town-links a:hover svg{transform:translateX(4px)}
.on-paper .town-links{border-top-color:var(--line)}
.on-paper .town-links a{border-bottom-color:var(--line)}
.on-paper .town-links small{color:var(--muted)}
.on-paper .town-links svg,.on-paper .town-links a:hover span{color:var(--red)}
@media (min-width:900px){.on-paper .town-links{display:grid;grid-template-columns:1fr 1fr;column-gap:44px}}

/* ------------------------------------------------------------------ faq */
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{position:relative;list-style:none;cursor:pointer;padding:20px 48px 20px 0;font:800 clamp(21px,2vw,26px)/1.15 var(--display);text-transform:uppercase}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before,.faq summary::after{content:"";position:absolute;right:8px;top:50%;width:18px;height:2.5px;margin-top:-1px;background:var(--red);border-radius:2px;transition:transform .3s var(--ease)}
.faq summary::after{transform:rotate(90deg)}
.faq details[open] summary::after{transform:rotate(0)}
.faq .a p{padding:0 0 22px;max-width:68ch;color:var(--muted);line-height:1.7}
.faq-grid{display:grid;gap:40px}
@media (min-width:980px){.faq-grid{grid-template-columns:1.35fr .65fr;align-items:start}}
.faq-grid h2{margin-bottom:24px}

.pull{margin:0;padding:clamp(24px,3vw,34px);border-radius:var(--r);background:var(--ink);color:#fff;box-shadow:0 30px 60px -36px rgba(15,16,18,.7)}
.pull .stars{color:var(--red-ink);margin-bottom:14px}
.pull blockquote{font-size:16.5px;line-height:1.66}
.pull blockquote p+p{margin-top:10px}
.pull figcaption{margin-top:18px;padding-top:14px;border-top:1px solid var(--line-dark);color:var(--muted-dark);font-size:14px}
.pull figcaption b{color:#fff}

/* ------------------------------------------------------------------ big call */
.bigcall{position:relative;overflow:hidden;text-align:center;color:#fff;padding-block:clamp(84px,11vw,150px);background-color:var(--red);background-image:radial-gradient(ellipse at 50% 40%,transparent 30%,rgba(0,0,0,.34)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='60'%3E%3Cg fill='none' stroke='%23000' stroke-opacity='.09' stroke-width='2'%3E%3Cpath d='M0 1h120M0 31h120M1 0v30M61 30v30'/%3E%3C/g%3E%3C/svg%3E"),linear-gradient(160deg,var(--red-hi),var(--red) 48%,var(--red-deep))}
.bigcall-in .kicker{justify-content:center}
.bc-num{display:inline-block;margin:6px 0 18px;font:900 clamp(58px,13.4vw,210px)/.86 var(--display);letter-spacing:.01em;color:#fff;text-decoration:none;white-space:nowrap;text-shadow:0 6px 40px rgba(0,0,0,.25);transition:transform .3s var(--ease)}
.bc-num:hover{transform:scale(1.02)}
.bigcall p{max-width:44ch;margin-inline:auto;font-size:clamp(16.5px,1.5vw,19px);font-weight:600}

/* ------------------------------------------------------------------ red band (law) */
.red-band{color:#fff;background-color:var(--red-deep);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='60'%3E%3Cg fill='none' stroke='%23000' stroke-opacity='.1' stroke-width='2'%3E%3Cpath d='M0 1h120M0 31h120M1 0v30M61 30v30'/%3E%3C/g%3E%3C/svg%3E")}
.red-band h2{margin-bottom:18px}
.red-band p{font-size:clamp(17px,1.5vw,19.5px);line-height:1.7;max-width:62ch}

/* ------------------------------------------------------------------ contact + form */
.contact-grid{display:grid;gap:clamp(36px,5vw,68px)}
@media (min-width:980px){.contact-grid{grid-template-columns:.9fr 1.1fr;align-items:start}}
.contact-grid h2{margin-bottom:18px}
.facts{list-style:none;display:grid;gap:18px;margin-top:30px}
.facts li{display:grid;grid-template-columns:26px 1fr;gap:14px;align-items:start;line-height:1.5}
.facts svg{width:22px;height:22px;color:var(--red);margin-top:3px}
.facts small{display:block;margin-bottom:3px;font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.facts a{font-weight:800;font-size:18px;text-decoration:none;border-bottom:2px solid var(--red)}
.form{position:relative;padding:clamp(22px,3.6vw,42px);background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 34px 70px -40px rgba(15,16,18,.5)}
.form::before{content:"";position:absolute;left:clamp(22px,3.6vw,42px);right:clamp(22px,3.6vw,42px);top:0;height:4px;background:var(--red);border-radius:0 0 4px 4px}
.form h3{font-size:clamp(28px,2.8vw,36px);text-transform:uppercase}
.form-sub{margin:6px 0 20px;color:var(--muted)}
.f-row.two{display:grid;gap:0 14px}
@media (min-width:560px){.f-row.two{grid-template-columns:1fr 1fr}}
.field{display:grid;gap:6px;margin-bottom:14px}
.field label{font-size:13.5px;font-weight:800}
.req{color:var(--red)}
.inp{width:100%;min-height:50px;padding:12px 14px;font:inherit;font-size:16px;color:var(--text);background:#faf9f7;border:1.5px solid #cdc8bf;border-radius:10px;transition:border-color .2s,box-shadow .2s,background-color .2s}
.inp:hover{border-color:#a9a39a}
.inp:focus{outline:none;border-color:var(--text);background:#fff;box-shadow:0 0 0 4px rgba(206,15,21,.18)}
select.inp{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%2316171a' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}
textarea.inp{min-height:118px;resize:vertical}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .btn{margin-top:6px}
.form-msg{margin-top:12px;font-weight:700;line-height:1.5}
.form-msg:empty{display:none}
.form-msg.ok{color:#14652f}
.form-msg a{display:inline-block;margin:10px 10px 0 0;padding:10px 14px;border-radius:999px;border:1.5px solid var(--text);text-decoration:none;font-weight:800}
.fine{margin-top:12px;font-size:13.5px;color:var(--muted)}
.fine a{font-weight:800;color:var(--text)}
.map-embed{border-radius:var(--r);overflow:hidden;border:1px solid var(--line-dark);background:var(--ink-3);min-height:380px}
.map-embed iframe{width:100%;height:100%;min-height:380px;border:0}

/* ------------------------------------------------------------------ inner hero */
.phero{position:relative;isolation:isolate;min-height:clamp(540px,76vh,780px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--ink);padding:calc(var(--hdr-h) + 40px) 0 calc(var(--ridge-h) + 46px)}
.phero-media{position:absolute;inset:0;z-index:-2}
.phero-media img{width:100%;height:100%;object-fit:cover;animation:kb 30s ease-in-out infinite alternate}
.phero-scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,11,13,.72) 0%,rgba(10,11,13,.38) 38%,rgba(10,11,13,.9) 100%),linear-gradient(90deg,rgba(10,11,13,.72),rgba(10,11,13,0) 72%)}
/* the lead's 3:1 truck shot: full-bleed on desktop; on phones a top band that fades into ink so the whole wrap reads */
.phero-wide .phero-media img{object-position:62% 50%}
@media (max-width:640px){
  .phero-wide{padding-top:236px}
  .phero-wide .phero-media img{height:250px;object-position:68% 50%;-webkit-mask-image:linear-gradient(180deg,#000 84%,transparent);mask-image:linear-gradient(180deg,#000 84%,transparent)}
  .phero-wide .phero-scrim{background:linear-gradient(180deg,rgba(10,11,13,.55) 0,rgba(10,11,13,.04) 76px,rgba(10,11,13,.04) 206px,rgba(10,11,13,.92) 250px)}
}
.phero h1{max-width:21ch;font-size:clamp(42px,6.6vw,94px);font-weight:900;line-height:.9;text-transform:uppercase;text-shadow:0 4px 30px rgba(0,0,0,.35)}
.phero-sub{max-width:52ch;margin-top:18px;font-size:clamp(16px,1.45vw,19px);line-height:1.6;color:rgba(255,255,255,.9)}
.phero .ctas{justify-content:flex-start}
.crumbs ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin-bottom:22px;font-size:13.5px;font-weight:600;color:rgba(255,255,255,.75)}
.crumbs li+li::before{content:"/";margin-right:6px;opacity:.55}
.crumbs a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
.crumbs a:hover{border-bottom-color:var(--red-hi)}

/* ------------------------------------------------------------------ steps / defs / checkgrid */
.steps{list-style:none;display:grid;gap:26px;margin-top:26px}
.steps li{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}
.st-n{font:900 54px/.8 var(--display);color:transparent;-webkit-text-stroke:1.5px var(--red-hi);min-width:58px}
.steps h3{font-size:clamp(22px,2vw,27px);text-transform:uppercase}
.steps p{margin-top:6px;color:var(--muted-dark);line-height:1.6}
.steps.grid6{gap:0 40px;margin-top:0}
.steps.grid6 li{padding:26px 0;border-top:1px solid var(--line-dark)}
@media (min-width:760px){.steps.grid6{grid-template-columns:1fr 1fr}}
@media (min-width:1100px){.steps.grid6{grid-template-columns:repeat(3,1fr)}}
.pair{display:grid;gap:18px;margin-top:clamp(36px,5vw,56px)}
@media (min-width:760px){.pair{grid-template-columns:1fr 1fr}}
.pair figure{margin:0}
.pair img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}
.pair figcaption{margin-top:10px;font-size:14px;color:var(--muted-dark)}

.defs{display:grid;gap:0 52px}
@media (min-width:860px){.defs{grid-template-columns:1fr 1fr}}
.defs>div{padding:24px 0;border-top:1px solid var(--line-dark)}
.defs dt{display:flex;align-items:baseline;gap:14px;font:800 clamp(24px,2.2vw,30px)/1.05 var(--display);text-transform:uppercase}
.defs dt span{font:800 14px/1 var(--body);letter-spacing:.1em;color:var(--red-ink)}
.defs dd{margin-top:8px;max-width:54ch;color:var(--muted-dark);line-height:1.65}

.checkgrid{list-style:none;display:grid;gap:12px}
@media (min-width:640px){.checkgrid{grid-template-columns:1fr 1fr}}
@media (min-width:1100px){.checkgrid{grid-template-columns:repeat(4,1fr)}}
.checkgrid li{padding:22px;border:1px solid var(--line-dark);border-radius:var(--r-sm);background:rgba(255,255,255,.025);font-weight:700;line-height:1.45}
.checkgrid span{display:block;margin-bottom:10px;font:900 36px/1 var(--display);color:var(--red-hi)}

/* ------------------------------------------------------------------ link lists */
.svc-links{list-style:none;border-top:1px solid var(--line-dark)}
@media (min-width:860px){.svc-links{display:grid;grid-template-columns:1fr 1fr;column-gap:44px}}
.svc-links a{display:grid;grid-template-columns:1fr 20px;gap:4px 16px;padding:18px 2px;border-bottom:1px solid var(--line-dark);text-decoration:none;color:inherit}
.svc-links b{font:800 clamp(22px,2vw,27px)/1.05 var(--display);text-transform:uppercase;transition:color .2s}
.svc-links span{grid-column:1;color:var(--muted-dark);font-size:15px;line-height:1.5}
.svc-links svg{grid-column:2;grid-row:1/span 2;align-self:center;width:20px;color:var(--red-ink);transition:transform .25s}
.svc-links a:hover b{color:var(--red-ink)}
.svc-links a:hover svg{transform:translateX(4px)}
.on-paper .svc-links{border-top-color:var(--line)}
.on-paper .svc-links a{border-bottom-color:var(--line)}
.on-paper .svc-links span{color:var(--muted)}
.on-paper .svc-links svg,.on-paper .svc-links a:hover b{color:var(--red)}

/* services index (hover photo reveal) */
.sindex{list-style:none;border-top:1px solid var(--line)}
.sindex a{position:relative;display:grid;grid-template-columns:1fr 44px;gap:8px 18px;align-items:center;padding:26px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.si-n{grid-column:1;font:900 18px/1 var(--display);color:var(--red);letter-spacing:.06em}
.si-t{grid-column:1;font:900 clamp(34px,4.8vw,66px)/.92 var(--display);text-transform:uppercase;transition:color .25s}
.si-d{grid-column:1;max-width:60ch;color:var(--muted);line-height:1.55}
.si-go{grid-column:2;grid-row:1/span 3;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--line);transition:background-color .25s,border-color .25s,color .25s}
.si-go svg{width:18px}
.si-ph{grid-column:1/-1;display:block;aspect-ratio:16/9;border-radius:var(--r-sm);overflow:hidden;margin-top:8px}
.si-ph img{width:100%;height:100%;object-fit:cover}
.sindex a:hover .si-t{color:var(--red)}
.sindex a:hover .si-go{background:var(--red);border-color:var(--red);color:#fff}
@media (min-width:900px) and (hover:hover){
  .sindex a{grid-template-columns:70px 1fr 44px}
  .si-n{grid-row:1/span 2;align-self:start;padding-top:12px}
  .si-t,.si-d{grid-column:2}
  .si-go{grid-column:3}
  .si-ph{position:absolute;right:84px;top:50%;width:300px;margin:0;z-index:2;opacity:0;pointer-events:none;transform:translateY(-50%) rotate(-3deg) scale(.9);transition:opacity .3s,transform .4s var(--ease);box-shadow:0 30px 60px -20px rgba(0,0,0,.45)}
  .sindex a:hover .si-ph,.sindex a:focus-visible .si-ph{opacity:1;transform:translateY(-50%) rotate(-3deg) scale(1)}
}

/* town page notes */
.notes{display:grid;gap:16px}
@media (min-width:900px){.notes{grid-template-columns:repeat(3,1fr)}}
.note{padding:clamp(24px,3vw,32px);background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.note-n{display:block;font:900 46px/1 var(--display);color:var(--red)}
.note h3{margin:12px 0 8px;text-transform:uppercase}
.note p{color:var(--muted);line-height:1.65}
.nearby{margin-top:24px!important;font-weight:700;line-height:2}
.nearby a{color:var(--text);text-decoration-color:var(--red);text-decoration-thickness:2px}
.ink .nearby a{color:#fff}
.map-fig.small{max-width:640px}

/* areas hub cards */
.tcards{display:grid;gap:18px}
@media (min-width:700px){.tcards{grid-template-columns:1fr 1fr}}
@media (min-width:1060px){.tcards{grid-template-columns:repeat(3,1fr)}}
.tcard{display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r);border:1px solid var(--line);background:#fff;text-decoration:none;color:inherit;transition:transform .3s var(--ease),box-shadow .3s}
.tcard:hover{transform:translateY(-4px);box-shadow:0 30px 50px -30px rgba(15,16,18,.45)}
.tc-ph{display:block;aspect-ratio:16/10;overflow:hidden}
.tc-ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.tcard:hover .tc-ph img{transform:scale(1.05)}
.tc-body{display:grid;gap:6px;padding:22px}
.tc-body small{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.tc-body b{font:900 34px/1 var(--display);text-transform:uppercase}
.tc-body>span{color:var(--muted);line-height:1.55}
.tc-body .go{display:inline-flex;align-items:center;gap:8px;margin-top:6px;color:var(--red);font-weight:800}
.tc-body .go svg{width:18px}
.aside-note{margin-top:30px;font-weight:600;color:var(--muted)}
.aside-note a{font-weight:800;color:var(--text)}

/* our work */
.work-grid{display:grid;gap:16px}
@media (min-width:600px){.work-grid{grid-template-columns:1fr 1fr}}
@media (min-width:960px){.work-grid{grid-template-columns:repeat(3,1fr)}.work-grid.n4{grid-template-columns:1fr 1fr}.work-grid.n5 figure:first-child{grid-column:span 2}.work-grid.n5 figure:first-child img{aspect-ratio:auto;height:100%}}
.work-grid figure{margin:0;display:flex;flex-direction:column}
.work-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-sm);flex:1}
.work-grid figcaption{margin-top:10px;font-size:14px;line-height:1.5;color:var(--muted)}
.ink .work-grid figcaption{color:var(--muted-dark)}
.trio{display:grid;gap:14px}
@media (min-width:760px){.trio{grid-template-columns:repeat(3,1fr)}}
.trio figure{margin:0}
.trio img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r-sm)}

/* 404 */
.nf{min-height:80vh;display:grid;align-items:center;padding-top:calc(var(--hdr-h) + 60px)}
.nf h1{font-size:clamp(48px,8vw,104px);line-height:.9;text-transform:uppercase;font-weight:900;margin-bottom:18px}
.nf .ctas{justify-content:flex-start}

/* ------------------------------------------------------------------ footer */
.ftr{position:relative;background:var(--ink-2);color:var(--muted-dark);padding:clamp(70px,9vw,112px) 0 calc(30px + env(safe-area-inset-bottom))}
.ftr .ridge-top{top:calc(-1 * var(--ridge-h) + 1px);bottom:auto}
.ftr-grid{display:grid;gap:40px}
@media (min-width:700px){.ftr-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1040px){.ftr-grid{grid-template-columns:1.5fr 1fr 1fr 1fr}}
.ftr-brand img{width:220px;height:auto;margin-bottom:18px}
.ftr-brand>p{max-width:40ch;line-height:1.65}
.nap{display:grid;gap:3px;margin-top:20px;font-style:normal;line-height:1.55}
.nap strong{color:#fff}
.nap a{color:#fff;font-weight:700;text-decoration:none}
.nap a:hover{color:var(--red-ink)}
.ftr h2{margin-bottom:14px;font:800 21px/1 var(--display);letter-spacing:.06em;text-transform:uppercase;color:#fff}
.ftr ul{list-style:none;display:grid;gap:9px}
.ftr ul a{color:var(--muted-dark);text-decoration:none;transition:color .2s}
.ftr ul a:hover{color:#fff}
.ftr-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 28px;margin-top:52px;padding-top:22px;border-top:1px solid var(--line-dark);font-size:13px}

.callbar{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(11,12,14,.96);border-top:1px solid var(--line-dark);transform:translateY(110%);transition:transform .35s var(--ease)}
.callbar.show{transform:none}
.callbar .btn{min-height:50px;padding:0 12px;font-size:15.5px}
html.menu-open .callbar{transform:translateY(110%)}
@media (min-width:861px){.callbar{display:none}}
@media (max-width:860px){.ftr{padding-bottom:calc(136px + env(safe-area-inset-bottom))}}

/* ------------------------------------------------------------------ second line: Spanish (720) 249-6203 beside English (720) 372-8617 */
.callbar{row-gap:2px}
.callbar .cb-es{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:5px;min-height:34px;color:var(--muted-dark);font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}
.callbar .cb-es b{color:#fff;font-weight:800}
.drawer-es{margin-top:10px}
@media (max-width:359px){.drawer .btn-block{padding-inline:12px}}
.cta-es{margin-top:12px;font-size:15px;font-weight:600;color:rgba(255,255,255,.88);text-shadow:0 1px 10px rgba(0,0,0,.5)}
.cta-es a,.bigcall p a{color:#fff;font-weight:800;white-space:nowrap;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.cta-es a{display:inline-block;padding:8px 2px;text-decoration-color:var(--red-ink)}

/* ------------------------------------------------------------------ reveal */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.js .rv.d1{transition-delay:.08s}
.js .rv.d2{transition-delay:.16s}
.js .rv.d3{transition-delay:.24s}

/* ------------------------------------------------------------------ small screens */
@media (max-width:640px){
  body{font-size:16.5px}
  .sec{padding-block:clamp(64px,15vw,84px)}
  .framed{margin:0 10px 10px 0}
  .framed::before{top:10px;left:10px;right:-10px}
  .storm-photo{min-height:360px}
  .town-links small{display:none}
  .facts a{font-size:17px}
}

/* ------------------------------------------------------------------ reduced motion */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1;transform:none;transition:none}
  .hero-video{display:none}
  .hero-poster,.kb,.phero-media img,.amap .base .base-pulse{animation:none}
  .strip-track{animation:none;width:auto;flex-wrap:wrap;justify-content:center}
  .strip-row{flex-wrap:wrap;justify-content:center;white-space:normal;row-gap:6px}
  .strip-row[aria-hidden="true"]{display:none}
  .motion-btn{display:none}
  *,*::before,*::after{transition-duration:.01ms!important}
}
