/* Chicago Home Cleaning: one stylesheet for every page.
   Brand = the Facebook Page and the ads (brand/build_brand.py): terracotta tile, white four-point
   sparkle, gold dot, sand background, pine anchor. Georgia Bold for display, the system sans for text.
   No web fonts (CSP font-src 'self'), no external images. Mobile first, 16px side gutters. */

:root{
  --ink:#261d17; --ink-2:#5d4d42; --ink-3:#786758;
  --brand:#c14e2b; --brand-deep:#a23d1f; --brand-soft:#fbe9e0;
  --pine:#17493b; --pine-deep:#0f3229; --pine-soft:#e7f0ea;
  --gold:#e9b64b; --gold-soft:#fdf3dd; --gold-ink:#4a2c00;
  --sand:#faf4ea; --sand-2:#f3e9da; --paper:#fffdf9; --line:#eadfd0; --line-hover:#d8c6b2;
  --ok-bg:#e8f6ef; --ok-ink:#12694a; --err-bg:#fdecea; --err-ink:#a8322a;
  --radius:16px; --radius-lg:22px;
  --shadow-sm:0 2px 10px rgba(74,46,28,.07); --shadow-md:0 12px 34px rgba(74,46,28,.11); --shadow-lg:0 24px 60px rgba(74,46,28,.16);
  --font-display:Georgia,"Times New Roman",Times,serif;
  --font-body:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:76px}
body{font-family:var(--font-body);font-size:16px;line-height:1.6;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;vertical-align:middle}
a{color:inherit}
a[href^="tel:"],a[href^="sms:"]{white-space:nowrap}
.wrap{max-width:1100px;margin:0 auto;padding:0 16px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:10px 14px;border-radius:10px;font-weight:700;text-decoration:none}
.skip:focus{top:12px}

h1,h2,h3{line-height:1.15;letter-spacing:-.01em}
h1,h2{font-family:var(--font-display);font-weight:700}
h2{font-size:clamp(26px,4vw,38px);margin-bottom:12px}
h3{font-size:18px;font-weight:700}
.kicker{display:inline-block;font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--brand-deep);margin-bottom:10px}
.sub{color:var(--ink-2);max-width:640px;font-size:clamp(15.5px,2vw,17.5px)}
section{padding:clamp(48px,7vw,84px) 0}
section.soft{background:var(--sand)}
section.first{padding-top:clamp(32px,5vw,48px)}
.more-link{margin-top:20px}
.more-link a{color:var(--brand-deep);font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.more-link a:hover{text-decoration:underline}
.ic{flex:none}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:6px}

/* ---------------------------------------------------------------- buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--brand);color:#fff;font-weight:700;text-decoration:none;padding:13px 22px;border-radius:999px;border:0;font:700 15.5px/1.2 var(--font-body);cursor:pointer;transition:background .15s ease,transform .15s ease,box-shadow .15s ease;box-shadow:0 3px 12px rgba(193,78,43,.28);text-align:center}
.btn:hover{background:var(--brand-deep);transform:translateY(-1px)}
.btn:active{transform:none}
.btn.big{padding:16px 28px;font-size:17px}
.btn.small{padding:10px 16px;font-size:14px}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line-hover);box-shadow:none}
.btn.ghost:hover{background:var(--sand);border-color:var(--ink-3)}
.btn .arr{transition:transform .15s ease}
.btn:hover .arr{transform:translateX(3px)}
.btn[disabled]{opacity:.6;cursor:default;transform:none}

/* ----------------------------------------------------------------- header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,253,249,.96);border-bottom:1px solid var(--line)}
@supports (backdrop-filter:blur(8px)){.site-header{background:rgba(255,253,249,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}}
.nav{display:flex;align-items:center;justify-content:space-between;gap:12px;height:64px}
.logo{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-display);font-weight:700;font-size:17px;color:var(--ink);text-decoration:none;min-width:0;white-space:nowrap}
.logo .mark{width:30px;height:30px;flex:none}
.logo-text span{color:var(--brand)}
.nav-links{display:none}
.nav-links a{color:var(--ink-2);text-decoration:none;font-weight:600;font-size:14.5px;padding:6px 0;white-space:nowrap}
.nav-links a:hover,.nav-links a[aria-current]{color:var(--brand-deep)}
.nav-cta{display:flex;align-items:center;gap:6px}
.menu summary{list-style:none;cursor:pointer;padding:9px;margin-right:-9px;color:var(--ink);display:flex;border-radius:10px}
.menu summary::-webkit-details-marker{display:none}
.menu .x{display:none}
.menu[open] .x{display:block}
.menu[open] .bars{display:none}
.mobile-menu{position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:var(--shadow-md);max-height:calc(100vh - 64px);overflow-y:auto}
.mobile-menu a{display:block;padding:14px 16px;font-size:17px;font-weight:600;color:var(--ink);text-decoration:none;border-top:1px solid var(--line)}
.mobile-menu a[aria-current]{color:var(--brand-deep)}
.mobile-menu a.cta{color:var(--brand-deep)}
@media (max-width:400px){.logo{font-size:15.5px}.logo .mark{width:26px;height:26px}.nav-cta .btn.small{display:none}}
@media (min-width:900px){
  .nav-links{display:flex;gap:22px;align-items:center}
  .menu{display:none}
  .nav-cta .btn.small{padding:11px 18px;font-size:14.5px}
}

/* ------------------------------------------------------------------- hero */
.hero{background:radial-gradient(700px 420px at 6% -10%,var(--brand-soft) 0%,transparent 60%),radial-gradient(620px 420px at 100% 8%,var(--pine-soft) 0%,transparent 55%),linear-gradient(180deg,var(--sand) 0%,var(--paper) 100%);padding:clamp(36px,6vw,84px) 0 clamp(40px,6vw,76px)}
.hero-grid{display:grid;gap:28px;align-items:center}
.hero h1{font-size:clamp(34px,5.4vw,58px);margin-bottom:16px;max-width:640px}
.hero h1 em{font-style:italic;color:var(--brand)}
.hero .lede{font-size:clamp(16.5px,2.2vw,19px);color:var(--ink-2);max-width:540px;margin-bottom:24px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:10px}
.hero-ctas .btn{flex:1 1 220px}
.points{list-style:none;display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:22px;font-size:14.5px;color:var(--ink-2);font-weight:500}
.points li{display:inline-flex;align-items:center;gap:8px}
.points .ic{color:var(--pine)}
.offer-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:24px 20px;position:relative;border-top:6px solid var(--brand)}
.offer-card h2{font-size:clamp(26px,3.4vw,34px);margin-bottom:10px}
.offer-card .offer-line{color:var(--ink-2);margin-bottom:16px}
.example{background:var(--sand);border-radius:14px;padding:14px 16px;margin-bottom:14px}
.ex-k{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);margin-bottom:6px}
.ex-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;border-top:1px solid var(--line);font-size:14.5px}
.ex-row:first-of-type{border-top:0}
.ex-row strong{font-family:var(--font-display);font-size:22px;font-variant-numeric:tabular-nums;white-space:nowrap}
.ex-row.half strong{color:var(--brand-deep);font-size:28px}
.fine{font-size:13px;color:var(--ink-3);line-height:1.5}
@media (min-width:900px){.hero-grid{grid-template-columns:1.1fr .9fr;gap:56px}.offer-card{padding:30px 28px}}

/* ------------------------------------------------------------- at a glance */
.band{padding:0}
.band .wrap{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band .cell{padding:18px 12px;border-left:1px solid var(--line);border-top:1px solid var(--line)}
.band .cell:nth-child(odd){border-left:0;padding-left:0}
.band .cell:nth-child(-n+2){border-top:0}
.band strong{display:block;font-family:var(--font-display);font-size:clamp(18px,2.4vw,22px);line-height:1.2;margin-bottom:4px}
.band span{display:block;font-size:13.5px;color:var(--ink-2);line-height:1.45}
@media (min-width:900px){.band .wrap{grid-template-columns:repeat(4,1fr)}.band .cell{border-top:0;padding:24px 20px}.band .cell:nth-child(odd){border-left:1px solid var(--line);padding-left:20px}.band .cell:first-child{border-left:0;padding-left:0}}

/* ------------------------------------------------------------------ steps */
.steps{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px;margin-top:28px}
.step{background:var(--sand);border-radius:var(--radius);padding:24px 22px}
.step .num{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--brand);color:#fff;font-weight:800;margin-bottom:12px}
.step h3{margin-bottom:6px}
.step p{font-size:15px;color:var(--ink-2)}

/* ----------------------------------------------------------------- prices */
.prices-sec{background:linear-gradient(180deg,var(--paper) 0%,var(--sand) 100%)}
.price-tables{display:grid;gap:16px;margin-top:26px}
@media (min-width:900px){.price-tables{grid-template-columns:5fr 6fr;align-items:start}}
.price-box{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;margin:18px 0}
.price-tables .price-box{margin:0}
.price-box h3{font-family:var(--font-display);font-size:20px;padding:16px 16px 2px}
.price-box .note{font-size:14px;color:var(--ink-2);padding:0 16px 12px;margin:0}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
table{width:100%;border-collapse:collapse}
.prices{table-layout:fixed;font-size:14.5px}
.prices th,.prices td{padding:11px 8px;text-align:right;border-top:1px solid var(--sand-2);vertical-align:bottom}
.prices th:first-child,.prices td:first-child{text-align:left;padding-left:16px}
.prices th:last-child,.prices td:last-child{padding-right:16px}
.prices thead th{font-size:12.5px;font-weight:700;color:var(--ink-2);line-height:1.3;background:var(--sand)}
.prices thead th:first-child{width:34%}
.prices tbody th{font-weight:600;font-size:13.5px;line-height:1.35}
.prices td{font-variant-numeric:tabular-nums;font-weight:700;font-size:15.5px}
.prices .half{background:var(--brand-soft);color:var(--brand-deep)}
.prices thead .half{color:var(--brand-deep)}
.price-notes{list-style:none;margin-top:20px;display:grid;gap:8px;max-width:760px}
.price-notes li{position:relative;padding-left:22px;font-size:15px;color:var(--ink-2)}
.price-notes li::before{content:"";position:absolute;left:4px;top:.6em;width:7px;height:7px;border-radius:50%;background:var(--gold)}
@media (min-width:600px){.prices th,.prices td{padding:12px 12px}.prices tbody th{font-size:14.5px}.prices thead th{font-size:13.5px}}

/* ---------------------------------------------------------------- compare */
.compare-wrap{margin-top:26px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm)}
.compare{table-layout:fixed;font-size:14.5px}
.compare th,.compare td{padding:11px 8px;text-align:left;border-top:1px solid var(--sand-2);vertical-align:middle}
.compare thead th{border-top:0;background:var(--sand);font-size:13px;line-height:1.25}
.compare thead th:first-child{width:56%;padding-left:14px}
.compare thead th small{display:block;font-weight:500;color:var(--ink-3);font-size:11.5px}
.compare tbody th{font-weight:600;font-size:13.5px;line-height:1.35;padding-left:14px}
.compare td{text-align:center;color:var(--ink-3)}
.compare td.y{color:var(--pine)}
.table-foot{margin-top:12px;font-size:14px;color:var(--ink-2)}
@media (min-width:600px){.compare thead th:first-child{width:50%}.compare th,.compare td{padding:13px 16px}.compare tbody th{font-size:14.5px}}

/* --------------------------------------------------------------- services */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px;margin-top:26px}
.card{border:1px solid var(--line);border-radius:var(--radius);padding:24px 22px;background:#fff;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;text-decoration:none;color:var(--ink);transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--line-hover)}
.card .icon{width:46px;height:46px;border-radius:13px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.card:nth-child(2) .icon{background:var(--pine-soft);color:var(--pine)}
.card:nth-child(3) .icon{background:var(--gold-soft);color:#9a6a12}
.card h2,.card h3{font-family:var(--font-body);font-size:19px;margin-bottom:8px;letter-spacing:0}
.card p{font-size:15px;color:var(--ink-2);margin-bottom:12px}
.card ul{list-style:none;margin:0 0 16px;font-size:14px;color:var(--ink-2)}
.card li{padding:3px 0 3px 22px;position:relative}
.card li::before,.prose ul li::before,.check-sec li::before{content:"";position:absolute;left:2px;top:.55em;width:13px;height:13px;background:var(--pine);-webkit-mask:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="3.4" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg>') center/contain no-repeat;mask:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="3.4" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg>') center/contain no-repeat}
.card .more{margin-top:auto;color:var(--brand-deep);font-weight:700;font-size:14.5px;display:inline-flex;align-items:center;gap:6px}

/* ------------------------------------------------------------------ areas */
.area-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:12px;margin-top:26px}
.area-card{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px 16px;text-decoration:none;color:var(--ink);font-weight:600;font-size:15px;line-height:1.3;transition:border-color .15s ease,box-shadow .15s ease}
.area-card:hover{border-color:var(--brand);box-shadow:var(--shadow-sm)}
.area-card .ic{color:var(--brand)}
.area-card small{display:block;font-weight:500;color:var(--ink-3);font-size:13px;margin-top:2px}
.zip-list{list-style:none!important;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:8px;margin:14px 0 18px!important}
.prose .zip-list li{margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:14.5px}
.prose .zip-list li::before{display:none}
.zip-list strong{font-variant-numeric:tabular-nums;margin-right:6px}
.zips{font-size:14.5px;table-layout:fixed}
.zips th,.zips td{padding:9px 8px;text-align:left;border-top:1px solid var(--sand-2);vertical-align:top}
.zips thead th{background:var(--sand);font-size:12.5px;border-top:0}
.zips th:first-child,.zips td:first-child{width:22%;font-variant-numeric:tabular-nums;padding-left:12px}
.zips .same{color:var(--ink-3);font-size:13px}

/* -------------------------------------------------------------------- faq */
.faq-list{margin-top:24px;max-width:800px}
details.faq{border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:10px}
details.faq summary{list-style:none;cursor:pointer;padding:16px 18px;font-weight:700;font-size:15.5px;display:flex;justify-content:space-between;align-items:center;gap:14px}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";font-size:22px;line-height:1;color:var(--ink-3);flex:none;transition:transform .18s ease}
details.faq[open] summary::after{transform:rotate(45deg);color:var(--brand)}
details.faq .a{padding:0 18px 18px;color:var(--ink-2);font-size:15px}
.faq-item{border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-top:12px;background:#fff}
.prose .faq-item h3{font-size:17px;margin:0 0 6px}
.prose .faq-item p{margin:0}

/* ------------------------------------------------------------- quote form */
.quote-sec{background:radial-gradient(700px 420px at 0% 100%,var(--pine-soft) 0%,transparent 55%),linear-gradient(180deg,var(--paper) 0%,var(--sand) 100%)}
.quote-grid{display:grid;gap:28px;align-items:start}
.book-page{padding-top:8px}
@media (min-width:900px){.quote-grid{grid-template-columns:.85fr 1.15fr;gap:56px}.quote-aside{position:sticky;top:90px}.book-page .quote-grid{grid-template-columns:1.2fr .8fr}}
.quote-aside .sub{margin-bottom:6px}
.promises{list-style:none;margin-top:18px;display:grid;gap:16px}
.promises li{display:flex;gap:12px;align-items:flex-start}
.promises .ic{color:var(--pine);margin-top:2px}
.promises strong{display:block;font-size:15px}
.promises span{font-size:14px;color:var(--ink-2)}
.aside-contact{margin-top:20px;padding-top:16px;border-top:1px solid var(--sand-2);font-size:14.5px;color:var(--ink-2)}
.aside-contact a,.mini-prices a,.disclosure a{color:var(--brand-deep);font-weight:700}
.aside-h{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);margin:0 0 10px}
.compact .aside-h+*{margin-bottom:20px}
.next-steps{padding-left:20px;display:grid;gap:8px;font-size:15px;color:var(--ink-2)}
.mini-prices{font-size:15px;color:var(--ink-2)}
.compact .fine{margin-top:4px}
.quote-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:22px 18px;min-width:0}
@media (min-width:600px){.quote-form{padding:30px 30px}}
fieldset{border:0;min-width:0}
.seg-field{margin-bottom:18px}
legend,.quote-form label{display:block;font-size:14px;font-weight:700;color:var(--ink);margin-bottom:8px}
.req{color:var(--brand-deep)}
.opt{font-weight:500;color:var(--ink-3)}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg label{margin:0!important;cursor:pointer;border:1.5px solid var(--line);border-radius:12px;padding:11px 10px;font-size:14.5px!important;font-weight:600!important;line-height:1.25;text-align:center;display:flex!important;align-items:center;justify-content:center;color:var(--ink-2)!important;background:#fff;user-select:none;transition:background .12s ease,border-color .12s ease}
@media (min-width:600px){.seg{grid-template-columns:repeat(4,1fr)}}
.seg label:hover{border-color:var(--line-hover)}
.seg input:checked+label{background:var(--brand);border-color:var(--brand);color:#fff!important}
.seg input:focus-visible+label{outline:3px solid var(--brand);outline-offset:2px}
.grid2{display:grid;gap:0 14px}
@media (min-width:600px){.grid2{grid-template-columns:1fr 1fr}}
.grid2>div{margin-bottom:14px;min-width:0}
input[type=text],input:not([type]),input[type=tel],input[type=email],textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;font:16px/1.4 var(--font-body);background:#fff;color:var(--ink)}
input:hover,textarea:hover{border-color:var(--line-hover)}
input:focus,textarea:focus{border-color:var(--brand)}
textarea{resize:vertical;min-height:84px;margin-bottom:14px}
/* Honeypot: display:none, not off-screen. Browser autofill (Chrome/Safari contact cards) fills an
   off-screen "company" field, and the intake silently drops any lead whose company is set. Autofill
   never fills a display:none field; bots that post every input still fill it. */
.hp{display:none!important}
.consent{display:flex;gap:10px;align-items:flex-start;margin-top:6px;padding:12px 14px;background:var(--sand);border-radius:12px}
.consent input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--brand)}
.quote-form .consent label{margin:0;font-size:14.5px}
.disclosure{font-size:12.5px;color:var(--ink-3);line-height:1.5;margin:10px 0 18px}
.submit{width:100%}
.form-msg{margin-top:14px;font-size:14.5px;font-weight:600;border-radius:12px}
.form-msg:empty{display:none}
.form-msg.err{padding:12px 14px;background:var(--err-bg);color:var(--err-ink)}
.thanks{background:#fff;border:1px solid var(--line);border-top:6px solid var(--pine);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:26px 22px}
.thanks h3{font-family:var(--font-display);font-size:24px;margin-bottom:10px}
.thanks p{color:var(--ink-2);margin-top:8px}
.thanks a{color:var(--brand-deep);font-weight:700}
.thanks:focus{outline:none}

/* ---------------------------------------------------------------- CTA band */
.cta-band{background:var(--pine);color:#f4efe6;text-align:center}
.cta-band h2{color:#fff}
.cta-band p{margin:8px auto 22px;color:#cfdcd2;max-width:540px}
.cta-band .btn{background:var(--gold);color:var(--gold-ink);box-shadow:0 4px 16px rgba(0,0,0,.25)}
.cta-band .btn:hover{background:#f0c363}

/* ----------------------------------------------------------------- footer */
.site-footer{background:var(--pine-deep);color:#b9c9bd;padding:44px 0 calc(32px + env(safe-area-inset-bottom));font-size:14px}
.site-footer .cols{display:grid;gap:26px;margin-bottom:28px}
@media (min-width:600px){.site-footer .cols{grid-template-columns:1fr 1fr}}
@media (min-width:900px){.site-footer .cols{grid-template-columns:2fr 1fr 1.2fr 1fr}}
.site-footer .logo{color:#fff;font-size:16.5px}
.site-footer .logo-text span{color:var(--gold)}
.site-footer p{margin-top:10px;max-width:300px;line-height:1.55}
.foot-h{font-family:var(--font-body);font-size:12.5px;color:#e9dfcd;margin-bottom:10px;text-transform:uppercase;letter-spacing:.1em}
.site-footer .cols a:not(.logo){display:block;padding:4px 0;color:#b9c9bd;text-decoration:none}
.site-footer .cols a:not(.logo):hover{color:#fff}
.foot-nap{margin-top:16px}
.foot-nap strong{display:block;color:#fff;font-size:17px}
.foot-act{display:flex;gap:20px;margin-top:2px}
.site-footer .foot-act a{display:inline-block!important;font-weight:700;color:#e9dfcd!important;border-bottom:1.5px solid rgba(233,223,205,.4)}
.legal{border-top:1px solid rgba(255,255,255,.12);padding-top:18px;font-size:13px;color:#a3b8aa}

/* ------------------------------------------------------------ sticky CTA */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,253,249,.97);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .25s ease}
.sticky-cta.show{transform:none}
.sticky-cta .btn{flex:1;padding:14px 10px}
.sticky-cta .btn.ghost{flex:0 0 auto;padding:14px 18px}
@media (min-width:720px){.sticky-cta{display:none}}

/* --------------------------------------------------------------- subpages */
.page-hero{background:radial-gradient(620px 360px at 95% -20%,var(--brand-soft) 0%,transparent 55%),linear-gradient(180deg,var(--sand) 0%,var(--paper) 100%);padding:clamp(28px,5vw,64px) 0 clamp(28px,4vw,48px)}
.page-hero h1{font-size:clamp(30px,4.6vw,46px);max-width:780px;margin-bottom:12px}
.page-hero .lede{font-size:clamp(16px,2vw,18px);color:var(--ink-2);max-width:640px;margin-bottom:22px}
.page-hero .lede:last-child{margin-bottom:0}
.crumbs{font-size:13.5px;color:var(--ink-3);margin-bottom:16px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px}
.crumbs li+li::before{content:"\203A";margin-right:6px;color:var(--ink-3)}
.crumbs a{color:var(--brand-deep);text-decoration:none;font-weight:600}

.prose{max-width:720px}
.prose>h2{margin-top:40px;font-size:clamp(23px,3vw,29px)}
.prose>h2:first-child{margin-top:0}
.prose p{margin:14px 0;color:var(--ink-2)}
.prose>ul,.prose>ol,.prose li>ul{margin:14px 0;color:var(--ink-2)}
.prose>ul{list-style:none}
.prose>ul li{margin:8px 0;padding-left:26px;position:relative}
.prose>ol{padding-left:22px}
.prose>ol li{margin:8px 0;padding-left:4px}
.prose strong{color:var(--ink)}
.prose a{color:var(--brand-deep);font-weight:600}
.prose .btn{color:#fff;text-decoration:none}
.prose .btn.ghost{color:var(--ink)}
.prose .contact-links{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}
.prose .contact-links .btn{flex:1 1 140px}
.prose .eff{color:var(--ink-3);margin-top:0}
.prose .box{background:var(--sand);border:1px solid var(--line);border-left:5px solid var(--brand);border-radius:12px;padding:12px 16px;margin:14px 0}
.prose .box p{margin:6px 0;color:var(--ink)}
.prose .table-scroll{border:1px solid var(--line);border-radius:14px;background:#fff;margin:14px 0}
.check-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px;margin:16px 0}
.check-sec{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.prose .check-sec h3{font-size:16px;margin:0 0 6px}
.check-sec ul{list-style:none;margin:0;color:var(--ink-2);font-size:15px}
.check-sec li{position:relative;padding-left:24px;margin:6px 0}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
