:root{
  --bg:#F5F8F6;
  --surface:#FFFFFF;
  --surface-2:#EEF3F0;
  --ink:#142623;
  --muted:#5B726C;
  --primary:#0E6E5C;
  --deep:#0B2C27;
  --deep-2:#123A33;
  --deep-ink:#EAF2EE;
  --deep-muted:#9FBBB1;
  --line:#D8E3DE;
  --line-deep:#28453D;
  --shadow:0 20px 45px -25px rgba(11,44,39,0.35);
}

.landing{
  background:var(--bg);
  color:var(--ink);
  font-family:'PT Sans','Segoe UI',Arial,sans-serif;
  font-size:1rem;
  line-height:1.55;
  overflow-x:hidden;
}
.landing h1, .landing h2, .landing h3{
  font-family:'PT Serif',Georgia,serif;
  font-weight:700;
  margin:0;
  text-wrap:balance;
  color:var(--ink);
}
.landing a{ color:inherit; text-decoration:none; }
.landing .mono{ font-family:'PT Mono','Consolas',monospace; font-variant-numeric:tabular-nums; }
.landing .eyebrow{
  font-family:'PT Sans',sans-serif; font-weight:700; font-size:.72rem;
  letter-spacing:.11em; text-transform:uppercase; color:var(--primary);
}
.landing .wrap{ max-width:1120px; margin:0 auto; padding:0 24px; }

/* header */
.landing .site-header{ position:sticky; top:0; z-index:40; background:var(--surface); border-bottom:1px solid var(--line); }
.landing .site-header .wrap{ display:flex; align-items:center; justify-content:space-between; height:68px; }
.landing .logo{ font-family:'PT Serif',serif; font-weight:700; font-size:1.2rem; color:var(--ink); display:flex; align-items:center; gap:8px; }
.landing .logo .dot{ color:var(--primary); }
.landing .site-nav{ display:flex; align-items:center; gap:28px; }
.landing .site-nav a{ color:var(--muted); font-size:.95rem; }
.landing .site-nav a:hover{ color:var(--ink); }
.landing .site-nav a:focus-visible, .landing .cta:focus-visible{ outline:2px solid var(--primary); outline-offset:3px; }

.landing .cta{
  display:inline-flex; align-items:center; gap:8px; padding:12px 24px; border-radius:2px;
  font-family:'PT Sans',sans-serif; font-weight:700; font-size:.95rem; border:1px solid transparent; cursor:pointer;
}
.landing .cta-primary{ background:var(--primary); color:var(--deep-ink); }
.landing .cta-primary:hover{ background:#12876F; color:var(--deep-ink); }
.landing .cta-ghost{ background:transparent; border-color:var(--line); color:var(--ink); padding:11px 22px; }
.landing .cta-ghost:hover{ border-color:var(--muted); }
.landing .cta-sm{ padding:8px 16px; font-size:.85rem; }

/* hero */
.landing .hero{
  background:radial-gradient(1100px 480px at 82% -10%, var(--surface-2), transparent 60%), var(--bg);
  color:var(--ink); padding:76px 0 96px;
}
.landing .hero .wrap{ display:grid; grid-template-columns:1.05fr .85fr; gap:56px; align-items:center; }
.landing .hero h1{ font-size:2.85rem; line-height:1.14; color:var(--ink); }
.landing .hero .lead{ margin-top:20px; font-size:1.15rem; color:var(--muted); max-width:46ch; }
.landing .hero .cta-row{ margin-top:32px; display:flex; gap:14px; flex-wrap:wrap; }
.landing .hero .fine{ margin-top:14px; font-size:.82rem; color:var(--muted); }

.landing .receipt-stage{ display:flex; justify-content:center; }
.landing .receipt{
  position:relative; background:var(--surface); color:var(--ink); width:290px;
  padding:26px 24px 30px; box-shadow:var(--shadow); border:1px solid var(--line); transform:rotate(2.5deg);
  font-family:'PT Mono',monospace; font-size:.82rem;
}
.landing .receipt::after{
  content:""; position:absolute; left:0; right:0; bottom:-11px; height:22px;
  background:
    linear-gradient(-45deg, var(--surface) 11px, transparent 0) 0 11px,
    linear-gradient(45deg, var(--surface) 11px, transparent 0) 0 11px;
  background-size:22px 22px; background-repeat:repeat-x;
}
.landing .receipt .r-head{ text-align:center; font-weight:700; letter-spacing:.06em; }
.landing .receipt .r-sub{ text-align:center; color:var(--muted); font-size:.72rem; margin-top:2px; }
.landing .receipt hr{ border:none; border-top:1px dashed var(--line); margin:14px 0; }
.landing .receipt .r-line{ display:flex; justify-content:space-between; gap:10px; padding:5px 0; }
.landing .receipt .r-line .ok{ color:var(--primary); font-weight:700; }
.landing .receipt .r-total{ display:flex; justify-content:space-between; padding-top:10px; font-weight:700; }
.landing .dmatrix{ margin:14px auto 2px; width:46px; height:46px; display:grid; grid-template-columns:repeat(6,1fr); gap:2px; }
.landing .dmatrix i{ background:var(--line); border-radius:1px; }
.landing .dmatrix i.on{ background:var(--ink); }

/* section shell */
.landing section{ padding:88px 0; }
.landing .section-head{ max-width:640px; margin-bottom:48px; }
.landing .section-head h2{ font-size:2.05rem; margin-top:10px; }
.landing .section-head p{ color:var(--muted); font-size:1.05rem; margin-top:14px; }
.landing .section-alt{ background:var(--surface-2); }

/* programs */
.landing .programs-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.landing .p-card{ background:var(--surface); padding:26px 24px; min-height:168px; display:flex; flex-direction:column; gap:10px; }
.landing .p-card .tag{ font-family:'PT Mono',monospace; font-size:.68rem; color:var(--muted); letter-spacing:.04em; }
.landing .p-card .icon{ font-size:1.3rem; color:var(--primary); }
.landing .p-card h3{ font-size:1.05rem; }
.landing .p-card p{ color:var(--muted); font-size:.9rem; margin:0; }
.landing .p-card.flagship{ background:var(--deep); }
.landing .p-card.flagship h3, .landing .p-card.flagship .tag{ color:var(--deep-ink); }
.landing .p-card.flagship p{ color:var(--deep-muted); }
.landing .p-card.flagship .icon{ color:var(--primary); }
.landing .p-card.paper{ background:#FBF3E1; }
.landing .p-card.paper .icon{ color:#9C6B12; }

/* services ledger */
.landing .ledger{ border-top:1px solid var(--line); }
.landing .ledger-row{ display:grid; grid-template-columns:64px 1fr; gap:22px; padding:26px 0; border-bottom:1px solid var(--line); }
.landing .ledger-row .no{ font-family:'PT Mono',monospace; color:var(--muted); font-size:.95rem; padding-top:2px; }
.landing .ledger-row h3{ font-size:1.15rem; font-family:'PT Sans',sans-serif; font-weight:700; }
.landing .ledger-row p{ color:var(--muted); margin:6px 0 0; max-width:60ch; }
.landing .sub-lines{ margin-top:14px; display:flex; flex-direction:column; gap:8px; }
.landing .sub-lines div{ display:flex; justify-content:space-between; gap:16px; font-family:'PT Mono',monospace; font-size:.85rem; color:var(--ink); border-top:1px dashed var(--line); padding-top:8px; max-width:520px; }
.landing .sub-lines div span:last-child{ color:var(--primary); }

/* trust */
.landing .trust{ background:var(--surface-2); color:var(--ink); }
.landing .trust-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.landing .t-card{ background:var(--surface); padding:28px 26px; box-shadow:var(--shadow); }
.landing .t-card .icon{ color:var(--primary); font-size:1.4rem; }
.landing .t-card h3{ font-family:'PT Sans',sans-serif; font-size:1.05rem; color:var(--ink); margin-top:12px; }
.landing .t-card p{ color:var(--muted); font-size:.92rem; margin-top:8px; }

/* final cta */
.landing .final-cta{ text-align:center; }
.landing .final-cta h2{ font-size:2.1rem; max-width:620px; margin:0 auto; }
.landing .final-cta p{ color:var(--muted); margin-top:14px; }
.landing .final-cta .cta-row{ margin-top:28px; display:flex; justify-content:center; gap:14px; flex-wrap:wrap; }

/* footer */
.landing .site-footer{ background:var(--surface-2); color:var(--muted); padding:56px 0 28px; position:relative; }
.landing .site-footer::before{
  content:""; position:absolute; top:0; left:0; right:0; height:1px;
  background-image:linear-gradient(90deg, var(--line) 60%, transparent 0);
  background-size:14px 1px; background-repeat:repeat-x;
}
.landing .foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; }
.landing .foot-brand .logo{ color:var(--ink); }
.landing .foot-brand p{ margin-top:12px; font-size:.9rem; max-width:34ch; }
.landing .foot-col h4{ font-family:'PT Sans',sans-serif; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); margin:0 0 14px; }
.landing .foot-col a{ display:block; font-size:.92rem; padding:5px 0; color:var(--muted); }
.landing .foot-col a:hover{ color:var(--ink); }
.landing .foot-bottom{ margin-top:44px; padding-top:22px; border-top:1px solid var(--line); display:flex; justify-content:space-between; font-size:.8rem; font-family:'PT Mono',monospace; flex-wrap:wrap; gap:10px; }

@media (max-width:900px){
  .landing .hero .wrap{ grid-template-columns:1fr; }
  .landing .receipt-stage{ order:-1; }
  .landing .programs-grid{ grid-template-columns:repeat(2,1fr); }
  .landing .trust-grid{ grid-template-columns:1fr; }
  .landing .foot-grid{ grid-template-columns:1fr 1fr; }
  .landing .foot-brand{ grid-column:1 / -1; }
}
@media (max-width:560px){
  .landing .hero h1{ font-size:2.1rem; }
  .landing .programs-grid{ grid-template-columns:1fr; }
  .landing .ledger-row{ grid-template-columns:1fr; }
  .landing .foot-grid{ grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:no-preference){
  .landing .receipt{ transition:transform .4s ease; }
  .landing .receipt:hover{ transform:rotate(0deg) translateY(-2px); }
}
