:root{
  --encre:#1F2A44;
  --creme:#FAF3E7;
  --rouge:#EF4135;
  --bleu:#0A4FA8;
  --white:#FFFFFF;
  --ink-muted:#5B6478;
  --cream-line:#E4D8C4;
  --on-encre-muted:#B9C1D6;
  --on-encre-line:rgba(255,255,255,0.14);
  --serif:"Libre Baskerville",Baskerville,"Baskerville Old Face",Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Segoe UI",Arial,sans-serif;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--creme);
  color:var(--encre);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
a:focus-visible, button:focus-visible{outline:2px solid var(--bleu); outline-offset:3px; border-radius:2px;}
img,svg{max-width:100%;}
@media (prefers-reduced-motion: reduce){ *{animation:none!important; transition:none!important;} }

/* ---------- section rhythm ---------- */
.section-dark{ background:var(--encre); }
.section-white{ background:var(--white); }
.section-creme{ background:var(--creme); }

.wrap{
  max-width:1040px;
  margin:0 auto;
  padding:56px 44px;
}
@media (max-width:640px){ .wrap{ padding:40px 22px; } }

/* ---------- site nav (sits inside the dark hero) ---------- */
.site-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  margin-bottom:44px;
}
.brand-lockup{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.brand-lockup .mark{ width:30px; height:30px; flex:none; display:block; }
.brand-lockup .wordmark{
  font-family:var(--serif);
  font-style:italic;
  font-weight:600;
  font-size:19px;
  color:var(--creme);
  letter-spacing:-.005em;
}
.brand-lockup .wordmark em{ color:var(--rouge); font-style:italic; }
.nav-links{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; row-gap:8px; }
.nav-links a{
  font-size:13px;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--on-encre-muted);
  text-decoration:none;
}
.nav-links a:hover{ color:var(--creme); }
.nav-links a.current{ color:var(--creme); }
select.lang-switch{
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--encre);
  background:var(--creme);
  border:none;
  border-radius:6px;
  padding:5px 8px;
  cursor:pointer;
}.nav-links a.cta{
  color:var(--encre);
  background:var(--creme);
  padding:10px 24px;
  border-radius:8px;
  font-size:15px;
}
.nav-links a.cta:hover{ background:var(--white); }

/* ---------- hero type ---------- */
.eyebrow{
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:600;
  color:#FF9E92;
  margin:0 0 16px;
}
.section-white .eyebrow, .section-creme .eyebrow{ color:var(--rouge); }

h1.headline{
  font-family:var(--serif);
  font-style:italic;
  font-weight:700;
  font-size:clamp(28px,4vw,42px);
  line-height:1.12;
  letter-spacing:-.01em;
  margin:0 0 20px;
  text-wrap:balance;
  max-width:16ch;
  color:var(--white);
}
.section-white h1.headline, .section-creme h1.headline{ color:var(--encre); }

.sub{
  font-size:17px;
  line-height:1.6;
  max-width:56ch;
  margin:0;
  color:var(--on-encre-muted);
}
.section-white .sub, .section-creme .sub{ color:var(--ink-muted); }

/* ---------- hero top (headline + mascot) ---------- */
.hero-top{ display:flex; align-items:center; gap:32px; flex-wrap:wrap; }
.hero-top .hero-text{ flex:1; min-width:280px; }
.hero-mascot{ flex:none; width:clamp(84px,13vw,140px); height:auto; }
@media (max-width:640px){ .hero-mascot{ width:76px; } }

/* ---------- proof band ---------- */
.proof{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:1px;
  background:var(--on-encre-line);
  border-top:1px solid var(--on-encre-line);
  margin-top:48px;
}
.proof div{ background:var(--encre); padding:20px 8px 6px; text-align:center; }
.proof .k{
  font-family:var(--serif); font-style:italic; font-weight:700;
  font-size:26px; color:var(--white); font-variant-numeric:tabular-nums; display:block;
}
.proof .l{ font-size:11.5px; letter-spacing:.03em; color:var(--on-encre-muted); margin-top:4px; display:block; }

/* ---------- path cards (home) ---------- */
.path-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:18px;
  margin-top:40px;
}
.path-card{
  background:var(--white);
  border:1px solid var(--cream-line);
  border-radius:12px;
  padding:26px 24px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.path-card .tag{ font-size:13.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-muted); font-weight:600; }
.path-card h3{ font-family:var(--serif); font-style:italic; font-size:20px; margin:0; color:var(--encre); }
.path-card .price{ font-size:14px; font-weight:600; color:var(--bleu); font-variant-numeric:tabular-nums; }
.path-card p{ font-size:14.5px; line-height:1.55; color:var(--ink-muted); margin:0; flex:1; }
.path-card .go{ font-size:14px; font-weight:600; color:var(--rouge); text-decoration:none; margin-top:4px; }
.path-card .go:hover{ text-decoration:underline; }

/* ---------- checklist ---------- */
.checklist{ list-style:none; margin:28px 0 0; padding:0; display:flex; flex-direction:column; gap:16px; max-width:62ch; }
.checklist li{ display:flex; gap:12px; font-size:15.5px; line-height:1.6; color:var(--encre); }
.checklist li::before{ content:""; flex:none; width:9px; height:9px; margin-top:7px; border-radius:2px; background:var(--bleu); }

/* ---------- quote ---------- */
.quote{ border-left:3px solid var(--rouge); padding:4px 0 4px 22px; margin:36px 0 0; max-width:58ch; }
.quote p{ font-family:var(--serif); font-style:italic; font-size:19px; line-height:1.5; color:var(--encre); margin:0; }
.section-dark .quote p{ color:var(--white); }
.section-dark .quote{ border-left-color:#FF9E92; }

/* ---------- timeline (genuine sequences only) ---------- */
.timeline{ margin-top:32px; display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:20px; }
.timeline .step{ background:var(--white); border:1px solid var(--cream-line); border-radius:10px; padding:20px; }
.timeline .num{ font-family:var(--serif); font-style:italic; font-weight:700; color:var(--rouge); font-size:22px; display:block; margin-bottom:8px; font-variant-numeric:tabular-nums; }
.timeline .step h4{ margin:0 0 6px; font-size:14.5px; color:var(--encre); }
.timeline .step p{ margin:0; font-size:13.5px; line-height:1.55; color:var(--ink-muted); }
.timeline .step p b.pain{ color:var(--rouge); }

.steps-list{ margin:28px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:18px; max-width:64ch; }
.steps-list li{ display:flex; gap:16px; }
.steps-list .num{ font-family:var(--serif); font-style:italic; font-weight:700; color:var(--rouge); font-size:20px; flex:none; width:1.4em; font-variant-numeric:tabular-nums; }
.steps-list .txt{ font-size:15px; line-height:1.6; color:var(--encre); }
.steps-list .txt b{ color:var(--encre); }

/* ---------- pricing ---------- */
.pricing-grid{ margin-top:32px; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; max-width:640px; }
.price-card{ background:var(--white); border:1px solid var(--cream-line); border-radius:12px; padding:24px; position:relative; }
.price-card.hi{ border-color:var(--rouge); border-width:2px; }
.price-card .star{ position:absolute; top:-11px; right:18px; background:var(--rouge); color:var(--white); font-size:11px; font-weight:700; letter-spacing:.05em; padding:3px 10px; border-radius:999px; }
.price-card .plan{ font-size:14.5px; font-weight:700; color:var(--encre); margin:0 0 6px; }
.price-card .amt{ font-family:var(--serif); font-style:italic; font-weight:700; font-size:28px; color:var(--bleu); margin:0 0 10px; font-variant-numeric:tabular-nums; }
.price-card .amt .per{ font-size:14px; font-style:normal; font-weight:600; color:var(--ink-muted); }
.price-card .scope{ font-size:13px; line-height:1.6; color:var(--ink-muted); margin:0; }

.finept{ margin-top:18px; font-size:12.5px; line-height:1.6; color:var(--ink-muted); max-width:64ch; }

/* ---------- cta band ---------- */
.cta-band .wrap{
  padding:40px 44px;
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.cta-band .lead{ font-family:var(--serif); font-style:italic; font-weight:700; font-size:21px; color:var(--white); margin:0 0 4px; }
.cta-band .sub2{ font-size:13.5px; color:var(--on-encre-muted); margin:0; }
.btn{ display:inline-flex; align-items:center; gap:8px; padding:11px 22px; border-radius:10px; font-size:14.5px; font-weight:600; text-decoration:none; }
.btn-primary{ background:var(--bleu); color:var(--white); }
.btn-primary:hover{ background:#083D82; }

/* ---------- footer ---------- */
.foot-line .wrap{ padding:16px 44px 26px; font-size:12px; color:var(--ink-muted); }

/* ---------- headings ---------- */
h2.h2{ font-family:var(--serif); font-style:italic; font-weight:700; font-size:26px; color:var(--encre); margin:0 0 4px; }
.section-head{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
