/* seo.css: styles for pages generated by build_seo.py. Loaded after styles.css and local.css.
   Heavy-duty industrial palette, scoped to main.seo so the shared header and footer are untouched. */
:root{
  --seo-ink:#16191d;
  --seo-ink-2:#2a2f36;
  --seo-steel:#5b6470;
  --seo-steel-2:#8a939e;
  --seo-line:#d5d9de;
  --seo-plate:#eef0f2;
  --seo-paper:#f7f8f9;
  --seo-blue:#1e6fb8;
  --seo-blue-dk:#175a96;
  --seo-red:#e8452c;
  --seo-head:var(--head,"Oswald","Barlow Condensed",Inter,system-ui,sans-serif);
  --seo-body:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
main.seo{display:block;background:var(--seo-paper);color:var(--seo-ink-2);font-family:var(--seo-body);font-size:17px;line-height:1.6}
main.seo .wrap{max-width:1080px;margin:0 auto;padding-left:20px;padding-right:20px}
main.seo h1,main.seo h2,main.seo h3{font-family:var(--seo-head);text-transform:uppercase;letter-spacing:.02em;color:var(--seo-ink);line-height:1.08;font-weight:600}
main.seo h2{font-size:clamp(24px,3.2vw,34px);margin:44px 0 14px}
main.seo h3{font-size:clamp(18px,2vw,21px);margin:0 0 12px}
main.seo a{color:var(--seo-blue)}
main.seo a:hover{color:var(--seo-blue-dk)}

/* breadcrumb */
main.seo .seo-crumbs{padding-top:18px;padding-bottom:6px;font-size:13px;text-transform:uppercase;letter-spacing:.06em}
main.seo .seo-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;color:var(--seo-steel)}
main.seo .seo-crumbs li+li::before{content:"/";margin-right:8px;color:var(--seo-steel-2)}
main.seo .seo-crumbs a{text-decoration:none}

/* hero */
main.seo .seo-hero{background:var(--seo-ink);color:#e6e9ec;padding:clamp(44px,7vw,88px) 0 clamp(36px,5vw,60px);border-bottom:4px solid var(--seo-blue)}
main.seo .seo-hero h1{color:#fff;font-size:clamp(34px,6vw,64px);margin:6px 0 18px;max-width:18ch}
main.seo .seo-kicker{font-family:var(--seo-head);text-transform:uppercase;letter-spacing:.14em;font-size:13px;color:var(--seo-steel-2);margin:0;border-left:3px solid var(--seo-red);padding-left:10px}
main.seo .seo-sub{font-size:clamp(17px,1.8vw,20px);max-width:60ch;color:#c9ced4;margin:0 0 26px}
main.seo .seo-facts{list-style:none;display:flex;flex-wrap:wrap;gap:0;margin:26px 0 0;padding:0;border-top:1px solid #343a42}
main.seo .seo-facts li{font-family:var(--seo-head);text-transform:uppercase;letter-spacing:.08em;font-size:13px;color:#aeb5bd;padding:12px 18px 0 0;margin-right:18px}

/* buttons */
main.seo .seo-actions{display:flex;flex-wrap:wrap;gap:12px}
main.seo .seo-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:4px;font-family:var(--seo-head);text-transform:uppercase;letter-spacing:.08em;font-size:15px;font-weight:600;text-decoration:none;border:1px solid transparent;transition:background .15s,border-color .15s}
main.seo .seo-btn-primary{background:var(--seo-blue);color:#fff}
main.seo .seo-btn-primary:hover{background:var(--seo-blue-dk);color:#fff}
main.seo .seo-btn-call{background:transparent;color:#fff;border-color:#59616b}
main.seo .seo-btn-call:hover{border-color:#fff;color:#fff}
@media(max-width:560px){main.seo .seo-btn{width:100%}}

/* body */
main.seo .seo-body{padding:clamp(28px,5vw,56px) 0 clamp(36px,5vw,64px)}
main.seo .seo-body .prose{max-width:820px}
main.seo .seo-body .prose > h2:first-child{margin-top:0}
main.seo .seo-body ul{padding-left:0;list-style:none;margin:0 0 20px}
main.seo .seo-body ul li{position:relative;padding:8px 0 8px 22px;border-bottom:1px solid var(--seo-line)}
main.seo .seo-body ul li::before{content:"";position:absolute;left:0;top:18px;width:10px;height:2px;background:var(--seo-blue)}

/* spec + cost tables */
main.seo .seo-spec,main.seo .seo-cost{width:100%;border-collapse:collapse;margin:8px 0 20px;background:#fff;border:1px solid var(--seo-line);border-radius:6px;overflow:hidden;font-size:15.5px}
main.seo .seo-spec caption{caption-side:top;text-align:left;font-family:var(--seo-head);text-transform:uppercase;letter-spacing:.1em;font-size:12px;color:var(--seo-steel);padding:0 0 8px}
main.seo .seo-spec th,main.seo .seo-spec td,main.seo .seo-cost th,main.seo .seo-cost td{text-align:left;vertical-align:top;padding:13px 16px;border-bottom:1px solid var(--seo-line)}
main.seo .seo-spec th{width:34%;background:var(--seo-plate);font-family:var(--seo-head);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:600;color:var(--seo-ink)}
main.seo .seo-cost thead th{background:var(--seo-ink);color:#fff;font-family:var(--seo-head);text-transform:uppercase;letter-spacing:.08em;font-size:13px}
main.seo .seo-cost td:last-child{font-weight:700;color:var(--seo-ink);white-space:nowrap}
main.seo .seo-note{font-size:14px;color:var(--seo-steel);border-left:3px solid var(--seo-red);padding-left:12px}
@media(max-width:600px){main.seo .seo-spec th,main.seo .seo-spec td{display:block;width:auto}main.seo .seo-spec th{border-bottom:0;padding-bottom:4px}main.seo .seo-cost td:last-child{white-space:normal}}

/* process */
main.seo .seo-steps{list-style:none;counter-reset:s;padding:0;margin:0 0 20px;display:grid;gap:10px}
main.seo .seo-steps li{counter-increment:s;position:relative;background:#fff;border:1px solid var(--seo-line);border-radius:6px;padding:16px 16px 16px 64px}
main.seo .seo-steps li::before{content:counter(s,decimal-leading-zero);position:absolute;left:16px;top:14px;font-family:var(--seo-head);font-size:22px;font-weight:600;color:var(--seo-blue)}
main.seo .seo-steps strong{font-family:var(--seo-head);text-transform:uppercase;letter-spacing:.05em;color:var(--seo-ink)}

/* CTA */
main.seo .seo-cta{background:var(--seo-ink-2);color:#d7dbe0;padding:clamp(40px,6vw,72px) 0;border-top:4px solid var(--seo-red)}
main.seo .seo-cta h2{color:#fff;margin-top:0}
main.seo .seo-cta p{max-width:60ch;margin:0 0 22px}

/* FAQ */
main.seo .seo-faq{padding:clamp(40px,6vw,72px) 0}
main.seo .seo-faq h2{margin-top:0}
main.seo .seo-faq details{background:#fff;border:1px solid var(--seo-line);border-radius:6px;margin-bottom:10px}
main.seo .seo-faq summary{cursor:pointer;list-style:none;min-height:56px;display:flex;align-items:center;padding:14px 52px 14px 18px;position:relative;font-weight:600;color:var(--seo-ink)}
main.seo .seo-faq summary::-webkit-details-marker{display:none}
main.seo .seo-faq summary::after{content:"";position:absolute;right:20px;top:50%;width:12px;height:12px;margin-top:-8px;border-right:2px solid var(--seo-blue);border-bottom:2px solid var(--seo-blue);transform:rotate(45deg);transition:transform .15s}
main.seo .seo-faq details[open] summary::after{transform:rotate(225deg);margin-top:-2px}
main.seo .seo-faq details p{margin:0;padding:0 18px 18px;color:var(--seo-ink-2)}

/* link blocks */
main.seo .seo-links{padding:0 0 clamp(44px,6vw,72px)}
main.seo .seo-links .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
main.seo .seo-linkgroup{background:#fff;border:1px solid var(--seo-line);border-top:3px solid var(--seo-ink);border-radius:6px;padding:18px}
main.seo .seo-linkgroup ul{list-style:none;margin:0;padding:0}
main.seo .seo-linkgroup a{display:flex;align-items:center;min-height:48px;border-bottom:1px solid var(--seo-line);text-decoration:none;font-weight:500}
main.seo .seo-linkgroup li:last-child a{border-bottom:0}

/* service areas grid */
main.seo .seo-areas{padding:0 0 clamp(40px,6vw,64px)}
main.seo .seo-area-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
main.seo .seo-area{background:#fff;border:1px solid var(--seo-line);border-top:3px solid var(--seo-blue);border-radius:6px;padding:18px}
main.seo .seo-area p{font-size:14px;color:var(--seo-steel);margin:0 0 8px}
main.seo .seo-area ul{list-style:none;margin:0;padding:0}
main.seo .seo-area a{display:flex;align-items:center;min-height:48px;border-top:1px solid var(--seo-line);text-decoration:none}
