:root{--ink:#1f2a37;--ink2:#374151;--muted:#6b7280;--bg:#f8fafc;--card:#fff;--line:#e5e7eb;--accent:#f5b301;--accent-d:#c98f00;--ok:#15803d;--err:#b91c1c;--r:12px;--max:1100px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;font-size:17px}
a{color:#1d4ed8}
img,svg{max-width:100%}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:10}
header.top{background:var(--ink);color:#fff;position:sticky;top:0;z-index:5}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800;letter-spacing:.2px}
.brand svg{width:34px;height:34px}
nav.main a{color:#e5e7eb;text-decoration:none;margin-left:18px;font-size:15px}
nav.main a:hover{color:#fff}
.btn{display:inline-block;white-space:nowrap;background:var(--accent);color:#111;font-weight:700;text-decoration:none;padding:13px 22px;border-radius:10px;border:0;cursor:pointer;font-size:17px;line-height:1.2}
.btn:hover{background:var(--accent-d)}
.btn.sm{padding:9px 14px;font-size:15px}
.hero{background:linear-gradient(135deg,#1f2a37 0%,#2b3a4d 60%,#384b63 100%);color:#fff;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1fr;gap:24px;padding-top:48px;padding-bottom:56px}
.hero h1{font-size:clamp(30px,6vw,48px);line-height:1.15;margin:0 0 14px}
.hero p.lead{font-size:clamp(17px,2.4vw,20px);color:#e5e7eb;max-width:640px;margin:0 0 22px}
.hero ul.ticks{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:8px;color:#d1d5db}
.hero ul.ticks li::before{content:"✓";color:var(--accent);font-weight:800;margin-right:8px}
.hero .art{display:none}
.hero .art svg{width:100%;height:auto}
section{padding:56px 0}
section.alt{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
h2{font-size:clamp(24px,4vw,34px);line-height:1.2;margin:0 0 10px}
h3{font-size:19px;margin:0 0 6px}
.sub{color:var(--muted);margin:0 0 28px;max-width:760px}
.grid{display:grid;gap:16px;grid-template-columns:1fr}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.card p{margin:0;color:var(--ink2);font-size:16px}
.areas{display:flex;flex-wrap:wrap;gap:10px;padding:0;list-style:none;margin:0}
.areas li{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-weight:600}
.steps{counter-reset:s;display:grid;gap:16px;grid-template-columns:1fr;list-style:none;padding:0;margin:0}
.steps li{counter-increment:s;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px 20px 20px 70px;position:relative}
.steps li::before{content:counter(s);position:absolute;left:20px;top:20px;width:36px;height:36px;border-radius:50%;background:var(--accent);font-weight:800;display:flex;align-items:center;justify-content:center}
details{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 18px;margin-bottom:10px}
details summary{cursor:pointer;font-weight:700}
details p{color:var(--ink2);margin:10px 0 0}
form.quote{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;display:grid;gap:14px;grid-template-columns:1fr}
.f{display:flex;flex-direction:column;gap:5px}
.f label{font-weight:600;font-size:15px}
.f .req{color:var(--err)}
.f input,.f select,.f textarea{font:inherit;font-size:16px;padding:11px 12px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;width:100%}
.f input:focus,.f select:focus,.f textarea:focus{outline:3px solid #fde68a;border-color:var(--accent-d)}
.f textarea{min-height:120px;resize:vertical}
.f .err{color:var(--err);font-size:14px;min-height:0}
.f.invalid input,.f.invalid select,.f.invalid textarea{border-color:var(--err)}
.full{grid-column:1/-1}
.hp{position:absolute!important;left:-5000px!important;width:1px;height:1px;overflow:hidden}
.note{font-size:14px;color:var(--muted)}
.status{padding:14px 16px;border-radius:10px;display:none}
.status.ok{display:block;background:#ecfdf5;border:1px solid #a7f3d0;color:var(--ok)}
.status.bad{display:block;background:#fef2f2;border:1px solid #fecaca;color:var(--err)}
footer{background:var(--ink);color:#cbd5e1;padding:36px 0;font-size:15px}
footer a{color:#fde68a}
footer .disc{border-top:1px solid #374151;margin-top:18px;padding-top:18px;color:#9ca3af;font-size:14px}
.page{padding:48px 0}
.page .card{max-width:780px}
@media (min-width:700px){
 .grid{grid-template-columns:repeat(2,1fr)}
 form.quote{grid-template-columns:1fr 1fr;padding:28px}
 .steps{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:980px){
 .grid{grid-template-columns:repeat(3,1fr)}
 .hero .wrap{grid-template-columns:1.25fr .75fr;align-items:center;padding-top:72px;padding-bottom:80px}
 .hero .art{display:block}
}
@media (max-width:640px){nav.main a:not(.btn){display:none}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* --- SEO subpages & link sections --- */
.hero.sm .wrap{padding-top:36px;padding-bottom:44px}
.crumbs{font-size:14px;color:#cbd5e1;margin:0 0 12px}
.crumbs a{color:#fde68a}
.prose>*{max-width:800px}
.prose p{color:var(--ink2)}
.callout{background:#fffbeb;border:1px solid #fde68a;border-radius:var(--r);padding:14px 18px}
.linklist{margin:8px 0 0;padding-left:18px}
.linklist li{margin:4px 0}
.areas li a{color:inherit;text-decoration:none}
.areas li a:hover{text-decoration:underline}
.flinks{display:grid;gap:18px;grid-template-columns:1fr;margin:18px 0}
.flinks .fh{font-weight:700;color:#fff;margin:0 0 6px}
.flinks ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 16px}
@media (min-width:700px){.flinks{grid-template-columns:1fr 1fr}.grid.g4{grid-template-columns:repeat(2,1fr)}}
@media (min-width:980px){.grid.g4{grid-template-columns:repeat(4,1fr)}}

/* --- call button, Spanish link --- */
[hidden]{display:none!important}
.btn.call{background:transparent;color:#fff;border:2px solid var(--accent);padding:11px 20px;margin:8px 0 0 10px}
.btn.call:hover{background:var(--accent);color:#111}
.hero .es-link{margin:16px 0 0;font-size:15px}
.hero .es-link a{color:#fde68a}
.hero .lang-alt{margin:12px 0 0;font-size:15px}
.hero .lang-alt a{color:#fde68a}
footer .fcall a{font-weight:700}
@media (max-width:480px){.btn.call{margin-left:0}}
