:root {
  --lp-ink:#091c31; --lp-paper:#fafbfc; --lp-surface:#fff; --lp-muted:#3f4e60;
  --lp-tint:#e8f0f6; --lp-border:#758497; --lp-accent:#254b67; --lp-on-dark:#fff; --lp-error:#902232;
  --lp-space-4:4px; --lp-space-8:8px; --lp-space-12:12px; --lp-space-16:16px;
  --lp-space-24:24px; --lp-space-32:32px; --lp-space-48:48px;
  --lp-radius-8:8px; --lp-radius-16:16px; --lp-radius-24:24px;
  --ink:var(--lp-ink); --paper:var(--lp-paper); --white:var(--lp-surface);
  --muted:var(--lp-muted); --yellow:var(--lp-tint); --line:#d5dfe7;
  color-scheme:light;
}
* { box-sizing:border-box }
html { scroll-padding-top:24px }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.65 Manrope,sans-serif; -webkit-font-smoothing:antialiased }
::selection { background:#b8d8f0; color:var(--ink) }
:focus-visible { outline:3px solid var(--lp-accent); outline-offset:4px }
input,select,button { font:inherit }
input,select { caret-color:var(--ink) }
button,a { touch-action:manipulation }
button { cursor:pointer }
button:disabled { cursor:not-allowed; color:var(--muted); background:var(--lp-tint) }
a { color:inherit; text-underline-offset:4px }
svg { width:20px; height:20px; flex:none; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round }
img { display:block; max-width:100%; height:auto }
h1,h2,h3,p { margin:0 }
h1,h2,h3 { line-height:1.2; text-wrap:balance }
h1,h2,h3 { font-weight:600; letter-spacing:-.025em }
h1 { font-size:40px }
h2 { font-size:28px }
h3 { font-size:20px }
p { max-width:70ch }
em { font-family:'Instrument Serif',Georgia,serif; font-weight:400 }
.wrap { width:min(1104px,calc(100% - 64px)); margin-inline:auto }
[hidden] { display:none!important }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0 }
.skip-link { position:fixed; top:8px; left:8px; z-index:100; padding:12px 20px; background:var(--ink); color:#fff; transform:translateY(-150%) }
.skip-link:focus { transform:none }

/* Shared checkout shell, including terms and payment confirmation. */
.header { display:flex; align-items:center; justify-content:space-between; min-height:96px; gap:24px; border-bottom:1px solid var(--line) }
.brand { display:flex; align-items:center; gap:16px; text-decoration:none; flex:none }
.brand img { width:130px }
.brand>span { border-left:1px solid var(--line); padding-left:16px; font-size:10px; letter-spacing:.12em }
.header nav { display:flex; align-items:center; gap:28px; font-size:13px }
.header nav a { min-height:44px; display:inline-flex; align-items:center; gap:8px; text-decoration:none }
.header nav a:hover { text-decoration:underline }
.account-link { font-weight:600 }
.checkout-hero { padding-block:44px 32px }
.checkout-hero h1 { max-width:620px; font-family:'Instrument Serif',Georgia,serif; font-size:clamp(48px,5vw,68px); font-weight:400; line-height:1.02; letter-spacing:-.02em }
.checkout-hero #checkout-intro { max-width:65ch; margin-top:20px; color:var(--muted); font-size:16px }
.checkout-page { padding-bottom:48px }
.checkout-steps { display:flex; gap:32px; list-style:none; padding:20px 0 24px; margin:0 0 32px; border-bottom:1px solid var(--line); font-size:14px; color:var(--muted) }
.checkout-steps li { display:flex; align-items:center; gap:10px }
.checkout-steps li>span { width:28px; height:28px; border:1px solid var(--lp-border); border-radius:50%; display:grid; place-items:center; font-size:12px; flex:none }
.checkout-steps [aria-current] { color:var(--ink); font-weight:600 }
.checkout-steps [aria-current]>span { background:var(--ink); color:var(--lp-on-dark); border-color:var(--ink) }
.availability,#plan-unavailable { padding:14px 18px; border:1px solid var(--lp-border); background:var(--lp-tint); border-radius:8px; color:var(--muted); font-size:13px; margin-bottom:28px; max-width:none }

/* Plan choice: native radios retain keyboard and screen-reader behavior. */
.plan-intro { display:flex; align-items:center; justify-content:space-between; gap:32px; margin-bottom:24px }
.plan-intro h2 { max-width:520px; flex:1 }
.plan-intro p { max-width:300px; color:var(--muted); font-size:14px }
.plan-toolbar { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:20px }
.setup-note { font-size:14px; color:var(--muted); white-space:nowrap }
.setup-note strong { color:var(--ink); font-weight:600 }
.billing-switch { border:0; padding:0; margin:0; min-width:0 }
.billing-switch>div { display:flex; background:var(--lp-tint); border-radius:12px; padding:4px }
.billing-switch label { position:relative; cursor:pointer }
.billing-switch input,.plan>input { position:absolute; opacity:0; width:1px; height:1px }
.billing-switch span { display:flex; align-items:center; justify-content:center; gap:12px; min-height:48px; padding:10px 18px; border-radius:8px; font-size:14px; font-weight:600; transition:background-color 160ms,color 160ms }
.billing-switch b { font-size:12px; font-weight:400 }
.billing-switch input:checked+span { background:var(--ink); color:var(--lp-on-dark) }
.billing-switch input:focus-visible+span { outline:3px solid var(--lp-accent); outline-offset:3px }
.plan-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; border:0; padding:0; margin:0; min-width:0 }
.plan { position:relative; display:flex; flex-direction:column; min-width:0; background:var(--lp-surface); border:1px solid var(--lp-border); border-radius:var(--lp-radius-16); padding:24px; cursor:pointer; transition:background-color 160ms,border-color 160ms,box-shadow 160ms }
.plan:hover { border-color:var(--lp-accent); box-shadow:0 3px 12px #091c3109 }
.plan:has(input:checked) { background:var(--lp-tint); border-color:var(--lp-accent); box-shadow:inset 0 0 0 1px var(--lp-accent) }
.plan:has(input:focus-visible) { outline:3px solid var(--lp-accent); outline-offset:4px }
.plan-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:22px }
.plan-heading strong { font-weight:600 }
.plan-selection { display:flex; align-items:center; gap:8px }
.selected-label { visibility:hidden; font-size:11px; font-weight:600; color:var(--lp-accent) }
.plan:has(input:checked) .selected-label { visibility:visible }
.plan-marker { width:20px; height:20px; border:1px solid var(--lp-border); border-radius:50%; display:grid; place-items:center; flex:none }
.plan:has(input:checked) .plan-marker { border-color:var(--lp-accent); background:var(--lp-accent) }
.plan:has(input:checked) .plan-marker::after { content:''; width:8px; height:8px; border-radius:50%; background:white }
.plan-fit { font-size:14px; line-height:1.6; color:var(--muted); margin-top:8px; min-height:45px }
.founder-price { display:flex; align-items:baseline; gap:6px; margin-top:16px; font-variant-numeric:tabular-nums; white-space:nowrap }
.founder-price>strong { font-size:40px; font-weight:600; line-height:1.2; letter-spacing:-.04em }
.founder-price>span:not(.sr-only) { font-size:20px; display:flex; align-items:baseline; gap:5px }
.founder-price small { color:var(--muted); font-size:13px }
.price-tax { font-size:13px; color:var(--muted); margin-top:4px }
.plan-features { display:grid; gap:8px; margin-top:24px; padding-top:20px; border-top:1px solid var(--line); font-size:14px; line-height:1.5 }
.plan-features svg { width:16px; height:16px; align-self:center; color:var(--lp-accent) }
.plan-features>span { display:flex; align-items:baseline; gap:10px }
.billing-explanation { margin-top:16px; font-size:13px; color:var(--muted); max-width:none }
.plan-consult { display:flex; align-items:center; justify-content:space-between; gap:24px; background:var(--lp-tint); border-radius:var(--lp-radius-16); padding:20px 24px; margin-top:24px }
.plan-consult h3 { font-size:17px; letter-spacing:-.01em }
.plan-consult p { margin-top:4px; font-size:14px; color:var(--muted) }
.plan-consult a { font-size:14px; font-weight:600; min-height:44px; display:inline-flex; align-items:center; gap:12px; flex:none }
.plan-continue { display:flex; justify-content:space-between; align-items:center; gap:32px; padding:28px; border:1px solid var(--lp-border); border-radius:var(--lp-radius-16); background:var(--lp-surface); margin-top:24px }
.choice-summary { display:grid; gap:3px }
.choice-summary>span { font-size:13px; color:var(--muted) }
.choice-summary>span b { color:var(--ink); font-weight:600 }
.choice-summary>strong { font-size:36px; font-weight:600; letter-spacing:-.03em; font-variant-numeric:tabular-nums }
.choice-summary small { font-size:14px; color:var(--muted) }
.choice-summary p { font-size:13px; color:var(--muted); margin-top:6px }
.choice-action { flex:none; min-width:258px }
.choice-action .button { width:100% }
.choice-action p { font-size:12px; color:var(--muted); text-align:center; margin-top:10px }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:20px; min-height:52px; padding:14px 20px; border:1px solid transparent; border-radius:var(--lp-radius-8); font-size:14px; font-weight:600; line-height:1.5; text-decoration:none; transition:background-color 160ms }
.button-dark { color:var(--lp-on-dark); background:var(--ink) }
.button-dark:hover:not(:disabled) { background:var(--lp-accent) }
.founder-note { font-size:13px; color:var(--muted); margin-top:20px; max-width:105ch }
.comparison { margin-top:20px }
.comparison summary { display:inline-flex; align-items:center; gap:12px; cursor:pointer; font-size:14px; font-weight:600; text-decoration:underline; text-underline-offset:4px; list-style:none; min-height:44px }
.comparison summary svg { transition:transform 160ms }
.comparison[open] summary svg { transform:rotate(180deg) }
summary::-webkit-details-marker { display:none }
.comparison>p { font-size:13px; color:var(--muted); margin-top:16px }
.table-scroll { overflow:auto; scrollbar-color:var(--lp-border) var(--lp-tint); scrollbar-width:thin; margin-top:14px; border:1px solid var(--line); border-radius:8px }
.table-scroll table { width:100%; border-collapse:collapse; font-size:14px; min-width:740px; background:var(--lp-surface) }
.table-scroll caption { text-align:left; font-size:16px; font-weight:600; padding:16px }
.table-scroll th,.table-scroll td { text-align:left; border-bottom:1px solid var(--line); padding:14px 16px; line-height:1.5 }
.table-scroll thead { background:var(--lp-tint) }
.table-scroll th { font-weight:600 }
.table-scroll td { color:var(--muted) }
.table-scroll tr>*:first-child { min-width:190px }

/* Account step: summary first in visual and reading order. */
.checkout-grid { display:grid; grid-template-columns:360px minmax(0,1fr); gap:32px; align-items:start }
.selection { grid-column:1; grid-row:1; position:sticky; top:24px; min-width:0 }
.form-area { grid-column:2; min-width:0; padding:28px; background:var(--lp-surface); border:1px solid var(--line); border-radius:var(--lp-radius-16) }
.order-summary { padding:24px; background:var(--lp-tint); border-radius:var(--lp-radius-16) }
.summary-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:8px; margin-bottom:20px }
.summary-heading h2 { font-size:17px; line-height:1.5; letter-spacing:-.01em }
.summary-heading button { border:0; background:none; color:var(--lp-accent); font-size:13px; text-decoration:underline; text-underline-offset:4px; padding:10px 0; min-height:44px }
.order-summary h3 { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:28px }
.order-summary h3 span { font-size:12px; padding:4px 10px; border:1px solid var(--lp-border); border-radius:6px; font-weight:500; letter-spacing:0 }
#summary-purpose { font-size:14px; color:var(--muted); margin-top:12px }
.pay-now { margin-top:24px; display:grid; gap:4px; font-size:13px }
.pay-now strong { font-size:40px; font-weight:600; letter-spacing:-.03em; font-variant-numeric:tabular-nums }
.pay-now small { font-size:13px; color:var(--muted) }
#summary-billing { margin:16px 0; font-size:14px }
.price-detail summary { font-size:13px; text-decoration:underline; text-underline-offset:4px; cursor:pointer; padding:10px 0; min-height:44px }
.summary-rule { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-top:1px solid #bbcbd8; font-size:13px }
.summary-rule strong { font-weight:600; white-space:nowrap; font-variant-numeric:tabular-nums }
.summary-note { font-size:13px; margin-top:16px; padding-top:16px; border-top:1px solid #bbcbd8 }
.payment-trust { padding:24px 4px 0 }
.payment-trust h3 { font-size:15px }
.payment-trust p,.payment-trust a { font-size:13px; color:var(--muted); margin-top:10px }
.payment-trust a { display:inline-flex; align-items:center; min-height:44px }
.client-access h2 { font-size:28px; margin-bottom:12px }
.client-access p { font-size:16px; color:var(--muted); margin:12px 0 20px }
.client-access .access-note { font-size:13px; margin:18px 0 0 }
.client-access p:empty { display:none }
.google-unavailable { min-height:48px; border:1px solid var(--lp-border); border-radius:8px; padding:12px 20px; font-size:14px; width:100%; max-width:320px }
.client-access #client-status { font-size:14px; margin-top:20px; margin-bottom:0 }
.account-actions { display:flex; gap:20px; flex-wrap:wrap }
.account-actions button,#client-retry { background:none; border:0; padding:10px 0; min-height:44px; text-decoration:underline; text-underline-offset:4px; font-size:14px; color:var(--lp-accent) }
#client-identity { overflow-wrap:anywhere }
.client-order { padding:16px 0; border-bottom:1px solid var(--line) }
.client-order strong { display:block }
.client-order p { font-size:14px; margin:5px 0 }
.form-area form { padding-top:28px; margin-top:28px; border-top:1px solid var(--line) }
.form-intro { margin-bottom:24px }
.form-intro h2 { font-size:24px }
.form-intro p { margin-top:10px; font-size:14px; color:var(--muted) }
.form-group { border:0; padding:0; margin:0 0 24px; min-width:0 }
.form-group legend { font-size:16px; font-weight:600; margin-bottom:16px }
.form-area label { display:block; font-size:14px; font-weight:500; margin-bottom:16px }
.form-area input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.form-area select { display:block; width:100%; height:50px; margin-top:6px; padding:10px 12px; border:1px solid var(--lp-border); border-radius:var(--lp-radius-8); background:var(--paper); color:var(--ink); font-size:16px; min-width:0 }
.form-area input::placeholder { color:var(--muted); opacity:1; font-size:14px }
.form-area input:focus,.form-area select:focus { border-color:var(--lp-accent) }
.form-area input:user-invalid,.form-area select:user-invalid { border-color:var(--lp-error) }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px }
.contact-channel { border:0; padding:0; margin:4px 0 16px }
.contact-channel legend { font-size:14px; font-weight:600; margin-bottom:8px }
.contact-channel label { display:inline-flex; align-items:center; gap:8px; margin:0 20px 0 0; min-height:44px; cursor:pointer }
.form-area input[type=radio],.form-area input[type=checkbox] { width:20px; height:20px; accent-color:var(--lp-accent); flex:none; margin:0 }
.field-help { font-size:13px; color:var(--muted); margin-top:-6px; margin-bottom:24px }
.form-area .privacy-check { display:flex; gap:12px; align-items:flex-start; font-size:13px; font-weight:400; line-height:1.7; min-height:32px }
.privacy-check input { margin-top:2px!important }
.honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden }
.submit-button { width:100% }
.submit-note { font-size:13px; margin-top:12px; color:var(--muted) }
.form-status { font-size:14px; margin-bottom:16px }
.form-status:empty { display:none }
.form-status.error { color:var(--lp-error) }
.footer { border-top:1px solid var(--line); padding-block:24px 32px; display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; justify-content:space-between }
.footer-links { display:flex; gap:20px; font-size:13px }
.footer-links a { display:inline-flex; align-items:center; min-height:44px }
.legal-name { font-size:12px; color:var(--muted) }
.footer>.coc-ads-preferences { font-family:Manrope,sans-serif; font-size:13px }
.coc-ads-consent { --sans:Manrope,sans-serif }
.terms-page { max-width:860px; padding-block:48px 70px }
.terms-page h1 { font-size:clamp(34px,5vw,52px); margin-bottom:24px }
.terms-page section { margin-top:28px }
.terms-page h2 { font-size:23px; margin-bottom:12px }
.terms-page p { font-size:16px; line-height:1.8; color:var(--muted); margin-bottom:14px }
.terms-page .terms-draft { padding:18px 22px; background:var(--lp-tint); color:var(--ink) }
.terms-page>.button { margin-top:24px }
.confirmation-help { margin-top:24px }
.text-link { display:inline-block; font-size:14px; margin-top:20px; min-height:44px }

@media (max-width:1000px) {
  .header nav { gap:20px }
  .brand>span { display:none }
  .checkout-grid { grid-template-columns:310px minmax(0,1fr); gap:24px }
  .form-area { padding:24px }
  .form-row { grid-template-columns:1fr; gap:0 }
  .plan { padding:20px }
  .founder-price>strong { font-size:34px }
  .selected-label { font-size:10px }
  .plan-selection { gap:5px }
}
@media (max-width:760px) {
  .wrap { width:calc(100% - 40px) }
  .header { min-height:80px; gap:16px }
  .brand img { width:112px }
  .header nav { gap:14px; font-size:12px }
  .header .help-link,.header .back-link { display:none }
  .account-link svg { width:16px }
  .checkout-hero { padding-block:32px 16px }
  .checkout-hero h1 { font-size:50px; max-width:500px }
  .checkout-hero #checkout-intro { font-size:15px; margin-top:16px }
  .checkout-steps { justify-content:space-between; gap:12px; padding:20px 0; margin-bottom:24px; font-size:12px }
  .checkout-steps li { gap:6px }
  .checkout-steps li>span { width:24px; height:24px; font-size:11px }
  .availability { font-size:13px; margin-bottom:24px }
  .plan-intro { display:block; margin-bottom:20px }
  .plan-intro h2 { font-size:26px }
  .plan-intro p { max-width:none; margin-top:12px }
  .plan-toolbar { gap:16px }
  .billing-switch { flex:1 }
  .billing-switch>div { width:100% }
  .billing-switch label:first-child { flex:1 }
  .billing-switch label:last-child { flex:1.5 }
  .billing-switch span { padding:9px 12px; flex-direction:column; gap:0; min-height:60px; font-size:14px }
  .billing-switch b { font-size:11px; line-height:1.4; text-align:center; max-width:140px }
  .setup-note { display:none }
  .plan-grid { grid-template-columns:1fr; gap:12px }
  .plan { padding:20px 24px }
  .plan-fit { min-height:0; font-size:14px; margin-top:4px }
  .plan-heading { font-size:22px }
  .selected-label { font-size:12px }
  .plan-selection { gap:8px }
  .founder-price { margin-top:12px }
  .founder-price>strong { font-size:36px }
  .plan-features { gap:6px; margin-top:18px; padding-top:16px }
  .plan-consult { align-items:flex-start; flex-direction:column; gap:4px; padding:20px 24px }
  .plan-continue { flex-direction:column; align-items:stretch; gap:24px; padding:24px }
  .choice-action { min-width:0 }
  .choice-summary>strong { font-size:36px }
  .choice-summary small { font-size:13px }
  .checkout-grid { grid-template-columns:1fr; gap:24px }
  .selection { position:static; display:contents }
  .order-summary { grid-row:1; padding:24px }
  .form-area { grid-column:1; grid-row:2; padding:24px }
  .payment-trust { grid-row:3; padding:0 4px }
  .client-access h2 { font-size:25px }
  .client-access p { font-size:15px }
  .order-summary #summary-purpose { display:none }
  .summary-heading { margin-bottom:16px }
  .pay-now { margin-top:16px }
  .pay-now strong { font-size:36px }
  .footer { display:block }
  .footer-links { gap:18px }
  .legal-name { margin-top:12px }
  .footer>.coc-ads-preferences { margin-top:14px }
}
@media (max-width:380px) {
  .wrap { width:calc(100% - 32px) }
  .brand img { width:94px }
  .account-link { font-size:11px }
  .checkout-hero h1 { font-size:44px }
  .checkout-steps { font-size:11px; gap:6px }
  .checkout-steps li { gap:4px }
  .checkout-steps li>span { width:21px; height:21px }
  .form-area,.order-summary { padding:20px }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { transition:none!important; animation:none!important; scroll-behavior:auto!important }
}

/* A single public offer; billing is the only selection. */
.plan-grid{grid-template-columns:1fr}.plan-single{display:grid;grid-template-columns:1fr 1fr;column-gap:3rem;cursor:default}.plan-single .plan-features{grid-column:2;grid-row:1 / 5}.plan-single .founder-price{margin-top:1rem}@media(max-width:680px){.plan-single{display:flex}.plan-single .plan-features{margin-top:1.5rem}}
