/* ============================================================
   EMBER HOUSE PROJECT — 4A "Dark Portrait / Blueprint" system
   Derived from the Business Card design (steel field, paper grid,
   outline type, ghost flame). Palette sampled from the card file.
   ============================================================ */

:root{
  --ink:       #1d2d3d;   /* steel navy field */
  --ink-deep:  #16222e;
  --ghost:     #2c455d;   /* ghost flame stroke on dark */
  --steel:     #749dc4;   /* steel blue accent / outline type */
  --ice:       #abd9eb;   /* ice blue caps */
  --paper:     #f5f5f8;
  --grid:      #e7e7ea;   /* paper grid line */
  --dim:       #5a6b76;   /* muted caps on paper */
  --dim-dark:  #7e93a0;   /* muted caps on ink */
  --white:     #f2f2f3;
  --ember:     #e8622c;   /* reserved: donate CTA + flame details only */
  --ember-hi:  #ff7a41;

  --f-display: "Oswald", "Arial Narrow", sans-serif;
  --f-label:   "Chakra Petch", "Trebuchet MS", sans-serif;
  --f-body:    "Space Grotesk", "Segoe UI", sans-serif;

  --cell: 72px;
  --maxw: 1180px;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--f-body);
  background:var(--paper);
  color:var(--ink);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

/* ---------- blueprint grid fields ---------- */
.field-dark{
  background-color:var(--ink);
  background-image:
    linear-gradient(rgba(116,157,196,.075) 1px, transparent 1px),
    linear-gradient(90deg, rgba(116,157,196,.075) 1px, transparent 1px);
  background-size:var(--cell) var(--cell);
  color:var(--white);
}
.field-paper{
  background-color:var(--paper);
  background-image:
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size:var(--cell) var(--cell);
}

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 24px; display:flow-root; }

/* ---------- type ---------- */
.display{
  font-family:var(--f-display);
  font-weight:600;
  text-transform:uppercase;
  line-height:.92;
  letter-spacing:.01em;
}
.outline{
  color:transparent;
  -webkit-text-stroke:2px var(--steel);
  text-stroke:2px var(--steel);
}
@supports not ((-webkit-text-stroke:2px black) or (text-stroke:2px black)){
  .outline{ color:var(--steel); }
}
.label{
  font-family:var(--f-label);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.32em;
  font-size:.78rem;
}
.label--ice{ color:var(--ice); }
.label--steel{ color:var(--steel); }
.label--dim{ color:var(--dim); }
.label--dimdark{ color:var(--dim-dark); }

/* section header: [badge] LABEL ————— */
.sechead{ display:flex; align-items:center; gap:16px; margin-bottom:42px; }
.badge{
  font-family:var(--f-label); font-weight:600; font-size:.8rem;
  border:1.5px solid currentColor; padding:4px 9px; line-height:1;
  letter-spacing:.08em; flex:none;
}
.sechead .rule{ flex:1; height:1px; background:currentColor; opacity:.25; }
.sechead--paper{ color:var(--ink); }
.sechead--paper .label{ color:var(--dim); }
.sechead--dark{ color:var(--steel); }
.sechead--dark .label{ color:var(--ice); }

/* accent underline rule (like the card's short steel dash) */
.dash{ width:56px; height:2px; background:var(--steel); border:0; margin:26px 0; }

/* ---------- buttons ---------- */
.btn{
  display:inline-block; text-decoration:none; cursor:pointer;
  font-family:var(--f-label); font-weight:600; text-transform:uppercase;
  letter-spacing:.22em; font-size:.8rem;
  padding:16px 30px; border:1.5px solid transparent;
  transition:all .18s ease;
}
.btn--ember{ background:var(--ember); color:#fff; }
.btn--ember:hover{ background:var(--ember-hi); }
.btn--ghost-light{ border-color:var(--steel); color:var(--ice); background:transparent; }
.btn--ghost-light:hover{ background:rgba(116,157,196,.14); }
.btn--ghost-dark{ border-color:var(--ink); color:var(--ink); background:transparent; }
.btn--ghost-dark:hover{ background:var(--ink); color:var(--white); }
.btn--ink{ background:var(--ink); color:var(--white); }
.btn--ink:hover{ background:var(--ink-deep); }

/* ---------- nav ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  background:rgba(22,34,46,.92); backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(116,157,196,.18);
}
.nav .wrap{ display:flex; align-items:center; gap:18px; height:64px; }
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; margin-right:auto; }
.brand svg{ width:22px; height:22px; stroke:var(--ice); }
.brand span{
  font-family:var(--f-label); font-weight:600; color:var(--white);
  letter-spacing:.32em; font-size:.8rem; text-transform:uppercase; white-space:nowrap;
}
.nav-links{ display:flex; align-items:center; gap:26px; }
.nav-links a{
  font-family:var(--f-label); font-weight:500; text-decoration:none;
  color:var(--dim-dark); letter-spacing:.18em; font-size:.74rem; text-transform:uppercase;
  transition:color .15s;
}
.nav-links a:hover, .nav-links a.on{ color:var(--ice); }
.nav-links .btn{ padding:10px 20px; }
.nav-links a.btn--ember, .nav-links a.btn--ember:hover{ color:#fff; }
.nav-toggle{ display:none; }
.nav-burger{ display:none; }

/* ---------- hero ---------- */
.hero{ position:relative; overflow:hidden; padding:170px 0 96px; }
.hero .kicker{ margin-bottom:34px; display:flex; align-items:center; gap:14px; }
.hero .kicker .tick{ width:34px; height:2px; background:var(--steel); }
.hero h1{ font-size:clamp(4.2rem, 12vw, 9.5rem); }
.hero h1 .solid{ color:var(--white); }
.hero .sub{
  max-width:560px; color:var(--dim-dark); font-size:1.06rem; margin-top:30px;
}
.hero .cta{ display:flex; gap:16px; margin-top:44px; flex-wrap:wrap; }
.ghostflame{
  position:absolute; top:-140px; right:-120px; width:620px; height:620px;
  stroke:var(--ghost); opacity:.9; pointer-events:none;
}
.hero-stats{
  display:flex; gap:0; margin-top:78px; border:1px solid rgba(116,157,196,.25);
  flex-wrap:wrap;
}
.hero-stats .stat{
  flex:1 1 200px; padding:22px 26px; border-right:1px solid rgba(116,157,196,.25);
}
.hero-stats .stat:last-child{ border-right:0; }
.hero-stats .n{
  font-family:var(--f-display); font-weight:600; font-size:1.9rem;
  color:var(--white); text-transform:uppercase; line-height:1.1;
}
.hero-stats .t{ font-family:var(--f-label); font-size:.7rem; letter-spacing:.26em;
  color:var(--dim-dark); text-transform:uppercase; margin-top:6px; }

/* ---------- generic sections ---------- */
.sec{ padding:96px 0; }
.sec h2.display{ font-size:clamp(2.4rem, 5.5vw, 4rem); margin-bottom:8px; }
.lede{ font-size:1.12rem; max-width:720px; color:#3c4d5c; }
.field-dark .lede{ color:var(--dim-dark); }

/* cards */
.cards{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:22px; margin-top:52px; }
.card{
  background:#fff; border:1px solid var(--grid);
  padding:36px 30px; position:relative;
  transition:transform .18s ease, box-shadow .18s ease;
}
.card:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(29,45,61,.10); }
.card .num{
  font-family:var(--f-label); font-weight:600; font-size:.75rem;
  color:var(--steel); letter-spacing:.2em; border:1.5px solid var(--steel);
  display:inline-block; padding:4px 8px; margin-bottom:22px;
}
.card h3{
  font-family:var(--f-display); font-weight:600; text-transform:uppercase;
  font-size:1.55rem; letter-spacing:.02em; margin-bottom:12px; line-height:1.05;
}
.card p{ color:#48596a; font-size:.96rem; }
.card .go{
  font-family:var(--f-label); font-weight:600; font-size:.72rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--ink); text-decoration:none;
  display:inline-block; margin-top:22px; border-bottom:2px solid var(--steel); padding-bottom:4px;
}
.card .go:hover{ color:var(--steel); }

/* dark tiles (business-card style) */
.tiles{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:22px; margin-top:52px; }
.tile{
  position:relative; overflow:hidden; padding:44px 30px 38px; min-height:420px;
  display:flex; flex-direction:column;
  background-color:var(--ink);
  background-image:
    linear-gradient(rgba(116,157,196,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(116,157,196,.07) 1px, transparent 1px);
  background-size:56px 56px;
  color:var(--white);
}
.tile .flame-mini{ width:20px; height:20px; stroke:var(--ice); margin-bottom:28px; }
.tile .tflame{
  position:absolute; top:-70px; right:-80px; width:300px; height:300px;
  stroke:var(--ghost); pointer-events:none;
}
.tile h3{
  font-family:var(--f-display); font-weight:600; text-transform:uppercase;
  font-size:2.5rem; line-height:.95; letter-spacing:.01em;
}
.tile .trule{ width:44px; height:2px; background:var(--steel); margin:24px 0; }
.tile .role{ font-family:var(--f-label); font-weight:600; color:var(--ice);
  letter-spacing:.24em; font-size:.82rem; text-transform:uppercase; }
.tile .role2{ font-family:var(--f-label); font-weight:500; color:var(--dim-dark);
  letter-spacing:.2em; font-size:.72rem; text-transform:uppercase; margin-top:8px; }
.tile .foot{ margin-top:auto; padding-top:34px; font-size:.86rem; color:var(--dim-dark); }

/* pillars band */
.pillars{ display:grid; grid-template-columns:repeat(5,1fr); margin-top:52px;
  border:1px solid rgba(116,157,196,.25); }
.pillar{ padding:30px 22px 34px; border-right:1px solid rgba(116,157,196,.25); }
.pillar:last-child{ border-right:0; }
.pillar .pn{ font-family:var(--f-display); font-weight:600; font-size:2.2rem; color:transparent;
  -webkit-text-stroke:1.5px var(--steel); line-height:1; }
@supports not (-webkit-text-stroke:1px black){ .pillar .pn{ color:var(--steel); } }
.pillar h4{ font-family:var(--f-label); font-weight:600; color:var(--white);
  text-transform:uppercase; letter-spacing:.16em; font-size:.86rem; margin:16px 0 8px; }
.pillar p{ font-size:.84rem; color:var(--dim-dark); }

/* donate */
.donate-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:60px; margin-top:52px; align-items:start; }
.etransfer{
  border:1.5px solid var(--steel); padding:34px 30px; background:rgba(22,34,46,.5);
}
.etransfer .label{ margin-bottom:14px; display:block; }
.etr-row{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.etr-addr{
  font-family:var(--f-label); font-weight:600; font-size:1.05rem; letter-spacing:.06em;
  color:var(--white); background:var(--ink-deep); border:1px solid rgba(116,157,196,.35);
  padding:14px 18px; flex:1 1 auto; user-select:all; overflow-wrap:anywhere;
}
.copybtn{ flex:none; }
.donate-note{ margin-top:18px; font-size:.85rem; color:var(--dim-dark); }
.givelist{ list-style:none; }
.givelist li{ padding:20px 0; border-bottom:1px solid rgba(116,157,196,.18); }
.givelist li:last-child{ border-bottom:0; }
.givelist h4{ font-family:var(--f-label); font-weight:600; color:var(--ice);
  text-transform:uppercase; letter-spacing:.2em; font-size:.84rem; margin-bottom:6px; }
.givelist p{ font-size:.9rem; color:var(--dim-dark); }
.givelist a{ color:var(--ice); }

/* contact / crisis */
.contact-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:22px; margin-top:52px; }
.cbox{ border:1px solid var(--grid); background:#fff; padding:30px; }
.cbox h4{ font-family:var(--f-label); font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; font-size:.78rem; color:var(--dim); margin-bottom:14px; }
.cbox p{ font-size:.95rem; color:#3c4d5c; }
.cbox a{ color:var(--ink); font-weight:500; }
.cbox .big{ font-family:var(--f-display); font-size:1.7rem; font-weight:600; text-transform:uppercase; color:var(--ink); }

/* crisis strip */
.crisis{ background:var(--ink-deep); border-top:1px solid rgba(116,157,196,.2); }
.crisis .wrap{ display:flex; gap:34px; flex-wrap:wrap; align-items:center; padding-top:20px; padding-bottom:20px; }
.crisis .label{ letter-spacing:.26em; }
.crisis a{ color:var(--white); text-decoration:none; font-family:var(--f-label); font-size:.82rem; letter-spacing:.08em; }
.crisis a b{ color:var(--ice); }

/* footer */
.footer{ padding:80px 0 46px; }
.footer .fmark{ font-size:clamp(3rem, 8vw, 6rem); }
.footer .fmark .solid{ color:var(--white); }
.footer-cols{ display:flex; gap:60px; flex-wrap:wrap; margin-top:50px; justify-content:space-between; }
.footer-cols .label{ display:block; margin-bottom:16px; }
.footer-cols a{ display:block; color:var(--dim-dark); text-decoration:none; font-size:.9rem; padding:4px 0; }
.footer-cols a:hover{ color:var(--ice); }
.fbottom{ margin-top:60px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.fbottom .tick{ width:34px; height:2px; background:var(--steel); }
.fbottom span{ font-family:var(--f-label); font-weight:600; letter-spacing:.3em; font-size:.74rem; color:var(--dim-dark); }

/* ---------- plan page ---------- */
.pagehero{ padding:150px 0 70px; position:relative; overflow:hidden; }
.pagehero h1{ font-size:clamp(3rem, 8vw, 6.4rem); }
.pagehero .sub{ max-width:640px; color:var(--dim-dark); margin-top:24px; font-size:1.05rem; }

.findings{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:22px; margin-top:52px; }
.finding{ background:#fff; border:1px solid var(--grid); border-top:3px solid var(--steel); padding:28px; }
.finding h4{ font-family:var(--f-label); font-weight:600; text-transform:uppercase;
  letter-spacing:.18em; font-size:.8rem; color:var(--ink); margin-bottom:10px; }
.finding p{ font-size:.9rem; color:#48596a; }

.ws{ margin-top:70px; }
.ws-head{ display:flex; align-items:baseline; gap:22px; flex-wrap:wrap; }
.ws-num{ font-family:var(--f-display); font-weight:600; font-size:3.4rem; color:transparent;
  -webkit-text-stroke:1.5px var(--steel); line-height:1; }
@supports not (-webkit-text-stroke:1px black){ .ws-num{ color:var(--steel); } }
.ws h3{ font-family:var(--f-display); font-weight:600; text-transform:uppercase; font-size:2rem; }
.ws .owner{ font-family:var(--f-label); font-size:.72rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--dim); }
.ws-body{ margin-top:26px; display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:22px; }
.wsbox{ background:#fff; border:1px solid var(--grid); padding:26px; }
.wsbox h5{ font-family:var(--f-label); font-weight:600; letter-spacing:.16em; font-size:.8rem;
  text-transform:uppercase; color:var(--steel); margin-bottom:10px; }
.wsbox p, .wsbox li{ font-size:.9rem; color:#48596a; }
.wsbox ul{ padding-left:18px; }
.wsbox li{ margin:6px 0; }

/* grants table */
.tablewrap{ overflow-x:auto; margin-top:30px; border:1px solid var(--grid); background:#fff; }
table.grants{ width:100%; border-collapse:collapse; min-width:760px; }
.grants th{
  font-family:var(--f-label); font-weight:600; text-transform:uppercase; letter-spacing:.14em;
  font-size:.7rem; text-align:left; color:var(--white); background:var(--ink);
  padding:14px 16px; white-space:nowrap;
}
.grants td{ padding:14px 16px; font-size:.86rem; color:#3c4d5c; border-bottom:1px solid var(--grid); vertical-align:top; }
.grants tr:last-child td{ border-bottom:0; }
.grants td b{ color:var(--ink); }

/* 30/60/90 */
.timeline{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:52px; }
.round{ border:1px solid rgba(116,157,196,.3); padding:32px 26px; background:rgba(22,34,46,.45); }
.round .rn{ font-family:var(--f-display); font-weight:600; font-size:2.6rem; color:transparent;
  -webkit-text-stroke:1.5px var(--steel); line-height:1; }
@supports not (-webkit-text-stroke:1px black){ .round .rn{ color:var(--steel); } }
.round h4{ font-family:var(--f-label); font-weight:600; color:var(--ice); letter-spacing:.2em;
  font-size:.86rem; text-transform:uppercase; margin:14px 0 20px; }
.round ul{ list-style:none; }
.round li{ font-size:.88rem; color:var(--dim-dark); padding:8px 0 8px 20px; position:relative;
  border-bottom:1px solid rgba(116,157,196,.12); }
.round li:last-child{ border-bottom:0; }
.round li::before{ content:""; position:absolute; left:0; top:16px; width:8px; height:2px; background:var(--steel); }

/* recommendation list */
.recs{ counter-reset:rec; list-style:none; margin-top:44px; }
.recs li{ counter-increment:rec; display:flex; gap:24px; padding:24px 0; border-bottom:1px solid var(--grid); }
.recs li:last-child{ border-bottom:0; }
.recs li::before{
  content:counter(rec, decimal-leading-zero);
  font-family:var(--f-display); font-weight:600; font-size:1.9rem; line-height:1;
  color:transparent; -webkit-text-stroke:1.2px var(--steel); flex:none; width:52px;
}
@supports not (-webkit-text-stroke:1px black){ .recs li::before{ color:var(--steel); } }
.recs p{ font-size:.96rem; color:#3c4d5c; }
.recs b{ color:var(--ink); }

.smallprint{ margin-top:56px; border:1px solid var(--grid); background:#fff; padding:28px; }
.smallprint h4{ font-family:var(--f-label); font-weight:600; letter-spacing:.2em; font-size:.76rem;
  text-transform:uppercase; color:var(--dim); margin-bottom:14px; }
.smallprint p{ font-size:.84rem; color:#5a6b76; margin:6px 0; }

/* safety list on HOB page */
.safety{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:22px; margin-top:52px; }
.safe{ border:1px solid rgba(116,157,196,.3); padding:28px; background:rgba(22,34,46,.45); }
.safe h4{ font-family:var(--f-label); font-weight:600; color:var(--ice); letter-spacing:.18em;
  font-size:.82rem; text-transform:uppercase; margin-bottom:10px; }
.safe p{ font-size:.88rem; color:var(--dim-dark); }
.safe a{ color:var(--ice); }
/* paper-field variant: the dark translucent box is unreadable on the light grid */
.field-paper .safe{ background:#fff; border-color:var(--ink); }
.field-paper .safe h4{ color:var(--ink); }
.field-paper .safe p{ color:#48596a; }
.field-paper .safe a{ color:#2f588a; }

/* ---------- restored voice: monologue hero, manifesto, founder story ---------- */
.hero .sub b{ color:var(--white); font-weight:500; }
.hero .claim{
  margin-top:36px; max-width:680px; font-family:var(--f-display); font-weight:500;
  font-size:clamp(1.25rem, 2.5vw, 1.7rem); line-height:1.4; color:var(--white);
}
.punch{
  display:flex; align-items:center; gap:14px; margin-top:22px;
  font-family:var(--f-label); font-weight:600; font-size:.86rem;
  letter-spacing:.34em; text-transform:uppercase; color:var(--ice);
}
.punch .tick{ width:34px; height:2px; background:var(--steel); flex:none; }

.manifesto{ margin-top:44px; max-width:800px; }
.manifesto p{ font-size:1.08rem; color:#3c4d5c; margin-bottom:18px; }
.manifesto p b{ color:var(--ink); }
.manifesto .mline{
  font-family:var(--f-display); font-weight:500; font-size:clamp(1.4rem, 2.6vw, 1.8rem);
  line-height:1.3; color:var(--ink); margin:32px 0 18px;
}

.story{ margin-top:46px; max-width:840px; border-left:2px solid var(--steel); padding-left:36px; }
.story p{ font-size:1.08rem; color:var(--dim-dark); margin-bottom:18px; }
.story p b{ color:var(--white); font-weight:500; }
.story .sline{
  font-family:var(--f-display); font-weight:500; font-size:clamp(1.4rem, 2.6vw, 1.8rem);
  line-height:1.3; color:var(--white); margin:30px 0 18px;
}
.story .sig{ display:flex; align-items:center; gap:14px; margin-top:36px; color:var(--ice); }
.story .sig svg{ width:22px; height:22px; stroke:var(--ice); flex:none; }
.story .sig span{
  font-family:var(--f-label); font-weight:600; font-size:.74rem;
  letter-spacing:.3em; text-transform:uppercase;
}

.chead{ display:flex; align-items:center; justify-content:space-between; margin-bottom:26px; }
.chead .num{ margin-bottom:0; }
.tag{
  display:inline-block; font-family:var(--f-label); font-weight:600; font-size:.6rem;
  letter-spacing:.28em; text-transform:uppercase; padding:5px 10px; border:1px solid;
}
.tag--live{ color:var(--steel); border-color:var(--steel); }
.tag--dev{ color:#8b9aa6; border-color:#c3cbd2; }

/* ---------- responsive ---------- */
/* Fold tier: 600–1023 keeps multi-rail but tighter */
@media (max-width:1023px){
  .donate-grid{ grid-template-columns:1fr; gap:40px; }
  .pillars{ grid-template-columns:repeat(2,1fr); }
  .pillar{ border-bottom:1px solid rgba(116,157,196,.25); }
  .timeline{ grid-template-columns:1fr; }
}
@media (max-width:820px){
  .nav-links{
    display:none; position:absolute; top:64px; left:0; right:0; z-index:60;
    background:#16222e; flex-direction:column; align-items:flex-start;
    padding:22px 24px 30px; gap:20px; border-bottom:1px solid rgba(116,157,196,.25);
    box-shadow:0 24px 50px rgba(0,0,0,.45);
  }
  .nav-toggle:checked ~ .nav-links{ display:flex; }
  .nav-burger{
    display:block; cursor:pointer; color:var(--ice); font-family:var(--f-label);
    font-size:.74rem; letter-spacing:.22em; text-transform:uppercase;
    border:1.5px solid var(--steel); padding:8px 14px;
  }
}
@media (max-width:599px){
  .hero{ padding:130px 0 70px; }
  .sec{ padding:70px 0; }
  .ghostflame{ width:380px; height:380px; top:-90px; right:-110px; }
  .pillars{ grid-template-columns:1fr; }
  .pillar{ border-right:0; }
  .hero-stats .stat{ flex:1 1 100%; border-right:0; border-bottom:1px solid rgba(116,157,196,.25); }
  .hero-stats .stat:last-child{ border-bottom:0; }
  .tile{ min-height:360px; }
  .brand span{ letter-spacing:.18em; font-size:.72rem; }
  .story{ padding-left:20px; }
  .punch{ letter-spacing:.24em; }
}
/* short unfolded-landscape: compress hero */
@media (max-height:720px) and (orientation:landscape){
  .hero{ padding:110px 0 56px; }
  .hero h1{ font-size:clamp(3.4rem, 9vw, 6.5rem); }
  .hero-stats{ margin-top:44px; }
}

/* ---------- taper guide ---------- */
.taper-jump{ display:flex; flex-wrap:wrap; gap:12px; margin-top:40px; }
.taper-jump a{
  font-family:var(--f-label); font-weight:600; font-size:.72rem; letter-spacing:.16em;
  text-transform:uppercase; text-decoration:none; padding:10px 18px; border:1.5px solid;
  transition:all .18s ease;
}
.taper-jump--paper a{ border-color:var(--ink); color:var(--ink); }
.taper-jump--paper a:hover{ background:var(--ink); color:var(--white); }
.taper-jump--dark a{ border-color:var(--steel); color:var(--ice); }
.taper-jump--dark a:hover{ background:rgba(116,157,196,.16); }

/* danger / fatal-risk box — restrained red, never the ember tone */
.taper-alert{ border:2px solid; padding:30px 32px; margin:40px 0; }
.taper-alert-label{
  font-family:var(--f-label); font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  font-size:.78rem; display:block; margin-bottom:12px;
}
.taper-alert p{ font-size:.98rem; margin-top:8px; }
.taper-alert p:first-of-type{ margin-top:0; }
.taper-alert--paper{ border-color:#b3402e; background:rgba(179,64,46,.05); }
.taper-alert--paper .taper-alert-label{ color:#b3402e; }
.taper-alert--paper p{ color:#3c4d5c; }
.taper-alert--dark{ border-color:#e07a5f; background:rgba(224,122,95,.08); }
.taper-alert--dark .taper-alert-label{ color:#e07a5f; }
.taper-alert--dark p{ color:var(--dim-dark); }

/* recommended-strategy box (MAT, Valium switch, NRT) — steel/ice, never green */
.taper-callout{ border:1.5px solid var(--steel); padding:28px 30px; margin:36px 0; }
.taper-callout-label{
  font-family:var(--f-label); font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  font-size:.76rem; display:block; margin-bottom:12px; color:var(--steel);
}
.taper-callout p{ font-size:.95rem; margin-top:8px; }
.taper-callout p:first-of-type{ margin-top:0; }
.taper-callout ul{ margin:12px 0 0 20px; font-size:.95rem; }
.taper-callout li{ margin:6px 0; }
.taper-callout--paper{ background:rgba(116,157,196,.05); }
.taper-callout--paper p, .taper-callout--paper li{ color:#3c4d5c; }
.taper-callout--dark{ background:rgba(116,157,196,.1); }
.taper-callout--dark .taper-callout-label{ color:var(--ice); }
.taper-callout--dark p, .taper-callout--dark li{ color:var(--dim-dark); }

/* schedule tables — sits inside the existing .tablewrap card */
table.tapertable{ width:100%; border-collapse:collapse; min-width:680px; }
table.tapertable th{
  font-family:var(--f-label); font-weight:600; text-transform:uppercase; letter-spacing:.12em;
  font-size:.68rem; text-align:left; color:var(--white); background:var(--ink);
  padding:14px 16px; white-space:nowrap;
}
table.tapertable td{ padding:14px 16px; font-size:.85rem; color:#3c4d5c; border-bottom:1px solid var(--grid); vertical-align:top; }
table.tapertable tr:last-child td{ border-bottom:0; }
table.tapertable td b{ color:var(--ink); }

/* small in-section subheading, used inside both field types */
.taper-sub{
  font-family:var(--f-label); font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  font-size:.8rem; color:var(--steel); margin:44px 0 8px;
}
.field-dark .taper-sub{ color:var(--ice); }

@media (max-width:1023px){
  table.tapertable{ min-width:600px; }
}
@media (max-width:599px){
  .taper-alert{ padding:22px 20px; margin:30px 0; }
  .taper-callout{ padding:22px 20px; margin:26px 0; }
  .taper-jump{ gap:8px; margin-top:30px; }
  .taper-jump a{ padding:8px 14px; font-size:.66rem; }
  .taper-sub{ margin:34px 0 6px; }
}
