/* Superior CO-OP HVAC — main.css — see DESIGN-SYSTEM.md */
:root{
  --navy:#262260;--navy-2:#2B3990;--red:#D71E26;--red-dark:#B5161D;
  --ink:#1B1B2F;--ink-2:#4A4A63;--line:#E4E4EC;--paper:#fff;--paper-2:#F5F6FA;--navy-tint:#EEF0F8;
  --warm:#F7B32B;--cool:#5FB9F2;--success:#1E8E5A;
  --font:"Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",Arial,sans-serif;
  --t-xs:.78rem;--t-sm:.9rem;--t-base:1.0625rem;--t-lg:1.2rem;--t-h4:1.25rem;
  --t-h3:clamp(1.35rem,1.1rem + 1vw,1.65rem);--t-h2:clamp(1.75rem,1.3rem + 2vw,2.5rem);
  --t-h1:clamp(2.1rem,1.5rem + 3vw,3.5rem);--t-display:clamp(2.4rem,1.6rem + 4vw,4.25rem);
  --s-1:.5rem;--s-2:1rem;--s-3:1.5rem;--s-4:2rem;--s-5:3rem;--s-6:4rem;--s-7:6rem;
  --r:12px;--r-sm:8px;--r-pill:999px;--measure:68ch;
  --shadow:0 10px 30px -12px rgba(38,34,96,.25);--header-h:64px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:var(--t-base);line-height:1.6;color:var(--ink);background:var(--paper)}
img,svg,picture{display:block;max-width:100%;height:auto}
h1,h2,h3,h4{margin:0 0 .5em;line-height:1.1;font-weight:800;letter-spacing:-.02em;color:var(--navy)}
h1{font-size:var(--t-h1)}h2{font-size:var(--t-h2)}h3{font-size:var(--t-h3)}h4{font-size:var(--t-h4)}
p,ul,ol{margin:0 0 1.1em}
a{color:var(--navy-2)}a:hover{color:var(--red)}
strong{font-weight:700}
:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--navy);color:#fff;padding:.6rem 1rem;border-radius:var(--r-sm);z-index:100}
.skip:focus{left:8px}
.wrap{max-width:1180px;margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}
.section{padding-block:clamp(3rem,6vw,6rem)}
.section--tight{padding-block:clamp(2rem,4vw,3.5rem)}
.band{background:var(--paper-2)}
.band--navy{background:var(--navy);color:#fff}
.band--navy h2,.band--navy h3,.band--navy h4{color:#fff}
.band--navy a{color:#fff}
.prose{max-width:var(--measure)}
.prose h2{margin-top:1.6em}.prose h3{margin-top:1.3em}
.lead{font-size:var(--t-lg);color:var(--ink-2);max-width:var(--measure)}
.eyebrow{display:inline-block;font-size:var(--t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--red);margin-bottom:.6rem}
.center{text-align:center}.center .lead,.center .prose{margin-inline:auto}
.muted{color:var(--ink-2)}.small{font-size:var(--t-sm)}
.mt0{margin-top:0}.mb0{margin-bottom:0}
/* grids */
.grid{display:grid;gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.grid-2,.grid-3,.grid-4{display:grid;gap:var(--s-3)}
@media(min-width:720px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}}
@media(min-width:720px) and (max-width:1000px){.grid-4{grid-template-columns:1fr 1fr}}
.split{display:grid;gap:var(--s-4);align-items:center}
@media(min-width:860px){.split{grid-template-columns:1.1fr 1fr}.split--rev>:first-child{order:2}}
.split .media img{border-radius:var(--r);width:100%}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.75rem 1.4rem;border-radius:var(--r-sm);font-weight:700;font-size:1rem;text-decoration:none;border:2px solid var(--red);background:var(--red);color:#fff;cursor:pointer;transition:transform .15s,background .15s,box-shadow .2s;line-height:1.2}
.btn:hover{background:var(--red-dark);border-color:var(--red-dark);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow)}
.btn--ghost{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn--ghost:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.btn--white{background:#fff;color:var(--navy);border-color:#fff}
.btn--white:hover{background:var(--navy-tint);border-color:var(--navy-tint);color:var(--navy)}
/* navy bands set a blanket white link colour; keep button labels readable */
.band--navy a.btn:not(.btn--white),.band--navy a.btn:not(.btn--white):hover{color:#fff}
.band--navy a.btn--ghost{color:#fff;border-color:#fff}
.band--navy a.btn--white,.band--navy a.btn--white:hover,.band--navy a.btn--white:focus{color:var(--navy)}
.btn--lg{font-size:1.1rem;padding:.95rem 1.8rem}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.25rem 0}
@media(max-width:480px){.btn{width:100%}}
/* header */
.header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);transition:box-shadow .2s}
.header.is-scrolled{box-shadow:0 4px 20px -10px rgba(38,34,96,.3)}
.header .wrap{display:flex;align-items:center;gap:var(--s-3);min-height:var(--header-h)}
.logo{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--navy);margin-right:auto}
.logo svg{width:38px;height:44px;flex:none}
.logo b{font-size:1.05rem;font-weight:900;letter-spacing:-.02em;line-height:1;display:block;white-space:nowrap}
.logo small{display:block;font-size:.62rem;font-weight:600;color:var(--ink-2);letter-spacing:.02em;margin-top:.2rem}
.logo small em{font-style:normal;color:var(--red)}.logo small i{font-style:normal;color:var(--navy-2)}
.nav{display:flex;align-items:center;gap:1.1rem}
.nav a{color:var(--ink);text-decoration:none;font-weight:600;font-size:.95rem;white-space:nowrap}
.nav a:hover:not(.btn),.nav a[aria-current]:not(.btn){color:var(--red)}
.nav a.btn,.nav a.btn:hover,.nav a.btn[aria-current]{color:#fff}
.nav .btn{min-height:42px;padding:.5rem 1.1rem}
.nav .phone{font-weight:800;color:var(--navy)}
.nav-toggle{display:none;background:none;border:0;padding:.5rem;cursor:pointer;margin-left:auto}
.nav-toggle span{display:block;width:26px;height:3px;background:var(--navy);margin:5px 0;border-radius:2px;transition:transform .2s,opacity .2s}

/* dropdown + mega menu */
.has-sub{position:relative;display:flex;align-items:center}
.has-sub>a{padding-right:.1rem}
.sub-toggle{background:none;border:0;padding:.4rem .3rem;cursor:pointer;width:22px;height:22px;position:relative;flex:none}
.sub-toggle::after{content:"";position:absolute;left:7px;top:5px;width:7px;height:7px;border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);transform:rotate(45deg);transition:transform .2s,border-color .2s}
.has-sub:hover .sub-toggle::after,.sub-toggle[aria-expanded=true]::after{border-color:var(--red)}
.sub{position:absolute;top:100%;left:-1rem;min-width:240px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);border-radius:0 0 var(--r) var(--r);box-shadow:var(--shadow);padding:1.1rem 1.25rem 1.25rem;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s,transform .18s,visibility 0s .18s;z-index:60}
.has-sub:hover>.sub,.has-sub:focus-within>.sub,.sub-toggle[aria-expanded=true]+.sub{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.has-sub::before{content:"";position:absolute;left:0;right:0;top:100%;height:14px}
.sub-grid{display:flex;gap:2rem}
.sub-col{min-width:200px}
.sub-h{margin:0 0 .5rem;font-size:var(--t-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--red)}
.sub ul{list-style:none;margin:0;padding:0}
.sub li{margin:0}
.nav .sub a{display:block;padding:.3rem 0;font-size:.9rem;font-weight:500;white-space:normal;line-height:1.35;color:var(--ink)}
.nav .sub a:hover{color:var(--red)}
.nav .sub a.sub-more{font-weight:700;color:var(--navy);margin-top:.25rem}
.has-sub--mega{position:static}
.has-sub--mega>.sub{left:0;right:0;min-width:0;border-radius:0 0 var(--r) var(--r)}
.has-sub--mega .sub-grid{flex-wrap:wrap;gap:1.5rem 2rem}
.has-sub--mega .sub-col{flex:1 1 170px;min-width:0}
.has-sub--mega .sub-col:last-child{flex-basis:100%;border-top:1px solid var(--line);padding-top:.9rem}
.has-sub--mega .sub-col:last-child ul{display:flex;flex-wrap:wrap;gap:.2rem 1.4rem}
.has-sub--mega .sub-col:last-child .sub-h{margin-bottom:.35rem}
.header .wrap{position:relative}
@media(max-width:1180px){
  .nav-toggle{display:block}
  .nav{position:fixed;inset:var(--header-h) 0 0 0;background:#fff;flex-direction:column;align-items:stretch;padding:var(--s-3) clamp(1rem,4vw,2rem);gap:0;transform:translateX(100%);transition:transform .25s;overflow:auto}
  .nav a{padding:.9rem 0;border-bottom:1px solid var(--line);font-size:1.1rem}
  .nav .btn{margin-top:1rem;border-bottom:0}
  .has-sub{flex-wrap:wrap;border-bottom:1px solid var(--line)}
  .has-sub>a{flex:1;border-bottom:0}
  .sub-toggle{width:48px;height:48px;margin-right:-.6rem}
  .sub-toggle::after{left:19px;top:16px;width:10px;height:10px}
  .sub-toggle[aria-expanded=true]::after{transform:rotate(-135deg);top:21px}
  .has-sub::before{display:none}
  .sub,.has-sub:hover>.sub,.has-sub:focus-within>.sub{position:static;flex-basis:100%;display:none;opacity:1;visibility:visible;transform:none;border:0;border-radius:0;box-shadow:none;padding:0 0 .8rem .6rem;transition:none}
  .sub-toggle[aria-expanded=true]+.sub{display:block}
  .sub-grid{flex-direction:column;gap:.9rem}
  .nav .sub a{padding:.45rem 0;border-bottom:0;font-size:1rem}
  .has-sub--mega .sub-col:last-child{border-top:0;padding-top:0}
  .has-sub--mega .sub-col:last-child ul{display:block}
  .nav.is-open{transform:none}
  .nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
  .logo b{font-size:.95rem}
}
/* logo animation */
.mark .up{animation:drift-up 3.2s ease-in-out infinite}
.mark .down{animation:drift-down 3.2s ease-in-out infinite}
.logo:hover .mark .up,.logo:hover .mark .down{animation-duration:1.4s}
@keyframes drift-up{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes drift-down{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
/* sticky call bar */
.callbar{display:none}
@media(max-width:900px){
  body{padding-bottom:72px}
  .callbar{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;padding:.6rem .75rem;border-top:1px solid var(--line);box-shadow:0 -6px 20px -10px rgba(38,34,96,.3)}
  .callbar .btn{width:100%;min-height:46px;padding:.5rem;font-size:.95rem}
}
/* hero */
.hero{padding-block:clamp(2.5rem,6vw,5rem) clamp(2rem,5vw,4rem)}
.hero h1{font-size:var(--t-display);max-width:16ch}
.hero .lead{font-size:clamp(1.1rem,1rem + .6vw,1.35rem)}
.hero--inner{padding-block:clamp(2rem,4vw,3.5rem) clamp(1rem,3vw,2rem)}
.hero--inner h1{font-size:var(--t-h1);max-width:22ch}
.crumbs{font-size:var(--t-sm);color:var(--ink-2);margin-bottom:1rem}
.crumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.35rem}
.crumbs li+li::before{content:"›";margin-right:.35rem;color:var(--line)}
.crumbs a{color:var(--ink-2);text-decoration:none}.crumbs a:hover{color:var(--red)}
.trust{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;padding:0;margin:1.25rem 0 0;list-style:none;font-size:var(--t-sm);font-weight:600;color:var(--ink-2)}
.trust li::before{content:"✓";color:var(--success);font-weight:900;margin-right:.35rem}
/* hero airflow animation */
.airflow{position:relative;aspect-ratio:4/3;max-width:520px;margin-inline:auto;width:100%}
.airflow .unit{position:absolute;top:8%;right:6%;width:58%;height:15%;background:#fff;border:1px solid var(--line);border-radius:10px 10px 14px 14px;box-shadow:0 12px 30px -14px rgba(38,34,96,.35)}
.airflow .unit::after{content:"";position:absolute;left:8%;right:8%;bottom:14%;height:8%;border-radius:4px;background:var(--navy-tint)}
.airflow .unit i{position:absolute;right:10%;top:34%;width:6px;height:6px;border-radius:50%;background:var(--success);animation:blink 6s infinite}
.airflow .flow{position:absolute;right:16%;top:26%;width:52%;height:52%;border-radius:0 0 0 100%;border-left:16px solid transparent;border-bottom:16px solid transparent;opacity:0;animation:flow 6s ease-in-out infinite;--c:var(--warm)}
.airflow .flow::before{content:"";position:absolute;inset:-16px;border-radius:0 0 0 100%;border-left:14px solid var(--c);border-bottom:14px solid var(--c);opacity:.55;filter:blur(1px)}
.airflow .flow:nth-child(3){animation-delay:.6s;transform:scale(.75);transform-origin:top right}
.airflow .flow:nth-child(4){animation-delay:1.2s;transform:scale(.5);transform-origin:top right}
.airflow .mode{position:absolute;left:4%;bottom:6%;background:#fff;border:1px solid var(--line);border-radius:var(--r-pill);padding:.45rem 1rem;font-weight:800;font-size:.85rem;letter-spacing:.08em;display:grid;box-shadow:var(--shadow)}
.airflow .mode span{grid-area:1/1;animation:modeswap 6s infinite}
.airflow .mode span:first-child{color:#8a5200}.airflow .mode span:last-child{color:#0f5c8c;animation-delay:-3s}
.airflow .temp{position:absolute;right:4%;bottom:6%;font-size:2.2rem;font-weight:900;color:var(--navy);letter-spacing:-.03em}
.airflow .temp small{display:block;font-size:.7rem;font-weight:700;color:var(--ink-2);letter-spacing:.08em}
.airflow .house{position:absolute;inset:0;border:2px dashed var(--line);border-radius:var(--r)}
@keyframes flow{0%{opacity:0;--c:var(--warm)}10%,40%{opacity:1;--c:var(--warm)}48%{opacity:0}50%{opacity:0;--c:var(--cool)}60%,90%{opacity:1;--c:var(--cool)}100%{opacity:0}}
@keyframes modeswap{0%,45%{opacity:1}50%,95%{opacity:0}100%{opacity:1}}
@keyframes blink{0%,49%{background:#f7b32b}50%,100%{background:var(--cool)}}
/* stats */
.stats{display:grid;gap:var(--s-2);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));list-style:none;padding:0;margin:0}
.stats li{background:var(--navy-tint);border-radius:var(--r);padding:1.1rem 1rem}
.stats b{display:block;font-size:1.9rem;font-weight:900;color:var(--navy);letter-spacing:-.03em;line-height:1}
.stats span{font-size:var(--t-sm);color:var(--ink-2);font-weight:600}
/* cards */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.4rem;display:flex;flex-direction:column;gap:.5rem;transition:transform .2s,box-shadow .2s;position:relative}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card h3{font-size:var(--t-h4);margin:0}
.card p{margin:0;color:var(--ink-2);font-size:.98rem}
.card .more{margin-top:auto;padding-top:.5rem;font-weight:700;text-decoration:none;color:var(--navy)}
.card .more::after{content:" →";transition:margin .15s}.card:hover .more::after{margin-left:.3rem}
.card .more::before{content:"";position:absolute;inset:0}
.card ul{margin:0;padding-left:1.1rem;color:var(--ink-2);font-size:.95rem}
.pcard{padding:0;overflow:hidden}
.pcard .plate{background:var(--paper-2);padding:1.5rem;display:grid;place-items:center;aspect-ratio:16/10;overflow:hidden}
.pcard .plate img{max-height:100%;width:auto;object-fit:contain;transition:transform .35s}
.pcard:hover .plate img{transform:scale(1.05)}
.pcard .body{padding:1.25rem 1.4rem 1.4rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.pcard h3 span{background:linear-gradient(var(--red),var(--red)) no-repeat 0 100%/0 2px;transition:background-size .3s}
.pcard:hover h3 span{background-size:100% 2px}
/* steps */
.steps{list-style:none;padding:0;margin:0;counter-reset:s;display:grid;gap:var(--s-3)}
@media(min-width:720px){.steps{grid-template-columns:repeat(3,1fr)}}
.steps li{counter-increment:s;padding-top:.5rem;border-top:3px solid var(--line);position:relative}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;font-weight:900;color:var(--red);font-size:1.6rem;letter-spacing:-.03em;margin-bottom:.4rem}
.steps h3{font-size:var(--t-h4)}
/* rebate callout */
.rebate{background:var(--navy);color:#fff;border-radius:var(--r);padding:clamp(1.5rem,4vw,3rem);display:grid;gap:var(--s-3);align-items:center}
@media(min-width:860px){.rebate{grid-template-columns:1fr auto}}
.rebate h2,.rebate h3{color:#fff;margin-bottom:.4rem}
.rebate .fig{font-size:clamp(2rem,4vw,3.2rem);font-weight:900;color:#7EE2B0;letter-spacing:-.03em;line-height:1}
.rebate p{margin:.5rem 0 0;color:#D6D8EA;max-width:60ch}
/* form block */
.lead-form{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.25rem,3vw,2rem)}
.lead-form iframe{width:100%;min-height:600px;border:0;display:block}
.form-fallback{padding:1rem;background:var(--navy-tint);border-radius:var(--r-sm)}
/* placeholder shown while the GHL embed loads so the card never looks broken */
.lead-form.is-loading{position:relative}
.form-loading{display:flex;align-items:center;gap:.6rem;min-height:380px;justify-content:center;color:var(--ink-2);font-size:var(--t-sm);text-align:center;padding:1rem}
.form-loading::before{content:"";width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--red);border-radius:50%;animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.form-loading::before{animation:none}}
/* reviews */
.reviews-static{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.stars{color:#F5A623;letter-spacing:.1em;font-size:1.3rem}
.quote{border-left:4px solid var(--red);padding:.25rem 0 .25rem 1.2rem;margin:0;font-size:1.05rem;color:var(--ink)}
.quote footer{margin-top:.5rem;font-size:var(--t-sm);color:var(--ink-2);font-weight:600}
/* faq */
.faq details{border-top:1px solid var(--line);padding:.2rem 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:700;font-size:1.05rem;padding:1rem 2rem 1rem 0;list-style:none;position:relative;color:var(--navy)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:.85rem;font-size:1.5rem;color:var(--red);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details>div{padding:0 0 1.2rem;color:var(--ink-2);max-width:var(--measure)}
/* team */
.team-card{text-decoration:none;color:inherit;display:block}
.team-card img{border-radius:var(--r);aspect-ratio:3/2;object-fit:cover;width:100%;transition:transform .3s}
.team-card:hover img{transform:scale(1.02)}
.team-card h3{font-size:1.1rem;margin:.8rem 0 .1rem}
.team-card p{margin:0;font-size:var(--t-sm);color:var(--ink-2)}
.profile{display:grid;gap:var(--s-4)}
@media(min-width:800px){.profile{grid-template-columns:360px 1fr}}
.profile img{border-radius:var(--r);width:100%}
/* tables / pricing */
.price-list{list-style:none;padding:0;margin:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.price-list li{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 1.1rem;border-top:1px solid var(--line)}
.price-list li:first-child{border-top:0}
.price-list b{color:var(--navy);white-space:nowrap}
table{width:100%;border-collapse:collapse;font-size:.98rem}
th,td{text-align:left;padding:.7rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--navy);font-weight:800}
.table-wrap{overflow-x:auto}
/* checklist */
.checks{list-style:none;padding:0;margin:0 0 1em}
.checks li{padding-left:1.6rem;position:relative;margin-bottom:.45rem}
.checks li::before{content:"✓";position:absolute;left:0;color:var(--success);font-weight:900}
/* badges */
.badges{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem 2.5rem}
.badges img{height:52px;width:auto}
/* town list */
.towns{columns:2;column-gap:2rem;list-style:none;padding:0;margin:0}
@media(min-width:720px){.towns{columns:3}}
.towns li{break-inside:avoid;padding:.3rem 0;border-bottom:1px solid var(--line)}
.towns a{text-decoration:none;color:var(--ink);font-weight:600}.towns a:hover{color:var(--red)}
/* callout */
.callout{border-left:4px solid var(--red);background:var(--paper-2);padding:1rem 1.25rem;border-radius:0 var(--r-sm) var(--r-sm) 0;margin:1.5em 0}
.callout p:last-child{margin:0}
/* CTA strip */
.cta-strip{text-align:center}
.cta-strip h2{max-width:24ch;margin-inline:auto}
.cta-strip .btn-row{justify-content:center}
.cta-strip .phone{font-size:1.4rem;font-weight:900;color:#fff;text-decoration:none}
/* footer */
.footer{background:var(--navy);color:#C9CBE0;padding-block:var(--s-6) var(--s-4);font-size:var(--t-sm)}
.footer a{color:#fff;text-decoration:none}.footer address a,.footer p a{text-decoration:underline;text-underline-offset:2px}.footer a:hover{color:#fff;text-decoration:underline}
.footer .ft-h{color:#fff;font-size:1rem;font-weight:800;margin:0 0 .8rem}
.footer ul{list-style:none;padding:0;margin:0}.footer li{margin-bottom:.45rem}
.footer .logo{color:#fff;margin-bottom:1rem}.footer .logo small{color:#C9CBE0}
.footer .cols{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.footer .legal{border-top:1px solid rgba(255,255,255,.15);margin-top:var(--s-4);padding-top:var(--s-3);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}
.footer address{font-style:normal;line-height:1.7}
/* reveal */
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease;transition-delay:calc(var(--i,0) * 70ms)}
.js .reveal.in{opacity:1;transform:none}
/* blog */
.post-meta{color:var(--ink-2);font-size:var(--t-sm);margin-bottom:1.5rem}
.prose img{border-radius:var(--r);margin:1.5em 0}
.prose blockquote{margin:1.5em 0;padding-left:1.2rem;border-left:4px solid var(--red);color:var(--ink-2)}
/* gallery */
.gallery{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.gallery img{aspect-ratio:1;object-fit:cover;border-radius:var(--r-sm);width:100%}
/* 404 */
.err h1{font-size:var(--t-display)}
/* utilities */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hide-mobile{display:none}@media(min-width:720px){.hide-mobile{display:initial}}
@media print{.header,.callbar,.footer,.lead-form{display:none}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none}
}
