/* 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;
  --home-surface:#f4f7fb; --visual-surface:#edf3fc; --visual-radius:32px;
  --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:650; 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:104px; }
.section + .faq-section { padding-top:0; }
.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:999px; background:var(--accent); color:var(--white); font-size:16px; font-weight:600; 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); }
.header-inner { min-height:96px; 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:28px; }
.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:28px; flex-shrink:0; }
.header-inner>.brand { flex-shrink:0; }
.header-start { flex-shrink:0; gap:8px; min-height:44px; padding:11px 18px; font-size:15px; line-height:1.3; white-space:nowrap; }
.header-start svg { width:18px; height:18px; }
.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; border-radius:50%; }
.menu-toggle:hover,.cart-close:hover { background:var(--panel-blue); color:var(--accent); }
.menu-toggle[aria-expanded="true"] { background:var(--panel-blue); color:var(--accent); }
.menu-toggle span { display:flex; }
.menu-toggle .menu-icon-close,.menu-toggle[aria-expanded="true"] .menu-icon-open { display:none; }
.menu-toggle[aria-expanded="true"] .menu-icon-close { display:flex; }
.menu-backdrop { position:fixed; inset:var(--menu-backdrop-top,124px) 0 0; background:rgb(10 25 47 / 42%); -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); }
.mobile-menu { position:fixed; z-index:1; top:var(--menu-top,132px); 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:12px 24px 24px; border:1px solid rgb(21 44 76 / 8%); border-radius:20px; background:var(--white); box-shadow:0 16px 48px rgb(10 25 47 / 18%); }
.mobile-menu a { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:60px; padding:18px 0; border:0; border-bottom:1px solid var(--line); background:none; text-align:left; font-size:18px; font-weight:500; line-height:1.35; }
.mobile-menu a:not(.button) svg { width:18px; height:18px; color:var(--muted); }
.mobile-menu a:not(.button):hover { color:var(--accent); }
.mobile-menu a:nth-last-child(2) { border-bottom:0; }
.mobile-menu .mobile-menu-start { justify-content:center; min-height:54px; margin-top:16px; padding:14px 18px; border-bottom:0; background:var(--accent); color:var(--white); text-align:center; font-size:16px; font-weight:600; }
.mobile-menu .mobile-menu-start:hover { background:var(--accent-dark); }
body.menu-open { overflow:hidden; }
.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 introduction and shared controls. */
.hero { display:grid; grid-template-columns:minmax(0,1fr); align-items:center; justify-items:center; gap:28px; width:100%; margin-inline:auto; padding:64px var(--gutter) 0; background:var(--white); text-align:center; }
.hero-copy { width:100%; max-width:1100px; min-width:0; }
.hero h1 { font-size:clamp(40px,5.5vw,76px); font-weight:650; line-height:1.06; letter-spacing:-.045em; margin-bottom:24px; }
.hero h1>span { display:block; }
.hero-description { max-width:640px; margin-inline:auto; color:var(--muted); font-size:20px; line-height:1.5; text-wrap:balance; }
.hero-start-block { width:100%; max-width:640px; }
.hero-price { display:flex; flex-wrap:wrap; justify-content:center; gap:0 6px; font-size:18px; line-height:1.6; }
.hero-price strong { font-weight:650; }
.hero-actions { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px 24px; margin:24px 0 12px; }
.hero-actions .button { min-width:184px; min-height:56px; padding-inline:28px; }
.hero-reassurance { color:var(--muted); font-size:14px; line-height:1.5; text-wrap:balance; }
.hero-scene { width:100%; max-width:var(--page); margin-top:12px; aspect-ratio:2.15; overflow:hidden; border-radius:var(--visual-radius); background:var(--visual-surface); }
.hero-scene picture { display:block; width:100%; height:100%; }
.hero-scene img { width:100%; height:100%; object-fit:cover; object-position:center 53%; }
.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; }
.trusted-graders-row { width:100%; min-width:0; }
.trusted-graders-inner { display:flex; align-items:center; justify-content:center; gap:20px; width:fit-content; max-width:100%; margin-inline:auto; }
.trusted-graders-inner>span { color:var(--muted); font-size:13px; line-height:1.4; white-space:nowrap; }
.trusted-grader { display:flex; flex:0 0 auto; align-items:center; justify-content:center; min-height:44px; }
.trusted-grader img { width:auto; height:28px; max-width:100%; object-fit:contain; }
.trusted-grader img[alt="NGC"] { height:24px; }
@media(max-width:480px) {
  .trusted-graders-inner { gap:16px; }
  .trusted-grader img { height:24px; }
  .trusted-grader img[alt="NGC"] { height:22px; }
}
.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:104px 112px; }
.simple-process>.section-heading { text-align:center; margin-bottom:64px; }
.visual-steps { display:grid; gap:88px; }
.alternating-steps { margin-inline:auto; }
.alternating-steps article { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:72px; }
.alternating-steps article:nth-child(even) { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); }
.alternating-steps article:nth-child(even) .step-copy { order:2; }
.step-copy { max-width:440px; }
.process-visual { display:grid; grid-template-rows:minmax(0,1fr); place-items:center; width:100%; aspect-ratio:4/3; padding:28px; overflow:hidden; border-radius:var(--visual-radius); background:var(--visual-surface); }
.process-visual .process-step-illustration { width:100%; max-width:350px; height:100%; max-height:350px; min-height:0; object-fit:contain; }
.process-visual-1 { padding:24px 16px; }
.process-visual .process-form-preview { max-width:520px; }
.process-visual .process-form-preview img { width:100%; max-width:none; height:auto; margin:0; object-fit:contain; }
.process-form-preview { display:block; width:100%; min-width:0; max-width:430px; justify-self:center; }
.alternating-steps .process-form-preview img,.photo-process .process-form-preview img { width:100%; max-width:none; height:auto; aspect-ratio:auto; object-fit:contain; border-radius:0; }
.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; }
.simple-process .visual-step-number { display:grid; place-items:center; width:40px; height:40px; margin-bottom:24px; border-radius:50%; background:var(--visual-surface); font-size:15px; letter-spacing:0; }
.alternating-steps h3,.alternating-steps h2 { max-width:13ch; font-size:clamp(30px,3.5vw,44px); font-weight:650; margin-bottom:20px; }
.simple-process .alternating-steps h3 { max-width:none; text-wrap:wrap; }
.alternating-steps p { max-width:35ch; color:var(--muted); font-size:18px; line-height:1.65; }
/* The lower homepage continues the same inset panels and type scale. */
.home-benefits { padding:56px 64px; border-radius:var(--visual-radius); background:var(--visual-surface); text-align:left; }
.home-benefits-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:48px; }
.home-benefits-copy { min-width:0; }
.home-benefits-team { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:24px; justify-self:end; }
.home-benefits h2,.simple-questions h2,.site-guide h2 { font-size:clamp(32px,3.5vw,44px); font-weight:650; }
.home-benefits p { max-width:540px; margin:24px 0 32px; color:var(--muted); font-size:18px; line-height:1.65; }
.home-benefits .button { min-width:184px; min-height:56px; padding-inline:28px; }
.simple-questions { max-width:850px; padding-block:112px; }
.simple-questions>.section-heading { margin-bottom:48px; text-align:center; }
.simple-questions .faq-list summary { padding-block:26px; }
.simple-questions .faq-list summary:hover { color:var(--accent); }
.simple-questions .faq-list summary:focus-visible { outline-offset:4px; border-radius:4px; }
.simple-questions .faq-list p { max-width:70ch; padding-bottom:28px; }
.simple-questions .plus { top:50%; transform:translateY(-50%); color:var(--accent); }
.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:hover { color:var(--accent); }
.faq-list summary { position:relative; list-style:none; cursor:pointer; min-height:56px; padding:26px 36px 26px 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:50%; transform:translateY(-50%); width:14px; height:14px; color:var(--accent); }
.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:64px 72px; text-align:center; }
.page-hero h1 { max-width:1000px; margin-inline:auto; font-size:clamp(40px,5.4vw,68px); line-height:1.08; }
.page-hero>p:not(.eyebrow) { max-width:640px; margin:24px auto 28px; color:var(--muted); font-size:20px; line-height:1.6; text-wrap:balance; }
.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; }
.alternating-steps article > img.process-step-illustration,.photo-process article > img.process-step-illustration { width:100%; max-width:370px; height:auto; aspect-ratio:1; object-fit:contain; border-radius:0; justify-self:center; }
.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:72px; }
.why-image { border-radius:var(--visual-radius); overflow:hidden; aspect-ratio:1; background:var(--visual-surface); }
.why-image img { width:100%; height:100%; object-fit:contain; }
.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-radius:24px; padding:36px; background:var(--home-surface); }
.comparison>div:first-child { background:var(--visual-surface); }
.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:104px; }
.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:0; border-radius:var(--visual-radius); background:var(--visual-surface); padding:40px; min-width:0; }
.price-calculator .pill { background:var(--white); border-radius:999px; }
.price-calculator .eyebrow { font-size:14px; letter-spacing:0; font-weight:600; }
.price-calculator .stepper button { border-radius:50%; background:var(--white); }
.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:640px; margin-bottom:64px; }
.reviews-photo img { width:100%; height:auto; aspect-ratio:1; border-radius:var(--visual-radius); object-fit:contain; }
.reviews-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px 40px; padding-bottom:104px; }
.review { padding-top:0; }
.review h2 { font-size:28px; }
.review>p { margin-top:16px; color:var(--muted); }
.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:72px; padding-bottom:104px; }
.help-layout aside { height:fit-content; padding:40px; border-radius:var(--visual-radius); background:var(--visual-surface); }
.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; }

/* Interior pages continue the same visual rhythm. */
.detailed-process { padding-bottom:8px; }
.detailed-process .visual-step-number { display:grid; place-items:center; width:40px; height:40px; margin-bottom:24px; border-radius:50%; background:var(--visual-surface); font-size:15px; letter-spacing:0; }
.detailed-process .step-copy h2 { max-width:16ch; }
.pricing-extras { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.pricing-extra { padding:32px; border-radius:24px; background:var(--home-surface); }
.pricing-extra h3 { font-size:24px; letter-spacing:-.025em; }
.pricing-extra-price { margin-top:20px; font-size:28px; font-weight:650; letter-spacing:-.03em; }
.pricing-extra-price span { margin-left:4px; color:var(--muted); font-size:14px; font-weight:400; letter-spacing:0; }
.pricing-extra p:not(.pricing-extra-price) { margin-top:12px; color:var(--muted); font-size:16px; }
.pricing-extras-note { margin-top:24px; color:var(--muted); font-size:15px; }
.cart-dialog h2,.info-dialog-title { font-weight:650; }
@media(max-width:960px) {
  .pricing-extras { gap:16px; }
  .pricing-extra { padding:28px 24px; }
}
@media(max-width:760px) {
  .detailed-process .visual-step-number { width:36px; height:36px; margin-bottom:18px; font-size:14px; }
  .pricing-extras { grid-template-columns:minmax(0,1fr); gap:16px; }
  .pricing-extra { padding:28px; }
  .pricing-extra-price { margin-top:16px; }
  .why-image,.reviews-photo img { border-radius:24px; }
  .reviews-photo img { aspect-ratio:1; }
}

/* Photo-free quote request. 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 { display:block; font-size:15px; font-weight:600; }
.quote-shell input: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; }
.form-row-equal { grid-template-columns:repeat(2,minmax(0,1fr)); }
.quote-shell .form-intro { margin:-8px 0 24px; color:var(--muted); font-size:16px; }
.quote-shell .optional-label { display:block; color:var(--muted); font-size:13px; font-weight:400; }
.quote-shell .field-hint { margin:6px 0 0; color:var(--muted); font-size:14px; line-height:1.5; }
.quote-shell .value-hint,.quote-shell .shipping-hint { margin:-10px 0 24px; }
.request-summary { margin:0 0 28px; padding:4px 20px; border:1px solid var(--line); border-radius:8px; background:var(--panel-soft); }
.request-summary>div { padding-block:16px; }
.request-summary>div+div { border-top:1px solid var(--line); }
.request-summary dt { margin-bottom:7px; font-size:14px; font-weight:600; }
.request-summary dd { margin:0; color:var(--muted); font-size:15px; white-space:pre-line; overflow-wrap:anywhere; }
.quote-shell .preparation-consent { display:flex; align-items:flex-start; gap:12px; margin:24px 0; font-size:14px; font-weight:400; line-height:1.6; cursor:pointer; }
.preparation-consent input { width:22px; height:22px; flex-shrink:0; margin:1px 0 0; accent-color:var(--accent); }
.quote-shell .request-preferences label { display:flex; align-items:center; gap:12px; padding:12px 0; font-size:15px; font-weight:400; cursor:pointer; }
.request-preferences input { width:22px; height:22px; flex-shrink:0; margin:0; accent-color:var(--accent); }
#request-extras summary { flex-wrap:wrap; gap:4px 16px; }
#request-extras summary>span { max-width:100%; font-size:13px; font-weight:400; overflow-wrap:anywhere; }
.request-reference { display:flex; flex-direction:column; gap:6px; padding:20px; margin:0 0 24px; border-radius:8px; background:var(--panel-soft); }
.request-reference>span { color:var(--muted); font-size:14px; }
.request-reference>strong { font-size:21px; overflow-wrap:anywhere; }
#quote-form[aria-busy="true"] { cursor:progress; }
#success-email { overflow-wrap:anywhere; }

.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:104px; min-height:300px; }
.empty-state { padding:64px 32px; background:var(--visual-surface); border-radius:var(--visual-radius); 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:24px; 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; }
.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; }
.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; }
.faq-overview { padding-top:20px; }
.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:50%; 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:20px; 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:50%; 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:20px; 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:20px; 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-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:24px; 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-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; border-radius: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:24px; background:var(--home-surface); color:var(--ink); }
.footer .brand { gap:7px; font-size:20px; }
.footer .brand-mark { width:26px; height:26px; color:var(--accent); }
.footer-main { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 24px; }
.footer nav { display:flex; align-items:center; flex-wrap:wrap; gap:0 24px; font-size:14px; }
.footer nav a { display:flex; align-items:center; min-height:44px; }
.footer nav a:hover { color:var(--accent); }
.footer-bottom { display:flex; justify-content:space-between; gap:6px 24px; margin-top:8px; color:var(--muted); font-size:12px; line-height:1.5; }
.footer :focus-visible { outline-color:var(--accent); }
.mobile-cta { display:none; }

@media(min-width:961px) { .mobile-menu,.menu-backdrop { display:none!important; } }
@media(max-width:960px) {
  :root { --gutter:28px; }
  .desktop-nav { display:none; }.menu-toggle { display:grid; }
  .header-start { display:none; }
  .header-actions { gap:8px; }
  .header-inner { min-height:84px; }
  .reviews-grid { 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:72px; }
  .header-inner { min-height:76px; 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:44px 0; gap:24px; }
  .hero-price { font-size:16px; }
  .hero-actions { flex-direction:column; margin-top:22px; }
  .hero-actions .button { width:auto; min-width:180px; }
  .hero-reassurance { max-width:290px; margin-inline:auto; }
  .hero h1 { margin-bottom:20px; font-size:clamp(34px,7.5vw,54px); }
  .hero-description { font-size:18px; max-width:420px; }
  .hero-scene { margin-top:8px; aspect-ratio:1.1; border-radius:24px; }
  .hero-scene img { object-position:center; }
  .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:72px 80px; }
  .simple-process>.section-heading { margin-bottom:44px; }
  .visual-steps { gap:64px; }
  .alternating-steps article,.alternating-steps article:nth-child(even) { grid-template-columns:minmax(0,1fr); gap:28px; width:100%; max-width:520px; margin-inline:auto; }
  .alternating-steps article:nth-child(even) .step-copy { order:0; }
  .step-copy { max-width:440px; }
  .process-visual { aspect-ratio:1; padding:24px; border-radius:24px; }
  .process-visual .process-step-illustration { width:100%; max-width:360px; }
  .process-visual-1 { padding:18px 12px; }
  .process-visual .process-form-preview { width:100%; max-width:340px; overflow:visible; }
  .process-visual .process-form-preview img { width:100%; max-width:none; margin:0; }
  .process-form-preview { max-width:320px; margin-inline:auto; overflow:hidden; }
  .photo-process .process-form-preview img { width:168%; max-width:none; margin-inline:-34%; }
  .alternating-steps h3,.alternating-steps h2 { max-width:19ch; font-size:32px; margin-bottom:16px; }.alternating-steps p { font-size:17px; }
  .visual-step-number { font-size:18px; margin-bottom:12px; }
  .simple-process .visual-step-number { font-size:14px; width:36px; height:36px; margin-bottom:18px; }
  .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; }
  .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 48px; }.page-hero h1 { font-size:clamp(34px,7.5vw,50px); }
  .page-hero>p:not(.eyebrow) { margin:20px auto 24px; font-size:18px; }.page-hero .button { min-width:180px; }
  .page-hero .grader-trust { margin-inline:auto; }
  .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; }
  .alternating-steps article > img.process-step-illustration,.photo-process article > img.process-step-illustration { max-width:320px; }
  .why-intro { grid-template-columns:minmax(0,1fr); gap:20px; }.why-image { aspect-ratio:1; max-width:480px; max-height:none; margin-inline:auto; }
  .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:72px; }.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:28px 24px; border-radius: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:72px; }
  .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:48px; padding-bottom:72px; }.help-layout aside { order:2; padding:32px 24px; border-radius:24px; }
  .form-row-equal { grid-template-columns:minmax(0,1fr); gap:0; }
  .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; }
  .empty-state { padding:40px 24px; border-radius:24px; }
  .saved-quotes-section { padding-bottom:72px; }.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:20px calc(20px + env(safe-area-inset-bottom)); }
  .footer .brand { gap:6px; font-size:18px; }
  .footer .brand-mark { width:24px; height:24px; }
  .footer-main { gap:0 16px; }
  .footer nav { gap:0 16px; font-size:13px; }
  .footer-bottom { flex-direction:column; gap:4px; margin-top:6px; }
  .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" "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-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; }
}
/* Navigation popups share one compact header and the menu backdrop. */
.cart-dialog.info-dialog-clean { --gutter:28px; width:min(600px,calc(100% - 32px)); max-width:none; max-height:calc(100dvh - 32px); border:1px solid rgb(21 44 76 / 8%); border-radius:20px; scroll-padding-top:88px; box-shadow:0 16px 48px rgb(10 25 47 / 18%); }
.info-dialog-clean::backdrop { background:rgb(10 25 47 / 42%); -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); }
.info-dialog-clean .dialog-header { gap:16px; padding:16px 20px 16px 28px; }
.info-dialog-clean .info-dialog-title { font-size:28px; line-height:1.2; letter-spacing:-.035em; }
.info-dialog-clean .cart-close { border-radius:50%; background:var(--panel-blue); color:var(--accent); }
.info-dialog-clean .cart-close:hover { background:#dfe9f9; }
.info-dialog-clean .info-dialog-body { padding-block:24px 28px; }
.info-dialog-clean .pricing-overview,.info-dialog-clean .faq-overview { padding-top:0; }
.info-dialog-clean .pricing-base { padding:20px; border-radius:16px; }
.pricing-package-label { color:var(--muted); font-size:13px; line-height:1.4; }
.info-dialog-clean .pricing-base-prices { display:block; margin-top:14px; }
.info-dialog-clean .pricing-base-prices>div { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; }
.info-dialog-clean .pricing-base-prices dt { font-size:15px; font-weight:500; }
.info-dialog-clean .pricing-base-prices dd { margin:0; }
.info-dialog-clean .pricing-base-first dd { font-size:40px; }
.info-dialog-clean .pricing-base-additional { padding:16px 0 0; margin-top:16px; border-left:0; border-top:1px solid #cddbeb; }
.info-dialog-clean .pricing-base-additional dd { font-size:30px; }
.info-dialog-clean .pricing-currency { margin-top:18px; font-size:13px; line-height:1.5; }
.info-dialog-clean .pricing-included { padding:24px 0 0; margin:0; border:0; }
.info-dialog-clean .pricing-included h3,.info-dialog-clean .pricing-addons h3 { font-size:18px; line-height:1.35; font-weight:600; }
.info-dialog-clean .pricing-included ul { grid-template-columns:minmax(0,1fr); gap:12px; margin-top:14px; }
.info-dialog-clean .pricing-included li { font-size:15px; line-height:1.5; }
.pricing-dialog-action { margin-top:24px; }
.pricing-dialog-action .button { width:100%; }
.info-dialog-clean .pricing-addons { padding-top:24px; margin-top:24px; border-top:1px solid var(--line); }
.info-dialog-clean .pricing-addon-list>div { gap:8px 16px; padding-block:18px; }
.info-dialog-clean .pricing-addon-list>div:last-child { border-bottom:0; padding-bottom:0; }
.info-dialog-clean .pricing-addon-list dt { font-weight:500; }
.info-dialog-clean .pricing-addon-price { grid-row:1; }
.info-dialog-clean .pricing-addon-description { grid-column:1/-1; }
.info-dialog-clean .pricing-overview-note { padding-top:20px; margin-top:24px; border-top:1px solid var(--line); font-size:13px; line-height:1.6; }
.info-dialog-clean .faq-list { border-top:0; }
.info-dialog-clean .faq-list details:first-child { border-top:0; }
.info-dialog-clean .faq-list details:last-child { border-bottom:0; }
.info-dialog-clean .faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:64px; padding:20px 0; font-size:16px; font-weight:500; line-height:1.45; }
.info-dialog-clean .faq-chevron { position:static; width:18px; height:18px; color:var(--muted); transition:transform .15s; }
.info-dialog-clean details[open] .faq-chevron { transform:rotate(180deg); color:var(--accent); }
.info-dialog-clean .faq-list p { padding:0 28px 20px 0; font-size:15px; line-height:1.65; }
/* Match the benefits and guide panel to the lighter navigation popups. */
.info-dialog-clean .why-overview { padding-top:0; }
.info-dialog-clean .why-benefits li { grid-template-columns:32px minmax(0,1fr); gap:12px; padding-block:18px; }
.info-dialog-clean .why-benefits li:first-child { padding-top:0; }
.info-dialog-clean .why-benefits li:last-child { border-bottom:0; padding-bottom:0; }
.info-dialog-clean .why-benefits .why-benefit-primary { margin-bottom:0; }
.info-dialog-clean .why-benefit-icon { width:32px; height:32px; background:var(--panel-blue); color:var(--accent); }
.info-dialog-clean .why-benefit-icon svg { width:20px; height:20px; }
.info-dialog-clean .why-benefits h3 { font-size:18px; font-weight:600; line-height:1.35; letter-spacing:-.02em; }
.info-dialog-clean .why-benefits p { margin-top:6px; font-size:15px; line-height:1.6; }
.info-dialog-clean .why-overview-note { margin-top:20px; font-size:13px; line-height:1.6; }
.info-dialog-clean .why-guide-callout { grid-template-columns:76px minmax(0,1fr); gap:16px; padding:18px; margin-top:24px; border-radius:16px; }
.info-dialog-clean .why-guide-preview { grid-row:1; }
.info-dialog-clean .why-guide-copy { align-self:center; }
.info-dialog-clean .why-guide-copy h3 { font-size:18px; line-height:1.35; }
.info-dialog-clean .why-guide-copy p { font-size:14px; line-height:1.55; }
.info-dialog-clean .why-guide-callout>.button { grid-column:1/-1; width:100%; min-height:54px; font-size:16px; }
@media(max-width:640px) {
 .cart-dialog.info-dialog-clean { --gutter:20px; }
 .info-dialog-clean .dialog-header { padding:12px 12px 12px 20px; }
 .info-dialog-clean .info-dialog-title { font-size:26px; }
 .info-dialog-clean .info-dialog-body { padding-block:20px 24px; }
 .info-dialog-clean .pricing-base { padding:18px; }
}
@media(max-width:360px) {
 .cart-dialog.info-dialog-clean { --gutter:18px; width:calc(100% - 24px); }
 .info-dialog-clean .dialog-header { padding-left:18px; }
 .info-dialog-clean .pricing-base-first dd { font-size:36px; }
 .info-dialog-clean .pricing-base-additional dd { font-size:28px; }
 .info-dialog-clean .pricing-base-prices dt { font-size:14px; }
}
@media(max-height:500px) and (max-width:960px) {
 .cart-dialog.info-dialog-clean { max-height:calc(100dvh - 16px); }
}
@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; }
}

/* Shared inset guide panel across marketing pages. */
.site-guide { width:calc(100% - var(--gutter)*2); max-width:var(--page); margin:0 auto 104px; border-radius:var(--visual-radius); background:var(--visual-surface); }
.site-guide .guide-cta-inner { width:100%; max-width:none; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:64px; padding:64px; }
.site-guide .guide-cta-preview { max-width:220px; }
.site-guide .guide-cta-content { gap:32px; }
.site-guide .guide-cta-label { margin-bottom:16px; font-size:14px; font-weight:600; letter-spacing:0; }
.site-guide .guide-cta-copy>p { margin-top:20px; font-size:18px; line-height:1.65; }
.site-guide .guide-field-row { margin-top:10px; }
.site-guide .guide-field-row input { border-radius:12px; }
.site-guide .guide-field-row .button { min-height:56px; }
.site-guide .guide-signup-note { margin-top:14px; }
@media(max-width:960px) {
  .home-benefits { padding:40px; }
  .home-benefits-inner { gap:32px; }
  .site-guide .guide-cta-inner { grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:40px; padding:48px; }
}
@media(max-width:760px) {
  .home-benefits { padding:32px 24px 40px; border-radius:24px; }
  .home-benefits-inner { grid-template-columns:minmax(0,1fr); gap:28px; }
  .home-benefits-team { order:-1; justify-self:start; border-radius:18px; }
  .home-benefits h2 { max-width:420px; margin-inline:0; font-size:32px; }
  .home-benefits p { margin-block:20px 28px; font-size:17px; }
  .home-benefits .button { min-width:180px; }
  .simple-questions { padding-block:80px; }
  .simple-questions>.section-heading { margin-bottom:32px; }
  .simple-questions h2 { font-size:32px; }
  .simple-questions .faq-list summary { padding-block:24px; padding-right:36px; }
  .simple-questions .faq-list p { padding-right:0; }
  .site-guide { margin-bottom:80px; border-radius:24px; }
  .site-guide .guide-cta-inner { grid-template-columns:minmax(0,1fr); gap:28px; padding:40px 24px; }
  .site-guide .guide-cta-copy { grid-column:1; grid-row:1; text-align:center; }
  .site-guide h2 { max-width:360px; margin-inline:auto; font-size:32px; }
  .site-guide .guide-cta-copy>p { max-width:340px; margin:16px auto 0; font-size:17px; }
  .site-guide .guide-cta-preview { grid-column:1; grid-row:2; max-width:136px; }
  .site-guide .guide-signup { grid-column:1; grid-row:3; width:100%; max-width:400px; justify-self:center; }
  .site-guide .guide-field-row { gap:12px; }
  .site-guide .guide-field-row .button { flex-basis:100%; padding-inline:14px; }
  .site-guide .guide-signup-note { text-align:center; }
}
@media(max-width:480px) {
  .header-inner { width:calc(100% - var(--gutter)*2); }
}
@media(max-width:360px) {
  .header-start { padding-inline:10px; }
  .header-actions { gap:4px; }
  .hero h1 { font-size:30px; line-height:1.12; }
  .home-benefits h2,.site-guide h2,.simple-questions h2 { font-size:28px; }
  .site-guide .guide-cta-inner { padding-inline:20px; }
}

@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; }
}
