/* GroundWork-Web design system v3. Components. Needs tokens.css and base.css first. */

/* ---------- Buttons ---------- */
.btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;padding:12px 28px;border-radius:var(--pill);border:1.5px solid transparent;text-decoration:none;font-weight:600;line-height:1.1;cursor:pointer;background:none;color:inherit;transition:transform var(--t-fast) var(--ease),background var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast)}
.btn small{font-weight:400;font-size:.8rem;opacity:.8}
.btn:hover{transform:translateY(-2px)}
.btn-buy{background:var(--accent);color:var(--on-accent);box-shadow:0 10px 30px -10px rgba(229,160,13,.7)}
.btn-ghost{color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{border-color:var(--ink)}
.btn-sm{min-height:44px;padding:8px 20px;flex-direction:row}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;min-height:68px;gap:var(--s4)}
.logo{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-family:var(--font-display);font-weight:600;font-size:1.25rem;text-decoration:none;letter-spacing:-.01em}
.dot{width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.links{display:none;gap:28px;font-weight:600;font-size:.95rem}
.links a{text-decoration:none;color:var(--ink-2);padding:10px 0}
.links a:hover,.links a[aria-current="page"]{color:var(--ink)}
@media(min-width:768px){.links{display:flex}}

/* ---------- Hero ---------- */
.hero{padding:clamp(40px,8vw,96px) 0 clamp(48px,8vw,104px);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:-20% -10% auto auto;width:640px;height:640px;background:radial-gradient(closest-side,var(--accent-soft),transparent);z-index:-1}
.hero .wrap{display:grid;gap:var(--s7);align-items:center}
@media(min-width:1024px){.hero .wrap{grid-template-columns:1.15fr .85fr}}
.hero h1{margin:18px 0 22px}
.hero h1 em{font-style:normal;color:var(--accent-deep)}
.ctas{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s6)}
.trust{margin-top:20px;font-size:.95rem;color:var(--ink-3)}
.trust strong{color:var(--ink)}
.deal{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.deal div{min-width:110px}
.deal dt{font-family:var(--font-display);font-weight:600;font-size:2rem;line-height:1}
.deal dd{font-size:.9rem;color:var(--ink-3);margin-top:4px}

/* ---------- Story: problem list plus text thread ---------- */
.story{display:grid;gap:var(--s6);align-items:center}
@media(min-width:900px){.story{grid-template-columns:1fr 1fr;gap:72px}}
.thread{display:flex;flex-direction:column;gap:var(--s3);max-width:420px}
.msg{padding:14px 18px;border-radius:var(--r-lg);max-width:88%}
.msg.in{background:var(--card);border:1px solid var(--line);border-bottom-left-radius:6px;align-self:flex-start}
.msg.out{background:var(--ink);color:var(--bg);border-bottom-right-radius:6px;align-self:flex-end}
.stamp{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);align-self:center;margin-top:var(--s2)}
.problems{display:grid;margin-top:var(--s2)}
.problems li{list-style:none;display:grid;grid-template-columns:44px 1fr;gap:4px 14px;padding:20px 0;border-top:1px solid var(--line)}
.problems li:last-child{border-bottom:1px solid var(--line)}
.problems .n{font-family:var(--font-display);color:var(--accent-deep);font-size:1.5rem;grid-row:span 2}
.problems p{color:var(--ink-2)}

/* ---------- Rules ---------- */
.rules{display:grid}
@media(min-width:768px){.rules{grid-template-columns:1fr 1fr;column-gap:var(--s8)}}
.rule{padding:24px 0;border-top:1px solid var(--line)}
.rule h3{margin-bottom:6px}
.rule p{color:var(--ink-2)}

/* ---------- Price block: near-black in both themes ---------- */
.price-block{background:var(--block);color:var(--block-ink)}
.price-block .eyebrow{color:var(--accent)}
.price-block .lead{color:var(--block-mute)}
.picker{display:inline-grid;grid-template-columns:1fr 1fr;padding:5px;border-radius:var(--pill);background:var(--block-2);border:1px solid var(--block-line);margin-bottom:36px;width:min(100%,360px)}
.picker button{all:unset;box-sizing:border-box;text-align:center;padding:12px 16px;min-height:48px;border-radius:var(--pill);font-weight:600;color:var(--block-mute);cursor:pointer;transition:background .25s var(--ease),color .25s}
.picker button[aria-checked="true"]{background:var(--accent);color:var(--on-accent)}
.picker button:focus-visible{outline:3px solid var(--block-ink);outline-offset:2px}
.timeline{display:grid;gap:14px}
@media(min-width:900px){.timeline{grid-template-columns:repeat(3,1fr)}}
.step{padding:28px;border-radius:var(--r-lg);background:var(--block-2);border:1px solid var(--block-line)}
.step .when{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--block-mute);font-weight:600}
.step .amt{font-family:var(--font-display);font-weight:600;font-size:clamp(3rem,6vw,4.4rem);line-height:1;margin:12px 0 10px;font-variant-numeric:tabular-nums}
.step .amt small{font-size:1.1rem;color:var(--block-mute);margin-left:4px}
.step p{color:var(--block-mute);font-size:.98rem}
.step.live{border-color:var(--accent);background:linear-gradient(180deg,rgba(229,160,13,.12),var(--block-2))}
.sum{margin-top:28px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;padding:22px 28px;border-radius:var(--r-lg);border:1px dashed var(--block-line);color:var(--block-mute)}
.sum b{color:var(--block-ink);font-family:var(--font-display);font-weight:600;font-size:1.6rem;font-variant-numeric:tabular-nums}
.price-note{margin-top:20px;font-size:.92rem;color:var(--block-mute)}

/* ---------- Final call to action ---------- */
.final{background:var(--block);color:var(--block-ink);text-align:center;border-radius:var(--r-2xl);padding:clamp(40px,8vw,88px) 20px;margin-bottom:clamp(48px,8vw,96px)}
.final h2{margin:0 auto 18px;max-width:14em}
.final p{color:var(--block-mute);margin:0 auto;max-width:30em}
.final .ctas{justify-content:center}
.final .btn-ghost{color:var(--block-ink);border-color:var(--block-line)}
.final .btn-ghost:hover{border-color:var(--block-ink)}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid var(--line);padding:32px 0 48px;color:var(--ink-3);font-size:.92rem}
.site-footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px}
.site-footer a{color:var(--ink-2)}

/* ---------- Sticky mobile bar. Leave it out of /start/ and /audit/. ---------- */
.has-bar{padding-bottom:84px}
.bar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--line)}
.bar .btn{flex:1;min-height:48px;padding:8px 12px;flex-direction:row}
@media(min-width:768px){.bar{display:none}.has-bar{padding-bottom:0}}

/* ---------- Reveal on scroll. Visible without JS and with reduced motion. ---------- */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity var(--t-reveal) var(--ease),transform var(--t-reveal) var(--ease)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}}

/* ---------- Phone demo. The screen imitates a fictional client site, so it has its own palette. ---------- */
.phone-stage{display:grid;place-items:center}
.phone{--ph-bg:#F4F1EA;--ph-ink:#111214;--ph-mute:#6B7280;--ph-line:#E5E2DB;--ph-hot:#FFF9EC;--ph-top:#0A0A0A;
  width:min(100%,330px);border-radius:44px;background:#0A0A0A;padding:12px;box-shadow:0 40px 80px -30px rgba(0,0,0,.55),0 0 0 1.5px #2a2a2e inset;transform:rotate(2deg);transition:transform .5s var(--ease)}
.phone:hover{transform:rotate(0)}
.screen{border-radius:34px;background:var(--ph-bg);color:var(--ph-ink);overflow:hidden;min-height:560px;display:flex;flex-direction:column}
.s-top{background:var(--ph-top);color:#fff;padding:20px 18px 18px}
.s-top b{font-family:var(--font-display);font-weight:600;font-size:1.2rem;letter-spacing:.02em;text-transform:uppercase;display:block}
.s-top span{font-size:.78rem;color:#A9A9B2}
.s-body{padding:var(--s4);display:flex;flex-direction:column;gap:10px;flex:1}
.s-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ph-mute);font-weight:600}
.s-group{display:grid;gap:var(--s2)}
.pkg{all:unset;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px;border-radius:var(--r-md);background:#fff;border:1.5px solid var(--ph-line);cursor:pointer;transition:border-color var(--t-fast),transform var(--t-fast) var(--ease)}
.pkg:hover{transform:translateX(3px)}
.pkg[aria-checked="true"]{border-color:var(--accent);background:var(--ph-hot)}
.pkg:focus-visible,.slot:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.pkg b{display:block;font-size:1rem}
.pkg span{font-size:.8rem;color:var(--ph-mute)}
.pkg i{font-style:normal;font-family:var(--font-display);font-weight:600;font-size:1.35rem}
.slots{display:flex;gap:var(--s2);flex-wrap:wrap}
.slot{all:unset;box-sizing:border-box;padding:10px 14px;min-height:44px;border-radius:var(--pill);border:1.5px solid #D4D1C8;font-weight:600;font-size:.9rem;cursor:pointer;background:#fff}
.slot[aria-pressed="true"]{background:var(--ph-top);color:#fff;border-color:var(--ph-top)}
.book{all:unset;box-sizing:border-box;margin-top:auto;text-align:center;padding:16px;border-radius:var(--pill);background:var(--accent);color:var(--on-accent);font-weight:700;cursor:pointer;min-height:52px}
.book:focus-visible{outline:3px solid var(--ph-ink);outline-offset:2px}
.book[disabled]{opacity:.45;cursor:not-allowed}
.s-note{font-size:.72rem;color:var(--ph-mute);text-align:center}
.demo-cap{margin-top:var(--s4);text-align:center;font-size:.85rem;color:var(--ink-3)}

/* ---------- Before/after compare. Real range input on top, so keyboard and touch work. ---------- */
.compare{position:relative;aspect-ratio:16/9;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line-2);user-select:none;touch-action:pan-y;background:#222;--pos:50%}
.pane{position:absolute;inset:0}
.pane.before{background:
  repeating-conic-gradient(from 0deg at 30% 60%,rgba(255,255,255,.07) 0 3deg,transparent 3deg 9deg),
  repeating-linear-gradient(115deg,rgba(0,0,0,.18) 0 2px,transparent 2px 7px),
  linear-gradient(160deg,#6d7076,#4a4d53 60%,#5b5e64)}
.pane.after{background:
  radial-gradient(120% 70% at 25% 0%,rgba(255,255,255,.55),transparent 55%),
  linear-gradient(160deg,#16181d,#05060a 55%,#10131a);
  clip-path:inset(0 0 0 var(--pos))}
.pane.after::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.22) 48%,transparent 60%)}
.tag{position:absolute;top:16px;padding:6px 14px;border-radius:var(--pill);background:rgba(10,10,10,.7);color:#fff;font-weight:600;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;z-index:3}
.tag.l{left:16px}
.tag.r{right:16px;background:var(--accent);color:var(--on-accent)}
.handle{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;background:#fff;transform:translateX(-50%);z-index:4;pointer-events:none}
.handle::after{content:"";position:absolute;top:50%;left:50%;width:48px;height:48px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 6px 20px rgba(0,0,0,.4);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23111' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l-6 6 6 6M15 6l6 6-6 6'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat}
.compare input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:5;margin:0}
.compare:focus-within{outline:3px solid var(--accent);outline-offset:3px}
.cap{margin-top:14px;font-size:.9rem;color:var(--ink-3)}

@media (prefers-reduced-motion:reduce){.phone,.btn,.pkg{transition:none}.phone{transform:none}}

/* ---------- Footer detail ---------- */
.site-footer .wrap{align-items:flex-start}
.site-footer .logo{color:var(--ink)}
.site-footer p{max-width:30em;margin-top:var(--s2)}
.footer-contact{display:grid;gap:0}
.footer-contact a,.footer-nav a{display:inline-flex;align-items:center;min-height:44px}
.footer-nav{display:flex;flex-wrap:wrap;gap:0 var(--s5);flex-basis:100%}
.site-footer .fine{flex-basis:100%}
.final .fine a{display:inline-flex;align-items:center;min-height:44px;padding:0 8px}

/* ---------- Picker recommendation tag ---------- */
.picker button small{display:block;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-top:2px;opacity:.85}

/* ---------- Guarantee facts and founder note ---------- */
.facts{display:grid;gap:var(--s4)}
@media(min-width:768px){.facts{grid-template-columns:repeat(3,1fr)}}
.fact{padding:var(--s5);border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line)}
.fact h3{margin-bottom:var(--s2)}
.fact p{color:var(--ink-2)}
.note{max-width:760px;margin-inline:auto;display:grid;gap:var(--s4)}
.note-q{font-family:var(--font-display);font-weight:600;font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.15;letter-spacing:-.01em;text-wrap:balance}
.note p:not(.note-q){color:var(--ink-2)}
.note a{text-underline-offset:3px}

/* =====================================================================
   Layer 2: site-wide components for inner pages
   ===================================================================== */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- Header end group and mobile menu ---------- */
.header-end{display:flex;align-items:center;gap:var(--s2)}
.menu-btn{all:unset;box-sizing:border-box;min-height:44px;min-width:44px;padding:0 16px;border:1.5px solid var(--line-2);border-radius:var(--pill);font-weight:600;font-size:.9rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--ink)}
.menu-btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(min-width:768px){.menu-btn{display:none}}
@media(max-width:767px){
  .site-header.open .links{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--line);padding:var(--s2) var(--gutter) var(--s4);gap:0}
  .site-header.open .links a{min-height:48px;display:flex;align-items:center;border-top:1px solid var(--line);padding:0}
}

/* ---------- Page hero (inner pages) ---------- */
.page-hero{padding:clamp(36px,6vw,80px) 0 clamp(20px,3vw,40px)}
.page-hero h1{font-size:clamp(2.2rem,6.4vw,4.2rem);margin:16px 0 18px;max-width:15em}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:0 8px;list-style:none;padding:0;font-size:.9rem;color:var(--ink-3)}
.crumbs a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink-2)}
.crumbs [aria-current]{color:var(--ink)}
.page-hero .crumbs+.eyebrow{margin-top:4px}

/* ---------- Cards, lists ---------- */
.card-grid{display:grid;gap:var(--s4)}
@media(min-width:768px){.card-grid{grid-template-columns:repeat(3,1fr)}.card-grid.two{grid-template-columns:repeat(2,1fr)}}
.card{padding:var(--s5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card)}
.card .k{display:inline-block;font-family:var(--font-display);font-weight:600;font-size:1.5rem;color:var(--accent-deep);margin-bottom:var(--s3);font-variant-numeric:tabular-nums}
.card h3{margin-bottom:var(--s2)}
.card p{color:var(--ink-2)}
.check-list{list-style:none;padding:0;display:grid;gap:var(--s3)}
.check-list li{position:relative;padding-left:34px;color:var(--ink-2)}
.check-list li::before{content:"";position:absolute;left:0;top:.2em;width:22px;height:22px;border-radius:50%;background:var(--accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%23C98B0A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 7.5l3.2 3L12 3.5'/%3E%3C/svg%3E") center/14px no-repeat}
.check-list b{color:var(--ink)}
.check-list.no li::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%236B7280' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M3 3l8 8M11 3l-8 8'/%3E%3C/svg%3E");background-color:var(--line)}
.two-col{display:grid;gap:var(--s6)}
@media(min-width:768px){.two-col{grid-template-columns:1fr 1fr;gap:var(--s8)}}
.col-label{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-bottom:var(--s4)}
.steps{display:grid;gap:0;counter-reset:s}
.steps li{list-style:none;display:grid;grid-template-columns:48px 1fr;gap:4px 16px;padding:22px 0;border-top:1px solid var(--line)}
.steps li:last-child{border-bottom:1px solid var(--line)}
.steps li::before{counter-increment:s;content:counter(s);grid-row:span 2;font-family:var(--font-display);font-weight:600;font-size:1.5rem;color:var(--accent-deep)}
.steps p{color:var(--ink-2)}
.steps .amt{font-family:var(--font-display);color:var(--accent-text);margin-left:6px}
.link{color:var(--ink);text-underline-offset:3px;font-weight:600}
.center{text-align:center}
.notice{padding:var(--s4) var(--s5);border-radius:var(--r-md);background:var(--accent-soft);color:var(--ink)}
.notice a{font-weight:600}
.prose{max-width:46rem}
.prose h2{font-size:clamp(1.6rem,3.4vw,2.2rem);margin:var(--s7) 0 var(--s3)}
.prose h3{margin:var(--s5) 0 var(--s2)}
.prose p,.prose li{color:var(--ink-2);margin-bottom:var(--s3)}
.prose ul,.prose ol{padding-left:1.3em;margin-bottom:var(--s4)}
.prose a{color:var(--ink);text-underline-offset:3px}
.prose strong{color:var(--ink)}

/* ---------- FAQ ---------- */
.faq{display:grid;max-width:46rem}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:var(--s4);font-weight:600;font-size:1.05rem;padding:var(--s3) 0}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--font-display);font-size:1.6rem;color:var(--accent-deep);flex:none;transition:transform var(--t-fast) var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--ink-2);padding:0 0 var(--s4);max-width:40em}
.faq summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

/* ---------- Forms ---------- */
.form{display:grid;gap:var(--s4)}
.form h2{font-size:clamp(1.4rem,3vw,1.9rem)}
.form h2:not(:first-child){margin-top:var(--s3)}
.row{display:grid;gap:var(--s4)}
@media(min-width:640px){.row{grid-template-columns:1fr 1fr}}
.form label{display:grid;gap:6px;font-weight:600;font-size:.95rem}
.opt{font-weight:400;color:var(--ink-3)}
.form input,.form select,.form textarea{font:inherit;font-weight:400;color:var(--ink);background:var(--card);border:1.5px solid var(--line-2);border-radius:var(--r-md);padding:12px 14px;min-height:50px;width:100%}
.form textarea{min-height:112px;resize:vertical}
.form input:focus-visible,.form select:focus-visible,.form textarea:focus-visible{outline:3px solid var(--accent);outline-offset:1px;border-color:var(--ink)}
.form [aria-invalid="true"]{border-color:var(--danger)}
.field-error{color:var(--danger);font-size:.88rem;font-weight:600;margin-top:-8px}
.form-status{min-height:1.5em;font-weight:600}
.form fieldset{border:0;padding:0;display:grid;gap:var(--s3);min-width:0}
.form legend{padding:0;margin-bottom:var(--s3)}
.radio-cards{display:grid;gap:var(--s3)}
@media(min-width:640px){.radio-cards{grid-template-columns:1fr 1fr}}
.radio-card{position:relative;display:block;padding:18px;border:1.5px solid var(--line-2);border-radius:var(--r-lg);cursor:pointer;background:var(--card)}
.radio-card input{position:absolute;inset:0;opacity:0;width:100%;height:100%;min-height:0;cursor:pointer;margin:0}
.radio-card:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.radio-card:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}
.radio-card .pn{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s2);font-family:var(--font-display);font-weight:600;font-size:1.25rem}
.radio-card .pn b{font-variant-numeric:tabular-nums}
.radio-card p{color:var(--ink-2);font-weight:400;font-size:.95rem;margin-top:var(--s2)}
.radio-card .tag-rec{display:inline-block;margin-top:var(--s2);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-text)}
.btn-block{width:100%}
button.btn{font:inherit;font-weight:600;flex-direction:row}
.btn.btn-stack{flex-direction:column;gap:4px}
.btn.btn-stack small{font-size:.75rem;font-weight:500;letter-spacing:.01em;opacity:.72}

/* ---------- Start / audit layout and order summary ---------- */
.start-layout{display:grid;gap:var(--s7)}
@media(min-width:1024px){.start-layout{grid-template-columns:1.2fr .8fr;align-items:start;gap:var(--s8)}.sticky{position:sticky;top:92px}}
.start-side{display:grid;gap:var(--s6)}
.summary{background:var(--block);color:var(--block-ink);border-radius:var(--r-xl);padding:var(--s5)}
.summary h2{font-size:1.4rem;margin-bottom:var(--s4)}
.summary dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s4);padding:14px 0;border-top:1px solid var(--block-line)}
.summary dt small{display:block;color:var(--block-mute);font-size:.82rem;font-weight:400}
.summary dd{font-family:var(--font-display);font-weight:600;font-size:1.6rem;font-variant-numeric:tabular-nums}
.summary .today dd{color:var(--accent)}
.summary .fine{color:var(--block-mute);margin-top:var(--s3)}
.summary .fine a{color:var(--block-ink)}
.checklist{list-style:none;padding:0;display:grid}
.checklist li{padding:14px 0;border-top:1px solid var(--line);color:var(--ink-2)}
.checklist li:last-child{border-bottom:1px solid var(--line)}
.checklist b{color:var(--ink)}

/* ---------- Plans (pricing) ---------- */
.plan-grid{display:grid;gap:var(--s4)}
@media(min-width:900px){.plan-grid{grid-template-columns:repeat(3,1fr)}}
.plan{display:flex;flex-direction:column;padding:28px;border-radius:var(--r-xl);background:var(--block-2);border:1px solid var(--block-line);color:var(--block-ink)}
.plan.featured{border-color:var(--accent);background:linear-gradient(180deg,rgba(229,160,13,.12),var(--block-2))}
.plan .cap{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--block-mute);font-weight:600;margin:0}
.plan h3{margin:var(--s2) 0 var(--s3)}
.plan .amt{font-family:var(--font-display);font-weight:600;font-size:clamp(3rem,5vw,3.8rem);line-height:1;font-variant-numeric:tabular-nums}
.plan .amt small{font-size:1.05rem;color:var(--block-mute);margin-left:4px}
.plan .sub{color:var(--block-mute);margin:var(--s2) 0 var(--s4)}
.plan ul{list-style:none;padding:0;display:grid;gap:10px;margin-bottom:var(--s5);flex:1}
.plan li{position:relative;padding-left:26px;color:var(--block-mute);font-size:.98rem}
.plan li::before{content:"";position:absolute;left:0;top:.45em;width:12px;height:7px;border-left:2.5px solid var(--accent);border-bottom:2.5px solid var(--accent);transform:rotate(-45deg)}
.plan .btn-ghost{color:var(--block-ink);border-color:var(--block-line)}
.plan .btn-ghost:hover{border-color:var(--block-ink)}
.plan .rec{display:inline-block;margin-bottom:var(--s2);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--on-accent);background:var(--accent);padding:4px 10px;border-radius:var(--pill);align-self:flex-start}

/* ---------- Comparison table ---------- */
.cmp{width:100%;border-collapse:separate;border-spacing:0}
.cmp th,.cmp td{text-align:left;padding:16px 14px;border-top:1px solid var(--line);vertical-align:top;color:var(--ink-2)}
.cmp thead th{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);border-top:0}
.cmp tbody th{color:var(--ink);font-weight:600}
.cmp .us{background:var(--accent-soft);color:var(--ink);font-weight:600}
@media(max-width:767px){
  .cmp thead{position:absolute;left:-9999px}
  .cmp tr{display:block;border-top:1px solid var(--line);padding:var(--s3) 0}
  .cmp th,.cmp td{display:block;border:0;padding:6px 0}
  .cmp td::before{content:attr(data-label) ": ";font-weight:600;color:var(--ink-3)}
  .cmp .us{padding:8px 10px;border-radius:var(--r-sm)}
}

/* ---------- Demo frames (live scaled previews) ---------- */
.demo-grid{display:grid;gap:var(--s5)}
@media(min-width:768px){.demo-grid{grid-template-columns:1fr 1fr}}
.frame{border:1px solid var(--line-2);border-radius:var(--r-xl);overflow:hidden;background:var(--card)}
.frame-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--cream);border-bottom:1px solid var(--line);font-size:.8rem;color:var(--ink-3)}
.frame-bar i{width:9px;height:9px;border-radius:50%;background:var(--line-2)}
.frame-bar span{margin-left:8px}
.frame-view{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--cream)}
.frame-view iframe{position:absolute;top:0;left:0;width:1280px;border:0;transform-origin:0 0;pointer-events:none}
.frame-meta{display:grid;gap:var(--s3);padding:var(--s5)}
.frame-meta h3{margin-bottom:4px}
.frame-meta p{color:var(--ink-2)}
.cta-row{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}

/* ---------- Search-intent list (home) ---------- */
.intent{display:grid;gap:var(--s3)}
@media(min-width:768px){.intent{grid-template-columns:repeat(3,1fr)}}
.intent div{padding:var(--s5);border-radius:var(--r-lg);background:var(--block);color:var(--block-ink)}
.intent b{display:block;font-family:var(--font-display);font-weight:600;font-size:1.3rem;margin-bottom:var(--s2)}
.intent p{color:var(--block-mute)}
.tight-top{padding-top:0}

/* ---------- Home phone screenshot, guide extras ---------- */
.phone .shot{border-radius:34px;width:100%;height:auto;display:block}
.toc{display:flex;flex-wrap:wrap;gap:0 var(--s4);list-style:none;padding:0;margin-top:var(--s5)}
.toc a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--ink-2);text-underline-offset:3px}
.prose table{width:100%;border-collapse:collapse;margin:var(--s4) 0}
.prose th,.prose td{text-align:left;padding:12px;border-bottom:1px solid var(--line);color:var(--ink-2);font-size:.95rem}
.prose th{color:var(--ink-3);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}
.prose code{font-size:.9em;background:var(--cream);padding:2px 6px;border-radius:6px;word-break:break-word}
.prose .notice{margin:var(--s4) 0}
.price-block .price-note a{color:var(--block-ink)}
.plan-grid.two{max-width:860px}
@media(min-width:900px){.plan-grid.two{grid-template-columns:repeat(2,1fr)}}
