/* Press & Impact page — /press. Brand tokens come from app.css; fallbacks
   below keep the page intact if load order changes. Selectors scoped to
   .press-nav / .press-wrap so nothing leaks to or is overridden by app.css.
   Per-tool stat bullets are styled inline by Estimates::aggregateBadge(). */
:root{
  --ink:#0f1c2e; --slate:#2c4a6e; --sky:#4a90c4; --ice:#dbeeff;
  --frost:#f4f8fc; --gold:#c9924a; --rule:#d0dde8; --body:#3a4f66;
}
body.press-body{ background:#fff; color:var(--body); }

/* ── public header ─────────────────────────────────────────── */
.press-nav{ border-bottom:1px solid var(--rule); background:#fff; }
.press-nav-inner{ max-width:920px; margin:0 auto; padding:16px 24px; display:flex; justify-content:space-between; align-items:center; }
.press-brand img{ display:block; height:38px; width:auto; }
.press-nav-actions{ display:flex; align-items:center; gap:10px; }
.press-nav-actions a{ font-size:13px; text-decoration:none; padding:9px 16px; letter-spacing:.02em; }
.press-ghost{ color:var(--slate); }
.press-ghost:hover{ color:var(--ink); }
.press-cta{ background:var(--sky); color:#fff; font-weight:600; border-radius:2px; }
.press-cta:hover{ background:var(--slate); }

/* ── layout ────────────────────────────────────────────────── */
.press-wrap{ max-width:920px; margin:0 auto; padding:44px 24px 100px; }
.press-wrap .eyebrow{ font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--sky); margin-bottom:6px; }
.press-wrap h1{ font-family:'Playfair Display',Georgia,serif; font-size:38px; font-weight:800; color:var(--ink); line-height:1.05; letter-spacing:-.5px; margin:0; }
.press-wrap h1 em{ color:var(--sky); font-style:normal; }
.press-wrap .sub{ font-size:16px; color:var(--slate); margin-top:14px; max-width:660px; }

.press-wrap .updated-badge{ display:inline-flex; align-items:center; gap:8px; margin-top:20px; background:var(--frost); border:1px solid var(--rule); border-left:3px solid var(--gold); padding:8px 14px; font-size:13px; color:var(--slate); }
.press-wrap .updated-badge .dot{ width:7px; height:7px; background:#2f7d4f; border-radius:50%; flex:none; }
.press-wrap .updated-badge b{ color:var(--ink); }

.press-wrap h2{ font-family:'Playfair Display',Georgia,serif; font-size:22px; font-weight:700; color:var(--ink); margin:40px 0 6px; }
.press-wrap .h-accent{ width:34px; height:2.5px; background:var(--gold); margin-bottom:16px; }

/* ── tool sections ─────────────────────────────────────────── */
.press-group-label{ font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--slate); margin:34px 0 12px; padding-bottom:6px; border-bottom:1px solid var(--rule); }
.press-tool-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.press-tool{ border:1px solid var(--rule); border-top:3px solid var(--sky); background:var(--frost); padding:16px 16px 14px; display:flex; flex-direction:column; }
.press-tool-name{ font-family:'Playfair Display',Georgia,serif; font-size:16.5px; font-weight:700; color:var(--ink); line-height:1.15; margin-bottom:4px; }
.press-muted{ font-size:12px; color:#9aa6b2; font-style:italic; margin-top:4px; }

/* savings ratio pill */
.press-ratio{ margin-top:10px; background:var(--ice); border-left:3px solid var(--sky); padding:8px 10px; font-size:12px; color:var(--slate); line-height:1.35; }
.press-ratio .rx{ font-family:'Playfair Display',Georgia,serif; font-size:19px; font-weight:800; color:var(--ink); margin-right:4px; }
.press-ratio .sub{ display:block; font-size:11px; color:#7a8699; margin-top:2px; }

/* weekly sparkline */
.spark{ margin-top:auto; padding-top:12px; }
.spark svg{ width:100%; height:44px; display:block; }
.spark-cap{ font-size:10.5px; color:#7a8699; margin-top:4px; letter-spacing:.02em; }

/* ── methodology + footer note ─────────────────────────────── */
.press-wrap .method{ background:var(--frost); border:1px solid var(--rule); padding:18px 20px; margin-top:36px; font-size:13px; color:var(--body); }
.press-wrap .method b{ color:var(--ink); }
.press-wrap .method ul{ margin:8px 0 0 18px; }
.press-wrap .method li{ margin-bottom:6px; }
.press-wrap .cadence-note{ font-size:12px; color:var(--slate); border-top:1px solid var(--rule); margin-top:34px; padding-top:14px; }

/* ── responsive ────────────────────────────────────────────── */
@media (max-width:720px){
  .press-tool-grid{ grid-template-columns:1fr 1fr; }
  .press-wrap h1{ font-size:30px; }
}
@media (max-width:460px){
  .press-tool-grid{ grid-template-columns:1fr; }
}

/* ── added: flow diagram / what-this-means / actions / notify ─── */
.press-wrap .body-p{ font-size:14px; color:var(--body); max-width:660px; margin-bottom:4px; }

.press-flow{ display:flex; align-items:stretch; gap:8px; margin:16px 0 8px; flex-wrap:wrap; }
.press-flow .box{ border:1px solid var(--rule); background:var(--frost); padding:11px 13px; font-size:12px; color:var(--ink); text-align:center; flex:1; min-width:120px; display:flex; align-items:center; justify-content:center; }
.press-flow .arrow{ color:var(--sky); font-size:16px; display:flex; align-items:center; }

.press-impact-cols{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:14px 0; }
.press-impact-card{ border:1px solid var(--rule); padding:15px 17px; }
.press-impact-card.pos{ border-top:3px solid #2f7d4f; }
.press-impact-card.neg{ border-top:3px solid #b25b4a; }
.press-impact-card .lab{ font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-bottom:7px; }
.press-impact-card.pos .lab{ color:#2f7d4f; }
.press-impact-card.neg .lab{ color:#b25b4a; }
.press-impact-card p{ font-size:13.5px; color:var(--body); line-height:1.5; }
.press-impact-card b{ color:var(--ink); }
.press-wrap .meaning-note{ font-size:12px; color:var(--slate); }

.press-actions{ display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
.press-btn{ font-size:12px; border:1px solid var(--rule); background:#fff; color:var(--slate); padding:8px 14px; font-family:'DM Sans',sans-serif; cursor:pointer; text-decoration:none; }
.press-btn:hover{ border-color:var(--sky); color:var(--sky); }

.press-notify-block{ margin-top:22px; }
.press-notify-block .notify-title{ font-size:13px; font-weight:700; color:var(--ink); margin-bottom:8px; }
.notify-msg{ font-size:12px; margin-bottom:8px; padding:6px 10px; display:inline-block; }
.notify-msg.ok{ background:#eaf5ee; color:#2f7d4f; }
.notify-msg.err{ background:#fbecea; color:#b25b4a; }
.press-notify{ display:flex; gap:6px; flex-wrap:wrap; }
.press-notify input{ border:1px solid var(--rule); padding:8px 11px; font-size:13px; font-family:'DM Sans',sans-serif; color:var(--ink); width:210px; }
.press-notify button{ border:1px solid var(--ink); background:var(--ink); color:#fff; font-size:12px; padding:8px 15px; font-family:'DM Sans',sans-serif; cursor:pointer; white-space:nowrap; }
.press-notify button:hover{ background:var(--slate); }

@media (max-width:720px){
  .press-impact-cols{ grid-template-columns:1fr; }
}
