:root { --font-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; --green:#00c98b; --green-dark:#006d4e; --green-pale:#e9fbf5; --ink:#173042; --muted:#4d5c64; --line:#d7e2e2; --soft:#f5f8f8; --white:#fff; --radius:18px; --shadow:0 18px 50px rgba(24,48,66,.12); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--white); font-family:var(--font-sans); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; height:auto; }
picture { display:block; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; font-family:var(--font-sans); }
.container { width:min(1160px,calc(100% - 40px)); margin:0 auto; }
.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; }
.site-header { position:sticky; top:0; z-index:50; background:rgba(255,255,255,.97); border-bottom:1px solid rgba(215,226,226,.9); backdrop-filter:blur(14px); }
.nav-wrap { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand img { width:185px; height:auto; }
.main-nav { display:flex; align-items:center; gap:28px; font-weight:700; font-size:14px; }
.main-nav a:not(.button):hover { color:var(--green-dark); }
.nav-phone { color:var(--green-dark); }
.nav-toggle { display:none; border:0; background:transparent; padding:8px; }
.nav-toggle span:not(.sr-only) { display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; }
.button { display:inline-flex; min-height:52px; align-items:center; justify-content:center; padding:0 25px; border:0; border-radius:11px; background:var(--green); color:#053b2b; font-weight:800; cursor:pointer; box-shadow:0 9px 24px rgba(0,201,139,.24); transition:transform .2s ease,background .2s ease,box-shadow .2s ease; }
.button:hover:not(:disabled) { transform:translateY(-2px); background:#18dba1; box-shadow:0 13px 28px rgba(0,201,139,.3); }
.button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid #005b42; outline-offset:3px; }
.button:disabled { cursor:not-allowed; opacity:.5; box-shadow:none; }
.button-small { min-height:42px; padding:0 18px; border-radius:9px; }
.button-full { width:100%; margin-top:8px; }
.hero { background:linear-gradient(135deg,#edf8f3 0%,#f8fbfa 58%,#e7f7f0 100%); }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); grid-template-areas:'copy form' 'photo form'; gap:28px 48px; align-items:start; padding:52px 0 60px; }
.hero-grid > * { min-width:0; }
.hero-copy { grid-area:copy; max-width:630px; }
.hero-grid > .form-card { grid-area:form; }
.hero-copy h1 span { color:var(--green-dark); }
.hero-mobile-cta { display:none; }
.eyebrow { margin:0 0 12px; color:var(--green-dark); font-size:13px; line-height:1.2; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
h1,h2,h3,p,figure,ol { margin:0; }
h1 { max-width:660px; margin-bottom:24px; font-size:clamp(43px,5vw,68px); line-height:1.04; letter-spacing:-.045em; }
h2 { margin-bottom:16px; font-size:clamp(31px,3.5vw,47px); line-height:1.12; letter-spacing:-.035em; }
h3 { margin-bottom:9px; font-size:20px; line-height:1.25; }
.hero-lead { max-width:610px; margin-bottom:28px; color:#334d5a; font-size:19px; line-height:1.6; }
.hero-points { display:flex; flex-wrap:wrap; gap:10px; }
.hero-points span { padding:9px 13px; border:1px solid rgba(0,109,78,.25); border-radius:999px; background:rgba(255,255,255,.8); color:#174d3c; font-size:14px; font-weight:750; }
.hero-visual { grid-area:photo; margin:0; overflow:hidden; border-radius:18px; background:#fff; border:1px solid var(--line); }
.hero-visual img { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; }
.hero-visual figcaption { padding:12px 16px; font-size:14px; font-weight:650; color:var(--ink); }
.form-card { padding:30px; border:1px solid rgba(255,255,255,.95); border-radius:22px; background:rgba(255,255,255,.98); box-shadow:var(--shadow); scroll-margin-top:110px; }
.form-heading h2 { margin-bottom:9px; font-size:29px; }
.form-heading > p:last-child { margin-bottom:22px; color:var(--muted); font-size:15px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
label { display:block; margin-bottom:14px; color:#29424e; font-size:14px; font-weight:750; line-height:1.35; }
input,select { min-width:0; max-width:100%; width:100%; min-height:49px; margin-top:6px; padding:0 13px; color:var(--ink); border:1px solid #b9cccc; border-radius:9px; outline:none; background:#fff; font-size:16px; }
input:focus,select:focus { border-color:var(--green-dark); box-shadow:0 0 0 3px rgba(0,109,78,.16); }
input[aria-invalid="true"] { border-color:#a63a32; box-shadow:0 0 0 3px rgba(166,58,50,.12); }
.field-help,.field-error { display:block; margin-top:5px; font-size:12px; font-weight:550; line-height:1.4; }
.field-help { color:var(--muted); }
.field-error { color:#8a211a; }
.consent-field { display:grid; grid-template-columns:22px 1fr; gap:10px; align-items:start; margin:3px 0 15px; font-weight:600; }
.consent-field input { width:20px; min-height:20px; height:20px; margin:2px 0 0; accent-color:var(--green-dark); }
.hidden-field { display:none; }
.eligibility-message { min-height:48px; margin:2px 0 0; padding:10px 12px; border-radius:9px; background:#f3f6f6; color:#41535d; font-size:14px; line-height:1.45; }
.eligibility-message.success { background:#e9fbf5; color:#005d42; }
.eligibility-message.warning { background:#fff5e7; color:#714b13; }
.form-note { margin:12px 0 0; color:#4d5c64; font-size:13px; line-height:1.5; }
.form-note a,.privacy-card a { color:var(--green-dark); text-decoration:underline; text-underline-offset:2px; }
.trust-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.trust-grid div { padding:24px 20px; border-right:1px solid var(--line); text-align:center; }
.trust-grid div:last-child { border-right:0; }
.trust-grid strong,.trust-grid span { display:block; }
.trust-grid strong { color:var(--green-dark); font-size:17px; }
.trust-grid span { color:var(--muted); font-size:13px; }
.section { padding:76px 0; scroll-margin-top:98px; }
.section.soft { background:var(--soft); }
.section.dark { color:#fff; background:var(--ink); }
.section-heading { max-width:760px; margin-bottom:44px; }
.section-heading.center { margin-right:auto; margin-left:auto; text-align:center; }
.section-heading.compact { margin-bottom:36px; }
.section-heading > p:last-child { margin:0; color:var(--muted); font-size:18px; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.service-card { min-height:245px; padding:28px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:0 10px 35px rgba(23,48,66,.06); }
.service-card p { margin:0; color:var(--muted); }
.icon-box { display:flex; width:43px; height:43px; margin-bottom:25px; align-items:center; justify-content:center; border-radius:12px; background:var(--green-pale); color:var(--green-dark); font-weight:850; }
.pricing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; max-width:930px; margin:0 auto; }
.price-card { position:relative; padding:35px 28px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; text-align:center; }
.price-card.featured { border:2px solid var(--green); box-shadow:var(--shadow); }
.price-label { margin-bottom:14px; color:var(--green-dark); font-size:14px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.price-card h3 { margin-bottom:10px; font-size:40px; letter-spacing:-.035em; }
.price-card h3 span { display:block; margin-bottom:3px; color:var(--muted); font-size:12px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.price-card h3 small { font-size:14px; }
.price-card p:last-child { margin:0; color:var(--muted); }
.fine-print { max-width:700px; margin:22px auto 0; color:#4d5c64; font-size:13px; text-align:center; }
.process-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1fr); gap:64px; align-items:center; }
.process-photo { width:100%; max-width:320px; margin:0 auto; }
.process-photo img { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; border-radius:18px; }
.steps { margin:30px 0; padding:0; list-style:none; }
.steps li { display:grid; grid-template-columns:42px 1fr; gap:17px; margin-bottom:22px; }
.steps li > span { display:flex; width:42px; height:42px; align-items:center; justify-content:center; border-radius:50%; background:var(--green-pale); color:var(--green-dark); font-weight:850; }
.steps h3 { margin-bottom:4px; font-size:18px; }
.steps p { margin:0; color:var(--muted); }
.difference-grid { display:grid; grid-template-columns:.8fr 1fr; gap:80px; align-items:start; }
.eyebrow.light { color:#65edc1; }
.difference-list { display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; }
.difference-list p { display:grid; grid-template-columns:26px 1fr; gap:8px; margin:0; color:#dce6e9; }
.difference-list span { color:#65edc1; font-weight:900; }
.cta-section { padding:70px 0; background:#fff; }
.cta-card { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:45px 50px; border-radius:22px; background:var(--green-pale); }
.cta-card h2 { margin-bottom:0; font-size:clamp(29px,3vw,42px); }
.site-footer { padding-top:64px; color:#cbd7db; background:#0d2230; }
.footer-grid { display:grid; grid-template-columns:1.4fr .7fr; gap:65px; padding-bottom:52px; }
.footer-brand img { width:180px; margin-bottom:18px; padding:8px; border-radius:8px; background:#fff; }
.footer-brand p { max-width:360px; }
.site-footer h2 { margin-bottom:15px; color:#fff; font-size:15px; letter-spacing:.08em; text-transform:uppercase; }
.site-footer a,.site-footer p { display:block; margin:0 0 9px; color:#cbd7db; }
.site-footer a:hover { color:#65edc1; }
.footer-bottom { display:grid; grid-template-columns:.6fr 1.4fr; gap:35px; align-items:center; padding:22px 0; border-top:1px solid rgba(255,255,255,.12); }
.footer-bottom p { margin:0; font-size:12px; line-height:1.55; }
.privacy-page { min-height:calc(100vh - 78px); padding:72px 0; background:var(--soft); }
.privacy-card { max-width:760px; padding:44px; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:var(--shadow); }
.privacy-card h1 { font-size:clamp(36px,5vw,58px); }
.privacy-card h2 { margin-top:34px; font-size:26px; }
.privacy-card p { color:var(--muted); font-size:17px; }
.privacy-card .button { margin-top:14px; color:#053b2b; }
.mobile-estimate-bar { display:none; }
@media (max-width:700px) {
  body:has(.mobile-estimate-bar) { padding-bottom:calc(80px + env(safe-area-inset-bottom, 0px)); }
  .mobile-estimate-bar:not([hidden]) { display:block; position:fixed; bottom:0; left:0; right:0; z-index:45; padding:10px 14px calc(10px + env(safe-area-inset-bottom, 0px)); background:#fff; border-top:1px solid var(--line); box-shadow:0 -4px 20px rgba(24,48,66,.1); }
  .mobile-estimate-bar .button { width:100%; }
}
@media (max-width:980px) {
  .nav-toggle { display:block; }
  .main-nav { position:absolute; top:78px; right:20px; left:20px; display:none; padding:22px; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:var(--shadow); }
  .main-nav.open { display:grid; }
  .main-nav .button { width:100%; }
  .hero-grid { grid-template-columns:minmax(0,1fr); grid-template-areas:'copy' 'form' 'photo'; gap:28px; max-width:720px; }
  .hero-copy { max-width:720px; }
  .hero-mobile-cta { display:inline-flex; margin-top:22px; }
  .service-grid { grid-template-columns:1fr 1fr; }
  .process-grid { gap:45px; }
  .difference-grid { grid-template-columns:1fr; gap:30px; }
}
@media (max-width:700px) {
  .container { width:min(100% - 28px,1160px); }
  .brand img { width:160px; }
  .nav-wrap { min-height:70px; }
  .main-nav { top:70px; }
  .hero-grid { padding:30px 0 40px; grid-template-areas:'hero-eyebrow' 'hero-headline' 'hero-lead' 'form' 'hero-points' 'photo'; }
  .hero-copy { display:contents; }
  .hero-copy .eyebrow { grid-area:hero-eyebrow; }
  .hero-copy h1 { grid-area:hero-headline; }
  .hero-copy .hero-lead { grid-area:hero-lead; }
  .hero-points { grid-area:hero-points; }
  .hero-mobile-cta { display:none; }
  .hero-grid > .form-card { grid-area:form; }
  .hero-visual { grid-area:photo; }
  h1 { font-size:clamp(34px,8.5vw,46px); }
  .hero-lead { font-size:17px; }
  .form-card { padding:24px 20px; }
  .field-row { grid-template-columns:1fr; gap:0; }
  .trust-grid { grid-template-columns:1fr 1fr; }
  .trust-grid div:nth-child(2) { border-right:0; }
  .trust-grid div:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .section { padding:52px 0; }
  .service-grid,.pricing-grid,.process-grid,.difference-list { grid-template-columns:1fr; }
  .service-card { min-height:auto; }
  .process-grid { gap:48px; }
  .process-photo { max-width:280px; }
  .process-copy { grid-row:1; }
  .cta-card { display:block; padding:32px 24px; }
  .cta-card .button { width:100%; margin-top:22px; }
  .footer-grid,.footer-bottom { grid-template-columns:1fr; gap:30px; }
  .footer-bottom { gap:8px; }
  .privacy-page { padding:42px 0; }
  .privacy-card { padding:28px 22px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms !important; } }
