:root {
  --paper:#fafcfb; --ink:#111814; --ink-soft:#444441; --line:#d4e4dc;
  --card:#fff; --accent:#0f6e56; --accent-deep:#085041; --on-accent:#fff;
  --soft:#e1f5ee; --dark:#080e0b; --dark-text:#fff; --dark-muted:#b0c2b7;
  --dark-line:#ffffff26; --dark-accent:#76dbb4;
  --serif:'Instrument Serif',Georgia,serif; --sans:'Syne',system-ui,sans-serif;
}
* { box-sizing:border-box; margin:0; padding:0; }
body { background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; }
a { color:inherit; }
:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.wrap { max-width:1120px; margin:0 auto; padding:0 24px; }
.narrow { max-width:760px; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; line-height:1.08; letter-spacing:0; }
h1 { font-size:88px; }
h2 { font-size:56px; }
h3 { font-size:32px; line-height:1.16; }
p+p { margin-top:1em; }
.lede { font-size:21px; color:var(--ink-soft); max-width:760px; }
.kicker { font-size:15px; font-weight:600; color:var(--accent); margin-bottom:18px; }
.big-quote { font-family:var(--serif); font-size:46px; line-height:1.15; }
.muted { color:var(--ink-soft); }
.mt { margin-top:24px; }
section { padding:96px 0; }
section.tight { padding:72px 0; }
main .hero { padding:48px 0 56px; }
.hero .hero-promise { font-family:var(--serif); font-size:40px; line-height:1.16; max-width:34ch; margin-top:20px; }
.hero .lede { margin-top:24px; }
.band-dark { background:var(--dark); color:var(--dark-text); }
.band-dark .lede,.band-dark .muted { color:var(--dark-muted); }
.band-dark .kicker { color:var(--dark-accent); }
.band-soft { background:var(--soft); }
.band-card { background:var(--card); }
.split { display:grid; grid-template-columns:5fr 7fr; gap:64px; align-items:start; }
.btn { display:inline-block; background:var(--accent); color:var(--on-accent); text-decoration:none; font-weight:700; font-size:16px; padding:16px 28px; border-radius:6px; border:2px solid var(--accent); }
.btn:hover { background:var(--accent-deep); border-color:var(--accent-deep); }
.btn.ghost { background:transparent; color:var(--ink); border-color:var(--ink); }
.btn.ghost:hover { background:var(--ink); color:var(--paper); }
.btn-row { display:flex; flex-wrap:wrap; gap:12px 24px; align-items:center; margin-top:32px; }
.btn-note { font-size:14px; color:var(--ink-soft); }
.band-dark .btn:not(.ghost) { background:var(--dark-text); color:var(--dark); border-color:var(--dark-text); }
.band-dark .btn:not(.ghost):hover { background:var(--soft); border-color:var(--soft); }
.band-dark .btn.ghost { color:var(--dark-text); border-color:var(--dark-text); }
.band-dark .btn.ghost:hover { background:var(--dark-text); color:var(--dark); }
.band-dark a:not(.btn) { color:var(--dark-accent); }
.ticks,.crosses { list-style:none; }
.ticks li,.crosses li { position:relative; padding:14px 0 14px 32px; border-bottom:1px solid var(--line); }
.ticks li::before { content:""; position:absolute; left:4px; top:24px; width:12px; height:7px; border-left:2px solid var(--accent); border-bottom:2px solid var(--accent); transform:rotate(-45deg); }
.crosses li { color:var(--ink-soft); }
.crosses li::before,.crosses li::after { content:""; position:absolute; left:6px; top:27px; width:14px; height:2px; background:var(--ink-soft); opacity:.6; transform:rotate(45deg); }
.crosses li::after { transform:rotate(-45deg); }
.band-dark .ticks li,.band-dark .crosses li { border-color:var(--dark-line); }
.band-dark .ticks li::before { border-color:var(--dark-accent); }
.band-dark .crosses li { color:var(--dark-muted); }
.band-dark .crosses li::before,.band-dark .crosses li::after { background:var(--dark-muted); }
.pains,.compare { display:grid; grid-template-columns:1fr 1fr; gap:56px; margin-top:48px; }
.pains h3,.compare h3 { margin-bottom:16px; }
.compare h3 { font-size:28px; }
.steps { margin-top:48px; }
.step { display:grid; grid-template-columns:110px 5fr 6fr; gap:40px; padding:40px 0; border-top:1px solid var(--line); }
.step:last-child { border-bottom:1px solid var(--line); }
.step .num { font-family:var(--serif); font-size:64px; line-height:1; color:var(--accent); }
.step .when { font-size:14px; color:var(--ink-soft); margin-top:10px; }
.step h3 { margin-bottom:12px; }
.step .out { font-size:15px; color:var(--ink-soft); }
.step .out strong { display:block; color:var(--ink); font-size:14px; margin-bottom:6px; }
.step ul { list-style:none; font-size:15px; }
.step ul li { padding:7px 0 7px 20px; position:relative; color:var(--ink-soft); }
.step ul li::before { content:""; position:absolute; left:0; top:18px; width:9px; height:2px; background:var(--accent); }
.tiers { display:grid; grid-template-columns:minmax(0,1fr); margin-top:48px; max-width:560px; }
.tier { padding:36px 32px; display:flex; flex-direction:column; border-radius:6px; }
.tier.featured { background:var(--dark); color:var(--dark-text); }
.tier.featured .muted,.tier.featured .ticks li { color:var(--dark-muted); }
.tier.featured .ticks li { border-color:var(--dark-line); }
.tier.featured .ticks li::before { border-color:var(--dark-accent); }
.tier.featured .btn { background:var(--dark-text); color:var(--dark); border-color:var(--dark-text); }
.tier.featured .btn:hover { background:var(--soft); border-color:var(--soft); }
.tier .name { font-weight:700; font-size:15px; }
.tier .price { font-family:var(--serif); font-size:56px; line-height:1; margin:14px 0 6px; }
.tier .for { font-size:15px; margin-bottom:20px; }
.tier .ticks { font-size:15px; margin-bottom:28px; flex:1; }
.tier .ticks li { padding:10px 0 10px 28px; }
.tier .ticks li::before { top:18px; }
.tier .btn { text-align:center; }
.faq { margin-top:40px; border-top:1px solid var(--line); }
.faq details { border-bottom:1px solid var(--line); }
.faq summary { cursor:pointer; list-style:none; padding:24px 40px 24px 0; font-weight:600; font-size:18px; position:relative; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"+"; position:absolute; right:4px; top:18px; font-family:var(--serif); font-size:32px; color:var(--accent); }
.faq details[open] summary::after { content:"\2212"; }
.faq details p { padding:0 32px 24px 0; color:var(--ink-soft); max-width:680px; }
.close h2 { max-width:22ch; }
@media(max-width:860px) {
  .split,.pains,.compare { grid-template-columns:1fr; gap:32px; }
  .step { grid-template-columns:1fr; gap:12px; }
  .step .num { font-size:48px; }
  section { padding:80px 0; }
}
@media(max-width:600px) {
  .t-py main .hero { padding:32px 0 40px; }
  .hero .hero-promise { font-size:30px; margin-top:16px; }
  .hero .lede { margin-top:20px; }
  .hero .kicker { font-size:13px; margin-bottom:12px; }
  .hero .btn-note { font-size:13px; }
  .pains,.compare,.steps,.tiers { margin-top:32px; }
  .step { padding:32px 0; }
  .faq summary { font-size:16px; }
}
