/* ============ Tokens ============ */
:root{
  --indigo:#2D2A6E;
  --indigo-700:#242159;
  --indigo-900:#1a1846;
  --amber:#F59E0B;
  --amber-600:#d98806;
  --bg:#FBF8F1;
  --bg-warm:#F5F0E6;
  --surface:#FFFFFF;
  --ink:#1e1c3a;
  --muted:#5b587a;
  --line:#e7e0d2;
  --radius:18px;
  --radius-sm:12px;
  --shadow-sm:0 1px 2px rgba(29,28,58,.06),0 4px 14px rgba(29,28,58,.05);
  --shadow-md:0 10px 30px rgba(29,28,58,.09),0 2px 8px rgba(29,28,58,.05);
  --shadow-lg:0 30px 70px rgba(45,42,110,.18);
  --font-display:'Cabinet Grotesk','Inter',system-ui,sans-serif;
  --font-body:'General Sans','Inter',system-ui,sans-serif;
  --container:1140px;
}

/* ============ Base ============ */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3{font-family:var(--font-display);line-height:1.08;letter-spacing:-.02em;color:var(--ink)}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
ul,ol{list-style:none}
p{text-wrap:pretty}

.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}
.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:absolute;left:-999px;top:0;background:var(--indigo);color:#fff;padding:10px 16px;border-radius:0 0 8px 0;z-index:200}
.skip-link:focus{left:0}

.eyebrow{
  font-weight:600;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--amber-600);margin-bottom:16px;
}
.eyebrow--dark{color:var(--amber-600)}
.accent-underline{position:relative;color:var(--indigo);white-space:nowrap}
@media (max-width:560px){.accent-underline{white-space:normal}}
.accent-underline::after{
  content:"";position:absolute;left:0;right:0;bottom:.04em;height:.42em;
  background:rgba(245,158,11,.34);z-index:-1;border-radius:4px;
}

/* ============ Buttons ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--font-body);font-weight:600;font-size:.95rem;
  padding:13px 22px;border-radius:999px;border:1.5px solid transparent;cursor:pointer;
  transition:transform .18s ease,box-shadow .2s ease,background .2s ease,color .2s ease,border-color .2s ease;
  white-space:nowrap;line-height:1;
}
.btn--sm{padding:10px 18px;font-size:.88rem}
.btn--lg{padding:16px 30px;font-size:1.02rem}
.btn--block{width:100%}
.btn--primary{background:var(--amber);color:#3a2600;box-shadow:0 6px 20px rgba(245,158,11,.32)}
.btn--primary:hover{background:var(--amber-600);transform:translateY(-2px);box-shadow:0 10px 26px rgba(245,158,11,.4)}
.btn--dark{background:var(--indigo);color:#fff}
.btn--dark:hover{background:var(--indigo-700);transform:translateY(-2px)}
.btn--outline{background:transparent;color:var(--indigo);border-color:var(--indigo)}
.btn--outline:hover{background:var(--indigo);color:#fff;transform:translateY(-2px)}
.btn--ghost{background:rgba(45,42,110,.06);color:var(--indigo)}
.btn--ghost:hover{background:rgba(45,42,110,.12);transform:translateY(-2px)}
.btn--ghost-light{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.35)}
.btn--ghost-light:hover{background:rgba(255,255,255,.18);transform:translateY(-2px)}

/* ============ Header ============ */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(251,248,241,.78);backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;transition:box-shadow .3s,border-color .3s,background .3s;
}
.site-header.is-scrolled{box-shadow:var(--shadow-sm);border-color:var(--line);background:rgba(251,248,241,.92)}
.header__inner{display:flex;align-items:center;justify-content:space-between;height:70px;gap:20px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--indigo)}
.brand__mark{flex:none}
.brand__name{font-family:var(--font-display);font-weight:700;font-size:1.22rem;letter-spacing:-.02em;color:var(--ink)}
.nav{display:flex;gap:32px;margin-left:auto;margin-right:28px}
.nav a{font-size:.94rem;font-weight:500;color:var(--muted);transition:color .2s;position:relative}
.nav a:hover{color:var(--indigo)}
.nav a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--amber);transition:width .25s}
.nav a:hover::after{width:100%}
.header__cta{flex:none}

.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.nav-toggle span{width:24px;height:2px;background:var(--indigo);border-radius:2px;transition:.25s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:flex;flex-direction:column;gap:6px;padding:14px 24px 24px;background:var(--bg);border-bottom:1px solid var(--line)}
.mobile-menu[hidden]{display:none}
.mobile-menu a{padding:12px 4px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--line)}
.mobile-menu a.btn{margin-top:10px;border-bottom:0;color:#3a2600}

/* ============ Hero ============ */
.hero{position:relative;padding:clamp(48px,8vw,96px) 0 clamp(56px,8vw,104px);overflow:hidden}
.hero__glow{
  position:absolute;top:-30%;right:-10%;width:60vw;height:60vw;max-width:760px;max-height:760px;
  background:radial-gradient(circle at 50% 50%,rgba(245,158,11,.18),transparent 62%);
  filter:blur(10px);z-index:0;pointer-events:none;
}
.hero__inner{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:center}
.hero__title{font-size:clamp(2.4rem,5.4vw,4rem);font-weight:800}
.hero__sub{margin-top:22px;font-size:clamp(1.05rem,1.6vw,1.2rem);color:var(--muted);max-width:34ch}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.hero__actions--center{justify-content:center}
.hero__trust{display:flex;flex-wrap:wrap;gap:26px;margin-top:36px;padding-top:28px;border-top:1px solid var(--line)}
.hero__trust li{font-size:.9rem;color:var(--muted)}
.hero__trust strong{display:block;font-family:var(--font-display);font-size:1.5rem;color:var(--indigo);font-weight:700;letter-spacing:-.02em}

/* Hero mock */
.hero__visual{perspective:1600px}
.mock{
  background:var(--surface);border-radius:20px;box-shadow:var(--shadow-lg);
  border:1px solid var(--line);overflow:hidden;transform:rotateY(-7deg) rotateX(3deg);
  transition:transform .5s cubic-bezier(.16,1,.3,1);
}
.hero__visual:hover .mock{transform:rotateY(-3deg) rotateX(1deg) translateY(-4px)}
.mock__bar{display:flex;gap:7px;padding:14px 16px;background:var(--bg-warm);border-bottom:1px solid var(--line)}
.mock__bar span{width:11px;height:11px;border-radius:50%;background:#d7cdb8}
.mock__bar span:first-child{background:var(--amber)}
.mock__body{display:grid;grid-template-columns:78px 1fr;min-height:340px}
.mock__side{background:var(--indigo-900);padding:18px 12px;display:flex;flex-direction:column;gap:12px}
.mock__logo{width:34px;height:34px;border-radius:9px;background:var(--amber)}
.mock__navrow{height:9px;border-radius:5px;background:rgba(255,255,255,.14)}
.mock__navrow.is-active{background:rgba(245,158,11,.65);width:80%}
.mock__main{padding:22px 22px 26px;display:flex;flex-direction:column;gap:18px}
.mock__hd{height:16px;width:52%;border-radius:6px;background:var(--indigo);opacity:.85}
.mock__cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mock__card{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}
.mock__card .dot{width:16px;height:16px;border-radius:5px}
.dot--amber{background:var(--amber)}
.dot--indigo{background:var(--indigo)}
.dot--green{background:#3fae7d}
.mock__card i{height:7px;border-radius:4px;background:#e2dac9;display:block}
.mock__card i.short{width:60%}
.mock__chart{display:flex;align-items:flex-end;gap:10px;height:76px;margin-top:auto}
.mock__chart span{flex:1;background:linear-gradient(var(--indigo),var(--indigo-700));border-radius:6px 6px 0 0;opacity:.9}
.mock__chart span:last-child{background:linear-gradient(var(--amber),var(--amber-600))}

/* ============ Sections ============ */
.section{padding:clamp(64px,9vw,116px) 0}
.section__head{max-width:620px;margin:0 auto clamp(40px,5vw,60px);text-align:center}
.section__head--left{margin-left:0;text-align:left}
.section__title{font-size:clamp(1.8rem,3.6vw,2.7rem);font-weight:700}
.section__lede{margin-top:16px;color:var(--muted);font-size:1.08rem}

.grid{display:grid;gap:24px}
.grid--3{grid-template-columns:repeat(3,1fr)}

/* Pain */
.pains{background:var(--bg-warm)}
.pain-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:32px 28px;box-shadow:var(--shadow-sm);transition:transform .25s,box-shadow .25s}
.pain-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.pain-card__icon{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:rgba(245,158,11,.14);color:var(--amber-600);margin-bottom:20px}
.pain-card h3{font-size:1.28rem;font-weight:700;margin-bottom:10px}
.pain-card p{color:var(--muted);font-size:1rem}

/* Features */
.feature-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;transition:transform .25s,box-shadow .25s,border-color .25s}
.feature-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:rgba(45,42,110,.25)}
.feature-card__icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:var(--indigo);color:#fff;margin-bottom:20px}
.feature-card h3{font-size:1.2rem;font-weight:700;margin-bottom:10px}
.feature-card p{color:var(--muted);font-size:.98rem}

/* How */
.how{background:var(--bg-warm)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;counter-reset:step}
.step{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:34px 30px;position:relative;box-shadow:var(--shadow-sm)}
.step__num{font-family:var(--font-display);font-weight:800;font-size:2.4rem;color:var(--amber);letter-spacing:-.03em;display:block;margin-bottom:12px}
.step h3{font-size:1.34rem;font-weight:700;margin-bottom:10px}
.step p{color:var(--muted)}

/* Pricing */
.tiers{align-items:stretch;margin-top:8px}
.tier{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:34px 30px;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:transform .25s,box-shadow .25s}
.tier:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.tier--featured{background:var(--indigo);border-color:var(--indigo);color:#fff;position:relative;box-shadow:var(--shadow-lg)}
.tier--featured:hover{transform:translateY(-6px)}
.tier--featured .tier__name,.tier--featured .tier__amt{color:#fff}
.tier--featured .tier__desc,.tier--featured .tier__once{color:rgba(255,255,255,.72)}
.tier--featured .tier__feat li{color:rgba(255,255,255,.9)}
.tier--featured .tier__feat li::before{color:var(--amber)}
.tier__badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--amber);color:#3a2600;font-weight:700;font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;padding:6px 16px;border-radius:999px;white-space:nowrap;box-shadow:0 4px 12px rgba(245,158,11,.4)}
.tier__head{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.tier--featured .tier__head{border-color:rgba(255,255,255,.16)}
.tier__name{font-size:1.35rem;font-weight:700}
.tier__price{margin-top:14px;display:flex;align-items:baseline;gap:8px}
.tier__amt{font-family:var(--font-display);font-size:2.6rem;font-weight:800;color:var(--indigo);letter-spacing:-.03em}
.tier__once{font-size:.9rem;color:var(--muted)}
.tier__desc{margin-top:12px;color:var(--muted);font-size:.96rem}
.tier__feat{display:flex;flex-direction:column;gap:12px;margin-bottom:26px;flex:1}
.tier__feat li{position:relative;padding-left:28px;color:var(--ink);font-size:.96rem}
.tier__feat li::before{content:"✓";position:absolute;left:0;top:-1px;color:var(--amber-600);font-weight:800}
.tier__form{display:flex;flex-direction:column;gap:10px;margin-top:auto}
.tier__form input{width:100%;padding:13px 16px;border:1.5px solid var(--line);border-radius:12px;font-family:var(--font-body);font-size:.95rem;background:var(--bg)}
.tier__form input:focus{outline:none;border-color:var(--indigo);box-shadow:0 0 0 3px rgba(45,42,110,.12)}
.tier .btn--block{margin-top:auto}

/* FAQ */
.faq{background:var(--bg-warm)}
.faq__inner{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,5vw,72px);align-items:start}
.faq .section__head{margin:0}
.accordion{display:flex;flex-direction:column;gap:14px}
.acc{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:box-shadow .2s,border-color .2s}
.acc[open]{box-shadow:var(--shadow-sm);border-color:rgba(45,42,110,.22)}
.acc summary{list-style:none;cursor:pointer;padding:20px 24px;font-family:var(--font-display);font-weight:600;font-size:1.08rem;display:flex;justify-content:space-between;align-items:center;gap:16px}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";font-size:1.5rem;color:var(--amber-600);font-weight:400;transition:transform .25s;line-height:1;flex:none}
.acc[open] summary::after{transform:rotate(45deg)}
.acc__body{padding:0 24px 22px;color:var(--muted)}
.acc__body p{max-width:60ch}
.acc__body a{color:var(--indigo);font-weight:600;text-decoration:underline;text-decoration-color:rgba(45,42,110,.3);text-underline-offset:3px}
.acc__body a:hover{text-decoration-color:var(--amber)}

/* CTA band */
.cta-band{background:linear-gradient(135deg,var(--indigo),var(--indigo-900));color:#fff;text-align:center}
.cta-band__inner{max-width:680px;margin:0 auto}
.cta-band h2{font-size:clamp(1.9rem,3.6vw,2.7rem);color:#fff}
.cta-band p{margin-top:16px;color:rgba(255,255,255,.8);font-size:1.1rem}
.cta-band .hero__actions{margin-top:30px}

/* ============ Legal / content pages ============ */
.page-hero{background:linear-gradient(180deg,var(--bg-warm),var(--bg));border-bottom:1px solid var(--line);padding:clamp(48px,7vw,84px) 0 clamp(32px,4vw,48px)}
.page-hero__inner{max-width:760px}
.page-hero h1{font-size:clamp(2rem,4.4vw,3rem);font-weight:800}
.page-hero__meta{margin-top:16px;color:var(--muted);font-size:1rem}
.page-hero .eyebrow{margin-bottom:14px}
.legal{padding:clamp(48px,7vw,84px) 0 clamp(64px,9vw,104px)}
.legal__inner{max-width:760px}
.legal h2{font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:700;margin:44px 0 14px}
.legal h2:first-child{margin-top:0}
.legal h3{font-size:1.18rem;font-weight:700;margin:28px 0 10px}
.legal p{color:var(--muted);margin-bottom:16px;font-size:1.03rem}
.legal ul{list-style:disc;padding-left:22px;margin:0 0 20px;color:var(--muted)}
.legal ul li{margin-bottom:9px;padding-left:4px;font-size:1.03rem}
.legal a{color:var(--indigo);font-weight:600;text-decoration:underline;text-decoration-color:rgba(45,42,110,.3);text-underline-offset:3px}
.legal a:hover{text-decoration-color:var(--amber)}
.legal strong{color:var(--ink)}
.legal__note{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:var(--radius-sm);padding:20px 24px;margin:24px 0}
.legal__note p{margin:0;color:var(--ink)}

/* Contact cards */
.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:760px;margin-top:8px}
.contact-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;box-shadow:var(--shadow-sm)}
.contact-card__icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:rgba(245,158,11,.14);color:var(--amber-600);margin-bottom:18px}
.contact-card h3{font-size:1.16rem;font-weight:700;margin-bottom:8px}
.contact-card p{color:var(--muted);font-size:1rem;margin:0}
.contact-card a{color:var(--indigo);font-weight:600;text-decoration:underline;text-decoration-color:rgba(45,42,110,.3);text-underline-offset:3px}
.contact-card a:hover{text-decoration-color:var(--amber)}
@media (max-width:640px){.contact-grid{grid-template-columns:1fr}}

/* Footer */
.footer{background:var(--indigo-900);color:rgba(255,255,255,.8);padding:64px 0 28px}
.footer__inner{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:48px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.12)}
.footer__col h3{color:#fff;font-size:1.02rem;font-weight:600;margin-bottom:16px}
.footer__col ul{display:flex;flex-direction:column;gap:11px}
.footer__col a{color:rgba(255,255,255,.62);font-size:.95rem;transition:color .2s}
.footer__col a:hover{color:var(--amber)}
.brand--footer .brand__name{color:#fff}
.brand--footer{color:#fff}
.footer__tag{margin-top:16px;max-width:42ch;color:rgba(255,255,255,.62);font-size:.96rem}
.footer__signup h3{color:#fff;font-size:1.14rem;font-weight:600;margin-bottom:16px}
.signup{display:flex;gap:10px;max-width:420px}
.signup input{flex:1;padding:13px 16px;border-radius:12px;border:1.5px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;font-family:var(--font-body);font-size:.95rem}
.signup input::placeholder{color:rgba(255,255,255,.5)}
.signup input:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px rgba(245,158,11,.25)}
.footer__fineprint{margin-top:12px;font-size:.82rem;color:rgba(255,255,255,.45)}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;flex-wrap:wrap;gap:14px;font-size:.88rem;color:rgba(255,255,255,.55)}
.footer__links{display:flex;gap:24px}
.footer__links a:hover{color:var(--amber)}

/* ============ Reveal animation ============ */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
  .mock{transform:none}
}

/* ============ Responsive ============ */
@media (max-width:960px){
  .nav,.header__cta{display:none}
  .nav-toggle{display:flex}
  .hero__inner{grid-template-columns:1fr;gap:44px}
  .hero__sub{max-width:52ch}
  .hero__visual{max-width:520px;margin:0 auto;width:100%}
  .mock{transform:none}
  .grid--3,.steps{grid-template-columns:1fr 1fr}
  .faq__inner{grid-template-columns:1fr;gap:32px}
  .footer__inner{grid-template-columns:1fr 1fr;gap:36px}
  .footer__brand{grid-column:1 / -1}
}
@media (max-width:560px){
  .footer__inner{grid-template-columns:1fr}
}
@media (max-width:640px){
  .container{padding:0 20px}
  .grid--3,.steps,.tiers{grid-template-columns:1fr}
  .hero__actions .btn,.mobile-menu .btn{width:100%}
  .hero__actions{flex-direction:column;align-items:stretch}
  .cta-band .btn{width:100%}
  .hero__trust{gap:20px}
  .signup{flex-direction:column}
  .signup .btn{width:100%}
  .footer__bottom{flex-direction:column;align-items:flex-start}
  .tier--featured{margin-top:8px}
}
