/* SimpleGrade: one shared type, spacing and responsive system for all pages. */
:root {
  --paper:#fff; --white:#fff; --ink:#152c4c; --muted:#56677b;
  --line:#dce4ed; --accent:#245de5; --accent-dark:#1b49bc;
  --panel-soft:#f0f3f7; --panel-blue:#edf3fb; --panel-positive:#e8f0ed;
  --radius:12px; --page:1160px; --gutter:40px;
  --font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-block:24px 112px; -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--paper); color:var(--ink); font:400 16px/1.6 var(--font); -webkit-font-smoothing:antialiased; }
button,input,select,textarea { font:inherit; color:inherit; }
button,a,input,summary,textarea,select { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; touch-action:manipulation; }
button:disabled { cursor:default; }
a { color:inherit; text-decoration:none; }
svg { width:24px; height:24px; flex-shrink:0; }
img { display:block; max-width:100%; object-fit:cover; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-weight:700; letter-spacing:-.04em; line-height:1.12; text-wrap:balance; overflow-wrap:break-word; }
h1 { font-size:clamp(38px,5.8vw,72px); }
h2 { font-size:clamp(30px,4vw,46px); }
h3 { font-size:26px; }
p,li,dt,dd { overflow-wrap:break-word; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.container { width:calc(100% - var(--gutter)*2); max-width:var(--page); margin-inline:auto; }
.narrow { max-width:850px; }
.section { padding-block:88px; }
.eyebrow { font-size:12px; line-height:1.5; font-weight:700; letter-spacing:.1em; color:#3e536c; margin-bottom:18px; }
.headline-emphasis { font:inherit; color:inherit; }
.muted { color:var(--muted); }
.small { font-size:14px; line-height:1.6; }
.skip-link { position:fixed; top:-100px; left:20px; z-index:100; background:var(--ink); color:white; padding:12px 20px; }
.skip-link:focus { top:10px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:54px; padding:14px 22px; border:1px solid transparent; border-radius:8px; background:var(--accent); color:var(--white); font-size:16px; font-weight:700; line-height:1.35; text-align:center; transition:background .15s; }
.button svg { width:21px; height:21px; }
.button-full { width:100%; }
.button:disabled { opacity:.65; }
.button-light { flex-shrink:0; }
.button-text { display:block; min-height:44px; padding:10px; margin:12px auto 0; border:0; background:none; font-size:14px; text-decoration:underline; text-underline-offset:4px; }
@media(hover:hover) { .button:not(:disabled):hover { background:var(--accent-dark); } a:hover { text-decoration-color:currentColor; } }

/* Navigation switches before its links begin to crowd. */
.site-header { position:relative; z-index:30; background:var(--white); border-bottom:1px solid var(--line); }
.header-inner { min-height:80px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:inline-flex; align-items:center; gap:9px; font-weight:700; font-size:24px; letter-spacing:-.045em; white-space:nowrap; line-height:1; min-height:44px; }
.brand-mark { width:34px; height:34px; color:var(--accent); }
.desktop-nav { display:flex; align-items:center; gap:22px; }
.desktop-nav a { display:inline-flex; align-items:center; min-height:44px; font-size:15px; font-weight:500; white-space:nowrap; }
.desktop-nav a:hover,.desktop-nav a[aria-current],.mobile-menu a[aria-current] { color:var(--accent); }
.header-actions { display:flex; align-items:center; gap:22px; flex-shrink:0; }
.header-inner>.brand { flex-shrink:0; }
.header-start { flex-shrink:0; min-height:44px; padding:11px 18px; font-size:15px; line-height:1.3; white-space:nowrap; }
.menu-toggle,.cart-close { display:grid; place-items:center; flex-shrink:0; width:44px; height:44px; padding:10px; border:0; border-radius:8px; background:none; }
.menu-toggle { display:none; }
.menu-toggle:hover,.cart-close:hover { background:var(--panel-blue); color:var(--accent); }
.mobile-menu { position:absolute; top:100%; right:var(--gutter); width:min(420px,calc(100% - var(--gutter)*2)); max-height:var(--menu-max-height,calc(100dvh - 160px)); overflow-y:auto; overscroll-behavior:contain; padding:8px 24px 20px; border:1px solid var(--line); border-radius:0 0 12px 12px; background:var(--white); box-shadow:0 14px 28px #152c4c14; }
.mobile-menu a { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:50px; padding:12px 0; border:0; border-bottom:1px solid var(--line); background:none; text-align:left; font-size:16px; }
.announcement { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:48px; padding:10px var(--gutter); border:0; background:#ffd24d; color:var(--ink); font-size:16px; font-weight:500; line-height:1.5; text-align:center; }
.announcement strong { color:var(--ink); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.announcement>span { min-width:0; }
.announcement svg { width:18px; height:18px; color:var(--ink); }
.announcement:hover { background:#f7c63d; }
.announcement:focus-visible { outline-offset:-5px; outline-color:var(--ink); }

/* Homepage and live calculator. */
.hero { display:grid; grid-template-columns:minmax(0,1fr); align-items:center; justify-items:center; gap:28px; width:100%; max-width:calc(var(--page) + var(--gutter)*2); margin-inline:auto; padding:40px var(--gutter) 28px; text-align:center; }
.hero-copy { width:100%; max-width:960px; min-width:0; }
.hero h1 { font-size:clamp(36px,5.45vw,68px); line-height:1.06; letter-spacing:-.045em; margin-bottom:16px; }
.hero-description { max-width:640px; margin-inline:auto; color:var(--muted); font-size:20px; line-height:1.5; text-wrap:balance; }
.rating-line { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 12px; font-size:14px; }
.hero-review-eyebrow { margin-bottom:18px; min-height:28px; }
.stars { color:var(--accent); font-size:17px; letter-spacing:1.5px; white-space:nowrap; line-height:1.2; }
.stepper { display:flex; align-items:center; gap:20px; margin:22px 0; }
.stepper button { display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px; padding:0; border:1px solid #b8c5d5; border-radius:8px; background:#f7f9fc; font-size:26px; line-height:1; }
.stepper button:disabled { opacity:.4; }
.stepper button:not(:disabled):hover { border-color:var(--accent); color:var(--accent); }
.stepper output { min-width:32px; text-align:center; font-size:30px; font-weight:700; font-variant-numeric:tabular-nums; }
.addons-heading { margin-bottom:8px; color:var(--muted); font-size:14px; font-weight:600; }
.estimate-addon { display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:center; column-gap:10px; row-gap:0; padding:10px 0; border-top:1px solid var(--line); }
.estimate-addon input[type=checkbox] { grid-column:1; grid-row:1; width:22px; height:22px; padding:0; margin:0; accent-color:var(--accent); cursor:pointer; }
.estimate-addon>label { grid-column:2; grid-row:1; display:flex; align-items:center; min-height:34px; margin:0; font-size:16px; font-weight:600; line-height:1.35; cursor:pointer; }
.addon-price { grid-column:3; grid-row:1; text-align:right; font-size:16px; line-height:1.25; white-space:nowrap; font-variant-numeric:tabular-nums; }
.addon-unit { display:block; font-size:12px; font-weight:400; color:var(--muted); margin-top:3px; }
.kit-info-button { grid-column:2; grid-row:2; justify-self:start; display:inline-flex; align-items:center; min-height:32px; padding:3px 0; border:0; background:none; color:var(--muted); font-size:14px; text-align:left; text-decoration:underline; text-underline-offset:3px; }
.kit-info-button:hover { color:var(--accent); }
.rush-timing { grid-column:2; grid-row:2; display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; color:var(--muted); font-size:13px; }
.rush-new-time { color:#23744b; font-weight:600; }
/* One calculator: shared step structure, with a single desktop layout switch. */
.hero-visual { width:100%; max-width:560px; min-width:0; }
.hero-calculator { display:grid; gap:24px; padding:24px 20px; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); text-align:left; }
.calculator-step { display:grid; grid-template-rows:auto 1fr; gap:20px; min-width:0; text-align:center; }
.calculator-step+.calculator-step { padding-top:24px; border-top:1px solid var(--line); }
.calculator-step-heading { display:flex; align-items:center; justify-content:center; gap:10px; min-height:26px; margin:0; color:var(--ink); font-size:20px; font-weight:650; line-height:1.3; letter-spacing:-.025em; text-wrap:initial; }
.calculator-step-number { display:grid; place-items:center; flex:0 0 26px; width:26px; height:26px; border-radius:50%; background:var(--panel-blue); color:var(--accent); font-size:13px; font-weight:700; line-height:1; letter-spacing:0; }
.calculator-step-optional { display:inline-block; margin-left:6px; color:var(--muted); font-size:11px; font-weight:400; letter-spacing:0; }
.calculator-step-body { display:grid; align-content:center; row-gap:4px; min-width:0; }
.calculator-quantity { display:grid; justify-items:center; gap:12px; }
.hero-stepper { display:grid; grid-template-columns:48px 64px 48px; width:max-content; border:1px solid #c5d0de; border-radius:10px; background:#f6f8fb; }
.hero-stepper button { display:grid; place-items:center; width:48px; height:48px; padding:0; border:0; border-radius:9px; background:transparent; font-size:25px; line-height:1; }
.hero-stepper button:disabled { opacity:.4; }
.hero-stepper button:not(:disabled):hover { background:var(--panel-blue); color:var(--accent); }
.hero-stepper button:focus-visible { outline-offset:-4px; }
.hero-stepper output { display:grid; place-items:center; min-width:0; font-size:30px; font-weight:700; line-height:1; font-variant-numeric:tabular-nums; }
.calculator-price-note { margin:0; color:var(--muted); font-size:14px; line-height:1.5; }
.calculator-addon { display:grid; grid-template-columns:18px minmax(0,1fr) 74px; align-items:center; gap:8px; width:100%; max-width:300px; min-height:44px; margin-inline:auto; text-align:left; }
.calculator-addon input[type=checkbox] { width:18px; height:18px; padding:0; margin:0; accent-color:var(--accent); cursor:pointer; }
.calculator-addon-description { display:flex; align-items:center; flex-wrap:wrap; gap:0 8px; min-width:0; }
.calculator-addon-description label { display:flex; align-items:center; min-height:44px; margin:0; font-size:14px; font-weight:600; line-height:1.35; white-space:nowrap; cursor:pointer; }
.calculator-addon-details { display:inline-flex; align-items:center; min-height:44px; padding:0; border:0; background:none; color:var(--muted); font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.calculator-addon-details:hover { color:var(--accent); }
.calculator-addon-timing { color:var(--muted); font-size:12px; white-space:nowrap; }
.calculator-addon-price { display:grid; grid-template-columns:36px 34px; align-items:baseline; gap:4px; font-size:14px; line-height:1.25; white-space:nowrap; font-variant-numeric:tabular-nums; }
.calculator-addon-price .addon-amount { text-align:right; }
.calculator-addon-price .addon-unit { display:inline; margin:0; font-size:12px; text-align:left; }
.calculator-checkout { display:grid; gap:16px; width:100%; max-width:220px; margin-inline:auto; }
.calculator-total { display:grid; gap:4px; }
.hero-total-label { color:var(--muted); font-size:14px; line-height:20px; }
.hero-estimate-total { display:flex; align-items:baseline; justify-content:center; gap:6px; white-space:nowrap; }
.hero-estimate-total strong { font-size:36px; font-weight:700; letter-spacing:-.04em; line-height:40px; font-variant-numeric:tabular-nums; }
.hero-total-tax { color:var(--muted); font-size:13px; }
.calculator-checkout .button { min-height:48px; padding-block:11px; font-size:16px; }
@media(min-width:961px) {
  .hero { gap:28px; padding-block:24px 20px; }
  .hero h1 { font-size:clamp(44px,4.7vw,60px); }
  .hero-visual { max-width:1040px; }
  .hero-calculator { grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr); gap:0; padding:28px 0; }
  .calculator-step { padding-inline:24px; }
  .calculator-step+.calculator-step { padding-top:0; border-top:0; border-left:1px solid var(--line); }
}
@media(max-width:480px) {
  .hero-calculator { padding:24px 16px; }
  .calculator-step-heading { gap:8px; font-size:18px; }
  .calculator-price-note { font-size:13px; }
  .calculator-addon { grid-template-columns:18px minmax(0,1fr) 70px; gap:6px; }
  .calculator-addon-description { column-gap:6px; }
  .calculator-addon-description label,.calculator-addon-price { font-size:13px; }
  .calculator-addon-price { grid-template-columns:34px 32px; }
  .calculator-addon-price .addon-unit { font-size:11px; }
}
.trusted-graders-row { width:100%; min-width:0; }
.trusted-graders-inner { display:flex; align-items:center; justify-content:center; gap:16px; width:fit-content; max-width:100%; margin-inline:auto; padding:4px 16px; border-radius:8px; background:#f6f8fb; }
.trusted-graders-inner>span { color:var(--muted); font-size:12px; line-height:1.4; }
.trusted-grader { display:flex; flex:0 0 auto; align-items:center; justify-content:center; min-height:44px; }
.trusted-grader img { width:auto; height:17px; max-width:100%; object-fit:contain; filter:grayscale(1); opacity:.7; }
.trusted-grader:hover img,.trusted-grader:focus-visible img { opacity:1; }
@media(max-width:480px) {
  .trusted-graders-inner { gap:12px; padding-inline:12px; }
  .trusted-graders-inner>span { max-width:106px; }
  .trusted-grader img { height:15px; }
}
.grader-trust { max-width:360px; margin-top:26px; padding-top:20px; border-top:1px solid var(--line); }
.grader-trust>p { margin-bottom:10px; color:var(--muted); font-size:13px; font-weight:600; }
.grader-logos { display:flex; flex-wrap:wrap; gap:24px; align-items:center; }
.grader-logos a { display:flex; align-items:center; justify-content:center; width:110px; min-height:44px; }
.grader-logos img { width:auto; max-width:110px; height:auto; max-height:34px; object-fit:contain; }
.page-hero .grader-trust { width:fit-content; max-width:100%; margin-inline:auto; }

/* Content pages use the same readable scale as the homepage. */
.section-heading { margin-bottom:36px; }
.simple-process { padding-block:76px 88px; }
.simple-process>.section-heading { text-align:center; margin-bottom:56px; }
.visual-steps { display:grid; gap:72px; }
.alternating-steps { max-width:920px; margin-inline:auto; }
.alternating-steps article { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); align-items:center; gap:48px; }
.alternating-steps article:nth-child(even) { grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); }
.alternating-steps article:nth-child(even) .step-copy { order:2; }
.alternating-steps img { width:100%; max-width:370px; height:auto; aspect-ratio:1; border-radius:12px; justify-self:end; }
.alternating-steps article:nth-child(even) img { justify-self:start; }
.visual-step-number { display:block; font-size:20px; line-height:1.2; font-weight:650; letter-spacing:.04em; color:var(--accent); margin-bottom:16px; font-variant-numeric:tabular-nums; }
.alternating-steps h3 { font-size:clamp(28px,3.8vw,44px); margin-bottom:16px; }
.alternating-steps p { color:var(--muted); font-size:20px; line-height:1.6; }
.collector-quote { max-width:850px; padding-block:24px; }
.quote-rating { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; color:var(--muted); font-size:14px; }
.collector-quote blockquote { font-size:clamp(24px,3vw,34px); line-height:1.45; letter-spacing:-.025em; margin:24px 0; }
.quote-credit { color:var(--muted); font-size:14px; }
.quote-credit strong { color:var(--ink); }
.simple-questions { max-width:850px; }
.faq-section { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:72px; }
.faq-list { min-width:0; }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list details:first-child { border-top:1px solid var(--line); }
.faq-list summary { position:relative; list-style:none; cursor:pointer; min-height:56px; padding:22px 34px 22px 0; font-size:18px; font-weight:600; line-height:1.45; }
.faq-list summary::-webkit-details-marker,.disclosure summary::-webkit-details-marker { display:none; }
.faq-list p { color:var(--muted); font-size:16px; line-height:1.7; padding:0 16px 24px 0; }
.plus { position:absolute; right:4px; top:28px; width:14px; height:14px; }
.plus:before,.plus:after { content:""; position:absolute; top:6px; inset-inline:0; height:2px; background:currentColor; }
.plus:after { transform:rotate(90deg); }
details[open]>.plus:after,details[open]>summary .plus:after { transform:none; }
.faq-checklist-link { display:inline; padding:0; border:0; background:none; color:var(--accent); font:inherit; text-decoration:underline; text-underline-offset:3px; }
.end-cta { background:var(--panel-blue); }
.end-inner { display:flex; justify-content:space-between; align-items:center; gap:32px; padding-block:64px; }
.end-inner>div { min-width:0; }
.end-cta h2 { max-width:620px; }
.end-cta p { margin-top:18px; color:var(--muted); font-size:17px; }
/* Inline guide signup at the end of each marketing page. */
.guide-cta-inner { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:64px; }
.guide-preview-image { width:100%; height:auto; object-fit:contain; }
.guide-cta-preview { width:100%; max-width:260px; justify-self:center; }
.guide-cta-content { display:grid; gap:28px; }
.guide-cta-label { display:inline-block; margin-bottom:18px; font-size:12px; font-weight:700; letter-spacing:.08em; color:var(--accent-dark); }
.guide-cta h2 { max-width:500px; font-size:clamp(30px,3.5vw,44px); }
.guide-cta-copy>p { max-width:460px; font-size:17px; }
.guide-signup { min-width:0; }
.guide-field-row { display:flex; flex-wrap:wrap; gap:12px; align-items:stretch; margin-top:8px; }
.guide-field-row input { flex:1 1 200px; min-width:0; width:100%; min-height:54px; padding:13px 14px; border:1px solid #a7b6c7; border-radius:8px; background:var(--white); color:var(--ink); font-size:16px; }
.guide-field-row .button { flex:0 0 auto; gap:10px; padding-inline:18px; margin:0; }
.guide-cta .guide-signup-note { font-size:13px; margin-top:12px; line-height:1.5; }
.guide-cta .lead-error { font-size:14px; color:#a63232; margin-top:12px; }
.guide-download-ready h3 { font-size:26px; }
.guide-cta .guide-download-ready>p { margin:12px 0 20px; font-size:15px; }
.guide-download-ready .button { margin:0; }
.page-hero { padding-block:72px 56px; text-align:center; }
.page-hero>p:not(.eyebrow) { max-width:600px; margin:24px auto 28px; color:var(--muted); font-size:18px; }
.photo-process { max-width:1000px; padding-bottom:24px; }
.photo-process article { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1fr); align-items:center; gap:64px; padding-block:32px; border-bottom:1px solid var(--line); }
.photo-process article:last-child { border:0; }
.photo-process img { width:100%; height:auto; aspect-ratio:1; border-radius:12px; }
.photo-process h2 { font-size:36px; margin-bottom:20px; }
.photo-process p { color:var(--muted); font-size:17px; }
.why-intro { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; gap:64px; }
.why-image { border-radius:12px; overflow:hidden; aspect-ratio:1; }
.why-image img { width:100%; height:100%; }
.why-intro article { margin:28px 0; }
.why-intro article>span { color:var(--accent); font-weight:600; }
.why-intro h2 { font-size:30px; margin:10px 0 14px; }
.why-intro p { color:var(--muted); font-size:16px; }
.comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.comparison>div { border:1px solid var(--line); border-radius:12px; padding:28px; }
.comparison-label { display:inline-block; padding:6px 12px; border-radius:6px; font-size:14px; font-weight:600; }
.green-label { background:var(--panel-positive); color:#45543a; }
.peach-label { background:var(--panel-soft); color:#3e536c; }
.comparison ul { margin:20px 0 0; padding-left:20px; color:var(--muted); font-size:16px; }
.comparison li+li { margin-top:14px; }
.grading-reference { max-width:850px; padding-bottom:80px; }
.grading-reference>p { color:var(--muted); font-size:17px; margin-bottom:24px; }
.disclosure { border-top:1px solid var(--line); margin-top:20px; }
.disclosure summary { display:flex; align-items:center; gap:10px; min-height:52px; padding:16px 0; cursor:pointer; font-size:15px; line-height:1.5; font-weight:600; list-style:none; }
.disclosure summary:after { content:"+"; margin-left:auto; font-size:24px; font-weight:400; line-height:1; }
.disclosure[open]>summary:after { content:"−"; }
.disclosure summary>span { color:var(--muted); font-size:13px; font-weight:400; }
.disclosure p { color:var(--muted); font-size:15px; }
.grade-scale>div { display:grid; grid-template-columns:100px minmax(0,1fr); gap:20px; padding:20px 0; border-top:1px solid var(--line); }
.grade-scale strong { color:var(--accent); font-size:26px; }
.grade-scale b { color:var(--ink); }
.grade-scale { padding-top:16px; }
.pricing-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px; align-items:center; max-width:1000px; padding-bottom:16px; }
.pricing-explainer>p { color:var(--muted); margin-top:24px; }
.tick-list { display:grid; gap:14px; list-style:none; padding:0; margin:26px 0; }
.tick-list li { display:flex; gap:10px; align-items:flex-start; }
.tick-list svg { width:20px; height:20px; margin-top:3px; color:var(--accent); }
.price-calculator { border:1px solid var(--line); border-radius:12px; background:var(--white); padding:32px; min-width:0; }
.calculator-top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.calculator-top .eyebrow { margin:0; }
.price-calculator h2,.price-calculator h3 { margin-top:26px; font-size:26px; }
.pill { display:inline-flex; align-items:center; padding:6px 10px; background:var(--panel-blue); border-radius:6px; color:#394958; font-size:12px; font-weight:600; line-height:1.5; }
.price-lines { margin:0; }
.price-lines>div { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding-block:10px; font-size:15px; }
.price-lines dt { color:var(--muted); }
.price-lines dd { margin:0; flex-shrink:0; font-variant-numeric:tabular-nums; }
.price-grand { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid var(--line); padding-top:22px; margin-top:12px; font-size:15px; }
.price-grand strong { font-size:38px; letter-spacing:-.035em; line-height:1.2; font-variant-numeric:tabular-nums; }
.price-calculator .button { width:100%; margin-top:26px; }
.review-summary { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:10px 16px; margin-top:28px; font-size:16px; }
.review-summary>span:last-child { color:var(--muted); }
.reviews-photo { max-width:820px; margin-bottom:60px; }
.reviews-photo img { width:100%; height:auto; aspect-ratio:4/3; border-radius:12px; }
.reviews-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px 32px; padding-bottom:72px; }
.review { border-top:1px solid var(--line); padding-top:24px; }
.review blockquote { font-size:19px; line-height:1.5; margin:22px 0 28px; }
.review-person { display:flex; align-items:center; gap:10px; }
.avatar { display:grid; place-items:center; width:38px; height:38px; flex-shrink:0; border-radius:50%; font-size:12px; font-weight:700; }
.blue { background:var(--panel-blue); }.peach { background:var(--panel-soft); }.green { background:var(--panel-positive); }
.review-person strong { display:block; font-size:14px; }
.review-person div span { display:block; color:var(--muted); font-size:13px; }
.review-verified { margin-left:auto; color:#45543a; }
.review-verified svg { width:18px; height:18px; }
.review-detail { margin:10px 0 0 48px; color:var(--muted); font-size:13px; }
.numbers-panel { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; padding:40px 24px; margin-bottom:80px; border-radius:12px; background:var(--panel-blue); text-align:center; }
.numbers-panel strong { display:block; font-size:36px; letter-spacing:-.035em; line-height:1.2; font-variant-numeric:tabular-nums; }
.numbers-panel span { display:block; margin-top:10px; color:var(--muted); font-size:14px; }
.help-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:64px; padding-bottom:88px; }
.help-layout aside { height:fit-content; padding:32px; border-radius:12px; background:var(--panel-blue); }
.help-layout aside h2 { font-size:30px; }
.help-layout aside>p { margin:20px 0 24px; color:var(--muted); }
.support-note { margin-top:18px; color:var(--muted); font-size:14px; }

/* Estimate flow. Inputs remain at least 16px to avoid mobile focus zoom. */
.quote-section { max-width:790px; padding-block:48px 72px; }
.quote-heading { text-align:center; }
.quote-heading h1 { font-size:clamp(34px,5.2vw,52px); }
.quote-heading>p { color:var(--muted); font-size:17px; margin-top:20px; }
.quote-shell { padding:36px 40px; margin-top:32px; border:1px solid var(--line); border-radius:12px; background:var(--white); }
.quote-progress { display:flex; justify-content:space-between; gap:12px; list-style:none; padding:0 0 24px; margin:0 0 28px; border-bottom:1px solid var(--line); }
.quote-progress li { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:14px; }
.quote-progress li>span { display:grid; place-items:center; flex-shrink:0; width:28px; height:28px; border:1px solid var(--line); border-radius:50%; font-size:13px; }
.quote-progress li.active { color:var(--accent); font-weight:600; }
.quote-progress li.active>span { color:var(--white); background:var(--accent); border-color:var(--accent); }
.quote-progress li.done>span { color:#45543a; background:var(--panel-positive); border-color:var(--panel-positive); }
.quote-shell h2 { font-size:28px; margin-bottom:22px; }
.quote-shell .pill { margin-bottom:18px; }
.quote-shell label:not(.upload-area) { display:block; font-size:15px; font-weight:600; }
.quote-shell input:not([type=file]):not([type=checkbox]),.quote-shell select,.quote-shell textarea,#checklist-email { display:block; width:100%; min-width:0; min-height:50px; padding:12px 14px; margin:8px 0 22px; border:1px solid #a7b6c7; border-radius:8px; background:var(--white); color:var(--ink); font-size:16px; font-weight:400; }
.quote-shell select { padding-right:36px; }
.quote-shell textarea { resize:vertical; min-height:100px; }
.form-row { display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1fr); gap:20px; }
.form-row label { min-width:0; }
.quote-shell .estimate-addons { margin:4px 0 24px; }
.quote-shell .estimate-addon>label { display:flex; min-height:44px; font-size:16px; }
.optional-inputs { margin-bottom:24px; }
.upload-area { display:flex; position:relative; flex-direction:column; align-items:center; gap:8px; text-align:center; padding:24px 16px; margin:4px 0 24px; border:1px dashed #a6b1be; border-radius:12px; cursor:pointer; }
.upload-area:focus-within { outline:3px solid var(--accent); outline-offset:4px; }
.upload-icon { color:var(--accent); }
.upload-area>strong { font-size:16px; }
.upload-area>span:not(.upload-icon):not(.upload-button) { font-size:14px; color:var(--muted); }
.upload-area .upload-button { min-height:44px; padding:10px 16px; margin-top:6px; border:1px solid var(--line); border-radius:8px; background:var(--panel-soft); font-size:14px; }
.upload-area input { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
.photo-previews { display:flex; flex-wrap:wrap; gap:16px; margin-bottom:18px; }
.photo-preview { position:relative; display:block; width:88px; height:88px; }
.photo-preview img { width:100%; height:100%; border-radius:8px; }
.photo-preview button { position:absolute; right:-6px; top:-6px; display:grid; place-items:center; width:44px; height:44px; padding:0; border:2px solid var(--white); border-radius:50%; background:var(--ink); color:var(--white); font-size:25px; line-height:1; }
.field-error,.lead-error { color:#a63232; font-size:14px; line-height:1.5; margin-block:12px; }
.field-error:empty,.lead-error:empty { display:none; }
.form-note { margin-top:16px; text-align:center; color:var(--muted); font-size:14px; }
.quote-shell .price-lines { margin-top:22px; }
.quote-shell .small { margin-block:18px; }
.quote-includes { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 18px; margin:24px 0; color:var(--muted); font-size:14px; }
.quote-includes>span { display:inline-flex; align-items:center; gap:6px; }
.quote-includes svg { width:18px; height:18px; color:var(--accent); }
[data-step="3"]>p { margin-bottom:24px; }
.saved-summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px; margin:8px 0 24px; border:1px solid var(--line); border-radius:8px; background:var(--panel-soft); font-size:15px; }
.saved-summary span { min-width:0; overflow-wrap:anywhere; }
.saved-summary strong { font-size:28px; flex-shrink:0; font-variant-numeric:tabular-nums; }
#quote-success { text-align:center; }
#quote-success>p { margin-bottom:24px; color:var(--muted); }
.success-icon { display:grid; place-items:center; width:58px; height:58px; border-radius:50%; margin:0 auto 24px; background:var(--panel-positive); color:#45543a; }
.saved-quotes-section { max-width:850px; padding-bottom:80px; min-height:300px; }
.empty-state { padding:48px 24px; background:var(--panel-blue); border-radius:12px; text-align:center; }
.empty-state>svg { width:44px; height:44px; color:var(--accent); margin-bottom:20px; }
.empty-state h2 { font-size:32px; }
.empty-state p { margin:20px 0 24px; color:var(--muted); }
.saved-quote-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(100px,.55fr); align-items:start; gap:20px; padding:24px; margin-bottom:16px; border:1px solid var(--line); border-radius:12px; }
.saved-quote-card h2 { font-size:24px; margin-bottom:10px; overflow-wrap:anywhere; }
.saved-quote-card p { color:var(--muted); font-size:14px; }
.saved-quote-card .quote-cost { display:block; font-size:30px; line-height:1.2; letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.saved-quote-card>div:nth-child(2) { text-align:right; }
.quote-actions { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:8px 24px; padding-top:10px; border-top:1px solid var(--line); }
.quote-actions button { min-height:44px; padding:8px 0; border:0; background:none; color:var(--muted); font-size:14px; text-decoration:underline; text-underline-offset:3px; }

/* Dialogs stay inside the visible viewport, including landscape phones. */
.cart-dialog { width:min(480px,calc(100% - 32px)); max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); margin:auto; padding:0; border:1px solid var(--line); border-radius:16px; background:var(--paper); color:var(--ink); overflow-y:auto; overscroll-behavior:contain; scroll-padding-top:92px; scrollbar-gutter:auto; box-shadow:0 20px 70px #152c4c26; }
.cart-dialog::backdrop { background:#152c4c66; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.dialog-body { padding:28px; }
.dialog-body>h2 { font-size:36px; line-height:1.12; letter-spacing:-.035em; }
.cart-open { overflow:hidden; }
.cart-dialog.account-dialog { width:min(480px,calc(100% - 24px)); padding:0; border-radius:16px; scrollbar-gutter:auto; }
.dialog-header { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 20px 16px 28px; border-bottom:1px solid var(--line); background:var(--white); }
.dialog-header .brand { font-size:22px; }
.dialog-header .brand-mark { width:30px; height:30px; }
.account-dialog-body { padding:28px; }
.account-eyebrow { margin-bottom:12px; color:var(--accent); font-size:11px; font-weight:700; letter-spacing:.1em; }
.account-dialog h2 { font-size:32px; line-height:1.15; letter-spacing:-.035em; }
.account-intro { margin-top:12px; color:var(--muted); font-size:16px; line-height:1.55; }
.account-benefits { display:grid; gap:12px; padding:0; margin:24px 0; list-style:none; }
.account-benefits li { display:flex; align-items:flex-start; gap:10px; font-size:15px; line-height:1.5; }
.account-benefits svg { width:20px; height:20px; margin-top:2px; color:var(--accent); }
.account-continue { gap:10px; }
.account-signin-note { margin-top:12px; color:var(--muted); font-size:13px; line-height:1.5; text-align:center; }
.account-login { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:0 6px; margin-top:18px; color:var(--muted); font-size:14px; }
.account-login a { display:inline-flex; align-items:center; min-height:44px; color:var(--accent); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.login-placeholder-action { margin-top:24px; }
.account-reassurance { padding:16px 24px; border-top:1px solid var(--line); background:var(--panel-blue); color:var(--muted); font-size:13px; line-height:1.5; text-align:center; }
@media(max-width:480px) {
  .account-dialog-body { padding:24px 20px 18px; }
  .account-dialog h2 { font-size:28px; }
  .account-continue { padding-inline:12px; }
}
.cart-dialog.info-dialog { --gutter:32px; width:min(740px,calc(100% - 32px)); padding:0; scroll-padding-top:88px; scrollbar-gutter:auto; }
.info-dialog .dialog-header { padding-inline:32px 24px; }
.info-dialog-title { font-size:44px; line-height:1.1; letter-spacing:-.04em; }
.info-dialog-body { padding-block:32px; }
.info-dialog-body .container { width:calc(100% - var(--gutter)*2); max-width:none; }
.how-overview { padding-top:20px; }
.how-overview-title { font-size:26px; line-height:1.15; letter-spacing:-.03em; }
.how-overview-intro { margin-top:14px; color:var(--muted); font-size:16px; line-height:1.55; }
.how-steps { list-style:none; padding:0; margin:24px 0 0; }
.how-steps li { display:grid; grid-template-columns:36px minmax(0,1fr); gap:16px; padding-block:20px; border-bottom:1px solid var(--line); }
.how-steps li:first-child { padding-top:0; }
.how-steps li:last-child { border-bottom:0; padding-bottom:0; }
.how-step-number { display:grid; place-items:center; width:36px; height:36px; border-radius:8px; background:var(--panel-blue); color:var(--accent); font-size:16px; font-weight:700; font-variant-numeric:tabular-nums; }
.how-steps h4 { margin:0; font-size:18px; line-height:1.3; font-weight:650; letter-spacing:-.015em; }
.how-steps p { margin-top:6px; color:var(--muted); font-size:15px; line-height:1.55; }
.how-expectations { margin-top:28px; padding:22px; border-radius:10px; background:var(--panel-blue); }
.how-expectations>h3 { font-size:20px; letter-spacing:-.02em; }
.how-expectations-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:18px; }
.how-expectations h4 { margin:0; font-size:15px; line-height:1.4; font-weight:650; }
.how-expectations p { margin-top:6px; color:var(--muted); font-size:14px; line-height:1.55; }
.how-dialog-action { margin-top:24px; }
.why-overview { padding-top:24px; }
.why-benefits { list-style:none; padding:0; margin:0; }
.why-benefits li { display:grid; grid-template-columns:36px minmax(0,1fr); align-items:start; gap:14px; padding-block:15px; border-bottom:1px solid var(--line); }
.why-benefit-icon { display:grid; place-items:center; width:36px; height:36px; border-radius:8px; background:var(--panel-blue); color:var(--accent); }
.why-benefit-icon svg { width:22px; height:22px; }
.why-benefits h3 { margin:0; font-size:18px; line-height:1.3; font-weight:650; letter-spacing:-.015em; }
.why-benefits p { margin-top:6px; color:var(--muted); font-size:15px; line-height:1.55; }
.why-benefits .why-benefit-primary { padding-block:4px 22px; margin-bottom:6px; }
.why-benefit-primary .why-benefit-icon { background:var(--accent); color:var(--white); }
.why-benefit-primary h3 { font-size:26px; line-height:1.15; letter-spacing:-.03em; font-weight:700; }
.why-benefit-primary p { margin-top:10px; font-size:16px; }
.why-overview-note { margin-top:14px; color:var(--muted); font-size:13px; }
.why-guide-callout { display:grid; grid-template-columns:100px minmax(0,1fr); align-items:center; gap:14px 24px; padding:22px; margin-top:28px; border-radius:10px; background:var(--panel-blue); }
.why-guide-preview { grid-row:1/span 2; }
.why-guide-preview .guide-preview-image { width:100%; }
.why-guide-copy { grid-column:2; align-self:end; }
.why-guide-copy h3 { font-size:24px; letter-spacing:-.025em; }
.why-guide-copy p { max-width:340px; margin-top:8px; color:var(--muted); font-size:15px; line-height:1.5; }
.why-guide-callout>.button { grid-column:2; justify-self:start; align-self:start; min-height:48px; padding:12px 18px; font-size:15px; }
.pricing-overview { padding-top:28px; }
.pricing-overview h3 { font-size:20px; letter-spacing:-.02em; }
.pricing-base { padding:24px; border-radius:10px; background:var(--panel-blue); }
.pricing-base-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 16px; }
.pricing-base-heading>span { color:var(--muted); font-size:12px; }
.pricing-base-prices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:end; gap:28px; margin:24px 0 0; }
.pricing-base-prices>div { min-width:0; }
.pricing-base-prices dt { font-size:15px; font-weight:600; line-height:1.4; }
.pricing-base-prices dt span { display:block; margin-top:3px; color:var(--muted); font-size:12px; font-weight:400; }
.pricing-base-prices dd { margin:8px 0 0; font-weight:700; letter-spacing:-.045em; font-variant-numeric:tabular-nums; line-height:1.05; }
.pricing-base-first dd { font-size:56px; }
.pricing-base-additional { padding-left:28px; border-left:1px solid #cddbeb; }
.pricing-base-additional dd { font-size:38px; }
.pricing-currency { margin-top:12px; color:var(--muted); font-size:12px; }
.pricing-included { padding-top:18px; margin-top:20px; border-top:1px solid #cddbeb; }
.pricing-included h4 { margin:0; font-size:14px; line-height:1.4; font-weight:650; }
.pricing-included ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 20px; padding:0; margin:12px 0 0; list-style:none; }
.pricing-included li { display:flex; align-items:flex-start; gap:8px; font-size:14px; line-height:1.5; }
.pricing-included li svg { width:17px; height:17px; margin-top:2px; color:var(--accent); }
.pricing-addons { margin-top:28px; }
.pricing-addons-intro { margin-top:6px; color:var(--muted); font-size:14px; }
.pricing-addon-list { margin:8px 0 0; }
.pricing-addon-list>div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px 24px; padding-block:17px; border-bottom:1px solid var(--line); }
.pricing-addon-list dt { font-size:16px; font-weight:650; line-height:1.4; }
.pricing-addon-list dd { margin:0; }
.pricing-addon-price { grid-column:2; grid-row:1/span 2; text-align:right; }
.pricing-addon-price strong { display:block; font-size:20px; line-height:1.3; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.pricing-addon-price span { display:block; margin-top:3px; font-size:12px; color:var(--muted); white-space:nowrap; }
.pricing-addon-description { grid-column:1; max-width:430px; color:var(--muted); font-size:14px; line-height:1.55; }
.pricing-overview-note { margin-top:16px; color:var(--muted); font-size:12px; line-height:1.6; }
.kit-dialog-image { width:100%; height:160px; object-fit:cover; border-radius:8px; margin:20px 0; }
.kit-dialog .dialog-body>p,.kit-dialog ul { font-size:16px; line-height:1.6; }
.kit-dialog ul { margin:18px 0; padding-left:20px; }
.kit-dialog li+li { margin-top:10px; }
.kit-dialog .dialog-body>.small { font-size:14px; }
.kit-dialog .dialog-body>.button { margin-top:22px; }
.studio-photos-dialog .dialog-body>p:first-of-type { margin-top:20px; }
.cart-dialog.grading-checklist-dialog { width:min(820px,calc(100% - 32px)); padding:0; border:0; border-radius:16px; scrollbar-gutter:auto; }
.guide-modal-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.25fr); }
.guide-modal-visual { display:flex; align-items:center; justify-content:center; padding:36px 24px; background:var(--panel-blue); }
.guide-modal-visual .guide-preview-image { width:100%; max-width:238px; }
.guide-modal-content { min-width:0; padding:36px 34px 30px; }
.guide-modal-badge { display:inline-flex; padding:5px 9px; border-radius:4px; background:#f4d35e; color:var(--ink); font-size:11px; font-weight:750; line-height:1.4; letter-spacing:.09em; }
.guide-modal-heading h2 { margin-top:16px; font-size:38px; line-height:1.08; letter-spacing:-.045em; }
.checklist-intro { margin-top:16px; color:var(--muted); font-size:16px; line-height:1.55; }
.checklist-benefits { display:grid; gap:12px; margin:22px 0 0; padding:0; list-style:none; color:var(--ink); font-size:14px; line-height:1.5; }
.checklist-benefits li { display:flex; align-items:flex-start; gap:10px; }
.checklist-benefits svg { width:18px; height:18px; margin-top:2px; color:var(--accent); }
.guide-modal-form { margin-top:24px; padding-top:22px; border-top:1px solid var(--line); }
.lead-email-label { display:block; font-size:15px; font-weight:600; }
#checklist-email { margin-bottom:12px; }
.lead-trap { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
.checklist-note { margin:12px 0 0; font-size:12px; line-height:1.5; text-align:center; color:var(--muted); }
#checklist-download-ready h3 { font-size:25px; margin-top:24px; }
#checklist-download-ready p { color:var(--muted); font-size:16px; margin:16px 0 24px; }
.toast { position:fixed; bottom:24px; left:50%; width:max-content; max-width:calc(100% - 32px); padding:14px 20px; border-radius:10px; background:var(--ink); color:var(--white); font-size:14px; text-align:center; z-index:60; opacity:0; pointer-events:none; transform:translate(-50%,20px); transition:opacity .2s,transform .2s; }
.toast.show { opacity:1; transform:translate(-50%,0); }

/* Footer and the optional mobile action. */
.footer { padding-block:64px 30px; background:var(--ink); color:#f2f6fd; }
.footer .brand-mark { color:#91b3ff; }
.footer-main { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:40px; padding-bottom:40px; }
.footer-main>div>p { margin-top:18px; color:#b8c6d9; font-size:16px; }
.footer nav { display:grid; grid-template-columns:repeat(3,max-content); justify-content:end; align-content:start; gap:8px 24px; font-size:15px; }
.footer nav a { display:flex; align-items:center; min-height:44px; }
.footer nav a:hover { color:#a8c5ff; }
.footer-bottom { display:flex; justify-content:space-between; gap:16px 32px; border-top:1px solid #ffffff26; padding-top:24px; color:#b8c6d9; font-size:14px; }
.footer :focus-visible { outline-color:#a8c5ff; }
.mobile-cta { display:none; }

@media(min-width:961px) { .mobile-menu { display:none!important; } }
@media(max-width:960px) {
  :root { --gutter:28px; }
  .desktop-nav { display:none; }.menu-toggle { display:grid; }
  .header-actions { gap:8px; }
  .header-inner { min-height:72px; }
  .reviews-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .faq-section,.help-layout { gap:40px; }
  .pricing-grid { gap:36px; }
  .guide-cta-inner { gap:32px; }
  .guide-field-row .button { flex-basis:100%; }
  .photo-process article,.why-intro { gap:40px; }
}
@media(max-width:760px) {
  :root { --gutter:20px; }
  .section { padding-block:60px; }
  .header-inner { min-height:68px; gap:12px; }
  .brand { font-size:22px; gap:8px; }.brand-mark { width:30px; height:30px; }
  .announcement { font-size:15px; gap:8px; padding:10px 12px; white-space:nowrap; }
  .hero { padding-block:28px 24px; gap:24px; }
  .hero h1 { margin-bottom:16px; font-size:clamp(34px,7.5vw,48px); }
  .hero-description { font-size:18px; max-width:420px; }
  .hero-review-eyebrow { font-size:13px; margin-bottom:16px; }
  .estimate-addon>label { min-height:44px; }
  .kit-info-button { min-height:44px; }
  .simple-process { padding-block:52px 64px; }
  .simple-process>.section-heading { margin-bottom:40px; }
  .visual-steps { gap:48px; }
  .alternating-steps article,.alternating-steps article:nth-child(even) { grid-template-columns:minmax(0,1fr); gap:24px; width:100%; max-width:520px; margin-inline:auto; }
  .alternating-steps article:nth-child(even) .step-copy { order:0; }
  .alternating-steps img,.alternating-steps article:nth-child(even) img { justify-self:center; width:100%; max-width:370px; }
  .alternating-steps h3 { font-size:32px; margin-bottom:12px; }.alternating-steps p { font-size:18px; }
  .visual-step-number { font-size:18px; margin-bottom:12px; }
  .collector-quote { padding-block:12px; }.collector-quote blockquote { font-size:27px; }
  .faq-section { grid-template-columns:minmax(0,1fr); gap:28px; }
  .faq-list summary { font-size:17px; padding-block:20px; }.faq-list p { font-size:16px; padding-right:0; }.plus { top:26px; }
  .end-inner { display:block; padding-block:48px; }.end-cta .button { width:100%; margin-top:26px; }
  .guide-cta-inner { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; }
  .guide-cta-content { display:contents; }
  .guide-cta-copy { grid-row:1; }
  .guide-cta-preview { grid-row:2; max-width:200px; }
  .guide-signup { grid-row:3; }
  .guide-cta .button { margin-top:0; }
  .guide-cta-label { margin-bottom:14px; }
  .guide-cta-copy>p { margin-top:16px; }
  .page-hero { padding-block:40px 36px; text-align:left; }.page-hero h1 { font-size:clamp(36px,8.5vw,56px); }
  .page-hero>p:not(.eyebrow) { margin:20px 0 24px; font-size:17px; }.page-hero .button { width:100%; }
  .page-hero .grader-trust { margin-inline:0; }
  .photo-process article { grid-template-columns:minmax(0,1fr); gap:24px; padding-block:24px 32px; }
  .photo-process img { max-width:480px; justify-self:center; }.photo-process h2 { font-size:30px; margin-bottom:16px; }
  .why-intro { grid-template-columns:minmax(0,1fr); gap:12px; }.why-image { aspect-ratio:4/3; max-height:400px; }
  .why-intro h2 { font-size:28px; }.why-intro article:last-child { margin-bottom:0; }
  .comparison { grid-template-columns:minmax(0,1fr); gap:20px; }.comparison>div { padding:24px; }
  .grading-reference { padding-bottom:56px; }.grade-scale>div { grid-template-columns:86px minmax(0,1fr); gap:16px; }
  .pricing-grid { grid-template-columns:minmax(0,1fr); gap:32px; }.pricing-explainer h2 br { display:none; }
  .price-calculator { padding:24px; }.price-grand strong { font-size:34px; }
  .review-summary { justify-content:flex-start; font-size:15px; }.reviews-photo { margin-bottom:40px; }
  .reviews-grid { grid-template-columns:minmax(0,1fr); gap:36px; padding-bottom:48px; }
  .numbers-panel { padding:28px 16px; gap:16px; margin-bottom:56px; }.numbers-panel strong { font-size:28px; }.numbers-panel span { font-size:13px; }
  .help-layout { grid-template-columns:minmax(0,1fr); gap:32px; padding-bottom:56px; }.help-layout aside { order:2; padding:26px; }
  .quote-section { padding-block:32px 56px; }.quote-heading { text-align:left; }.quote-heading>p { margin-top:16px; }
  .quote-shell { padding:24px; margin-top:24px; }.quote-shell h2 { font-size:25px; }
  .quote-progress { gap:8px; }.quote-progress li { font-size:13px; gap:6px; }
  .form-row { grid-template-columns:minmax(0,1fr); gap:0; }
  .quote-includes { justify-content:flex-start; }
  .saved-quotes-section { padding-bottom:56px; }.saved-quote-card { padding:22px; gap:16px; }
  .dialog-body { padding:22px; }.dialog-body>h2 { font-size:32px; }
  .kit-dialog-image { height:140px; }
  .footer { padding-block:48px calc(112px + env(safe-area-inset-bottom)); }
  body[data-page="start"] .footer { padding-bottom:calc(30px + env(safe-area-inset-bottom)); }
  .footer-main { grid-template-columns:minmax(0,1fr); gap:24px; padding-bottom:28px; }
  .footer nav { justify-content:start; gap:4px 24px; }.footer-main>div>p { margin-top:14px; }
  .footer-bottom { flex-direction:column; gap:12px; font-size:13px; }
  .mobile-cta { display:block; position:fixed; z-index:25; bottom:0; inset-inline:0; padding:12px max(var(--gutter),env(safe-area-inset-left)) calc(12px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:#fffffffa; box-shadow:0 -4px 18px #152c4c08; transform:translateY(110%); visibility:hidden; pointer-events:none; transition:transform .2s,visibility .2s; }
  .mobile-cta.visible { transform:translateY(0); visibility:visible; pointer-events:auto; }.mobile-cta .button { width:100%; min-height:52px; }
  .toast { bottom:calc(100px + env(safe-area-inset-bottom)); }
  body[data-page="start"] .toast { bottom:calc(20px + env(safe-area-inset-bottom)); }
}
@media(max-width:480px) {
  .header-inner { width:calc(100% - 24px); gap:8px; }
  .header-inner .brand { font-size:18px; gap:6px; }
  .header-inner .brand-mark { width:26px; height:26px; }
  .header-actions { gap:6px; }
  .header-start { padding-inline:12px; font-size:13px; }
  .hero h1 br,.page-hero h1 br { display:none; }

  .quote-progress { gap:6px; }.quote-progress li { font-size:12px; gap:5px; }.quote-progress li>span { width:24px; height:24px; }
  .quote-shell { padding:24px 20px; }
  .saved-quote-card { grid-template-columns:minmax(0,1fr); }.saved-quote-card>div:nth-child(2) { text-align:left; }
  .saved-summary { flex-wrap:wrap; }.saved-summary strong { margin-left:auto; }
  .numbers-panel { grid-template-columns:minmax(0,1fr); gap:24px; }.numbers-panel>div+div { border-top:1px solid var(--line); padding-top:24px; }
  .dialog-body>h2 { font-size:30px; }
  .announcement { gap:6px; }.announcement strong { display:inline; }
}
@media(max-width:360px) {
  :root { --gutter:16px; }
  .announcement { font-size:14px; letter-spacing:-.01em; }
  .announcement svg { width:16px; height:16px; }
  .brand { font-size:21px; }.brand-mark { width:28px; height:28px; }
  .hero h1 { font-size:34px; }
  .quote-shell { padding-inline:16px; }.quote-progress { gap:4px; }.quote-progress li { gap:4px; }
  .dialog-body { padding:18px; }.dialog-body>h2 { font-size:28px; }
  .grade-scale>div { grid-template-columns:minmax(0,1fr); gap:8px; }
  .quote-actions { gap:4px 16px; }
}
@media(max-width:640px) {
  .cart-dialog.info-dialog { --gutter:20px; width:calc(100% - 24px); }
  .dialog-header,.info-dialog .dialog-header { padding:12px 12px 12px 20px; }
  .info-dialog-title { font-size:34px; }
  .info-dialog-body { padding-block:24px; }
  .how-overview { padding-top:18px; }
  .how-overview-title { font-size:22px; }
  .how-steps li { grid-template-columns:32px minmax(0,1fr); gap:12px; padding-block:18px; }
  .how-step-number { width:32px; height:32px; font-size:15px; }
  .how-steps h4 { font-size:17px; }
  .how-expectations { padding:20px; margin-top:24px; }
  .how-expectations-grid { grid-template-columns:minmax(0,1fr); gap:18px; }
  .why-overview { padding-top:20px; }
  .why-benefits li { grid-template-columns:32px minmax(0,1fr); gap:12px; padding-block:14px; }
  .why-benefit-icon { width:32px; height:32px; }
  .why-benefit-icon svg { width:20px; height:20px; }
  .why-benefits h3 { font-size:17px; }
  .why-benefits .why-benefit-primary h3 { font-size:24px; }
  .why-guide-callout { padding:20px; gap:14px 18px; }
  .pricing-overview { padding-top:24px; }
  .pricing-base { padding:20px; }
  .pricing-included ul { grid-template-columns:minmax(0,1fr); gap:10px; }
  .pricing-addon-list>div { gap:8px 16px; }
  .pricing-addon-price { grid-row:1; }
  .pricing-addon-description { grid-column:1/-1; }
}
@media(max-width:480px) {
  .why-guide-callout { grid-template-columns:76px minmax(0,1fr); padding:18px; }
  .why-guide-preview { grid-row:1; }
  .why-guide-copy { align-self:center; }
  .why-guide-copy h3 { font-size:22px; }
  .why-guide-copy p { font-size:14px; }
  .why-guide-callout>.button { grid-column:1/-1; width:100%; }
  .pricing-base-heading { display:block; }
  .pricing-base-heading>span { display:block; margin-top:6px; }
  .pricing-base-prices { display:block; margin-top:20px; }
  .pricing-base-prices>div { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; }
  .pricing-base-prices dt { font-size:14px; }
  .pricing-base-prices dd { margin:0; }
  .pricing-base-first dd { font-size:44px; }
  .pricing-base-additional { padding:16px 0 0; margin-top:16px; border-left:0; border-top:1px solid #cddbeb; }
  .pricing-base-additional dd { font-size:32px; }
}
/* Keep the guide cover compact and the download form full-width on phones. */
@media(max-width:640px) {
  .grading-checklist-dialog { padding:0; }
  .guide-modal-layout { grid-template-columns:92px minmax(0,1fr); grid-template-areas:"cover heading" "intro intro" "benefits benefits" "form form"; gap:18px 16px; align-items:center; padding:24px; }
  .guide-modal-visual { grid-area:cover; padding:8px 2px; border-radius:8px; }
  .guide-modal-content { display:contents; }
  .guide-modal-heading { grid-area:heading; }
  .guide-modal-heading h2 { margin-top:12px; font-size:30px; }
  .checklist-intro { grid-area:intro; margin:0; font-size:15px; }
  .checklist-benefits { grid-area:benefits; margin:0; gap:10px; }
  .guide-modal-form,#checklist-download-ready { grid-area:form; margin:0; }
  .guide-modal-form { padding-top:18px; }
}
@media(max-width:360px) {
  .guide-modal-layout { grid-template-columns:76px minmax(0,1fr); gap:16px 12px; padding:20px 18px; }
  .guide-modal-heading h2 { font-size:27px; }
}
@media(max-height:500px) and (max-width:960px) {
  .cart-dialog { max-height:calc(100dvh - 16px); }
  .mobile-cta { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; }
}
@media(forced-colors:active) {
  .button { border-color:ButtonText; }[data-addon] input { forced-color-adjust:auto; }.stars { color:CanvasText; }
}
@media print {
  .site-header,.announcement,.footer,.mobile-cta,.button,.button-text,.quote-progress,.toast { display:none!important; }
  .container { width:100%; }.quote-shell { border:0; }body { background:white; }
}
