/* ===== Landing-specific ===== */
.hero{position:relative;overflow:hidden;background:
   radial-gradient(120% 90% at 88% -10%, var(--green-tint) 0%, transparent 55%),
   linear-gradient(180deg,#fbf8f0 0%, var(--cream) 100%)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,5vw,72px);align-items:center;
  padding-block:clamp(56px,8vw,104px)}
.hero h1{font-size:clamp(2.5rem,5.4vw,4.2rem);line-height:1.12;color:var(--ink);font-weight:700;letter-spacing:-.02em}
.hero h1 .accent{color:var(--green-700);position:relative;white-space:nowrap}
.hero h1 .accent::after{content:"";position:absolute;inset-inline:0;bottom:.07em;height:.16em;
  background:var(--gold-tint);z-index:-1;border-radius:4px}
.hero p.lead{font-size:clamp(1.1rem,1.7vw,1.32rem);color:var(--ink-soft);margin-top:22px;max-width:46ch;font-weight:300}
.hero-cta{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.hero-chips{display:flex;gap:26px;margin-top:40px;flex-wrap:wrap}
.hero-chip{display:flex;flex-direction:column;gap:2px}
.hero-chip .v{font-family:var(--font-display);font-weight:700;font-size:1.7rem;color:var(--green-800);line-height:1}
.hero-chip .l{font-size:.85rem;color:var(--muted)}
.hero-chip+.hero-chip{padding-inline-start:26px;border-inline-start:1px solid var(--line-strong)}

/* live cycle dashboard */
.cycle-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);
  box-shadow:var(--shadow-lg);padding:30px;position:relative;overflow:hidden}
.cycle-card .flagstrip{position:absolute;inset-inline:0;top:0}
.cycle-head{display:flex;align-items:center;justify-content:space-between;margin-top:6px;margin-bottom:22px}
.cycle-head .lbl{font-size:.85rem;color:var(--muted)}
.cycle-head .live{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;font-weight:600;color:var(--green-600)}
.cycle-head .live .dot{width:9px;height:9px;border-radius:50%;background:var(--green-500);box-shadow:0 0 0 0 rgba(31,146,104,.5);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(31,146,104,.5)}70%{box-shadow:0 0 0 10px rgba(31,146,104,0)}100%{box-shadow:0 0 0 0 rgba(31,146,104,0)}}
.ring-wrap{display:flex;align-items:center;gap:24px;margin-bottom:24px}
.ring{position:relative;width:148px;height:148px;flex:none}
.ring svg{transform:rotate(-90deg)}
.ring .mid{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring .mid .pct{font-family:var(--font-display);font-weight:700;font-size:1.9rem;color:var(--green-800);line-height:1}
.ring .mid .sub{font-size:.74rem;color:var(--muted);margin-top:2px}
.ring-info{flex:1}
.ring-info .big{font-family:var(--font-display);font-weight:700;font-size:2.1rem;color:var(--ink);line-height:1.1}
.ring-info .big small{font-size:1rem;color:var(--muted);font-weight:500}
.ring-info .cap{font-size:.92rem;color:var(--ink-soft);margin-top:4px}
.cycle-bar{height:9px;border-radius:999px;background:var(--cream-2);overflow:hidden}
.cycle-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--green-600),var(--green-500));border-radius:999px;width:0;transition:width 1.4s cubic-bezier(.2,.7,.2,1)}
.cycle-mini{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px}
.cycle-mini .m{background:var(--cream);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
.cycle-mini .m .v{font-family:var(--font-display);font-weight:700;font-size:1.45rem;color:var(--green-800)}
.cycle-mini .m .l{font-size:.82rem;color:var(--muted)}

/* concept / math */
.math{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
.math .eq{display:flex;align-items:center;justify-content:center;font-family:var(--font-display);
  font-size:2.4rem;color:var(--gold);font-weight:300}
.math-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px 24px;text-align:center;box-shadow:var(--shadow-sm)}
.math-card .big{font-family:var(--font-display);font-weight:700;font-size:2.6rem;color:var(--green-700);line-height:1}
.math-card .lbl{margin-top:8px;color:var(--ink-soft);font-size:.98rem}
.math-row{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:14px;align-items:center}
.math-row .op{font-family:var(--font-display);font-size:2.2rem;color:var(--gold-deep);font-weight:300;padding-inline:6px}

/* stat band */
.statband{background:var(--green-800);color:#eaf2ec;position:relative;overflow:hidden}
.statband .wrap{position:relative;z-index:1}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.stat-grid .st .v{font-family:var(--font-display);font-weight:700;font-size:clamp(2.1rem,4vw,3rem);color:#fff;line-height:1}
.stat-grid .st .v .u{font-size:1.1rem;color:var(--gold);font-weight:500}
.stat-grid .st .l{margin-top:8px;font-size:.96rem;color:#a9c2b4}
.statband .deco{position:absolute;inset:0;opacity:.5;
  background-image:radial-gradient(circle at 1px 1px, rgba(255,255,255,.08) 1px, transparent 0);
  background-size:26px 26px}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.step{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px 24px;position:relative;box-shadow:var(--shadow-sm)}
.step .n{font-family:var(--font-display);font-weight:700;font-size:1rem;width:40px;height:40px;border-radius:12px;
  background:var(--green-tint);color:var(--green-700);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.step h3{font-size:1.18rem;margin-bottom:8px}
.step p{color:var(--ink-soft);font-size:.96rem;font-weight:300}

/* cases */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.case{display:flex;flex-direction:column;overflow:hidden}
.case .ph{height:190px;border-radius:0}
.case .body{padding:22px}
.case .tags{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.tag{font-size:.76rem;font-weight:600;padding:5px 11px;border-radius:999px;background:var(--green-tint);color:var(--green-700)}
.tag--urgent{background:var(--red-tint);color:var(--red)}
.tag--gold{background:var(--gold-tint);color:var(--gold-deep)}
.case h3{font-size:1.18rem;margin-bottom:8px}
.case p{color:var(--ink-soft);font-size:.94rem;font-weight:300;margin-bottom:16px}
.case .cprog{margin-top:auto}
.case .cprog .bar{height:7px;border-radius:999px;background:var(--cream-2);overflow:hidden;margin-bottom:8px}
.case .cprog .bar i{display:block;height:100%;background:var(--gold);border-radius:999px}
.case .cprog .meta{display:flex;justify-content:space-between;font-size:.85rem;color:var(--muted)}
.case .cprog .meta b{color:var(--green-800);font-family:var(--font-display)}

/* trust split */
.trust{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,64px);align-items:center}
.trust-vis{position:relative}
.trust-vis .ph{height:420px}
.trust-badge{position:absolute;inset-block-end:-26px;inset-inline-start:-26px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:18px 22px;display:flex;align-items:center;gap:14px}
.trust-badge img{width:56px;height:56px}
.trust-badge .t{font-family:var(--font-display);font-weight:700;color:var(--green-800);font-size:1.05rem}
.trust-badge .s{font-size:.82rem;color:var(--muted)}
/* .feat-list styles moved to the shared styles.css (used on home + how pages) */

/* CTA band */
.cta-band{background:linear-gradient(135deg,var(--green-800),var(--green-700));color:#fff;border-radius:var(--r-xl);
  padding:clamp(40px,6vw,72px);text-align:center;position:relative;overflow:hidden}
.cta-band h2{font-size:clamp(1.8rem,3.4vw,2.7rem);color:#fff;max-width:24ch;margin-inline:auto}
.cta-band p{color:#bfd6c9;margin-top:16px;font-size:1.12rem;font-weight:300;max-width:50ch;margin-inline:auto}
.cta-band .hero-cta{justify-content:center;margin-top:32px}
.cta-band .deco{position:absolute;inset:0;opacity:.4;pointer-events:none;
  background-image:radial-gradient(circle at 1px 1px, rgba(255,255,255,.1) 1px, transparent 0);background-size:28px 28px}
.cta-band .eyebrow,.cta-band h2,.cta-band p,.cta-band .hero-cta{position:relative;z-index:1}

@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr}
  .cycle-card{order:-1}
  .math,.steps,.stat-grid,.cases{grid-template-columns:1fr 1fr}
  .math .eq{display:none}
  .trust{grid-template-columns:1fr}
  .trust-vis .ph{height:300px}
}
@media (max-width:560px){
  .steps,.cases,.math,.stat-grid{grid-template-columns:1fr}
  .math-row{grid-template-columns:1fr;gap:10px}
  .math-row .op{padding-block:4px}
  .hero-chip+.hero-chip{padding-inline-start:0;border:0}
  .ring-wrap{flex-direction:column;text-align:center}
}

/* ---- field-visits teaser (home) ---- */
.home-visits{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.visit-card{display:flex;flex-direction:column;overflow:hidden}
.visit-card .ph{height:190px;border-radius:0}
.visit-card .vbody{padding:22px;display:flex;flex-direction:column;flex:1}
.visit-card .vmeta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;font-size:.84rem;color:var(--muted)}
.visit-card .vdate{color:var(--green-700);font-family:var(--font-display);font-weight:600}
.visit-card h3{font-size:1.15rem;margin-bottom:7px}
.visit-card p{color:var(--ink-soft);font-size:.94rem;font-weight:300}
@media (max-width:980px){.home-visits{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.home-visits{grid-template-columns:1fr}}
