
:root{
  --p1:#002868;--p2:#00183F;--p3:#1D1D1F;--p4:#5F6368;
  --p5:#E0E4E8;--p6:#F7F9FC;--p7:#FFFFFF;--p8:#BF0A30;--p9:#00875A;
  --accent:#0057B8;--accent-light:#EBF3FF;--gold:#C89200;--gold-light:#FFF8E1;
  --green-light:#F0FBF5;--red-light:#FFF0F3;
  --radius:10px;--shadow:0 2px 16px rgba(0,40,104,.10);--trans:.18s ease;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',sans-serif;font-size:16px;color:var(--p3);background:var(--p6);line-height:1.6}
h1,h2,h3,h4{font-family:'Montserrat',sans-serif;color:var(--p3)}

/* HEADER */
.tool-header{background:linear-gradient(135deg,var(--p1) 0%,var(--accent) 100%);color:#fff;padding:36px 24px 28px;text-align:center}
.tool-header h1{font-size:clamp(1.3rem,3vw,2rem);color:#fff;margin-bottom:8px}
.tool-header p{opacity:.88;font-size:.96rem;max-width:700px;margin:0 auto}
.badge-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.badge{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);border-radius:20px;padding:3px 13px;font-size:.78rem;color:#fff}

/* MODULE TABS */
.mod-tabs{display:flex;flex-wrap:wrap;background:var(--p7);border-bottom:2px solid var(--p5);padding:0 12px;overflow-x:auto}
.mod-tab{padding:12px 16px;font-family:'Montserrat',sans-serif;font-size:.81rem;font-weight:600;cursor:pointer;border:none;background:none;color:var(--p4);border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap;transition:color var(--trans),border-color var(--trans)}
.mod-tab:hover{color:var(--p1)}
.mod-tab.active{color:var(--p1);border-bottom-color:var(--p1)}

/* WRAPPER */
.calc-wrapper{max-width:1200px;margin:0 auto;padding:22px 14px 48px}
.module{display:none}.module.active{display:block}

/* GRID */
.calc-grid{display:grid;grid-template-columns:420px 1fr;gap:22px;align-items:start}
@media(max-width:900px){.calc-grid{grid-template-columns:1fr}}
.full-width{grid-column:1/-1}

/* CARDS */
.card{background:var(--p7);border:1px solid var(--p5);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.card-title{font-size:.97rem;font-family:'Montserrat',sans-serif;font-weight:700;color:var(--p1);margin-bottom:14px;padding-bottom:9px;border-bottom:1px solid var(--p5)}

/* FORM */
.form-row{margin-bottom:13px}
label{display:block;font-size:.83rem;font-weight:600;color:var(--p3);margin-bottom:4px}
.input-wrap{display:flex;align-items:center;border:1.5px solid var(--p5);border-radius:8px;background:var(--p6);overflow:hidden;transition:border-color var(--trans)}
.input-wrap:focus-within{border-color:var(--p1)}
.prefix,.suffix{padding:0 9px;font-size:.88rem;color:var(--p4);background:var(--p5);height:40px;display:flex;align-items:center;font-weight:600;white-space:nowrap}
.input-wrap input,.input-wrap select{border:none;background:transparent;padding:8px 10px;font-size:.9rem;color:var(--p3);width:100%;outline:none;height:40px;font-family:'Inter',sans-serif}
.hint{font-size:.74rem;color:var(--p4);margin-top:3px}
.sub-heading{font-size:.79rem;font-family:'Montserrat',sans-serif;font-weight:700;color:var(--p4);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;margin-top:2px}
hr.divider{border:none;border-top:1px dashed var(--p5);margin:13px 0}

/* CF ROWS */
.cf-grid{display:grid;grid-template-columns:70px 1fr;gap:8px;align-items:center;margin-bottom:7px}
.cf-year-label{font-size:.82rem;font-weight:700;color:var(--p1);text-align:right}
.cf-input{border:1.5px solid var(--p5);border-radius:7px;padding:7px 10px;font-size:.88rem;width:100%;background:var(--p6);color:var(--p3);outline:none;font-family:'Inter',sans-serif;transition:border-color var(--trans)}
.cf-input:focus{border-color:var(--p1)}
.cf-input.outflow{border-color:#ffd0d0}
.cf-input.inflow{border-color:#c6edda}

/* PRESET BUTTONS */
.preset-row{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.preset-btn{padding:5px 11px;border:1.5px solid var(--p5);border-radius:18px;font-size:.77rem;font-weight:600;cursor:pointer;background:var(--p6);color:var(--p4);transition:all var(--trans)}
.preset-btn:hover,.preset-btn.active{background:var(--p1);color:#fff;border-color:var(--p1)}

/* BUTTONS */
.calc-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.btn{padding:10px 20px;border-radius:8px;font-weight:600;font-size:.88rem;font-family:'Montserrat',sans-serif;cursor:pointer;border:none;transition:all var(--trans);display:inline-flex;align-items:center;gap:6px}
.btn-primary{background:var(--p1);color:#fff}.btn-primary:hover{background:var(--p2)}
.btn-secondary{background:var(--p6);color:var(--p1);border:1.5px solid var(--p1)}.btn-secondary:hover{background:var(--accent-light)}
.btn-whatsapp{background:#25D366;color:#fff}.btn-whatsapp:hover{background:#1DA851}
.btn-pdf,.btn-wa{display:none}

/* KPI GRID */
.kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
@media(max-width:480px){.kpi-grid{grid-template-columns:1fr}}
.kpi{background:var(--p6);border:1px solid var(--p5);border-radius:8px;padding:12px 13px;text-align:center}
.kpi.pos{background:var(--green-light);border-color:var(--p9)}
.kpi.neg{background:var(--red-light);border-color:var(--p8)}
.kpi.hl{background:var(--accent-light);border-color:var(--p1)}
.kpi.gold{background:var(--gold-light);border-color:var(--gold)}
.kpi-label{font-size:.73rem;color:var(--p4);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.kpi-val{font-size:1.25rem;font-weight:700;font-family:'Montserrat',sans-serif;color:var(--p3)}
.kpi-val.green{color:var(--p9)}.kpi-val.red{color:var(--p8)}.kpi-val.blue{color:var(--p1)}

/* DECISION BADGE */
.decision-box{border-radius:10px;padding:13px 16px;font-size:.9rem;font-weight:600;text-align:center;margin-bottom:14px}
.decision-accept{background:var(--green-light);border:2px solid var(--p9);color:var(--p9)}
.decision-reject{background:var(--red-light);border:2px solid var(--p8);color:var(--p8)}
.decision-borderline{background:var(--gold-light);border:2px solid var(--gold);color:var(--gold)}

/* TABLES */
.data-table{width:100%;border-collapse:collapse;font-size:.81rem;margin-top:10px}
.data-table th{background:var(--p1);color:#fff;padding:8px 9px;text-align:right;font-family:'Montserrat',sans-serif;font-size:.76rem}
.data-table th:first-child{text-align:left}
.data-table td{padding:7px 9px;border-bottom:1px solid var(--p5);text-align:right}
.data-table td:first-child{text-align:left;font-weight:600}
.data-table tr:nth-child(even){background:var(--p6)}
.data-table tr:hover{background:var(--accent-light)}
.scroll-wrap{overflow-x:auto;margin-top:8px}

/* CHART */
.chart-box{background:var(--p7);border:1px solid var(--p5);border-radius:var(--radius);padding:14px;margin-top:12px}
.chart-title{font-size:.86rem;font-family:'Montserrat',sans-serif;font-weight:700;color:var(--p3);margin-bottom:8px;text-align:center}
.chart-container{position:relative;height:270px}

/* INFO BOXES */
.info-box{background:var(--accent-light);border-left:4px solid var(--p1);border-radius:0 8px 8px 0;padding:11px 14px;margin-bottom:13px;font-size:.86rem}
.warn-box{background:var(--gold-light);border-left:4px solid var(--gold);border-radius:0 8px 8px 0;padding:11px 14px;margin-bottom:13px;font-size:.86rem}
.success-box{background:var(--green-light);border-left:4px solid var(--p9);border-radius:0 8px 8px 0;padding:11px 14px;margin-bottom:13px;font-size:.86rem}
.danger-box{background:var(--red-light);border-left:4px solid var(--p8);border-radius:0 8px 8px 0;padding:11px 14px;margin-bottom:13px;font-size:.86rem}

/* SCENARIO CARDS */
.scenario-cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:12px}
@media(max-width:640px){.scenario-cols{grid-template-columns:1fr}}
.scenario-card{border:2px solid var(--p5);border-radius:10px;padding:14px;background:var(--p6)}
.scenario-card.sc-best{border-color:var(--p9);background:var(--green-light)}
.scenario-card.sc-base{border-color:var(--p1);background:var(--accent-light)}
.scenario-card.sc-worst{border-color:var(--p8);background:var(--red-light)}
.sc-title{font-family:'Montserrat',sans-serif;font-weight:700;font-size:.88rem;margin-bottom:8px}
.sc-row{display:flex;justify-content:space-between;font-size:.82rem;margin-bottom:4px}
.sc-val{font-weight:700}

/* COMPARE TABLE */
.cmp-table{width:100%;border-collapse:collapse;font-size:.83rem}
.cmp-table th{background:var(--p1);color:#fff;padding:9px 11px;text-align:left;font-family:'Montserrat',sans-serif}
.cmp-table td{padding:9px 11px;border-bottom:1px solid var(--p5)}
.cmp-table tr:nth-child(even){background:var(--p6)}
.winner-tag{background:var(--p9);color:#fff;border-radius:12px;padding:2px 9px;font-size:.71rem;font-weight:700;margin-left:5px}
.rank-1{font-weight:700;color:var(--p9)}
.rank-last{color:var(--p8)}

/* WACC BREAKDOWN */
.wacc-result-bar{background:var(--accent-light);border:2px solid var(--p1);border-radius:10px;padding:14px;text-align:center;margin-bottom:14px}
.wacc-big{font-size:2.2rem;font-family:'Montserrat',sans-serif;font-weight:700;color:var(--p1)}

/* TOGGLE SECTIONS */
input[type=checkbox]{cursor:pointer;width:16px;height:16px}

/* FOOTER */
.tool-footer{text-align:center;padding:16px;font-size:.77rem;color:var(--p4);border-top:1px solid var(--p5);margin-top:20px}
/* ── SCOPED TO .hiw-* — zero conflict with calculator styles ── */

.hiw-section {
  background: var(--p6, #F7F9FC);
  padding: 56px 14px 64px;
  border-top: 2px solid var(--p5, #E0E4E8);
}
.hiw-wrap { max-width: 1200px; margin: 0 auto; }

/* ── EYEBROW ── */
.hiw-eyebrow {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--accent-light, #EBF3FF);
  border: 1px solid rgba(0,87,184,.22);
  border-radius: 999px; padding: 4px 14px;
  font-size: 11px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--accent, #0057B8);
  margin-bottom: 12px;
}

/* ── HEADING BLOCK ── */
.hiw-heading {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.25rem, 3vw, 1.9rem);
  font-weight: 800; color: var(--p3, #1D1D1F);
  line-height: 1.25; margin-bottom: 8px;
}
.hiw-heading span { color: var(--p1, #002868); }
.hiw-subhead {
  font-size: .93rem; color: var(--p4, #5F6368);
  max-width: 660px; line-height: 1.65; margin-bottom: 36px;
}

/* ── MODULE BADGE ROW ── */
.hiw-mod-pills {
  display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 36px;
}
.hiw-mod-pill {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--p7, #fff);
  border: 1.5px solid var(--p5, #E0E4E8);
  border-radius: 8px; padding: 5px 13px;
  font-size: .78rem; font-weight: 600;
  font-family: 'Montserrat', sans-serif;
  color: var(--p3, #1D1D1F); cursor: default;
}
.hiw-mod-pill .mp-num {
  background: var(--p1, #002868); color: #fff;
  border-radius: 50%; width: 18px; height: 18px;
  display: flex; align-items: center; justify-content: center;
  font-size: .68rem; font-weight: 800; flex-shrink: 0;
}

/* ── STEP GRID ── */
.hiw-steps {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 18px;
  margin-bottom: 36px;
}
@media (max-width: 700px) {
  .hiw-steps { grid-template-columns: 1fr; }
}

/* ── STEP CARD (reuses .card token set) ── */
.hiw-step {
  background: var(--p7, #fff);
  border: 1px solid var(--p5, #E0E4E8);
  border-radius: var(--radius, 10px);
  box-shadow: var(--shadow, 0 2px 16px rgba(0,40,104,.10));
  padding: 20px 20px 18px;
  position: relative;
  overflow: hidden;
  transition: box-shadow var(--trans, .18s ease),
              transform var(--trans, .18s ease);
}
.hiw-step:hover {
  box-shadow: 0 6px 28px rgba(0,40,104,.16);
  transform: translateY(-2px);
}

/* top accent bar per module color */
.hiw-step::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--step-color, var(--p1, #002868));
  border-radius: var(--radius, 10px) var(--radius, 10px) 0 0;
}

/* step number badge */
.hiw-step-num {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--step-color, var(--p1, #002868));
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Montserrat', sans-serif;
  font-size: .95rem; font-weight: 800;
  margin-bottom: 12px; flex-shrink: 0;
}

.hiw-step-tag {
  font-size: .7rem; font-weight: 700; letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--step-color, var(--p1, #002868));
  margin-bottom: 4px;
}
.hiw-step-title {
  font-family: 'Montserrat', sans-serif;
  font-size: .95rem; font-weight: 700;
  color: var(--p3, #1D1D1F); margin-bottom: 8px; line-height: 1.3;
}
.hiw-step-body {
  font-size: .84rem; color: var(--p4, #5F6368);
  line-height: 1.65; margin-bottom: 12px;
}
.hiw-step-body strong { color: var(--p3, #1D1D1F); }

/* input / output pills inside card */
.hiw-io-row {
  display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px;
}
.hiw-io-pill {
  display: inline-flex; align-items: center; gap: 4px;
  border-radius: 6px; padding: 3px 9px;
  font-size: .72rem; font-weight: 600;
}
.hiw-io-pill.in {
  background: var(--accent-light, #EBF3FF);
  border: 1px solid rgba(0,87,184,.18);
  color: var(--accent, #0057B8);
}
.hiw-io-pill.out {
  background: var(--green-light, #F0FBF5);
  border: 1px solid rgba(0,135,90,.18);
  color: var(--p9, #00875A);
}

/* connector arrow between steps (desktop only) */
@media (min-width: 701px) {
  .hiw-steps { position: relative; }
}

/* ── HOW TO USE — QUICK GUIDE CARD ── */
.hiw-guide {
  background: var(--p7, #fff);
  border: 1.5px solid var(--p5, #E0E4E8);
  border-top: 4px solid var(--p1, #002868);
  border-radius: 0 0 var(--radius, 10px) var(--radius, 10px);
  padding: 22px 24px 20px;
  margin-bottom: 24px;
}
.hiw-guide-title {
  font-family: 'Montserrat', sans-serif;
  font-size: .9rem; font-weight: 800;
  color: var(--p1, #002868);
  text-transform: uppercase; letter-spacing: .06em;
  margin-bottom: 16px;
  display: flex; align-items: center; gap: 8px;
}
.hiw-guide-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px;
}
.hiw-guide-item {
  display: flex; align-items: flex-start; gap: 10px;
}
.hiw-guide-icon {
  width: 32px; height: 32px; border-radius: 8px;
  background: var(--accent-light, #EBF3FF);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; margin-top: 1px;
}
.hiw-guide-icon svg { color: var(--p1, #002868); }
.hiw-guide-text { font-size: .83rem; line-height: 1.55; color: var(--p4, #5F6368); }
.hiw-guide-text strong { color: var(--p3, #1D1D1F); display: block; margin-bottom: 1px; }

/* ── FORMULA CALLOUT ── */
.hiw-formula {
  background: var(--accent-light, #EBF3FF);
  border-left: 4px solid var(--p1, #002868);
  border-radius: 0 8px 8px 0;
  padding: 14px 18px;
  font-size: .86rem; color: var(--p3, #1D1D1F);
  margin-bottom: 24px;
  line-height: 1.7;
}
.hiw-formula code {
  font-family: 'Courier New', monospace;
  background: rgba(0,40,104,.08);
  border-radius: 4px; padding: 1px 6px;
  font-size: .84rem; color: var(--p1, #002868);
  font-weight: 600;
}

/* ── BOTTOM INFO BAR ── */
.hiw-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 14px; margin-top: 8px;
}
@media (max-width: 640px) {
  .hiw-bottom { grid-template-columns: 1fr; }
}
.hiw-stat-card {
  background: var(--p7, #fff);
  border: 1px solid var(--p5, #E0E4E8);
  border-radius: var(--radius, 10px);
  padding: 16px 18px;
  text-align: center;
  box-shadow: var(--shadow);
}
.hiw-stat-val {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.6rem; font-weight: 800;
  color: var(--p1, #002868); line-height: 1;
  margin-bottom: 4px;
}
.hiw-stat-label {
  font-size: .78rem; color: var(--p4, #5F6368); font-weight: 600;
}
/* ── All scoped to .ex-* — zero conflict ── */
.ex-section {
  background: var(--p7, #fff);
  padding: 56px 14px 68px;
  border-top: 2px solid var(--p5, #E0E4E8);
}
.ex-wrap { max-width: 1200px; margin: 0 auto; }

/* ── EYEBROW ── */
.ex-eyebrow {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--green-light, #F0FBF5);
  border: 1px solid rgba(0,135,90,.22);
  border-radius: 999px; padding: 4px 14px;
  font-size: 11px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--p9, #00875A);
  margin-bottom: 12px;
}

/* ── HEADING ── */
.ex-heading {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.25rem, 3vw, 1.9rem);
  font-weight: 800; color: var(--p3, #1D1D1F);
  line-height: 1.25; margin-bottom: 8px;
}
.ex-heading span { color: var(--p1, #002868); }
.ex-subhead {
  font-size: .93rem; color: var(--p4, #5F6368);
  max-width: 680px; line-height: 1.65; margin-bottom: 40px;
}

/* ── EXAMPLE CARD ── */
.ex-card {
  background: var(--p7, #fff);
  border: 1.5px solid var(--p5, #E0E4E8);
  border-radius: var(--radius, 10px);
  box-shadow: var(--shadow, 0 2px 16px rgba(0,40,104,.10));
  margin-bottom: 28px;
  overflow: hidden;
}

/* card top persona bar */
.ex-card-head {
  background: linear-gradient(135deg, var(--p1, #002868) 0%, var(--accent, #0057B8) 100%);
  padding: 18px 22px 16px;
  display: flex; flex-wrap: wrap;
  align-items: flex-start; gap: 14px;
  justify-content: space-between;
}
.ex-persona { display: flex; align-items: center; gap: 12px; }
.ex-avatar {
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,.18);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem; flex-shrink: 0;
  border: 2px solid rgba(255,255,255,.3);
}
.ex-persona-info {}
.ex-persona-name {
  font-family: 'Montserrat', sans-serif;
  font-size: .97rem; font-weight: 800; color: #fff;
  line-height: 1.2; margin-bottom: 2px;
}
.ex-persona-meta {
  font-size: .76rem; color: rgba(255,255,255,.72); font-weight: 500;
}
.ex-verdict {
  display: inline-flex; align-items: center; gap: 5px;
  border-radius: 999px; padding: 5px 14px;
  font-size: .78rem; font-weight: 800;
  font-family: 'Montserrat', sans-serif;
  white-space: nowrap; flex-shrink: 0;
}
.ex-verdict.accept {
  background: var(--green-light, #F0FBF5);
  color: var(--p9, #00875A);
  border: 1.5px solid var(--p9, #00875A);
}
.ex-verdict.reject {
  background: var(--red-light, #FFF0F3);
  color: var(--p8, #BF0A30);
  border: 1.5px solid var(--p8, #BF0A30);
}
.ex-verdict.borderline {
  background: var(--gold-light, #FFF8E1);
  color: var(--gold, #C89200);
  border: 1.5px solid var(--gold, #C89200);
}

/* module + scenario context pills */
.ex-meta-row {
  padding: 12px 22px 0;
  display: flex; flex-wrap: wrap; gap: 7px;
}
.ex-meta-pill {
  display: inline-flex; align-items: center; gap: 5px;
  background: var(--p6, #F7F9FC);
  border: 1px solid var(--p5, #E0E4E8);
  border-radius: 6px; padding: 3px 10px;
  font-size: .74rem; font-weight: 600; color: var(--p4, #5F6368);
}
.ex-meta-pill svg { color: var(--p1, #002868); flex-shrink: 0; }
.ex-meta-pill.mod {
  background: var(--accent-light, #EBF3FF);
  border-color: rgba(0,87,184,.18);
  color: var(--accent, #0057B8);
}

/* card body grid */
.ex-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
@media (max-width: 760px) {
  .ex-body { grid-template-columns: 1fr; }
}

.ex-col {
  padding: 18px 22px 20px;
  border-right: 1px solid var(--p5, #E0E4E8);
}
.ex-col:last-child { border-right: none; }
@media (max-width: 760px) {
  .ex-col { border-right: none; border-bottom: 1px solid var(--p5, #E0E4E8); }
  .ex-col:last-child { border-bottom: none; }
}

.ex-col-label {
  font-family: 'Montserrat', sans-serif;
  font-size: .72rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: .07em;
  color: var(--p4, #5F6368); margin-bottom: 10px;
  display: flex; align-items: center; gap: 6px;
}
.ex-col-label.green { color: var(--p9, #00875A); }
.ex-col-label.red   { color: var(--p8, #BF0A30); }

/* scenario box (mirrors .scenario-card) */
.ex-scenario {
  border: 2px solid var(--p5, #E0E4E8);
  border-radius: 8px; padding: 13px 14px;
  background: var(--p6, #F7F9FC);
}
.ex-scenario.best {
  border-color: var(--p9, #00875A);
  background: var(--green-light, #F0FBF5);
}
.ex-scenario.worst {
  border-color: var(--p8, #BF0A30);
  background: var(--red-light, #FFF0F3);
}
.ex-scenario-title {
  font-family: 'Montserrat', sans-serif;
  font-size: .82rem; font-weight: 700;
  color: var(--p3, #1D1D1F); margin-bottom: 9px;
}
.ex-sc-row {
  display: flex; justify-content: space-between;
  font-size: .81rem; margin-bottom: 4px;
  color: var(--p4, #5F6368);
}
.ex-sc-val { font-weight: 700; color: var(--p3, #1D1D1F); }
.ex-sc-val.green { color: var(--p9, #00875A); }
.ex-sc-val.red   { color: var(--p8, #BF0A30); }
.ex-sc-val.blue  { color: var(--p1, #002868); }
.ex-sc-val.gold  { color: var(--gold, #C89200); }

/* KPI strip (mirrors .kpi-grid) */
.ex-kpi-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  padding: 14px 22px 0;
  border-top: 1px solid var(--p5, #E0E4E8);
}
@media (max-width: 640px) {
  .ex-kpi-strip { grid-template-columns: 1fr 1fr; }
}
.ex-kpi {
  background: var(--p6, #F7F9FC);
  border: 1px solid var(--p5, #E0E4E8);
  border-radius: 8px; padding: 10px 12px; text-align: center;
}
.ex-kpi.hl { background: var(--accent-light, #EBF3FF); border-color: rgba(0,87,184,.18); }
.ex-kpi.pos { background: var(--green-light, #F0FBF5); border-color: rgba(0,135,90,.2); }
.ex-kpi.neg { background: var(--red-light, #FFF0F3); border-color: rgba(191,10,48,.18); }
.ex-kpi.gld { background: var(--gold-light, #FFF8E1); border-color: rgba(200,146,0,.2); }
.ex-kpi-label {
  font-size: .69rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: .04em; color: var(--p4, #5F6368); margin-bottom: 3px;
}
.ex-kpi-val {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.05rem; font-weight: 800; color: var(--p3, #1D1D1F);
}
.ex-kpi-val.green { color: var(--p9, #00875A); }
.ex-kpi-val.red   { color: var(--p8, #BF0A30); }
.ex-kpi-val.blue  { color: var(--p1, #002868); }
.ex-kpi-val.gold  { color: var(--gold, #C89200); }

/* decision + takeaway row */
.ex-footer-row {
  padding: 14px 22px 18px;
  border-top: 1px solid var(--p5, #E0E4E8);
  display: grid; grid-template-columns: 1fr 2fr; gap: 14px;
  align-items: start;
}
@media (max-width: 640px) {
  .ex-footer-row { grid-template-columns: 1fr; }
}
.ex-decision {
  border-radius: 8px; padding: 11px 14px;
  font-size: .83rem; font-weight: 700;
  text-align: center; line-height: 1.4;
}
.ex-decision.accept {
  background: var(--green-light, #F0FBF5);
  border: 2px solid var(--p9, #00875A);
  color: var(--p9, #00875A);
}
.ex-decision.reject {
  background: var(--red-light, #FFF0F3);
  border: 2px solid var(--p8, #BF0A30);
  color: var(--p8, #BF0A30);
}
.ex-decision.borderline {
  background: var(--gold-light, #FFF8E1);
  border: 2px solid var(--gold, #C89200);
  color: var(--gold, #C89200);
}
.ex-takeaway {
  background: var(--accent-light, #EBF3FF);
  border-left: 4px solid var(--p1, #002868);
  border-radius: 0 8px 8px 0;
  padding: 10px 14px;
  font-size: .83rem; color: var(--p3, #1D1D1F); line-height: 1.6;
}
.ex-takeaway strong { color: var(--p1, #002868); }

/* example number divider */
.ex-divider {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 16px;
}
.ex-divider-num {
  font-family: 'Montserrat', sans-serif;
  font-size: .78rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: .08em;
  color: var(--p1, #002868); white-space: nowrap;
  background: var(--accent-light, #EBF3FF);
  border: 1px solid rgba(0,87,184,.18);
  border-radius: 6px; padding: 3px 10px;
}
.ex-divider-line {
  flex: 1; height: 1px;
  background: var(--p5, #E0E4E8);
}

/* CF table inside scenario col */
.ex-cf-row {
  display: flex; justify-content: space-between;
  font-size: .78rem; margin-bottom: 3px; color: var(--p4, #5F6368);
}
.ex-cf-val { font-weight: 600; }
.ex-cf-val.pos { color: var(--p9, #00875A); }
.ex-cf-val.neg { color: var(--p8, #BF0A30); }

/* ── All scoped to .pt-* — zero conflict ── */
.pt-section {
  background: var(--p6, #F7F9FC);
  padding: 56px 14px 68px;
  border-top: 2px solid var(--p5, #E0E4E8);
}
.pt-wrap { max-width: 1200px; margin: 0 auto; }

/* ── EYEBROW ── */
.pt-eyebrow {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--gold-light, #FFF8E1);
  border: 1px solid rgba(200,146,0,.25);
  border-radius: 999px; padding: 4px 14px;
  font-size: 11px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--gold, #C89200);
  margin-bottom: 12px;
}

/* ── HEADING ── */
.pt-heading {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.25rem, 3vw, 1.9rem);
  font-weight: 800; color: var(--p3, #1D1D1F);
  line-height: 1.25; margin-bottom: 8px;
}
.pt-heading span { color: var(--p1, #002868); }
.pt-subhead {
  font-size: .93rem; color: var(--p4, #5F6368);
  max-width: 680px; line-height: 1.65; margin-bottom: 40px;
}

/* ── CATEGORY TABS (reuse .mod-tab pattern) ── */
.pt-tabs {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-bottom: 28px;
}
.pt-tab-pill {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--p7, #fff);
  border: 1.5px solid var(--p5, #E0E4E8);
  border-radius: 999px; padding: 5px 14px;
  font-size: .78rem; font-weight: 700;
  font-family: 'Montserrat', sans-serif;
  color: var(--p4, #5F6368);
}

/* ── MAIN TIPS GRID ── */
.pt-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 16px;
  margin-bottom: 32px;
}
@media (max-width: 720px) { .pt-grid { grid-template-columns: 1fr; } }

/* ── TIP CARD (mirrors .card) ── */
.pt-card {
  background: var(--p7, #fff);
  border: 1.5px solid var(--p5, #E0E4E8);
  border-radius: var(--radius, 10px);
  box-shadow: var(--shadow, 0 2px 16px rgba(0,40,104,.10));
  overflow: hidden;
  transition: box-shadow var(--trans,.18s ease), transform var(--trans,.18s ease);
}
.pt-card:hover {
  box-shadow: 0 6px 24px rgba(0,40,104,.15);
  transform: translateY(-2px);
}

/* top accent stripe */
.pt-card-stripe {
  height: 4px;
  background: var(--stripe-color, var(--p1, #002868));
}

.pt-card-body { padding: 18px 20px 16px; }

/* tip number + category row */
.pt-card-meta {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 10px;
}
.pt-num {
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--stripe-color, var(--p1, #002868));
  color: #fff; font-size: .72rem; font-weight: 800;
  font-family: 'Montserrat', sans-serif;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.pt-cat {
  font-size: .69rem; font-weight: 700; letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--stripe-color, var(--p1, #002868));
}

.pt-card-title {
  font-family: 'Montserrat', sans-serif;
  font-size: .95rem; font-weight: 800;
  color: var(--p3, #1D1D1F); margin-bottom: 8px; line-height: 1.3;
}

.pt-card-body p {
  font-size: .84rem; color: var(--p4, #5F6368);
  line-height: 1.68; margin-bottom: 10px;
}
.pt-card-body p strong { color: var(--p3, #1D1D1F); }
.pt-card-body p:last-child { margin-bottom: 0; }

/* inline formula / code block (mirrors .info-box border-left) */
.pt-formula {
  background: var(--accent-light, #EBF3FF);
  border-left: 3px solid var(--p1, #002868);
  border-radius: 0 6px 6px 0;
  padding: 8px 12px;
  font-size: .8rem; color: var(--p3, #1D1D1F);
  line-height: 1.6; margin-bottom: 10px;
}
.pt-formula code {
  font-family: 'Courier New', monospace;
  background: rgba(0,40,104,.08);
  border-radius: 3px; padding: 1px 5px;
  font-size: .78rem; color: var(--p1, #002868); font-weight: 600;
}
.pt-formula.warn {
  background: var(--gold-light, #FFF8E1);
  border-left-color: var(--gold, #C89200);
}
.pt-formula.warn code { background: rgba(200,146,0,.1); color: var(--gold, #C89200); }
.pt-formula.danger {
  background: var(--red-light, #FFF0F3);
  border-left-color: var(--p8, #BF0A30);
}
.pt-formula.danger code { background: rgba(191,10,48,.08); color: var(--p8, #BF0A30); }
.pt-formula.success {
  background: var(--green-light, #F0FBF5);
  border-left-color: var(--p9, #00875A);
}
.pt-formula.success code { background: rgba(0,135,90,.08); color: var(--p9, #00875A); }

/* checklist inside card */
.pt-list {
  list-style: none; margin: 0 0 10px; padding: 0;
  display: flex; flex-direction: column; gap: 5px;
}
.pt-list li {
  font-size: .82rem; color: var(--p4, #5F6368);
  display: flex; align-items: flex-start; gap: 7px; line-height: 1.5;
}
.pt-list li::before {
  content: '✔';
  color: var(--p9, #00875A);
  font-size: .75rem; font-weight: 800;
  flex-shrink: 0; margin-top: 1px;
}
.pt-list li strong { color: var(--p3, #1D1D1F); }

/* ── WIDE FEATURED TIP (full-width card) ── */
.pt-featured {
  background: var(--p1, #002868);
  border-radius: var(--radius, 10px);
  padding: 24px 26px 22px;
  margin-bottom: 32px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px; align-items: start;
}
@media (max-width: 680px) {
  .pt-featured { grid-template-columns: 1fr; gap: 16px; padding: 18px 18px 16px; }
}
.pt-featured-label {
  font-size: .7rem; font-weight: 800; letter-spacing: .1em;
  text-transform: uppercase; color: rgba(255,255,255,.55);
  margin-bottom: 6px;
}
.pt-featured-title {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(.95rem, 2vw, 1.2rem); font-weight: 800;
  color: #fff; line-height: 1.3; margin-bottom: 10px;
}
.pt-featured-body {
  font-size: .84rem; color: rgba(255,255,255,.72);
  line-height: 1.68;
}
.pt-featured-body strong { color: #fff; }
.pt-featured-right { }
.pt-featured-box {
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 8px; padding: 14px 16px;
}
.pt-featured-box-title {
  font-family: 'Montserrat', sans-serif;
  font-size: .78rem; font-weight: 800;
  color: rgba(255,255,255,.6);
  text-transform: uppercase; letter-spacing: .07em;
  margin-bottom: 10px;
}
.pt-frow {
  display: flex; justify-content: space-between;
  font-size: .81rem; margin-bottom: 5px;
  color: rgba(255,255,255,.6);
}
.pt-frow strong { color: #fff; font-weight: 700; }
.pt-frow .good { color: #6ee8b0; }
.pt-frow .bad  { color: #f4a0aa; }

/* ── MISTAKE STRIP (warn-box style) ── */
.pt-mistakes {
  background: var(--red-light, #FFF0F3);
  border: 1.5px solid rgba(191,10,48,.18);
  border-left: 4px solid var(--p8, #BF0A30);
  border-radius: 0 var(--radius,10px) var(--radius,10px) 0;
  padding: 18px 22px;
  margin-bottom: 32px;
}
.pt-mistakes-title {
  font-family: 'Montserrat', sans-serif;
  font-size: .88rem; font-weight: 800;
  color: var(--p8, #BF0A30);
  text-transform: uppercase; letter-spacing: .06em;
  margin-bottom: 12px;
  display: flex; align-items: center; gap: 7px;
}
.pt-mistake-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 10px;
}
.pt-mistake-item {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: .82rem; color: var(--p3, #1D1D1F); line-height: 1.5;
}
.pt-mistake-item::before {
  content: '✘';
  color: var(--p8, #BF0A30); font-weight: 800;
  font-size: .75rem; flex-shrink: 0; margin-top: 2px;
}
.pt-mistake-item strong { color: var(--p8, #BF0A30); display: block; }

/* ── BOTTOM CTA STRIP ── */
.pt-cta {
  background: var(--accent-light, #EBF3FF);
  border: 1.5px solid rgba(0,87,184,.18);
  border-radius: var(--radius, 10px);
  padding: 18px 22px;
  display: flex; flex-wrap: wrap;
  align-items: center; justify-content: space-between; gap: 14px;
}
.pt-cta-text {
  font-size: .88rem; color: var(--p3, #1D1D1F); line-height: 1.55;
  max-width: 640px;
}
.pt-cta-text strong { color: var(--p1, #002868); }
.pt-cta-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--p1, #002868); color: #fff;
  border-radius: 8px; padding: 10px 20px;
  font-family: 'Montserrat', sans-serif;
  font-size: .85rem; font-weight: 700;
  text-decoration: none; white-space: nowrap;
  transition: background var(--trans,.18s ease);
  border: none; cursor: pointer;
}
.pt-cta-btn:hover { background: var(--p2, #00183F); }

/* ── All scoped to .faq-* — zero conflict ── */
.faq-section {
  background: var(--p7, #fff);
  padding: 56px 14px 68px;
  border-top: 2px solid var(--p5, #E0E4E8);
}
.faq-wrap { max-width: 1200px; margin: 0 auto; }

/* ── EYEBROW ── */
.faq-eyebrow {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--accent-light, #EBF3FF);
  border: 1px solid rgba(0,87,184,.22);
  border-radius: 999px; padding: 4px 14px;
  font-size: 11px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--accent, #0057B8);
  margin-bottom: 12px;
}

/* ── HEADING ── */
.faq-heading {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.25rem, 3vw, 1.9rem);
  font-weight: 800; color: var(--p3, #1D1D1F);
  line-height: 1.25; margin-bottom: 8px;
}
.faq-heading span { color: var(--p1, #002868); }
.faq-subhead {
  font-size: .93rem; color: var(--p4, #5F6368);
  max-width: 680px; line-height: 1.65; margin-bottom: 36px;
}

/* ── CATEGORY FILTER PILLS ── */
.faq-cats {
  display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px;
}
.faq-cat {
  display: inline-flex; align-items: center; gap: 5px;
  background: var(--p6, #F7F9FC);
  border: 1.5px solid var(--p5, #E0E4E8);
  border-radius: 999px; padding: 5px 14px;
  font-size: .76rem; font-weight: 700;
  font-family: 'Montserrat', sans-serif;
  color: var(--p4, #5F6368); cursor: default;
}

/* ── TWO-COLUMN GRID ── */
.faq-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 32px;
}
@media (max-width: 780px) { .faq-grid { grid-template-columns: 1fr; } }

/* ── FAQ ACCORDION CARD (mirrors .card) ── */
.faq-item {
  background: var(--p6, #F7F9FC);
  border: 1.5px solid var(--p5, #E0E4E8);
  border-radius: var(--radius, 10px);
  overflow: hidden;
  transition: box-shadow var(--trans,.18s ease);
}
.faq-item:hover { box-shadow: var(--shadow, 0 2px 16px rgba(0,40,104,.10)); }

/* native details/summary accordion — no JS needed */
.faq-item details { }
.faq-item summary {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 15px 16px;
  cursor: pointer;
  list-style: none;
  font-size: .875rem; font-weight: 600;
  color: var(--p3, #1D1D1F);
  line-height: 1.45;
  user-select: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::marker { display: none; }

.faq-q-num {
  min-width: 22px; height: 22px; border-radius: 50%;
  background: var(--p1, #002868); color: #fff;
  font-size: .67rem; font-weight: 800;
  font-family: 'Montserrat', sans-serif;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; margin-top: 1px;
}
.faq-q-text { flex: 1; }
.faq-chevron {
  flex-shrink: 0; margin-top: 2px;
  color: var(--p4, #5F6368);
  transition: transform var(--trans,.18s ease);
}
.faq-item details[open] .faq-chevron {
  transform: rotate(180deg);
}
.faq-item details[open] summary {
  border-bottom: 1px solid var(--p5, #E0E4E8);
  background: var(--p7, #fff);
}
.faq-item details[open] {
  background: var(--p7, #fff);
  border-color: rgba(0,40,104,.2);
}

.faq-answer {
  padding: 14px 16px 16px 48px;
  font-size: .845rem; color: var(--p4, #5F6368);
  line-height: 1.72;
}
.faq-answer strong { color: var(--p3, #1D1D1F); }
.faq-answer a { color: var(--p1, #002868); font-weight: 600; }

/* inline formula inside answer */
.faq-code {
  display: block;
  background: var(--accent-light, #EBF3FF);
  border-left: 3px solid var(--p1, #002868);
  border-radius: 0 6px 6px 0;
  padding: 7px 11px;
  font-family: 'Courier New', monospace;
  font-size: .79rem; color: var(--p1, #002868);
  font-weight: 600; margin: 8px 0;
}
.faq-code.warn {
  background: var(--gold-light, #FFF8E1);
  border-left-color: var(--gold, #C89200);
  color: #7a5500;
}
.faq-code.success {
  background: var(--green-light, #F0FBF5);
  border-left-color: var(--p9, #00875A);
  color: #00502f;
}

/* answer bullet list */
.faq-list {
  margin: 8px 0 4px; padding: 0;
  list-style: none; display: flex; flex-direction: column; gap: 4px;
}
.faq-list li {
  font-size: .83rem; color: var(--p4, #5F6368);
  display: flex; align-items: flex-start; gap: 7px; line-height: 1.5;
}
.faq-list li::before {
  content: '→'; color: var(--p1, #002868);
  font-weight: 800; font-size: .72rem;
  flex-shrink: 0; margin-top: 2px;
}
.faq-list li strong { color: var(--p3, #1D1D1F); }

/* category divider label */
.faq-section-label {
  grid-column: 1 / -1;
  display: flex; align-items: center; gap: 10px;
  margin-top: 8px; margin-bottom: 2px;
}
.faq-section-label span {
  font-family: 'Montserrat', sans-serif;
  font-size: .72rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: .08em;
  color: var(--p1, #002868);
  background: var(--accent-light, #EBF3FF);
  border: 1px solid rgba(0,87,184,.18);
  border-radius: 6px; padding: 3px 10px;
  white-space: nowrap;
}
.faq-section-label hr {
  flex: 1; border: none;
  border-top: 1px solid var(--p5, #E0E4E8);
}

/* ── BOTTOM NOTE BOX ── */
.faq-note {
  background: var(--accent-light, #EBF3FF);
  border-left: 4px solid var(--p1, #002868);
  border-radius: 0 var(--radius,10px) var(--radius,10px) 0;
  padding: 14px 18px;
  font-size: .85rem; color: var(--p3, #1D1D1F); line-height: 1.65;
}
.faq-note strong { color: var(--p1, #002868); }

/* ── All scoped to .rc-* — zero conflict ── */
.rc-section {
  background: var(--p6, #F7F9FC);
  padding: 56px 14px 68px;
  border-top: 2px solid var(--p5, #E0E4E8);
}
.rc-wrap { max-width: 1200px; margin: 0 auto; }

/* ── EYEBROW ── */
.rc-eyebrow {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--accent-light, #EBF3FF);
  border: 1px solid rgba(0,87,184,.22);
  border-radius: 999px; padding: 4px 14px;
  font-size: 11px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--accent, #0057B8);
  margin-bottom: 12px;
}

/* ── HEADING ── */
.rc-heading {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.25rem, 3vw, 1.9rem);
  font-weight: 800; color: var(--p3, #1D1D1F);
  line-height: 1.25; margin-bottom: 8px;
}
.rc-heading span { color: var(--p1, #002868); }
.rc-subhead {
  font-size: .93rem; color: var(--p4, #5F6368);
  max-width: 680px; line-height: 1.65; margin-bottom: 36px;
}

/* ── CATEGORY GROUP ── */
.rc-group { margin-bottom: 36px; }
.rc-group-label {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 14px;
}
.rc-group-label span {
  font-family: 'Montserrat', sans-serif;
  font-size: .74rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: .08em;
  white-space: nowrap;
  padding: 4px 12px; border-radius: 6px;
}
.rc-group-label hr {
  flex: 1; border: none;
  border-top: 1px solid var(--p5, #E0E4E8);
}

/* group accent colors */
.rc-group.primary .rc-group-label span {
  background: var(--p1, #002868); color: #fff;
}
.rc-group.investing .rc-group-label span {
  background: var(--accent-light, #EBF3FF);
  border: 1px solid rgba(0,87,184,.2);
  color: var(--accent, #0057B8);
}
.rc-group.business .rc-group-label span {
  background: var(--green-light, #F0FBF5);
  border: 1px solid rgba(0,135,90,.2);
  color: var(--p9, #00875A);
}
.rc-group.tax .rc-group-label span {
  background: var(--gold-light, #FFF8E1);
  border: 1px solid rgba(200,146,0,.2);
  color: var(--gold, #C89200);
}
.rc-group.mortgage .rc-group-label span {
  background: var(--red-light, #FFF0F3);
  border: 1px solid rgba(191,10,48,.15);
  color: var(--p8, #BF0A30);
}

/* ── CARD GRID ── */
.rc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}
@media (max-width: 560px) { .rc-grid { grid-template-columns: 1fr; } }

/* ── CALCULATOR CARD ── */
.rc-card {
  background: var(--p7, #fff);
  border: 1.5px solid var(--p5, #E0E4E8);
  border-radius: var(--radius, 10px);
  padding: 15px 16px 13px;
  display: flex; flex-direction: column; gap: 7px;
  text-decoration: none;
  transition: box-shadow var(--trans,.18s ease),
              transform var(--trans,.18s ease),
              border-color var(--trans,.18s ease);
  box-shadow: var(--shadow, 0 2px 16px rgba(0,40,104,.10));
  cursor: pointer;
}
.rc-card:hover {
  box-shadow: 0 6px 24px rgba(0,40,104,.16);
  transform: translateY(-2px);
  border-color: rgba(0,40,104,.25);
  text-decoration: none;
}

/* featured card (NPV siblings) */
.rc-card.featured {
  border-color: rgba(0,40,104,.25);
  border-top: 3px solid var(--p1, #002868);
}
.rc-card.featured:hover {
  border-color: var(--p1, #002868);
}

.rc-card-top {
  display: flex; align-items: flex-start; gap: 10px;
}
.rc-icon {
  width: 36px; height: 36px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem; flex-shrink: 0;
  background: var(--p6, #F7F9FC);
  border: 1px solid var(--p5, #E0E4E8);
}
.rc-card-info { flex: 1; }
.rc-card-name {
  font-family: 'Montserrat', sans-serif;
  font-size: .86rem; font-weight: 800;
  color: var(--p3, #1D1D1F); line-height: 1.3;
  margin-bottom: 2px;
}
.rc-card-cat {
  font-size: .7rem; font-weight: 600;
  color: var(--p4, #5F6368); text-transform: uppercase;
  letter-spacing: .05em;
}
.rc-card-desc {
  font-size: .78rem; color: var(--p4, #5F6368);
  line-height: 1.55;
}
.rc-card-link {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: .75rem; font-weight: 700;
  font-family: 'Montserrat', sans-serif;
  color: var(--p1, #002868);
  margin-top: 2px;
}
.rc-card-link svg { flex-shrink: 0; }

/* badge on card */
.rc-badge {
  display: inline-flex; align-items: center;
  background: var(--accent-light, #EBF3FF);
  border: 1px solid rgba(0,87,184,.18);
  border-radius: 4px; padding: 2px 7px;
  font-size: .65rem; font-weight: 800;
  color: var(--accent, #0057B8);
  letter-spacing: .04em; text-transform: uppercase;
  align-self: flex-start;
}
.rc-badge.new {
  background: var(--green-light, #F0FBF5);
  border-color: rgba(0,135,90,.2);
  color: var(--p9, #00875A);
}
.rc-badge.hot {
  background: var(--red-light, #FFF0F3);
  border-color: rgba(191,10,48,.15);
  color: var(--p8, #BF0A30);
}
.rc-badge.top {
  background: var(--gold-light, #FFF8E1);
  border-color: rgba(200,146,0,.2);
  color: var(--gold, #C89200);
}

/* ── BOTTOM CTA BANNER ── */
.rc-cta {
  margin-top: 16px;
  background: linear-gradient(135deg, var(--p1, #002868) 0%, var(--accent, #0057B8) 100%);
  border-radius: var(--radius, 10px);
  padding: 22px 26px;
  display: flex; flex-wrap: wrap;
  align-items: center; justify-content: space-between; gap: 16px;
}
.rc-cta-text {
  color: #fff;
  font-size: .92rem; line-height: 1.55; max-width: 600px;
}
.rc-cta-text strong { font-family: 'Montserrat', sans-serif; font-size: 1rem; }
.rc-cta-text p { color: rgba(255,255,255,.72); font-size: .83rem; margin-top: 4px; }
.rc-cta-btn {
  display: inline-flex; align-items: center; gap: 7px;
  background: #fff; color: var(--p1, #002868);
  border-radius: 8px; padding: 11px 22px;
  font-family: 'Montserrat', sans-serif;
  font-size: .85rem; font-weight: 800;
  text-decoration: none; white-space: nowrap;
  transition: background var(--trans,.18s ease), color var(--trans,.18s ease);
  border: none; cursor: pointer;
}
.rc-cta-btn:hover { background: var(--accent-light, #EBF3FF); }

/* ── All scoped to .wm-* — zero conflict ── */
.wm-section {
  background: var(--p7, #fff);
  padding: 56px 14px 68px;
  border-top: 2px solid var(--p5, #E0E4E8);
}
.wm-wrap { max-width: 1200px; margin: 0 auto; }

/* ── EYEBROW ── */
.wm-eyebrow {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--gold-light, #FFF8E1);
  border: 1px solid rgba(200,146,0,.25);
  border-radius: 999px; padding: 4px 14px;
  font-size: 11px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--gold, #C89200);
  margin-bottom: 12px;
}

/* ── HEADING ── */
.wm-heading {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.25rem, 3vw, 1.9rem);
  font-weight: 800; color: var(--p3, #1D1D1F);
  line-height: 1.25; margin-bottom: 8px;
}
.wm-heading span { color: var(--p1, #002868); }
.wm-subhead {
  font-size: .93rem; color: var(--p4, #5F6368);
  max-width: 680px; line-height: 1.65; margin-bottom: 40px;
}

/* ══════════════════════════════
   DECISION MATRIX TABLE
   (mirrors .cmp-table pattern)
   ══════════════════════════════ */
.wm-matrix-wrap {
  overflow-x: auto;
  border: 1.5px solid var(--p5, #E0E4E8);
  border-radius: var(--radius, 10px);
  box-shadow: var(--shadow, 0 2px 16px rgba(0,40,104,.10));
  margin-bottom: 36px;
}
.wm-matrix {
  width: 100%;
  border-collapse: collapse;
  font-size: .83rem;
  min-width: 680px;
}
.wm-matrix thead tr {
  background: var(--p1, #002868);
}
.wm-matrix thead th {
  padding: 11px 14px;
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-size: .76rem; font-weight: 700;
  text-align: left; white-space: nowrap;
}
.wm-matrix thead th:first-child {
  border-radius: var(--radius,10px) 0 0 0;
  min-width: 200px;
}
.wm-matrix thead th:last-child {
  border-radius: 0 var(--radius,10px) 0 0;
}
.wm-matrix tbody tr:nth-child(even) {
  background: var(--p6, #F7F9FC);
}
.wm-matrix tbody tr:hover {
  background: var(--accent-light, #EBF3FF);
}
.wm-matrix tbody td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--p5, #E0E4E8);
  vertical-align: middle;
  color: var(--p4, #5F6368);
  line-height: 1.5;
}
.wm-matrix tbody td:first-child {
  font-weight: 700; color: var(--p3, #1D1D1F);
}
.wm-matrix tbody tr:last-child td { border-bottom: none; }

/* tick / cross / partial */
.wm-tick  { color: var(--p9, #00875A); font-weight: 800; font-size: .9rem; }
.wm-cross { color: var(--p8, #BF0A30); font-weight: 800; font-size: .9rem; }
.wm-part  { color: var(--gold, #C89200); font-weight: 800; font-size: .9rem; }

/* module number badge inline */
.wm-mod-badge {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--p1, #002868); color: #fff;
  font-size: .65rem; font-weight: 800;
  font-family: 'Montserrat', sans-serif;
  vertical-align: middle; margin-right: 4px;
  flex-shrink: 0;
}

/* ══════════════════════════════
   SCENARIO CARDS — 6 MODULE CARDS
   (mirrors .scenario-card pattern)
   ══════════════════════════════ */
.wm-cards-heading {
  font-family: 'Montserrat', sans-serif;
  font-size: .88rem; font-weight: 800;
  color: var(--p1, #002868); text-transform: uppercase;
  letter-spacing: .06em; margin-bottom: 16px;
  display: flex; align-items: center; gap: 8px;
}
.wm-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 16px;
  margin-bottom: 36px;
}
@media (max-width: 720px) { .wm-cards { grid-template-columns: 1fr; } }

.wm-card {
  background: var(--p6, #F7F9FC);
  border: 2px solid var(--p5, #E0E4E8);
  border-radius: var(--radius, 10px);
  overflow: hidden;
  transition: box-shadow var(--trans,.18s ease), transform var(--trans,.18s ease);
  box-shadow: var(--shadow);
}
.wm-card:hover {
  box-shadow: 0 6px 24px rgba(0,40,104,.15);
  transform: translateY(-2px);
}

.wm-card-header {
  padding: 14px 16px 12px;
  border-bottom: 1px solid var(--p5, #E0E4E8);
  display: flex; align-items: flex-start; gap: 10px;
}
.wm-card-num {
  width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Montserrat', sans-serif;
  font-size: .88rem; font-weight: 800; color: #fff;
  flex-shrink: 0;
}
.wm-card-title-block { flex: 1; }
.wm-card-label {
  font-size: .67rem; font-weight: 700; letter-spacing: .07em;
  text-transform: uppercase; margin-bottom: 2px;
}
.wm-card-name {
  font-family: 'Montserrat', sans-serif;
  font-size: .93rem; font-weight: 800;
  color: var(--p3, #1D1D1F); line-height: 1.25;
}

.wm-card-body { padding: 14px 16px 16px; }
.wm-card-body p {
  font-size: .83rem; color: var(--p4, #5F6368);
  line-height: 1.65; margin-bottom: 10px;
}
.wm-card-body p strong { color: var(--p3, #1D1D1F); }

/* "Best For" use-case list */
.wm-use-title {
  font-size: .7rem; font-weight: 800; letter-spacing: .06em;
  text-transform: uppercase; color: var(--p4, #5F6368);
  margin-bottom: 6px;
}
.wm-use-list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 4px;
}
.wm-use-list li {
  font-size: .8rem; color: var(--p4, #5F6368);
  display: flex; align-items: flex-start; gap: 6px; line-height: 1.45;
}
.wm-use-list li::before {
  content: '→';
  font-weight: 800; font-size: .72rem;
  flex-shrink: 0; margin-top: 1px;
}
.wm-use-list li strong { color: var(--p3, #1D1D1F); }

/* "NOT best for" warning pill */
.wm-warn-pill {
  display: inline-flex; align-items: center; gap: 5px;
  background: var(--red-light, #FFF0F3);
  border: 1px solid rgba(191,10,48,.15);
  border-radius: 6px; padding: 4px 10px;
  font-size: .74rem; font-weight: 600;
  color: var(--p8, #BF0A30); margin-top: 10px;
  line-height: 1.4;
}

/* inputs / outputs mini-grid */
.wm-io {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 8px; margin-top: 10px;
}
.wm-io-box {
  border-radius: 7px; padding: 8px 10px;
  font-size: .77rem; line-height: 1.5;
}
.wm-io-box.in {
  background: var(--accent-light, #EBF3FF);
  border: 1px solid rgba(0,87,184,.15);
}
.wm-io-box.out {
  background: var(--green-light, #F0FBF5);
  border: 1px solid rgba(0,135,90,.15);
}
.wm-io-label {
  font-size: .67rem; font-weight: 800; letter-spacing: .06em;
  text-transform: uppercase; margin-bottom: 4px;
  color: var(--p4, #5F6368);
}
.wm-io-label.in { color: var(--accent, #0057B8); }
.wm-io-label.out { color: var(--p9, #00875A); }
.wm-io-item {
  display: flex; align-items: flex-start; gap: 4px;
  font-size: .75rem; color: var(--p4, #5F6368); margin-bottom: 2px;
}
.wm-io-item::before { content: '·'; font-weight: 900; flex-shrink: 0; }

/* Module color scheme */
.wm-m1 { --mc: #002868; }
.wm-m2 { --mc: #0057B8; }
.wm-m3 { --mc: #C89200; }
.wm-m4 { --mc: #00875A; }
.wm-m5 { --mc: #BF0A30; }
.wm-m6 { --mc: #6B3FA0; }

.wm-card.wm-m1 { border-color: rgba(0,40,104,.25); }
.wm-card.wm-m2 { border-color: rgba(0,87,184,.25); }
.wm-card.wm-m3 { border-color: rgba(200,146,0,.3); }
.wm-card.wm-m4 { border-color: rgba(0,135,90,.25); }
.wm-card.wm-m5 { border-color: rgba(191,10,48,.2); }
.wm-card.wm-m6 { border-color: rgba(107,63,160,.25); }

.wm-card-num   { background: var(--mc, #002868); }
.wm-card-label { color: var(--mc, #002868); }
.wm-use-list li::before { color: var(--mc, #002868); }

/* ══════════════════════════════
   QUICK-PICK DECISION FLOWCHART
   (card with scenario-cols pattern)
   ══════════════════════════════ */
.wm-flow-card {
  background: var(--p1, #002868);
  border-radius: var(--radius, 10px);
  padding: 24px 26px 22px;
  margin-bottom: 32px;
}
.wm-flow-title {
  font-family: 'Montserrat', sans-serif;
  font-size: .92rem; font-weight: 800;
  color: rgba(255,255,255,.55);
  text-transform: uppercase; letter-spacing: .07em;
  margin-bottom: 16px;
  display: flex; align-items: center; gap: 8px;
}
.wm-flow-title span { color: #fff; }
.wm-flow-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px;
}
@media (max-width: 520px) { .wm-flow-grid { grid-template-columns: 1fr; } }
.wm-flow-item {
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 8px; padding: 12px 13px;
}
.wm-flow-q {
  font-size: .77rem; color: rgba(255,255,255,.65);
  margin-bottom: 7px; line-height: 1.4;
  font-style: italic;
}
.wm-flow-a {
  font-family: 'Montserrat', sans-serif;
  font-size: .84rem; font-weight: 800; color: #fff;
  display: flex; align-items: center; gap: 6px;
}
.wm-flow-num {
  width: 22px; height: 22px; border-radius: 50%;
  background: rgba(255,255,255,.2);
  display: flex; align-items: center; justify-content: center;
  font-size: .65rem; font-weight: 800; flex-shrink: 0;
}

/* ══════════════════════════════
   BOTTOM INFO BOX
   ══════════════════════════════ */
.wm-note {
  background: var(--accent-light, #EBF3FF);
  border-left: 4px solid var(--p1, #002868);
  border-radius: 0 var(--radius,10px) var(--radius,10px) 0;
  padding: 13px 18px;
  font-size: .85rem; color: var(--p3, #1D1D1F); line-height: 1.65;
}
.wm-note strong { color: var(--p1, #002868); }

/* ── All scoped to .ld-* — zero conflict ── */
.ld-section {
  background: var(--p7, #FFFFFF);
  padding: 42px 14px 46px;
  border-top: 2px solid var(--p5, #E0E4E8);
}
.ld-wrap { max-width: 1200px; margin: 0 auto; }

/* HEADER */
.ld-heading {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.1rem, 2.4vw, 1.5rem);
  font-weight: 800; color: var(--p3, #1D1D1F);
  line-height: 1.3; margin-bottom: 6px;
}
.ld-subhead {
  font-size: .86rem; color: var(--p4, #5F6368);
  max-width: 720px; line-height: 1.6; margin-bottom: 22px;
}

/* TWO-COLUMN GRID */
.ld-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.1fr) minmax(0, 1.6fr);
  gap: 18px;
}
@media (max-width: 860px) { .ld-grid { grid-template-columns: 1fr; } }

/* LEFT COLUMN BOXES */
.ld-box {
  background: var(--p6, #F7F9FC);
  border-radius: var(--radius, 10px);
  border: 1px solid var(--p5, #E0E4E8);
  padding: 14px 18px 13px;
  margin-bottom: 12px;
}
.ld-box-title {
  font-family: 'Montserrat', sans-serif;
  font-size: .83rem; font-weight: 800;
  color: var(--p1, #002868);
  text-transform: uppercase; letter-spacing: .06em;
  margin-bottom: 6px;
  display: flex; align-items: center; gap: 6px;
}
.ld-box-title svg { flex-shrink: 0; }
.ld-box-text {
  font-size: .82rem; color: var(--p4, #5F6368);
  line-height: 1.7;
}
.ld-box-text strong { color: var(--p3, #1D1D1F); }
.ld-box-text a {
  color: var(--p1, #002868);
  font-weight: 600; text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

/* HIGHLIGHTED GOV & IRS BOXES */
.ld-box.gov {
  background: var(--accent-light, #EBF3FF);
  border-left: 4px solid var(--p1, #002868);
  border-radius: 0 10px 10px 0;
}
.ld-box.irs {
  background: var(--gold-light, #FFF8E1);
  border-left: 4px solid var(--gold, #C89200);
  border-radius: 0 10px 10px 0;
}

/* LISTS */
.ld-list {
  margin: 6px 0 0; padding: 0; list-style: none;
}
.ld-list li {
  font-size: .8rem; color: var(--p4, #5F6368);
  display: flex; align-items: flex-start; gap: 6px;
  line-height: 1.55; margin-bottom: 3px;
}
.ld-list li::before {
  content: '•';
  font-size: .8rem; color: var(--p1, #002868);
  flex-shrink: 0; margin-top: 1px;
}
.ld-list li strong { color: var(--p3, #1D1D1F); }

/* RIGHT COLUMN PANEL */
.ld-panel {
  background: var(--p6, #F7F9FC);
  border-radius: var(--radius, 10px);
  border: 1px dashed var(--p5, #E0E4E8);
  padding: 14px 16px 13px;
}
.ld-panel-title {
  font-family: 'Montserrat', sans-serif;
  font-size: .82rem; font-weight: 800;
  color: var(--p3, #1D1D1F);
  text-transform: uppercase; letter-spacing: .06em;
  margin-bottom: 7px;
}
.ld-panel-text {
  font-size: .8rem; color: var(--p4, #5F6368);
  line-height: 1.65;
}
.ld-panel-text strong { color: var(--p3, #1D1D1F); }

/* TWO-COLUMN LIST INSIDE PANEL */
.ld-panel-cols {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 8px 14px; margin-top: 8px;
}
@media (max-width: 520px) { .ld-panel-cols { grid-template-columns: 1fr; } }
.ld-panel-cols ul {
  list-style: none; margin: 0; padding: 0;
}
.ld-panel-cols li {
  font-size: .78rem; color: var(--p4, #5F6368);
  display: flex; align-items: flex-start; gap: 6px;
  line-height: 1.5; margin-bottom: 3px;
}
.ld-panel-cols li::before {
  content: '✔';
  font-size: .72rem; color: var(--p9, #00875A);
  flex-shrink: 0; margin-top: 1px;
}

/* FOOTER LINE */
.ld-footer {
  margin-top: 16px;
  font-size: .78rem; color: var(--p4, #5F6368);
  line-height: 1.6;
}
/* =========================================================
   ABSOLUTE TITANIUM MOBILE LOCK & TABLE SCROLL
   (NET PRESENT VALUE CALCULATOR)
   ========================================================= */

@media screen and (max-width: 768px) {
    /* 1. STRICT VIEWPORT & BOX SIZING LOCK */
    html, body {
        width: 100vw !important; max-width: 100vw !important;
        overflow-x: hidden !important; margin: 0 !important; padding: 0 !important;
    }
    * { box-sizing: border-box !important; }

    /* 2. CONTAIN ALL MAIN SHELLS */
    .calc-wrapper {
        width: 100% !important; max-width: 100vw !important;
        overflow-x: hidden !important; padding-left: 12px !important; padding-right: 12px !important;
    }

    /* 3. THE CSS GRID FIX: DESTROY GRIDS & FORCE BLOCK */
    /* CSS Grid's "1fr" refuses to shrink smaller than a table. 
       We must convert grids to blocks to force 100% width containment. */
    .calc-grid, .calc-grid > div, .kpi-grid, .scenario-cols {
        display: block !important; 
        width: 100% !important; 
        max-width: 100% !important;
        min-width: 0 !important;
    }

    /* Replace grid gaps with margins */
    .calc-grid > div { margin-bottom: 24px !important; }
    .kpi, .scenario-card { margin-bottom: 12px !important; }

    /* 4. KEEP CF-GRID AS FLEX SO LABELS STAY INLINE */
    .cf-grid {
        display: flex !important; align-items: center !important;
        width: 100% !important; gap: 8px !important; margin-bottom: 8px !important;
    }
    .cf-year-label { min-width: 50px !important; text-align: left !important; }

    /* 5. THE WALL: CARDS CANNOT STRETCH */
    /* 🚨 FIXED: Removed .module from this list so Tabs work normally again 🚨 */
    .card, .decision-box {
        display: block !important; width: 100% !important; max-width: 100% !important; 
        min-width: 0 !important; overflow: hidden !important;
    }

    /* 6. INDEPENDENT TABLE SCROLLING */
    /* Forces the table to swipe left/right INSIDE the card */
    .scroll-wrap, .table-wrap, .wm-matrix-wrap {
        display: block !important; width: 100% !important; max-width: 100% !important;
        overflow-x: auto !important; -webkit-overflow-scrolling: touch !important;
        border: 1px solid var(--p5) !important; border-radius: 6px !important;
    }
    
    table.data-table, table.cmp-table {
        width: 100% !important; min-width: max-content !important; display: table !important;
    }
    th, td { white-space: nowrap !important; }

    /* 7. FIX MASSIVE NUMBERS & LONG TEXT */
    /* Allows the decision box text to wrap instead of tearing off the screen */
    .kpi-val, .wacc-big, .decision-box, .sc-val, .ex-sc-val {
        word-wrap: break-word !important; overflow-wrap: break-word !important; 
        white-space: normal !important;
        font-size: clamp(1.1rem, 5vw, 1.4rem) !important;
    }
    
    .decision-box { padding: 12px !important; font-size: 0.85rem !important; }

    /* 8. RESTRAIN CHART.JS */
    .chart-box, .chart-container {
        width: 100% !important; max-width: 100% !important; min-width: 0 !important; 
        position: relative !important; display: block !important;
    }
    canvas { max-width: 100% !important; height: auto !important; max-height: 260px !important; }
    
    /* 9. INPUT WRAPPERS */
    .form-row {
        display: block !important; width: 100% !important; max-width: 100% !important; margin-bottom: 12px !important;
    }
    .input-wrap { width: 100% !important; max-width: 100% !important; min-width: 0 !important; display: flex !important; }
}