/* MI Septic: neutral, professional palette */
:root{
  --ink:#1F2933; --text:#3E4C59; --muted:#5F6B7A; --line:#E1E5EA; --surface:#F4F6F8; --white:#fff;
  --primary:#1F4E79; --primary-dark:#163A5B; --primary-soft:#E8EFF6; --ok:#2E6B4F; --ok-soft:#EAF3EE; --warn:#9A2C22; --warn-soft:#FBEDEB;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --wrap:72rem; --measure:44rem; --radius:10px;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem;scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-size:1.0625rem;line-height:1.65;color:var(--text);background:var(--white)}
img{max-width:100%;height:auto;display:block}
a{color:var(--primary);text-underline-offset:.18em}
a:hover{color:var(--primary-dark)}
:focus-visible{outline:3px solid #7FA7CF;outline-offset:2px;border-radius:3px}
h1,h2,h3{color:var(--ink);line-height:1.2;font-weight:700;letter-spacing:-.015em}
h1{font-size:clamp(1.85rem,4.6vw,2.75rem);margin:.5rem 0 .75rem}
h2{font-size:clamp(1.35rem,2.8vw,1.7rem);margin:2.5rem 0 .75rem;padding-top:.25rem}
h3{font-size:1.12rem;margin:1.6rem 0 .4rem}
p,ul,ol{margin:0 0 1rem}
strong{color:var(--ink)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 1.25rem}
.small{font-size:.92rem;color:var(--muted)}
.skip{position:absolute;left:-999px;top:0;background:var(--primary);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:.5rem}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.65rem 1.25rem;border-radius:8px;font-weight:650;font-size:1rem;text-decoration:none;border:1.5px solid transparent;cursor:pointer;font-family:var(--sans);line-height:1.2}
.btn-call{background:var(--primary);color:#fff}
.btn-call:hover{background:var(--primary-dark);color:#fff}
.btn-quote{background:var(--white);color:var(--primary);border-color:#B9C6D3}
.btn-quote:hover{border-color:var(--primary);color:var(--primary-dark)}
.btn-ghost{background:var(--white);color:var(--primary);border-color:#B9C6D3}
.btn-lg{min-height:52px;padding:.8rem 1.4rem}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}
.header-row{display:flex;align-items:center;gap:.75rem;min-height:64px}
.brand{display:flex;align-items:center;gap:.55rem;font-weight:750;font-size:1.12rem;color:var(--ink);text-decoration:none;margin-right:auto;letter-spacing:-.01em}
.nav-desktop{display:none;gap:1.4rem}
.nav-desktop a{color:var(--text);text-decoration:none;font-weight:550;font-size:.95rem}
.nav-desktop a:hover{color:var(--primary)}
.header-call{min-height:44px;padding:.5rem 1rem}
.header-call span{white-space:nowrap}
.nav-mobile{position:relative}
.nav-mobile summary{list-style:none;cursor:pointer;width:44px;height:44px;display:grid;place-content:center;gap:5px;border-radius:8px;border:1px solid var(--line)}
.nav-mobile summary::-webkit-details-marker{display:none}
.nav-mobile summary span{display:block;width:20px;height:2px;background:var(--ink)}
.nav-mobile nav{position:absolute;right:0;top:52px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:.4rem;min-width:17rem;box-shadow:0 12px 32px rgba(31,41,51,.14)}
.nav-mobile nav a{display:block;padding:.7rem .8rem;color:var(--ink);text-decoration:none;border-radius:6px}
.nav-mobile nav a:hover{background:var(--surface)}
@media (max-width:640px){.header-call{width:44px;padding:0}.header-call span{display:none}}
@media (min-width:1000px){.nav-desktop{display:flex}.nav-mobile{display:none}}

/* Hero */
.hero{background:var(--surface);border-bottom:1px solid var(--line);padding:1.75rem 0 2rem}
.hero .value{font-size:1.15rem;max-width:36rem;color:var(--text)}
.hero-grid{display:grid;gap:1.75rem;align-items:start}
.hero-tag{display:inline-flex;align-items:center;gap:.6rem;margin:.6rem 0 0;color:var(--primary);font-weight:650;font-size:.95rem}
.hero-icon{width:40px;height:40px;padding:6px;border-radius:9px;background:var(--primary-soft);color:var(--primary)}
.hero-ctas{display:grid;gap:.6rem;margin:1.3rem 0 .4rem}
.updated{font-size:.9rem;color:var(--muted);margin:.6rem 0 0}
.hero-plain{padding:2rem 0}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:0;font-size:.9rem;color:var(--muted)}
.crumbs li+li::before{content:"/";margin-right:.4rem;color:#A3AEBA}
.crumbs a{color:var(--muted)}
@media (min-width:560px){.hero-ctas{display:flex;flex-wrap:wrap}}
@media (min-width:900px){.hero-grid{grid-template-columns:1.4fr 1fr;align-items:center}.hero{padding:3rem 0}}

/* Three header styles so page types read differently */
.hero--home{background:var(--primary-dark);border-bottom:0}
.hero--home h1,.hero--home .facts-title{color:#fff}
.hero--home h1{color:#fff}
.hero--home .value{color:#D7E2EC}
.hero--home .hero-tag{color:#D7E2EC}
.hero--home .hero-icon{background:rgba(255,255,255,.12);color:#fff}
.hero--home .btn-call{background:#fff;color:var(--primary-dark)}
.hero--home .btn-call:hover{background:var(--primary-soft);color:var(--primary-dark)}
.hero--home .btn-quote{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.hero--home .btn-quote:hover{border-color:#fff;color:#fff}
.hero--home .facts{border:0}
.hero--home .facts-title{color:var(--ink)}
.hero--guide{background:var(--white);border-top:4px solid var(--primary)}
.hero--guide .facts{background:var(--primary-dark);border:0;color:#fff}
.hero--guide .facts-title,.hero--guide .facts strong{color:#fff}
.hero--guide .facts span{color:#D7E2EC}
.hero--guide .facts li{border-top-color:rgba(255,255,255,.16)}
.hero--service{background:var(--surface)}

/* Key facts panel (unique per page) */
.facts{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.2rem;box-shadow:0 1px 2px rgba(31,41,51,.04)}
.facts-title{font-weight:700;color:var(--ink);margin:0 0 .4rem;font-size:.98rem}
.facts ul{list-style:none;padding:0;margin:0}
.facts li{display:grid;gap:.1rem;padding:.75rem 0;border-top:1px solid var(--line)}
.facts li:first-child{border-top:0}
.facts strong{font-size:1.2rem;color:var(--primary);font-variant-numeric:tabular-nums}
.facts span{font-size:.95rem;color:var(--text);line-height:1.45}

/* Page layout with "On this page" */
.page-grid{display:grid;gap:2rem;padding-top:1.5rem}
.content>*{max-width:var(--measure)}
.content>.table-wrap,.content>.map{max-width:none}
.toc-side{display:none}
.toc-mobile details{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:.25rem 0 1.25rem}
.toc-mobile summary{cursor:pointer;padding:.85rem 1rem;font-weight:650;color:var(--ink)}
.toc-mobile ol,.toc-side ol{margin:0;padding:0 1rem 1rem 2.2rem}
.toc-mobile li,.toc-side li{margin:.35rem 0}
.toc-mobile a,.toc-side a{text-decoration:none;color:var(--text)}
.toc-mobile a:hover,.toc-side a:hover{color:var(--primary);text-decoration:underline}
@media (min-width:1100px){
  .page-grid{grid-template-columns:minmax(0,1fr) 16rem;gap:3rem}
  .toc-mobile{display:none}
  .toc-side{display:block;position:sticky;top:5.5rem;align-self:start;margin-top:1rem;border-left:2px solid var(--line);padding-left:1rem;font-size:.93rem}
  .toc-title{font-weight:700;color:var(--ink);margin:0 0 .4rem}
  .toc-side ol{padding:0 0 0 1.1rem}
}
.lead{font-size:1.15rem;color:var(--ink);margin-top:.5rem}
.svc-list{list-style:none;padding:0;display:grid;gap:.5rem}
.svc-list li{border:1px solid var(--line);border-radius:8px;padding:.75rem 1rem;background:var(--white)}
.svc-list a{font-weight:650}
ol.steps{list-style:none;padding:0;counter-reset:step}
ol.steps li{counter-increment:step;position:relative;padding:0 0 1.1rem 2.9rem}
ol.steps li::before{content:counter(step);position:absolute;left:0;top:0;width:2rem;height:2rem;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-weight:700;font-size:.92rem}
ol.steps li::after{content:"";position:absolute;left:.97rem;top:2.2rem;bottom:.3rem;width:1px;background:var(--line)}
ol.steps li:last-child::after{display:none}
ul.checks{list-style:none;padding:1rem 1.1rem;background:var(--surface);border-radius:var(--radius)}
ul.checks li{position:relative;padding-left:1.9rem;margin-bottom:.55rem}
ul.checks li:last-child{margin-bottom:0}
ul.checks li::before{content:"";position:absolute;left:0;top:.3rem;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--ok)}
ul.checks li::after{content:"";position:absolute;left:.38rem;top:.48rem;width:.3rem;height:.58rem;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}

/* Tables: scroll on tablets, stack as cards on phones */
.table-wrap{overflow-x:auto;margin:1.4rem 0;border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}
table{border-collapse:collapse;width:100%;font-size:.95rem}
caption{text-align:left;padding:.85rem 1rem;font-weight:700;color:var(--ink)}
th,td{padding:.7rem 1rem;text-align:left;vertical-align:top;border-top:1px solid var(--line)}
thead th{background:var(--surface);color:var(--ink);font-size:.9rem}
tbody th{font-weight:650;color:var(--ink)}
@media (max-width:640px){
  .table-wrap{border:0;background:none;overflow:visible}
  caption{padding:0 0 .6rem}
  table,tbody,tr,th,td{display:block;width:100%}
  thead{position:absolute;left:-9999px}
  tbody tr{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:.8rem;background:var(--white);overflow:hidden}
  tbody th{background:var(--surface);border-top:0}
  td{display:grid;grid-template-columns:42% 1fr;gap:.6rem}
  td::before{content:attr(data-label);font-weight:600;color:var(--muted);font-size:.88rem}
}
@media (min-width:641px){table{min-width:560px}}

/* Map */
.map{margin:1.2rem 0;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.map iframe{display:block;width:100%;height:360px;border:0}
@media (max-width:640px){.map iframe{height:300px}}

/* FAQ, related, sources */
.faqs{padding-bottom:1rem}
.faqs>h2,.faqs>details{max-width:var(--measure)}
.faqs details{border:1px solid var(--line);border-radius:8px;margin-bottom:.6rem;background:var(--white)}
.faqs summary{cursor:pointer;font-weight:650;color:var(--ink);padding:.9rem 2.6rem .9rem 1rem;list-style:none;position:relative}
.faqs summary::-webkit-details-marker{display:none}
.faqs summary::after{content:"+";position:absolute;right:1rem;top:.65rem;font-size:1.35rem;color:var(--primary);font-weight:400}
.faqs details[open] summary::after{content:"\2212"}
.faqs details div{padding:0 1rem 1rem}
.related,.sources{padding-bottom:1rem}
.related ul{list-style:none;padding:0;display:grid;gap:.6rem;max-width:none}
.related li a{display:block;height:100%;border:1px solid var(--line);border-radius:8px;padding:.85rem 1rem;text-decoration:none;font-weight:600;color:var(--ink)}
.related li a:hover{border-color:var(--primary);color:var(--primary)}
@media (min-width:700px){.related ul{grid-template-columns:repeat(3,1fr)}}
.sources ul{max-width:var(--measure);padding-left:1.1rem;font-size:.95rem}
.sources li{margin-bottom:.4rem}

/* Quote form */
.quote{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:2.5rem 0;margin-top:2rem}
.quote h2{margin-top:0}
.quote-grid{display:grid;gap:1.5rem}
.quote-form{display:grid;gap:1rem;grid-template-columns:1fr;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:1.25rem}
.field label{display:block;font-weight:600;color:var(--ink);margin-bottom:.3rem;font-size:.97rem}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:16px;padding:.7rem .8rem;border:1px solid #C7CED6;border-radius:8px;background:var(--white);color:var(--ink);min-height:48px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px rgba(31,78,121,.18)}
.opt{font-weight:400;color:var(--muted)}
.quote .btn-quote{background:var(--primary);color:#fff;border-color:var(--primary);width:100%}
.quote .btn-quote:hover{background:var(--primary-dark)}
.form-status{margin:0;font-weight:600}
.form-status.is-success{background:var(--ok-soft);border-left:4px solid var(--ok);color:var(--ink);padding:.8rem 1rem;border-radius:6px}
.form-status.is-error{background:var(--warn-soft);border-left:4px solid var(--warn);color:var(--ink);padding:.8rem 1rem;border-radius:6px}
@media (min-width:760px){.quote-form{grid-template-columns:1fr 1fr;padding:1.5rem}.quote-form .full{grid-column:1/-1}}
@media (min-width:1000px){.quote-grid{grid-template-columns:1fr 1.4fr}}

/* Trust */
.trust{padding:2.5rem 0}
.trust h2{margin-top:0}
.trust p,.trust ul{max-width:var(--measure)}

/* Footer */
.site-footer{background:var(--ink);color:#C9D1DA;padding:2.5rem 0 1.5rem;font-size:.95rem}
.site-footer a{color:#fff}
.footer-grid{display:grid;gap:1.5rem}
.footer-brand{font-size:1.2rem;color:#fff;font-weight:700;margin:0 0 .4rem}
.footer-phone{font-size:1.15rem;font-weight:700}
.footer-h{font-weight:700;color:#fff;margin-bottom:.4rem}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:.4rem}
.site-footer .small{color:#AEB8C3}
.footer-legal{border-top:1px solid rgba(255,255,255,.14);margin-top:1.5rem;padding-top:1rem}
@media (min-width:760px){.footer-grid{grid-template-columns:1.2fr 1.4fr 1fr}}

/* Mobile call bar */
.call-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1.3fr 1fr;gap:.5rem;padding:.55rem .75rem calc(.55rem + env(safe-area-inset-bottom));background:rgba(255,255,255,.98);border-top:1px solid var(--line);box-shadow:0 -4px 16px rgba(31,41,51,.08)}
.call-bar .btn{width:100%}
@media (max-width:759px){body{padding-bottom:76px}}
@media (min-width:760px){.call-bar{display:none}}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.site-header,.call-bar,.quote,.map,.toc-side,.toc-mobile{display:none}}
