/* GoodWordText site styles. Tokens from the GoodWordText kit (tokens.json v1). */

@font-face { font-family:"Source Serif 4"; src:url("../fonts/SourceSerif4-400.woff2") format("woff2"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Source Serif 4"; src:url("../fonts/SourceSerif4-600.woff2") format("woff2"); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:"Source Serif 4"; src:url("../fonts/SourceSerif4-700.woff2") format("woff2"); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:"Source Sans 3"; src:url("../fonts/SourceSans3-400.woff2") format("woff2"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Source Sans 3"; src:url("../fonts/SourceSans3-600.woff2") format("woff2"); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:"Source Sans 3"; src:url("../fonts/SourceSans3-700.woff2") format("woff2"); font-weight:700; font-style:normal; font-display:swap; }

:root {
  color-scheme: light;
  --bg:#faf6ee; --surface:#fffdf8; --surface-sunk:#f2ecdf; --line:#e2d9c8; --line-strong:#8a8578;
  --ink:#27313d; --ink-muted:#55606d; --primary:#1d2c4f; --primary-hover:#2c3f6b; --on-primary:#fffdf8;
  --deep:#1d2c4f; --on-deep:#faf6ee; --accent:#c9a24a; --accent-hover:#dab868; --on-accent:#1d2c4f;
  --accent-ink:#7a5a12; --dawn:#f6d9c4; --dawn-soft:#fbece0; --sky:#dbe7f3; --focus:#2b5fa8;
  --success:#22644a; --success-soft:#e3f1ea; --warning:#8a5300; --warning-soft:#fbefd9; --error:#a12a2a; --error-soft:#fbe6e4;
  --shadow-sm:0 1px 2px #1d2c4f14, 0 1px 3px #1d2c4f0f; --shadow-md:0 6px 20px -4px #1d2c4f24;
  --focus-ring:0 0 0 2px #faf6ee, 0 0 0 4px #2b5fa8;
  --font-serif:"Source Serif 4", Georgia, "Times New Roman", serif;
  --font-sans:"Source Sans 3", "Segoe UI", Helvetica, Arial, sans-serif;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-6:24px; --space-8:32px; --space-12:48px; --space-16:64px;
  --radius-sm:6px; --radius-md:10px; --radius-lg:16px; --radius-full:9999px;
  --wrap:1120px; --gutter:16px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --bg:#0e1626; --surface:#162036; --surface-sunk:#0a101d; --line:#2a3550; --line-strong:#7d89a3;
    --ink:#f1ece1; --ink-muted:#b3bccb; --primary:#c9d9f2; --primary-hover:#e0e9f8; --on-primary:#0e1626;
    --deep:#24365f; --on-deep:#f1ece1; --accent:#d9b766; --accent-hover:#e8cb84; --on-accent:#0e1626;
    --accent-ink:#e3c77f; --dawn:#3a2c2a; --dawn-soft:#241e24; --sky:#1d2b45; --focus:#9cc0f5;
    --success:#7fd1ac; --success-soft:#11291f; --warning:#f0c26a; --warning-soft:#2e2410; --error:#f4a3a3; --error-soft:#33191b;
    --shadow-sm:0 1px 3px #00000099; --shadow-md:0 10px 28px -6px #000000cc;
    --focus-ring:0 0 0 2px #0e1626, 0 0 0 4px #9cc0f5;
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg:#0e1626; --surface:#162036; --surface-sunk:#0a101d; --line:#2a3550; --line-strong:#7d89a3;
  --ink:#f1ece1; --ink-muted:#b3bccb; --primary:#c9d9f2; --primary-hover:#e0e9f8; --on-primary:#0e1626;
  --deep:#24365f; --on-deep:#f1ece1; --accent:#d9b766; --accent-hover:#e8cb84; --on-accent:#0e1626;
  --accent-ink:#e3c77f; --dawn:#3a2c2a; --dawn-soft:#241e24; --sky:#1d2b45; --focus:#9cc0f5;
  --success:#7fd1ac; --success-soft:#11291f; --warning:#f0c26a; --warning-soft:#2e2410; --error:#f4a3a3; --error-soft:#33191b;
  --shadow-sm:0 1px 3px #00000099; --shadow-md:0 10px 28px -6px #000000cc;
  --focus-ring:0 0 0 2px #0e1626, 0 0 0 4px #9cc0f5;
}

/* Base */
*, *::before, *::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-padding-top:88px; }
body { margin:0; font-family:var(--font-sans); font-size:17px; line-height:27px; background:var(--bg); color:var(--ink); -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img, svg { max-width:100%; }
a { color:var(--primary); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
a:hover { text-decoration-thickness:2px; }
a:focus-visible, button:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline:2px solid transparent; box-shadow:var(--focus-ring); border-radius:4px; }
p { margin:0 0 var(--space-4); }
p:last-child { margin-bottom:0; }
h1, h2, h3, h4 { font-family:var(--font-serif); font-weight:600; color:var(--ink); margin:0 0 var(--space-4); text-wrap:balance; }
h1 { font-size:34px; line-height:42px; letter-spacing:-0.005em; }
h2 { font-size:26px; line-height:34px; }
h3 { font-size:20px; line-height:28px; margin-bottom:var(--space-2); }
h4 { font-size:17px; line-height:24px; margin-bottom:var(--space-2); }
ul, ol { margin:0 0 var(--space-4); padding-left:1.3em; }
li + li { margin-top:var(--space-2); }
strong { font-weight:700; }
.visually-hidden { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.skip { position:absolute; left:var(--space-4); top:-100px; background:var(--primary); color:var(--on-primary); padding:var(--space-3) var(--space-4); border-radius:var(--radius-md); z-index:100; font-weight:600; }
.skip:focus { top:var(--space-3); }
[hidden] { display:none !important; }

.wrap { width:100%; max-width:var(--wrap); margin:0 auto; padding:0 var(--gutter); }
.measure { max-width:66ch; }
.lead { font-size:20px; line-height:30px; color:var(--ink); }
.muted { color:var(--ink-muted); }
.small { font-size:15px; line-height:22px; }
.label-ink { font-size:15px; line-height:22px; font-weight:700; color:var(--accent-ink); margin:0 0 var(--space-2); }
.rule { height:3px; width:48px; background:var(--accent); border-radius:2px; border:0; margin:0 0 var(--space-6); }

.section { padding:var(--space-12) 0; }
.section-tight { padding:var(--space-8) 0; }
.band-sunk { background:var(--surface-sunk); }
.band-dawn { background:var(--dawn-soft); }
.band-sky { background:var(--sky); }
.band-deep { background:var(--deep); color:var(--on-deep); }
.band-deep h2, .band-deep h3, .band-deep p { color:var(--on-deep); }
.band-deep a:not(.btn) { color:var(--on-deep); }
.band-deep .label-ink { color:var(--accent); }
@media (min-width:900px) { .section { padding:var(--space-16) 0; } :root { --gutter:24px; } }

/* Buttons */
.btn { font:inherit; font-size:17px; line-height:24px; font-weight:600; min-height:48px; padding:12px var(--space-6); border-radius:var(--radius-md); border:2px solid transparent; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:var(--space-2); text-decoration:none; text-align:center; }
.btn:focus-visible { outline:2px solid transparent; box-shadow:var(--focus-ring); }
.btn-primary { background:var(--primary); color:var(--on-primary); }
.btn-primary:hover { background:var(--primary-hover); }
.btn-secondary { background:transparent; color:var(--primary); border-color:var(--primary); }
.btn-secondary:hover { background:var(--sky); }
.btn-gold { background:var(--accent); color:var(--on-accent); }
.btn-gold:hover { background:var(--accent-hover); }
.band-deep .btn-secondary { color:var(--on-deep); border-color:var(--on-deep); }
.band-deep .btn-secondary:hover { background:transparent; text-decoration:underline; }
.btn[disabled], .btn[aria-disabled="true"] { opacity:.55; cursor:not-allowed; }
.btn-block { width:100%; }
.btn-row { display:flex; flex-wrap:wrap; gap:var(--space-4); align-items:center; }
.linkish { background:none; border:0; padding:0; font:inherit; color:var(--primary); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }

/* Header */
.site-header { position:sticky; top:0; z-index:50; background:var(--surface); border-bottom:1px solid var(--line); box-shadow:var(--shadow-sm); }
.site-header .wrap { display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); min-height:68px; flex-wrap:wrap; }
.brand-link { display:inline-flex; padding:var(--space-2) 0; border-radius:4px; }
.gw-logo { height:34px; width:auto; display:block; }
.gw-logo .lg-ink { fill:var(--primary); }
.gw-logo .lg-sun { fill:var(--accent); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .gw-logo .lg-ink { fill:var(--ink); } }
:root[data-theme="dark"] .gw-logo .lg-ink { fill:var(--ink); }
.header-tools { display:flex; align-items:center; gap:var(--space-2); }
.icon-btn { font:inherit; font-weight:600; font-size:16px; min-height:44px; min-width:44px; padding:0 var(--space-3); border:1.5px solid var(--line-strong); background:var(--surface); color:var(--ink); border-radius:var(--radius-md); cursor:pointer; display:inline-flex; align-items:center; gap:var(--space-2); }
.icon-btn svg { width:20px; height:20px; }
.icon-btn:hover { border-color:var(--primary); }
.theme-toggle { display:none; }
.js .theme-toggle { display:inline-flex; }
.menu-toggle { display:none; }
.site-nav { width:100%; }
.site-nav ul { list-style:none; margin:0; padding:0 0 var(--space-3); display:flex; flex-direction:column; gap:0; }
.site-nav li + li { margin-top:0; }
.site-nav a { display:block; padding:var(--space-3) 0; font-size:17px; font-weight:600; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line); }
.site-nav a[aria-current="page"] { color:var(--primary); box-shadow:inset 4px 0 0 var(--accent); padding-left:var(--space-3); }
.site-nav .nav-cta a { margin-top:var(--space-3); border:0; text-align:center; background:var(--primary); color:var(--on-primary); border-radius:var(--radius-md); padding:12px var(--space-4); }
.js .menu-toggle { display:inline-flex; }
.js .site-nav { display:none; }
.js .site-nav.open { display:block; }
@media (min-width:980px) {
  .site-header .wrap { flex-wrap:nowrap; }
  .js .menu-toggle { display:none; }
  .site-nav, .js .site-nav { display:block; width:auto; order:0; }
  .site-nav ul { flex-direction:row; align-items:center; gap:var(--space-6); padding:0; }
  .site-nav a { border-bottom:2px solid transparent; padding:var(--space-2) 0; font-size:16px; }
  .site-nav a:hover { border-bottom-color:var(--accent); }
  .site-nav a[aria-current="page"] { box-shadow:none; padding-left:0; border-bottom-color:var(--primary); }
  .site-nav .nav-cta a { margin:0; padding:10px var(--space-4); border:0; }
  .site-nav .nav-cta a:hover { background:var(--primary-hover); }
  .header-tools { order:2; }
}

/* Footer */
.site-footer { background:var(--surface-sunk); border-top:1px solid var(--line); padding:var(--space-12) 0 var(--space-8); font-size:15px; line-height:22px; color:var(--ink-muted); margin-top:0; }
.footer-grid { display:grid; gap:var(--space-8); }
.site-footer h2 { font-family:var(--font-sans); font-size:15px; line-height:22px; font-weight:700; color:var(--ink); margin:0 0 var(--space-3); }
.site-footer ul { list-style:none; padding:0; margin:0; display:grid; gap:var(--space-2); }
.site-footer li + li { margin-top:0; }
.site-footer a { color:var(--primary); font-weight:600; }
.site-footer .legal { color:var(--ink); margin-top:var(--space-8); padding-top:var(--space-6); border-top:1px solid var(--line); display:grid; gap:var(--space-2); }
.site-footer .legal p { margin:0; }
.footer-brand .gw-logo { height:30px; margin-bottom:var(--space-3); }
@media (min-width:760px) { .footer-grid { grid-template-columns:1.4fr 1fr 1fr 1fr; } }

/* Hero */
.hero { background:var(--dawn-soft); position:relative; overflow:hidden; border-bottom:1px solid var(--line); }
.hero .wrap { display:grid; gap:var(--space-8); padding-top:var(--space-12); padding-bottom:0; position:relative; z-index:1; }
.hero h1 { font-size:40px; line-height:46px; letter-spacing:-0.01em; margin-bottom:var(--space-4); }
.hero .lead { max-width:34ch; }
.hero-copy { padding-bottom:var(--space-8); }
.hero-actions { margin-top:var(--space-6); display:grid; gap:var(--space-3); justify-items:start; }
.bill-note { font-size:15px; line-height:22px; color:var(--ink-muted); max-width:46ch; margin:0; }
.bill-note strong { color:var(--ink); font-weight:600; }
.hero-art { position:relative; display:flex; justify-content:center; align-items:flex-end; min-height:420px; }
.horizon { position:absolute; left:-50vw; right:-50vw; bottom:0; height:4px; background:var(--accent); z-index:2; }
.sun { position:absolute; bottom:0; left:50%; width:420px; height:210px; margin-left:-210px; border-radius:210px 210px 0 0; background:var(--accent); opacity:.28; transform-origin:bottom center; }
.sun::after { content:""; position:absolute; inset:46px 46px 0; border-radius:200px 200px 0 0; background:var(--accent); opacity:.6; }
@media (min-width:900px) {
  .hero .wrap { grid-template-columns:1.1fr .9fr; align-items:end; padding-top:var(--space-16); }
  .hero h1 { font-size:56px; line-height:62px; }
  .hero-copy { padding-bottom:var(--space-16); }
  .hero-art { min-height:520px; }
}
@media (prefers-reduced-motion:no-preference) {
  .sun { animation:rise 1.6s cubic-bezier(.2,.7,.2,1) both; }
  @keyframes rise { from { transform:translateY(70%); opacity:0; } to { transform:translateY(0); opacity:.28; } }
}

/* Phone demo */
.phone { position:relative; z-index:3; width:300px; max-width:86vw; background:var(--surface); border:10px solid var(--deep); border-bottom:0; border-radius:36px 36px 0 0; box-shadow:var(--shadow-md); padding:var(--space-4) var(--space-4) var(--space-6); display:grid; gap:var(--space-3); align-content:start; min-height:380px; }
.phone-top { display:flex; justify-content:space-between; align-items:center; padding-bottom:var(--space-3); border-bottom:1px solid var(--line); }
.phone-top b { font-family:var(--font-serif); font-weight:600; font-size:17px; }
.example-tag { font-size:13px; line-height:18px; font-weight:700; color:var(--accent-ink); background:var(--dawn-soft); border:1px solid var(--line); padding:2px var(--space-2); border-radius:var(--radius-full); }
.msg { max-width:86%; padding:var(--space-2) var(--space-3); border-radius:14px; font-size:16px; line-height:23px; margin:0; }
.msg-out { justify-self:end; background:var(--primary); color:var(--on-primary); border-bottom-right-radius:4px; }
.msg-in { justify-self:start; background:var(--sky); color:var(--ink); border-bottom-left-radius:4px; }
.msg-meta { font-size:13px; line-height:18px; color:var(--ink-muted); margin:0; }
.msg-meta.right { justify-self:end; }
.js .phone.animate .demo-item { opacity:0; transform:translateY(6px); transition:opacity .45s ease, transform .45s ease; }
.js .phone.animate .demo-item.shown { opacity:1; transform:none; }
.demo-replay { justify-self:center; margin-top:var(--space-2); }
@media (prefers-reduced-motion:reduce) { .js .phone.animate .demo-item { opacity:1; transform:none; transition:none; } }

/* Grids and cards */
.grid { display:grid; gap:var(--space-6); }
@media (min-width:760px) { .grid-2 { grid-template-columns:1fr 1fr; } .grid-3 { grid-template-columns:repeat(3,1fr); } }
@media (min-width:900px) { .split { grid-template-columns:1fr 1fr; align-items:start; gap:var(--space-12); } .split-wide { grid-template-columns:1.25fr .75fr; gap:var(--space-12); align-items:start; } }
.panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:var(--space-6); }
.panel-quiet { background:transparent; border:1px solid var(--line); border-radius:var(--radius-lg); padding:var(--space-6); }
.panel h3 { margin-top:0; }
.dots { margin:0 0 var(--space-4); padding:0; list-style:none; display:grid; gap:var(--space-2); }
.dots:last-child { margin-bottom:0; }
.dots li { padding-left:22px; position:relative; margin:0; }
.dots li::before { content:""; position:absolute; left:2px; top:10px; width:8px; height:8px; border-radius:50%; background:var(--accent); }
.nots li::before { background:transparent; border:2px solid var(--line-strong); width:9px; height:9px; top:9px; }
.note { margin:0; padding:var(--space-3) var(--space-4); background:var(--sky); border-radius:var(--radius-sm); font-size:15px; line-height:22px; color:var(--ink); }
.note-warn { background:var(--warning-soft); }
.note-warn strong { color:var(--warning); }

/* Steps (the real sequence) */
.steps { list-style:none; padding:0; margin:0; display:grid; gap:var(--space-6); counter-reset:step; }
.steps > li { margin:0; position:relative; padding-left:56px; counter-increment:step; }
.steps > li::before { content:counter(step); position:absolute; left:0; top:0; width:40px; height:40px; border-radius:50%; border:2px solid var(--accent); color:var(--ink); font-family:var(--font-serif); font-weight:600; font-size:20px; display:grid; place-items:center; background:var(--surface); }
.steps h3 { margin-bottom:var(--space-1); }
@media (min-width:900px) { .steps-row { grid-template-columns:repeat(4,1fr); } .steps-row > li { padding-left:0; padding-top:56px; } }

/* Stepper (how it works, interactive) */
.stepper { display:grid; gap:var(--space-6); }
.stepper-tabs { list-style:none; margin:0; padding:0; display:grid; gap:var(--space-2); position:relative; }
.stepper-tabs li { margin:0; }
.stepper-tab { width:100%; text-align:left; font:inherit; font-weight:600; color:var(--ink); background:var(--surface); border:1.5px solid var(--line); border-radius:var(--radius-md); padding:var(--space-3) var(--space-4); min-height:56px; cursor:pointer; display:flex; gap:var(--space-3); align-items:center; }
.stepper-tab .n { flex:none; width:32px; height:32px; border-radius:50%; border:2px solid var(--accent); display:grid; place-items:center; font-family:var(--font-serif); }
.stepper-tab[aria-selected="true"] { border-color:var(--primary); background:var(--sky); }
.stepper-tab[aria-selected="true"] .n { background:var(--accent); color:var(--on-accent); }
.stepper-tab:focus-visible { outline:2px solid transparent; box-shadow:var(--focus-ring); }
.stepper-panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:var(--space-6); }
.stepper-progress { height:4px; background:var(--line); border-radius:2px; overflow:hidden; margin-bottom:var(--space-6); }
.stepper-progress span { display:block; height:100%; width:25%; background:var(--accent); transition:width .4s ease; }
.no-js-steps .stepper-panel + .stepper-panel { margin-top:var(--space-4); }
.stepper-nav { display:flex; justify-content:space-between; gap:var(--space-4); margin-top:var(--space-6); }
@media (prefers-reduced-motion:no-preference) { .js .stepper-panel.entering { animation:fadeIn .35s ease both; } @keyframes fadeIn { from { opacity:0; transform:translateX(8px); } to { opacity:1; transform:none; } } }
@media (min-width:900px) { .stepper { grid-template-columns:320px 1fr; align-items:start; } }

/* Pricing */
.plans { display:grid; gap:var(--space-6); align-items:start; }
@media (min-width:860px) { .plans { grid-template-columns:1fr 1fr; } }
.plan { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); overflow:hidden; display:flex; flex-direction:column; }
.plan-top { padding:var(--space-4) var(--space-6); background:var(--dawn); }
.plan-top h2, .plan-top h3 { margin:0; font-size:22px; line-height:30px; }
.plan-top p { margin:0; font-size:15px; line-height:22px; }
.plan-sponsor .plan-top { background:var(--deep); }
.plan-sponsor .plan-top h2, .plan-sponsor .plan-top h3, .plan-sponsor .plan-top p { color:var(--on-deep); }
.plan-body { padding:var(--space-6); display:grid; gap:var(--space-4); }
.price { font-family:var(--font-serif); font-size:40px; line-height:44px; font-weight:600; color:var(--ink); margin:0; }
.price small { font-family:var(--font-sans); font-size:17px; font-weight:400; color:var(--ink-muted); }
.pill { display:inline-block; font-size:15px; line-height:22px; font-weight:600; color:var(--primary); background:var(--sky); padding:2px var(--space-3); border-radius:var(--radius-full); justify-self:start; }
.plan-soon { border-style:dashed; box-shadow:none; background:transparent; }

/* Timeline */
.timeline { list-style:none; margin:0 0 var(--space-8); padding:0; display:grid; gap:0; position:relative; }
.timeline li { margin:0; position:relative; padding:0 0 var(--space-6) 36px; }
.timeline li::before { content:""; position:absolute; left:8px; top:8px; width:12px; height:12px; border-radius:50%; background:var(--surface); border:3px solid var(--accent); z-index:1; }
.timeline li::after { content:""; position:absolute; left:15px; top:16px; bottom:-8px; width:2px; background:var(--line); }
.timeline li:last-child::after { display:none; }
.timeline .when { display:block; font-weight:700; color:var(--accent-ink); font-size:15px; line-height:22px; }
.timeline .what { display:block; }
.timeline li.active::before { background:var(--accent); }
@media (min-width:900px) {
  .timeline-h { grid-template-columns:repeat(5,1fr); }
  .timeline-h li { padding:36px var(--space-4) 0 0; }
  .timeline-h li::before { left:0; top:0; }
  .timeline-h li::after { left:12px; right:0; top:7px; bottom:auto; width:auto; height:2px; }
}

/* Calculator */
.calc { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:var(--space-6); display:grid; gap:var(--space-4); }
.calc-row { display:grid; grid-template-columns:1fr 112px; gap:var(--space-4); align-items:center; }
.calc input[type="range"] { width:100%; accent-color:var(--primary); min-height:44px; }
.calc output { display:block; }
.calc-result { border-top:1px solid var(--line); padding-top:var(--space-4); min-height:96px; }
.calc-total { font-family:var(--font-serif); font-size:36px; line-height:42px; font-weight:600; color:var(--ink); }
.calc-total small { font-family:var(--font-sans); font-size:17px; font-weight:400; color:var(--ink-muted); }
.calc-under { color:var(--ink); background:var(--warning-soft); border-radius:var(--radius-sm); padding:var(--space-3) var(--space-4); margin:0; }

/* Forms */
.form { display:grid; gap:var(--space-6); }
.field { display:grid; gap:var(--space-2); align-content:start; }
.field-row { display:grid; gap:var(--space-6); }
@media (min-width:640px) { .field-row { grid-template-columns:1fr 1fr; } }
.label { font-size:16px; line-height:22px; font-weight:600; color:var(--ink); }
.opt { font-weight:400; color:var(--ink-muted); }
.hint { font-size:15px; line-height:22px; color:var(--ink-muted); margin:0; }
.input, select.input, textarea.input { font:inherit; font-size:17px; min-height:48px; width:100%; padding:10px var(--space-4); border:1.5px solid var(--line-strong); border-radius:var(--radius-sm); background:var(--surface); color:var(--ink); }
textarea.input { min-height:132px; resize:vertical; line-height:25px; }
select.input { appearance:none; -webkit-appearance:none; background-image:linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%); background-position:calc(100% - 22px) 50%, calc(100% - 16px) 50%; background-size:6px 6px; background-repeat:no-repeat; padding-right:44px; }
.input::placeholder { color:var(--ink-muted); }
.input:focus { outline:2px solid transparent; box-shadow:var(--focus-ring); border-color:var(--focus); }
.input[aria-invalid="true"] { border-color:var(--error); border-width:2px; }
.err { font-size:15px; line-height:22px; color:var(--error); margin:0; font-weight:600; }
.err:empty { display:none; }
.phone-field { display:flex; align-items:stretch; border:1.5px solid var(--line-strong); border-radius:var(--radius-sm); background:var(--surface); overflow:hidden; }
.phone-field:focus-within { box-shadow:var(--focus-ring); border-color:var(--focus); }
.phone-field.invalid { border-color:var(--error); border-width:2px; }
.phone-field .cc { display:flex; align-items:center; padding:0 var(--space-3); background:var(--surface-sunk); color:var(--ink-muted); border-right:1.5px solid var(--line); font-weight:600; }
.phone-field .input { border:0; border-radius:0; box-shadow:none; }
.check-row { display:grid; grid-template-columns:auto 1fr; gap:var(--space-3); align-items:start; }
.check { appearance:none; -webkit-appearance:none; margin:1px 0 0; width:26px; height:26px; border:2px solid var(--line-strong); border-radius:4px; background:var(--surface); display:grid; place-content:center; cursor:pointer; flex:none; }
.check::before { content:""; width:12px; height:7px; border-left:3px solid var(--on-primary); border-bottom:3px solid var(--on-primary); transform:translateY(-2px) rotate(-45deg); opacity:0; }
.check:checked { background:var(--primary); border-color:var(--primary); }
.check:checked::before { opacity:1; }
.check:focus-visible { outline:2px solid transparent; box-shadow:var(--focus-ring); }
.check[aria-invalid="true"] { border-color:var(--error); }
.consent { padding:var(--space-4); background:var(--surface); border:1px solid var(--line-strong); border-radius:var(--radius-lg); }
.consent label { font-size:16px; line-height:24px; color:var(--ink); }
.consent .consent-links { grid-column:2; font-size:15px; line-height:22px; margin:var(--space-2) 0 0; }
.consent .hint { grid-column:2; margin-top:var(--space-2); }
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
fieldset { border:0; margin:0; padding:0; min-width:0; }
legend { padding:0; font-family:var(--font-serif); font-size:24px; line-height:32px; font-weight:600; color:var(--ink); margin-bottom:var(--space-4); }
.form-status { border-radius:var(--radius-md); padding:var(--space-4); font-weight:600; }
.form-status.ok { background:var(--success-soft); color:var(--success); }
.form-status.bad { background:var(--error-soft); color:var(--error); }
.form-status.off { background:var(--warning-soft); color:var(--warning); }
.form-status:empty { display:none; }
.req-note { font-size:15px; line-height:22px; color:var(--ink-muted); margin:0; }

/* Toggletip */
.tip { position:relative; display:inline-block; }
.tip-btn { font:inherit; font-size:15px; font-weight:600; background:none; border:0; color:var(--primary); text-decoration:underline; text-underline-offset:3px; cursor:pointer; padding:0; min-height:24px; }
.tip-body { margin:var(--space-2) 0 0; padding:var(--space-3) var(--space-4); background:var(--sky); border-radius:var(--radius-sm); font-size:15px; line-height:22px; color:var(--ink); }
.js .tip-body:not(.open) { display:none; }

/* Wizard */
.wizard-progress { margin-bottom:var(--space-8); }
.wizard-progress ol { list-style:none; margin:0 0 var(--space-3); padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-2); }
.wizard-progress li { margin:0; font-size:15px; line-height:20px; font-weight:600; color:var(--ink-muted); padding-top:var(--space-3); border-top:4px solid var(--line); }
.wizard-progress li.done { border-top-color:var(--accent); color:var(--ink); }
.wizard-progress li.current { border-top-color:var(--primary); color:var(--primary); }
.wizard-progress { display:none; }
.js .wizard-progress { display:block; }
.js .wiz-step:not(.current) { display:none; }
.wiz-step + .wiz-step { margin-top:var(--space-12); padding-top:var(--space-8); border-top:1px solid var(--line); }
.js .wiz-step + .wiz-step { margin-top:0; padding-top:0; border-top:0; }
.wiz-nav { display:flex; flex-wrap:wrap; gap:var(--space-4); justify-content:space-between; align-items:center; margin-top:var(--space-8); }
.wiz-only { display:none; }
.js .wiz-only { display:inline-flex; }
.js .nojs-only { display:none; }
.review { margin:0; display:grid; gap:0; border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--surface); }
.review div { display:grid; grid-template-columns:1fr; padding:var(--space-3) var(--space-4); border-bottom:1px solid var(--line); }
.review div:last-child { border-bottom:0; }
.review dt { font-size:15px; color:var(--ink-muted); font-weight:600; }
.review dd { margin:0; overflow-wrap:anywhere; }
@media (min-width:640px) { .review div { grid-template-columns:200px 1fr; gap:var(--space-4); } }
.review-block { display:none; }
.js .review-block { display:block; }
.seat-box { border:1px dashed var(--line-strong); border-radius:var(--radius-lg); padding:var(--space-6); background:var(--dawn-soft); }

/* FAQ */
.faq-tools { display:grid; gap:var(--space-4); margin-bottom:var(--space-8); }
.filters { display:flex; flex-wrap:wrap; gap:var(--space-2); }
.filter { font:inherit; font-weight:600; font-size:16px; min-height:44px; padding:var(--space-2) var(--space-4); border-radius:var(--radius-full); border:1.5px solid var(--line-strong); background:var(--surface); color:var(--ink); cursor:pointer; }
.filter[aria-pressed="true"] { background:var(--primary); color:var(--on-primary); border-color:var(--primary); }
.faq-tools { display:none; }
.js .faq-tools { display:grid; }
.faq-group + .faq-group { margin-top:var(--space-12); }
.faq-item { border-bottom:1px solid var(--line); }
.faq-item:first-of-type { border-top:1px solid var(--line); }
.faq-item summary { list-style:none; cursor:pointer; padding:var(--space-4) 44px var(--space-4) 0; position:relative; font-family:var(--font-serif); font-size:19px; line-height:27px; font-weight:600; color:var(--ink); }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:""; position:absolute; right:12px; top:24px; width:10px; height:10px; border-right:2px solid var(--primary); border-bottom:2px solid var(--primary); transform:rotate(45deg); transition:transform .2s ease; }
.faq-item[open] summary::after { transform:rotate(-135deg); top:28px; }
.faq-item .answer { padding:0 0 var(--space-6); max-width:66ch; }
.faq-empty { padding:var(--space-6); border:1px dashed var(--line-strong); border-radius:var(--radius-lg); }
mark { background:var(--dawn); color:var(--ink); border-radius:2px; }

/* Tabs */
.tabs { display:flex; flex-wrap:wrap; gap:var(--space-2); border-bottom:1px solid var(--line); margin-bottom:var(--space-8); }
.tab { font:inherit; font-weight:600; font-size:17px; min-height:48px; padding:var(--space-2) var(--space-4); background:transparent; border:0; border-bottom:3px solid transparent; color:var(--ink-muted); cursor:pointer; margin-bottom:-1px; }
.tab[aria-selected="true"] { color:var(--primary); border-bottom-color:var(--primary); }
.tab:focus-visible { outline:2px solid transparent; box-shadow:var(--focus-ring); }
.tabs { display:none; }
.js .tabs { display:flex; }
.tabpanel + .tabpanel { margin-top:var(--space-12); padding-top:var(--space-8); border-top:1px solid var(--line); }
.js .tabpanel + .tabpanel { margin-top:0; padding-top:0; border-top:0; }

/* Page head */
.page-head { background:var(--dawn-soft); border-bottom:1px solid var(--line); padding:var(--space-12) 0 var(--space-8); position:relative; overflow:hidden; }
.page-head::after { content:""; position:absolute; right:-60px; bottom:-1px; width:220px; height:110px; border-radius:110px 110px 0 0; background:var(--accent); opacity:.18; }
.page-head h1 { position:relative; z-index:1; }
.page-head .lead { position:relative; z-index:1; max-width:44ch; margin:0; }
@media (min-width:900px) { .page-head { padding:var(--space-16) 0 var(--space-12); } .page-head h1 { font-size:44px; line-height:52px; } .page-head::after { width:360px; height:180px; border-radius:180px 180px 0 0; right:6%; } }

/* Prose (legal) */
.prose { max-width:70ch; }
.prose h2 { margin-top:var(--space-12); }
.prose h3 { margin-top:var(--space-8); }
.prose h2:first-child { margin-top:0; }
.toc { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:var(--space-6); margin-bottom:var(--space-12); }
.toc ol { margin:0; }
.updated { font-size:15px; color:var(--ink-muted); }

/* Downloads */
.download { display:grid; grid-template-columns:96px 1fr; gap:var(--space-4); align-items:start; }
.download img { border:1px solid var(--line); border-radius:var(--radius-sm); background:#fff; }

/* Thanks */
.thanks-mark { width:64px; height:64px; margin-bottom:var(--space-4); }

/* 404 */
.center-page { min-height:50vh; display:grid; align-content:center; }

/* Print */
@media print {
  .site-header, .site-footer, .skip, .no-print { display:none !important; }
  body { background:#fff; color:#000; }
}

/* Carrier-review replica: show every step at once */
.js form[data-replica] .wiz-step { display:block; }
.js form[data-replica] .wiz-step + .wiz-step { margin-top:var(--space-12); padding-top:var(--space-8); border-top:1px solid var(--line); }
.js form[data-replica] .wizard-progress, .js form[data-replica] .wiz-only, .js form[data-replica] .review-block { display:none; }
.seat-box .hint { margin-bottom:var(--space-4); }
.phone { margin:0; }
.seat-title { font-size:20px; line-height:28px; margin-bottom:var(--space-2); }
.preview-note { margin:0; padding:var(--space-2) var(--gutter); background:var(--sky); color:var(--ink); font-size:15px; line-height:22px; text-align:center; }

/* Plans (four cards) */
@media (min-width:760px) { .plans-4 { grid-template-columns:1fr 1fr; } }
@media (min-width:1180px) { .plans-4 { grid-template-columns:repeat(4,1fr); } }
.plans-4 .plan { height:100%; }
.plans-4 .plan-body { grid-template-rows:auto auto auto 1fr auto; }
.plan-mid { border-color:var(--primary); box-shadow:var(--shadow-md); }
.plan-mid .plan-top { background:var(--sky); }
.price small:first-child { margin-right:2px; }

/* Comparison table */
.table-scroll { overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--surface); }
.table-scroll:focus-visible { outline:2px solid transparent; box-shadow:var(--focus-ring); }
.compare { width:100%; min-width:720px; border-collapse:collapse; font-size:16px; line-height:23px; font-variant-numeric:tabular-nums; }
.compare th, .compare td { text-align:left; vertical-align:top; padding:var(--space-3) var(--space-4); border-bottom:1px solid var(--line); }
.compare thead th { font-family:var(--font-serif); font-size:18px; font-weight:600; background:var(--surface-sunk); }
.compare tbody th { font-weight:600; color:var(--ink); width:28%; }
.compare tbody tr:last-child th, .compare tbody tr:last-child td { border-bottom:0; }

/* Add-ons */
.addons { list-style:none; margin:0 0 var(--space-4); padding:0; display:grid; gap:0; }
.addons li { display:flex; justify-content:space-between; gap:var(--space-4); padding:var(--space-3) 0; border-bottom:1px solid var(--line); margin:0; }
.addons li:last-child { border-bottom:0; }
.addon-price { font-weight:700; text-align:right; font-variant-numeric:tabular-nums; }

/* Sign-up plan picker */
.plan-pick { display:grid; gap:var(--space-3); }
.plan-legend { font-family:var(--font-sans); font-size:16px; line-height:22px; font-weight:600; margin:0; }
.plan-opts { display:grid; gap:var(--space-3); }
.plan-opt { position:relative; }
.plan-radio { position:absolute; left:16px; top:20px; width:22px; height:22px; margin:0; accent-color:var(--primary); }
.plan-opt label { display:grid; gap:var(--space-1); padding:var(--space-4) var(--space-4) var(--space-4) 52px; border:1.5px solid var(--line-strong); border-radius:var(--radius-md); background:var(--surface); cursor:pointer; }
.plan-opt.chosen label, .plan-radio:checked + label { border-color:var(--primary); border-width:2px; background:var(--sky); }
.plan-radio:focus-visible + label { box-shadow:var(--focus-ring); }
.plan-opt-head { display:flex; justify-content:space-between; gap:var(--space-3); flex-wrap:wrap; font-size:17px; }
.plan-opt-head span { font-weight:600; color:var(--primary); }
.plan-opt-list { font-size:15px; line-height:22px; color:var(--ink-muted); }
.seat-plan { margin:0; padding:var(--space-4); border-radius:var(--radius-md); background:var(--success-soft); color:var(--ink); }
.seat-plan strong { color:var(--success); }
.goodword-box { border-style:dashed; }
.nowrap { white-space:nowrap; }
