
:root{
  --navy:#002868;--green:#00843D;--red:#BF0A30;
  --light-bg:#F8F9FF;--card-bg:#FFFFFF;--border:#D0D5E8;
  --text:#1A1F36;--muted:#6B7280;
  --gold:#C8860A;--gold-light:#FFFBEB;
  --purple:#7C3AED;--edu:#1565C0;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',sans-serif;background:var(--light-bg);color:var(--text);font-size:15px;line-height:1.6}
h1,h2,h3,h4{font-family:'Montserrat',sans-serif}

/* HEADER */
.calc-header{background:linear-gradient(135deg,#0d2b6e 0%,var(--navy) 50%,#00501F 100%);color:#fff;padding:24px 24px 18px;text-align:center;position:relative;overflow:hidden}
.calc-header::before{content:'🎓';position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:90px;opacity:.07}
.calc-header h1{font-size:clamp(17px,3.5vw,25px);font-weight:800;margin-bottom:5px}
.calc-header p{font-size:12.5px;opacity:.85;max-width:700px;margin:0 auto}
.header-badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:9px}
.hbadge{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);border-radius:14px;padding:3px 11px;font-size:11px;font-weight:700}

/* TABS */
.tab-nav{display:flex;gap:3px;padding:12px 12px 0;background:#fff;border-bottom:2px solid var(--border);overflow-x:auto;scrollbar-width:none}
.tab-nav::-webkit-scrollbar{display:none}
.tab-btn{flex-shrink:0;padding:8px 13px;border:none;background:none;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;color:var(--muted);cursor:pointer;border-radius:8px 8px 0 0;transition:.2s;white-space:nowrap;border-bottom:3px solid transparent;margin-bottom:-2px}
.tab-btn.active{color:var(--navy);border-bottom-color:var(--navy);background:var(--light-bg)}
.tab-btn:hover:not(.active){color:var(--navy);background:var(--light-bg)}
.tab-pane{display:none;padding:16px 14px}
.tab-pane.active{display:block}

/* LAYOUT */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
@media(max-width:768px){.two-col{grid-template-columns:1fr}}
.card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:12px}
.card-title{font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;color:var(--navy);margin-bottom:11px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.badge{background:var(--navy);color:#fff;font-size:9.5px;padding:2px 7px;border-radius:9px;font-weight:700}
.badge-gold{background:var(--gold);color:#fff;font-size:9.5px;padding:2px 7px;border-radius:9px}
.badge-green{background:var(--green);color:#fff;font-size:9.5px;padding:2px 7px;border-radius:9px}
.badge-red{background:var(--red);color:#fff;font-size:9.5px;padding:2px 7px;border-radius:9px}

/* FORM */
.form-group{margin-bottom:11px}
label{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.4px}
input[type=number],input[type=text],select{width:100%;padding:8px 11px;border:1.5px solid var(--border);border-radius:8px;font-size:13.5px;font-family:'Inter',sans-serif;color:var(--text);background:#fff;transition:.2s;-moz-appearance:textfield}
input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}
input:focus,select:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(0,40,104,.1)}
.ip{position:relative}
.ip .pre{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--muted);font-weight:600;pointer-events:none}
.ip .suf{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted);font-weight:600;pointer-events:none}
.ip input{padding-left:24px}
.ip input.sp{padding-right:28px;padding-left:11px}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}
@media(max-width:480px){.row-2,.row-3{grid-template-columns:1fr}}

/* RESULTS */
.result-hero{background:linear-gradient(135deg,var(--navy),#1a3a6b);color:#fff;border-radius:12px;padding:17px;text-align:center;margin-bottom:12px}
.result-hero .label{font-size:10.5px;opacity:.8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.result-hero .value{font-size:34px;font-family:'Montserrat',sans-serif;font-weight:800}
.result-hero .subtitle{font-size:11.5px;opacity:.7;margin-top:3px}

.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.ri{background:var(--light-bg);border-radius:9px;padding:10px 12px;border:1px solid var(--border)}
.ri .rl{font-size:10.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px}
.ri .rv{font-size:16px;font-family:'Montserrat',sans-serif;font-weight:700;color:var(--navy)}
.ri .rs{font-size:10.5px;color:var(--muted);margin-top:2px}
.ri.hi{background:var(--green);border-color:var(--green)}
.ri.hi .rl,.ri.hi .rv,.ri.hi .rs{color:#fff}
.ri.wa{background:#FFF3CD;border-color:#FFCA28}
.ri.wa .rv,.ri.wa .rl{color:#7B5800}
.ri.go{background:var(--gold-light);border-color:#FDE68A}
.ri.go .rv,.ri.go .rl{color:#78350F}
.ri.da{background:#FEF2F2;border-color:#FECACA}
.ri.da .rv,.ri.da .rl{color:#991B1B}
.ri.pu{background:#F5F3FF;border-color:#C4B5FD}
.ri.pu .rv,.ri.pu .rl{color:#5B21B6}

/* COMPARE TABLE */
.comp-table{width:100%;border-collapse:collapse;font-size:12.5px}
.comp-table th{background:var(--navy);color:#fff;padding:7px 10px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.3px}
.comp-table td{padding:7px 10px;border-bottom:1px solid var(--border)}
.comp-table tr:hover td{background:var(--light-bg)}
.comp-table .winner td{background:#ECFDF5;font-weight:700}
.comp-table .best{color:var(--green);font-weight:700}
.comp-table .worst{color:var(--red)}

/* DATA TABLE */
.dt{width:100%;border-collapse:collapse;font-size:12px}
.dt th{background:var(--navy);color:#fff;padding:6px 9px;text-align:right;font-size:10.5px;text-transform:uppercase;letter-spacing:.3px}
.dt th:first-child{text-align:left}
.dt td{padding:6px 9px;border-bottom:1px solid var(--border);text-align:right}
.dt td:first-child{text-align:left;color:var(--muted)}
.dt tr:last-child td{border-bottom:none;font-weight:700;background:var(--light-bg)}

/* INFO BOXES */
.info-box{background:#EFF6FF;border:1px solid #BFDBFE;border-left:4px solid var(--navy);border-radius:8px;padding:10px 12px;font-size:12.5px;color:#1e40af;margin-bottom:11px}
.warn-box{background:#FFF3CD;border:1px solid #FFCA28;border-left:4px solid #F59E0B;border-radius:8px;padding:10px 12px;font-size:12.5px;color:#92400E;margin-bottom:11px}
.success-box{background:#ECFDF5;border:1px solid #A7F3D0;border-left:4px solid var(--green);border-radius:8px;padding:10px 12px;font-size:12.5px;color:#065F46;margin-bottom:11px}
.gold-box{background:var(--gold-light);border:1px solid #FDE68A;border-left:4px solid var(--gold);border-radius:8px;padding:10px 12px;font-size:12.5px;color:#78350F;margin-bottom:11px}
.purple-box{background:#F5F3FF;border:1px solid #C4B5FD;border-left:4px solid var(--purple);border-radius:8px;padding:10px 12px;font-size:12.5px;color:#5B21B6;margin-bottom:11px}

/* BUTTONS */
.btn-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.btn{padding:9px 16px;border-radius:8px;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:.2s;border:2px solid transparent;text-transform:uppercase;letter-spacing:.4px;display:inline-flex;align-items:center;gap:5px}
.btn-calc{background:var(--green);color:#fff;border-color:var(--green)}
.btn-calc:hover{background:#006B31}
.btn-clear{background:#fff;color:var(--red);border-color:var(--red)}
.btn-clear:hover{background:var(--red);color:#fff}
.btn-pdf{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-pdf:hover{background:#001a55}
.btn-wa{background:#25D366;color:#fff;border-color:#25D366}
.btn-wa:hover{background:#128C7E}
.btn-sm{padding:6px 11px;font-size:10.5px}

/* CHART */
.chart-wrap{position:relative;height:230px;margin-top:8px}
.chart-wrap-sm{position:relative;height:175px;margin-top:6px}
.chart-wrap-lg{position:relative;height:270px;margin-top:8px}

/* CHILD CARD */
.child-card{border:2px solid var(--border);border-radius:10px;padding:13px;margin-bottom:10px}
.child-card:nth-child(1){border-color:#3B82F6}
.child-card:nth-child(2){border-color:#10B981}
.child-card:nth-child(3){border-color:#F59E0B}
.child-card:nth-child(4){border-color:#8B5CF6}
.child-card .cc-title{font-size:12px;font-weight:700;color:var(--navy);margin-bottom:9px}

/* PROGRESS BAR */
.prog-bar{background:var(--light-bg);border-radius:8px;overflow:hidden;height:18px;margin-bottom:6px;position:relative;border:1px solid var(--border)}
.prog-fill{height:100%;background:var(--green);border-radius:8px;transition:.3s}
.prog-fill.over{background:var(--red)}
.prog-lbl{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:11px;font-weight:700;color:var(--navy);white-space:nowrap}

/* SECT HEADER */
.sect-hd{background:linear-gradient(90deg,var(--navy),#1a3a6b);color:#fff;border-radius:8px;padding:10px 13px;margin-bottom:12px;display:flex;align-items:center;gap:9px}
.sect-hd h3{font-size:13px;font-weight:700;margin:0}

/* STATE TAX BADGE */
.state-tax-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);font-size:13px}
.state-tax-row:last-child{border-bottom:none;font-weight:700;background:var(--light-bg)}
.state-tax-row .stl{color:var(--muted)}
.state-tax-row .stv{font-weight:600;color:var(--navy)}
.state-tax-row .stv.good{color:var(--green)}

/* SECURE 2.0 BANNER */
.secure-banner{background:linear-gradient(135deg,#5B21B6,#7C3AED);color:#fff;border-radius:10px;padding:13px 16px;margin-bottom:12px}
.secure-banner .sb-title{font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;margin-bottom:5px}
.secure-banner .sb-sub{font-size:12px;opacity:.9}

/* HIDDEN */
.hidden{display:none!important}

 /* ─────────────────────────────────────────────────
     All styles scoped under .hiw-529 to avoid
     conflicts with the calculator's own CSS
  ───────────────────────────────────────────────── */

  .hiw-529 {
    max-width: 960px;
    margin: 28px auto 0;
    padding: 0 14px 32px;
    font-family: 'Inter', sans-serif;
    color: var(--text, #1A1F36);
  }

  /* ── Section header — exact .sect-hd clone ── */
  .hiw-529 .hiw-sect-hd {
    background: linear-gradient(90deg, var(--navy, #002868), #1a3a6b);
    color: #fff;
    border-radius: 8px;
    padding: 10px 13px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 9px;
  }
  .hiw-529 .hiw-sect-hd h2 {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(13px, 2.5vw, 15px);
    font-weight: 700;
    margin: 0;
    color: #fff;
    line-height: 1.3;
  }

  /* ── Intro text ── */
  .hiw-529 .hiw-intro {
    font-size: 13px;
    color: var(--muted, #6B7280);
    line-height: 1.7;
    margin: -4px 0 16px;
  }

  /* ── Exact .card clone ── */
  .hiw-529 .hiw-card {
    background: var(--card-bg, #fff);
    border: 1px solid var(--border, #D0D5E8);
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 12px;
  }

  /* ── Exact .card-title clone ── */
  .hiw-529 .hiw-card-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: var(--navy, #002868);
    margin-bottom: 11px;
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
  }

  /* ── Badge clones ── */
  .hiw-529 .badge {
    background: var(--navy, #002868);
    color: #fff;
    font-size: 9.5px;
    padding: 2px 7px;
    border-radius: 9px;
    font-weight: 700;
    font-family: 'Montserrat', sans-serif;
  }
  .hiw-529 .badge-gold  { background: var(--gold, #C8860A);  color: #fff; font-size: 9.5px; padding: 2px 7px; border-radius: 9px; font-weight: 700; font-family: 'Montserrat', sans-serif; }
  .hiw-529 .badge-green { background: var(--green, #00843D); color: #fff; font-size: 9.5px; padding: 2px 7px; border-radius: 9px; font-weight: 700; font-family: 'Montserrat', sans-serif; }
  .hiw-529 .badge-red   { background: var(--red, #BF0A30);   color: #fff; font-size: 9.5px; padding: 2px 7px; border-radius: 9px; font-weight: 700; font-family: 'Montserrat', sans-serif; }
  .hiw-529 .badge-purple{ background: var(--purple, #7C3AED); color: #fff; font-size: 9.5px; padding: 2px 7px; border-radius: 9px; font-weight: 700; font-family: 'Montserrat', sans-serif; }

  /* ── Info box clones ── */
  .hiw-529 .info-box {
    background: #EFF6FF;
    border: 1px solid #BFDBFE;
    border-left: 4px solid var(--navy, #002868);
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 12.5px;
    color: #1e40af;
    margin-bottom: 11px;
    line-height: 1.65;
  }
  .hiw-529 .success-box {
    background: #ECFDF5;
    border: 1px solid #A7F3D0;
    border-left: 4px solid var(--green, #00843D);
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 12.5px;
    color: #065F46;
    margin-bottom: 11px;
    line-height: 1.65;
  }
  .hiw-529 .gold-box {
    background: var(--gold-light, #FFFBEB);
    border: 1px solid #FDE68A;
    border-left: 4px solid var(--gold, #C8860A);
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 12.5px;
    color: #78350F;
    margin-bottom: 11px;
    line-height: 1.65;
  }
  .hiw-529 .warn-box {
    background: #FFF3CD;
    border: 1px solid #FFCA28;
    border-left: 4px solid #F59E0B;
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 12.5px;
    color: #92400E;
    margin-bottom: 11px;
    line-height: 1.65;
  }
  .hiw-529 .purple-box {
    background: #F5F3FF;
    border: 1px solid #C4B5FD;
    border-left: 4px solid var(--purple, #7C3AED);
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 12.5px;
    color: #5B21B6;
    margin-bottom: 11px;
    line-height: 1.65;
  }

  /* ── .two-col mirror ── */
  .hiw-529 .two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    align-items: start;
  }
  @media (max-width: 768px) {
    .hiw-529 .two-col { grid-template-columns: 1fr; }
  }

  /* ── Tab step cards ── */
  .hiw-529 .tab-steps {
    display: flex;
    flex-direction: column;
    gap: 9px;
  }

  .hiw-529 .tab-step {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 11px 13px;
    background: var(--light-bg, #F8F9FF);
    border: 1px solid var(--border, #D0D5E8);
    border-radius: 10px;
    transition: border-color 0.2s, box-shadow 0.2s;
  }
  .hiw-529 .tab-step:hover {
    border-color: var(--navy, #002868);
    box-shadow: 0 2px 10px rgba(0,40,104,0.08);
  }

  /* Colored left accent per tab */
  .hiw-529 .tab-step.ts-navy   { border-left: 4px solid var(--navy, #002868); }
  .hiw-529 .tab-step.ts-green  { border-left: 4px solid var(--green, #00843D); }
  .hiw-529 .tab-step.ts-gold   { border-left: 4px solid var(--gold, #C8860A); }
  .hiw-529 .tab-step.ts-purple { border-left: 4px solid var(--purple, #7C3AED); }
  .hiw-529 .tab-step.ts-teal   { border-left: 4px solid #0891B2; }

  .hiw-529 .ts-icon {
    flex-shrink: 0;
    width: 32px; height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    margin-top: 1px;
  }
  .hiw-529 .ts-icon.ic-navy   { background: var(--navy, #002868); }
  .hiw-529 .ts-icon.ic-green  { background: var(--green, #00843D); }
  .hiw-529 .ts-icon.ic-gold   { background: var(--gold, #C8860A); }
  .hiw-529 .ts-icon.ic-purple { background: var(--purple, #7C3AED); }
  .hiw-529 .ts-icon.ic-teal   { background: #0891B2; }

  .hiw-529 .ts-body { flex: 1; }
  .hiw-529 .ts-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text, #1A1F36);
    margin: 0 0 4px;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
  }
  .hiw-529 .ts-desc {
    font-size: 12.5px;
    color: var(--muted, #6B7280);
    line-height: 1.65;
    margin: 0;
  }
  .hiw-529 .ts-desc strong { color: var(--text, #1A1F36); }

  /* Input/output pill tags */
  .hiw-529 .field-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 6px;
  }
  .hiw-529 .fp {
    font-size: 10.5px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 7px;
    border: 1px solid var(--border, #D0D5E8);
    background: #fff;
    color: var(--navy, #002868);
    white-space: nowrap;
  }
  .hiw-529 .fp.out { background: var(--navy, #002868); color: #fff; border-color: var(--navy); }
  .hiw-529 .fp.out.green { background: var(--green, #00843D); border-color: var(--green); }
  .hiw-529 .fp.out.gold  { background: var(--gold, #C8860A); border-color: var(--gold); }
  .hiw-529 .fp.out.purple{ background: var(--purple, #7C3AED); border-color: var(--purple); }
  .hiw-529 .fp.out.teal  { background: #0891B2; border-color: #0891B2; }

  /* ── .result-grid / .ri mirror for output highlights ── */
  .hiw-529 .out-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 10px;
  }
  @media (max-width: 480px) {
    .hiw-529 .out-grid { grid-template-columns: 1fr; }
  }

  .hiw-529 .ri {
    background: var(--light-bg, #F8F9FF);
    border-radius: 9px;
    padding: 10px 12px;
    border: 1px solid var(--border, #D0D5E8);
  }
  .hiw-529 .ri.hi { background: var(--green, #00843D); border-color: var(--green, #00843D); }
  .hiw-529 .ri.go { background: var(--gold-light, #FFFBEB); border-color: #FDE68A; }
  .hiw-529 .ri.wa { background: #FFF3CD; border-color: #FFCA28; }
  .hiw-529 .ri.pu { background: #F5F3FF; border-color: #C4B5FD; }

  .hiw-529 .ri .rl {
    font-size: 10.5px;
    color: var(--muted, #6B7280);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-bottom: 2px;
  }
  .hiw-529 .ri.hi .rl,
  .hiw-529 .ri.hi .rv { color: #fff; }
  .hiw-529 .ri.go .rl,
  .hiw-529 .ri.go .rv { color: #78350F; }
  .hiw-529 .ri.wa .rl,
  .hiw-529 .ri.wa .rv { color: #7B5800; }
  .hiw-529 .ri.pu .rl,
  .hiw-529 .ri.pu .rv { color: #5B21B6; }

  .hiw-529 .ri .rv {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--navy, #002868);
  }
  .hiw-529 .ri .rs {
    font-size: 10.5px;
    color: var(--muted, #6B7280);
    margin-top: 2px;
  }
  .hiw-529 .ri.hi .rs { color: rgba(255,255,255,0.8); }

  /* ── Progress bar clone ── */
  .hiw-529 .prog-bar {
    background: var(--light-bg, #F8F9FF);
    border-radius: 8px;
    overflow: hidden;
    height: 18px;
    margin-bottom: 6px;
    position: relative;
    border: 1px solid var(--border, #D0D5E8);
  }
  .hiw-529 .prog-fill {
    height: 100%;
    background: var(--green, #00843D);
    border-radius: 8px;
    width: 72%;
  }
  .hiw-529 .prog-lbl {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    font-size: 11px;
    font-weight: 700;
    color: var(--navy, #002868);
    white-space: nowrap;
    pointer-events: none;
  }

  /* ── SECURE 2.0 banner clone ── */
  .hiw-529 .secure-banner {
    background: linear-gradient(135deg, #5B21B6, #7C3AED);
    color: #fff;
    border-radius: 10px;
    padding: 13px 16px;
    margin-bottom: 12px;
  }
  .hiw-529 .secure-banner .sb-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 5px;
  }
  .hiw-529 .secure-banner .sb-sub {
    font-size: 12px;
    opacity: 0.9;
    line-height: 1.6;
  }

  /* ── Comparison table clone (.comp-table) ── */
  .hiw-529 .comp-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    margin-top: 10px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--border, #D0D5E8);
  }
  .hiw-529 .comp-table th {
    background: var(--navy, #002868);
    color: #fff;
    padding: 7px 10px;
    text-align: left;
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    font-family: 'Montserrat', sans-serif;
  }
  .hiw-529 .comp-table td {
    padding: 7px 10px;
    border-bottom: 1px solid var(--border, #D0D5E8);
    vertical-align: middle;
    line-height: 1.5;
    color: var(--text, #1A1F36);
  }
  .hiw-529 .comp-table tr:last-child td { border-bottom: none; }
  .hiw-529 .comp-table tr:nth-child(even) td { background: var(--light-bg, #F8F9FF); }
  .hiw-529 .comp-table .best { color: var(--green, #00843D); font-weight: 700; }
  .hiw-529 .comp-table .note { color: var(--muted, #6B7280); font-size: 11px; }

  /* ── .state-tax-row clone ── */
  .hiw-529 .detail-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px;
    border-bottom: 1px solid var(--border, #D0D5E8);
    font-size: 13px;
  }
  .hiw-529 .detail-row:last-child { border-bottom: none; font-weight: 700; background: var(--light-bg, #F8F9FF); }
  .hiw-529 .detail-row .dl { color: var(--muted, #6B7280); font-size: 12.5px; }
  .hiw-529 .detail-row .dv { font-weight: 600; color: var(--navy, #002868); font-size: 12.5px; }
  .hiw-529 .detail-row .dv.good { color: var(--green, #00843D); }

  /* ── Numbered steps (workflow) ── */
  .hiw-529 .num-steps {
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
    padding-left: 4px;
  }
  .hiw-529 .num-step {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 0 0 14px 0;
    position: relative;
  }
  .hiw-529 .num-step:not(:last-child)::before {
    content: '';
    position: absolute;
    left: 15px;
    top: 32px;
    bottom: 0;
    width: 2px;
    background: var(--border, #D0D5E8);
  }
  .hiw-529 .ns-num {
    flex-shrink: 0;
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--navy, #002868);
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
  }
  .hiw-529 .ns-body { flex: 1; padding-top: 4px; }
  .hiw-529 .ns-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text, #1A1F36);
    margin: 0 0 3px;
  }
  .hiw-529 .ns-desc {
    font-size: 12.5px;
    color: var(--muted, #6B7280);
    line-height: 1.65;
    margin: 0;
  }
  .hiw-529 .ns-desc strong { color: var(--text, #1A1F36); }

  /* Mobile polish */
  @media (max-width: 768px) {
    .hiw-529 { padding: 0 12px 28px; }
    .hiw-529 .comp-table { font-size: 11.5px; }
    .hiw-529 .comp-table th,
    .hiw-529 .comp-table td { padding: 6px 8px; }
  }
  @media (max-width: 480px) {
    .hiw-529 .ts-title { font-size: 12px; }
    .hiw-529 .ts-desc  { font-size: 12px; }
    .hiw-529 .ns-title { font-size: 12px; }
  }
 /* ─────────────────────────────────────────────────
     Scoped under .ex529 to avoid CSS conflicts
  ───────────────────────────────────────────────── */

  .ex529 {
    max-width: 960px;
    margin: 28px auto 0;
    padding: 0 14px 36px;
    font-family: 'Inter', sans-serif;
    color: var(--text, #1A1F36);
  }

  /* ── Section header — exact .sect-hd ── */
  .ex529 .ex-sect-hd {
    background: linear-gradient(90deg, var(--navy, #002868), #1a3a6b);
    color: #fff;
    border-radius: 8px;
    padding: 10px 13px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 9px;
  }
  .ex529 .ex-sect-hd h2 {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(13px, 2.5vw, 15px);
    font-weight: 700;
    margin: 0;
    color: #fff;
    line-height: 1.3;
  }

  /* ── Intro ── */
  .ex529 .ex-intro {
    font-size: 13px;
    color: var(--muted, #6B7280);
    line-height: 1.7;
    margin: -4px 0 14px;
  }

  /* ── Example card — .card clone ── */
  .ex529 .ex-card {
    background: var(--card-bg, #fff);
    border: 1px solid var(--border, #D0D5E8);
    border-radius: 12px;
    padding: 0;
    margin-bottom: 16px;
    overflow: hidden;
  }

  /* Colored top stripe per example */
  .ex529 .ex-card-stripe {
    height: 5px;
    width: 100%;
    display: block;
  }
  .ex529 .stripe-navy   { background: var(--navy, #002868); }
  .ex529 .stripe-green  { background: var(--green, #00843D); }
  .ex529 .stripe-gold   { background: var(--gold, #C8860A); }
  .ex529 .stripe-purple { background: var(--purple, #7C3AED); }
  .ex529 .stripe-teal   { background: #0891B2; }

  .ex529 .ex-card-body  { padding: 16px; }

  /* ── Card title — exact .card-title ── */
  .ex529 .ex-card-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: var(--navy, #002868);
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
  }
  .ex529 .ex-card-sub {
    font-size: 12px;
    color: var(--muted, #6B7280);
    margin-bottom: 12px;
    line-height: 1.5;
  }

  /* ── Badges ── */
  .ex529 .badge        { background: var(--navy, #002868);   color: #fff; font-size: 9.5px; padding: 2px 7px; border-radius: 9px; font-weight: 700; font-family: 'Montserrat', sans-serif; white-space: nowrap; }
  .ex529 .badge-green  { background: var(--green, #00843D);  color: #fff; font-size: 9.5px; padding: 2px 7px; border-radius: 9px; font-weight: 700; font-family: 'Montserrat', sans-serif; white-space: nowrap; }
  .ex529 .badge-gold   { background: var(--gold, #C8860A);   color: #fff; font-size: 9.5px; padding: 2px 7px; border-radius: 9px; font-weight: 700; font-family: 'Montserrat', sans-serif; white-space: nowrap; }
  .ex529 .badge-red    { background: var(--red, #BF0A30);    color: #fff; font-size: 9.5px; padding: 2px 7px; border-radius: 9px; font-weight: 700; font-family: 'Montserrat', sans-serif; white-space: nowrap; }
  .ex529 .badge-purple { background: var(--purple, #7C3AED); color: #fff; font-size: 9.5px; padding: 2px 7px; border-radius: 9px; font-weight: 700; font-family: 'Montserrat', sans-serif; white-space: nowrap; }
  .ex529 .badge-teal   { background: #0891B2; color: #fff; font-size: 9.5px; padding: 2px 7px; border-radius: 9px; font-weight: 700; font-family: 'Montserrat', sans-serif; white-space: nowrap; }

  /* ── two-col mirror ── */
  .ex529 .two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    align-items: start;
  }
  @media (max-width: 768px) {
    .ex529 .two-col { grid-template-columns: 1fr; }
  }

  /* ── Inputs panel ── */
  .ex529 .inp-panel {
    background: var(--light-bg, #F8F9FF);
    border: 1px solid var(--border, #D0D5E8);
    border-radius: 10px;
    padding: 12px;
  }
  .ex529 .inp-panel-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: var(--muted, #6B7280);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-bottom: 8px;
  }

  /* ── State-tax-row style detail rows ── */
  .ex529 .d-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    border-bottom: 1px solid var(--border, #D0D5E8);
    font-size: 12.5px;
  }
  .ex529 .d-row:last-child { border-bottom: none; }
  .ex529 .d-row .dl { color: var(--muted, #6B7280); }
  .ex529 .d-row .dv { font-weight: 600; color: var(--text, #1A1F36); }

  /* ── Result hero — exact .result-hero ── */
  .ex529 .result-hero {
    background: linear-gradient(135deg, var(--navy, #002868), #1a3a6b);
    color: #fff;
    border-radius: 10px;
    padding: 14px 16px;
    text-align: center;
    margin-bottom: 10px;
  }
  .ex529 .result-hero .rh-label {
    font-size: 10.5px;
    opacity: 0.8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 3px;
  }
  .ex529 .result-hero .rh-value {
    font-family: 'Montserrat', sans-serif;
    font-size: 30px;
    font-weight: 800;
    line-height: 1.15;
  }
  .ex529 .result-hero .rh-sub {
    font-size: 11.5px;
    opacity: 0.75;
    margin-top: 3px;
  }

  /* ── Result grid — exact .result-grid / .ri ── */
  .ex529 .ri-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    margin-bottom: 10px;
  }
  @media (max-width: 480px) {
    .ex529 .ri-grid { grid-template-columns: 1fr; }
  }

  .ex529 .ri {
    background: var(--light-bg, #F8F9FF);
    border-radius: 9px;
    padding: 10px 12px;
    border: 1px solid var(--border, #D0D5E8);
  }
  .ex529 .ri.hi { background: var(--green,  #00843D); border-color: var(--green); }
  .ex529 .ri.go { background: var(--gold-light, #FFFBEB); border-color: #FDE68A; }
  .ex529 .ri.wa { background: #FFF3CD; border-color: #FFCA28; }
  .ex529 .ri.da { background: #FEF2F2; border-color: #FECACA; }
  .ex529 .ri.pu { background: #F5F3FF; border-color: #C4B5FD; }
  .ex529 .ri.te { background: #ECFEFF; border-color: #A5F3FC; }

  .ex529 .ri .rl { font-size: 10.5px; color: var(--muted, #6B7280); font-weight: 600; text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 2px; }
  .ex529 .ri .rv { font-family: 'Montserrat', sans-serif; font-size: 15px; font-weight: 700; color: var(--navy, #002868); }
  .ex529 .ri .rs { font-size: 10.5px; color: var(--muted, #6B7280); margin-top: 2px; }

  .ex529 .ri.hi .rl,
  .ex529 .ri.hi .rv,
  .ex529 .ri.hi .rs { color: #fff; }
  .ex529 .ri.go .rl, .ex529 .ri.go .rv { color: #78350F; }
  .ex529 .ri.wa .rl, .ex529 .ri.wa .rv { color: #7B5800; }
  .ex529 .ri.da .rl, .ex529 .ri.da .rv { color: #991B1B; }
  .ex529 .ri.pu .rl, .ex529 .ri.pu .rv { color: #5B21B6; }
  .ex529 .ri.te .rl, .ex529 .ri.te .rv { color: #0E7490; }

  /* ── Progress bar — exact .prog-bar ── */
  .ex529 .prog-bar {
    background: var(--light-bg, #F8F9FF);
    border-radius: 8px;
    overflow: hidden;
    height: 18px;
    margin-bottom: 4px;
    position: relative;
    border: 1px solid var(--border, #D0D5E8);
  }
  .ex529 .prog-fill {
    height: 100%;
    background: var(--green, #00843D);
    border-radius: 8px;
  }
  .ex529 .prog-fill.over { background: var(--red, #BF0A30); }
  .ex529 .prog-lbl {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    font-size: 11px;
    font-weight: 700;
    color: var(--navy, #002868);
    white-space: nowrap;
    pointer-events: none;
  }

  /* ── Info / callout boxes ── */
  .ex529 .info-box {
    background: #EFF6FF; border: 1px solid #BFDBFE;
    border-left: 4px solid var(--navy, #002868);
    border-radius: 8px; padding: 10px 12px;
    font-size: 12.5px; color: #1e40af;
    margin-bottom: 10px; line-height: 1.65;
  }
  .ex529 .success-box {
    background: #ECFDF5; border: 1px solid #A7F3D0;
    border-left: 4px solid var(--green, #00843D);
    border-radius: 8px; padding: 10px 12px;
    font-size: 12.5px; color: #065F46;
    margin-bottom: 10px; line-height: 1.65;
  }
  .ex529 .warn-box {
    background: #FFF3CD; border: 1px solid #FFCA28;
    border-left: 4px solid #F59E0B;
    border-radius: 8px; padding: 10px 12px;
    font-size: 12.5px; color: #92400E;
    margin-bottom: 10px; line-height: 1.65;
  }
  .ex529 .gold-box {
    background: #FFFBEB; border: 1px solid #FDE68A;
    border-left: 4px solid var(--gold, #C8860A);
    border-radius: 8px; padding: 10px 12px;
    font-size: 12.5px; color: #78350F;
    margin-bottom: 10px; line-height: 1.65;
  }
  .ex529 .purple-box {
    background: #F5F3FF; border: 1px solid #C4B5FD;
    border-left: 4px solid var(--purple, #7C3AED);
    border-radius: 8px; padding: 10px 12px;
    font-size: 12.5px; color: #5B21B6;
    margin-bottom: 10px; line-height: 1.65;
  }
  .ex529 .danger-box {
    background: #FEF2F2; border: 1px solid #FECACA;
    border-left: 4px solid var(--red, #BF0A30);
    border-radius: 8px; padding: 10px 12px;
    font-size: 12.5px; color: #991B1B;
    margin-bottom: 10px; line-height: 1.65;
  }

  /* ── Year-by-year snippet table — exact .dt ── */
  .ex529 .dt {
    width: 100%; border-collapse: collapse;
    font-size: 11.5px; border-radius: 8px;
    overflow: hidden; border: 1px solid var(--border, #D0D5E8);
  }
  .ex529 .dt th {
    background: var(--navy, #002868); color: #fff;
    padding: 6px 9px; text-align: right;
    font-size: 10.5px; text-transform: uppercase;
    letter-spacing: 0.3px; font-family: 'Montserrat', sans-serif;
  }
  .ex529 .dt th:first-child { text-align: left; }
  .ex529 .dt td {
    padding: 6px 9px; border-bottom: 1px solid var(--border, #D0D5E8);
    text-align: right; color: var(--text, #1A1F36);
  }
  .ex529 .dt td:first-child { text-align: left; color: var(--muted, #6B7280); }
  .ex529 .dt tr:last-child td { border-bottom: none; font-weight: 700; background: var(--light-bg, #F8F9FF); }
  .ex529 .dt tr:nth-child(even) td { background: var(--light-bg, #F8F9FF); }

  /* ── Key takeaway strip ── */
  .ex529 .takeaway {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: var(--light-bg, #F8F9FF);
    border: 1px solid var(--border, #D0D5E8);
    border-radius: 8px;
    padding: 11px 13px;
    margin-top: 12px;
  }
  .ex529 .takeaway-icon {
    font-size: 18px;
    flex-shrink: 0;
    margin-top: 1px;
  }
  .ex529 .takeaway-body {
    font-size: 12.5px;
    color: var(--text, #1A1F36);
    line-height: 1.65;
  }
  .ex529 .takeaway-body strong { color: var(--navy, #002868); }

  /* ── SECURE 2.0 banner clone ── */
  .ex529 .secure-banner {
    background: linear-gradient(135deg, #5B21B6, #7C3AED);
    color: #fff; border-radius: 10px;
    padding: 13px 16px; margin-bottom: 12px;
  }
  .ex529 .secure-banner .sb-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px; font-weight: 700; margin-bottom: 4px;
  }
  .ex529 .secure-banner .sb-sub {
    font-size: 12px; opacity: 0.9; line-height: 1.6;
  }

  /* ── Example navigator pills ── */
  .ex529 .ex-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
  }
  .ex529 .ex-nav-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 12px;
    border-radius: 20px;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 700;
    border: 1.5px solid var(--border, #D0D5E8);
    background: #fff;
    color: var(--navy, #002868);
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s, border-color 0.2s;
  }
  .ex529 .ex-nav-pill:hover {
    background: var(--light-bg, #F8F9FF);
    border-color: var(--navy, #002868);
  }
  .ex529 .ex-nav-pill.c1 { border-color: var(--navy, #002868); }
  .ex529 .ex-nav-pill.c2 { border-color: var(--green, #00843D); color: var(--green); }
  .ex529 .ex-nav-pill.c3 { border-color: var(--gold, #C8860A); color: #78350F; }
  .ex529 .ex-nav-pill.c4 { border-color: var(--purple, #7C3AED); color: var(--purple); }
  .ex529 .ex-nav-pill.c5 { border-color: #0891B2; color: #0E7490; }

  /* Mobile polish */
  @media (max-width: 768px) {
    .ex529 { padding: 0 12px 28px; }
    .ex529 .result-hero .rh-value { font-size: 24px; }
    .ex529 .dt { font-size: 11px; }
    .ex529 .dt th, .ex529 .dt td { padding: 5px 7px; }
  }
  @media (max-width: 480px) {
    .ex529 .ex-nav-pill { font-size: 10px; padding: 4px 9px; }
  }
/* Scoped under .tips529 to avoid conflicts */
  .tips529 {
    max-width: 960px;
    margin: 28px auto 0;
    padding: 0 14px 32px;
    font-family: 'Inter', sans-serif;
    color: var(--text, #1A1F36);
  }

  /* Section header – clone of .sect-hd */
  .tips529 .tips-sect-hd {
    background: linear-gradient(90deg, var(--navy, #002868), #1a3a6b);
    color: #fff;
    border-radius: 8px;
    padding: 10px 13px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 9px;
  }
  .tips529 .tips-sect-hd h2 {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(13px, 2.5vw, 15px);
    font-weight: 700;
    margin: 0;
    color: #fff;
    line-height: 1.3;
  }

  .tips529 .tips-intro {
    font-size: 13px;
    color: var(--muted, #6B7280);
    line-height: 1.7;
    margin: -4px 0 14px;
  }

  /* Tip card – based on .card */
  .tips529 .tip-card {
    background: var(--card-bg, #FFFFFF);
    border: 1px solid var(--border, #D0D5E8);
    border-radius: 12px;
    padding: 14px 16px 13px;
    margin-bottom: 12px;
    display: flex;
    gap: 11px;
    align-items: flex-start;
  }

  .tips529 .tip-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--navy, #002868);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    color: #fff;
    margin-top: 2px;
  }
  .tips529 .tip-icon.green  { background: var(--green, #00843D); }
  .tips529 .tip-icon.gold   { background: var(--gold, #C8860A); }
  .tips529 .tip-icon.red    { background: var(--red, #BF0A30); }
  .tips529 .tip-icon.purple { background: var(--purple, #7C3AED); }
  .tips529 .tip-icon.teal   { background: #0891B2; }

  .tips529 .tip-body { flex: 1; }

  .tips529 .tip-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin-bottom: 4px;
  }

  .tips529 .tip-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: var(--navy, #002868);
  }

  /* Badges – cloned from .badge variants */
  .tips529 .badge        { background: var(--navy, #002868);   color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }
  .tips529 .badge-green  { background: var(--green, #00843D);  color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }
  .tips529 .badge-gold   { background: var(--gold, #C8860A);   color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }
  .tips529 .badge-red    { background: var(--red, #BF0A30);    color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }
  .tips529 .badge-purple { background: var(--purple, #7C3AED); color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }
  .tips529 .badge-teal   { background:#0891B2;                 color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }

  .tips529 .tip-text {
    font-size: 12.5px;
    color: var(--muted, #6B7280);
    line-height: 1.7;
    margin-bottom: 7px;
  }
  .tips529 .tip-text strong { color: var(--text, #1A1F36); }

  /* Mini bullets inside a tip */
  .tips529 .tip-bullets {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 12.3px;
    color: var(--muted, #6B7280);
  }
  .tips529 .tip-bullets li {
    margin-bottom: 3px;
  }

  /* Inline pill tags for tabs / features */
  .tips529 .pill-row {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 6px;
  }
  .tips529 .pill {
    font-size: 10.5px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 7px;
    border: 1px solid var(--border, #D0D5E8);
    background: #fff;
    color: var(--navy, #002868);
    white-space: nowrap;
  }
  .tips529 .pill.hot {
    background: var(--light-bg, #F8F9FF);
  }

  /* Info / warning / success boxes – cloned */
  .tips529 .info-box {
    background:#EFF6FF; border:1px solid #BFDBFE; border-left:4px solid var(--navy,#002868);
    border-radius:8px; padding:9px 11px;
    font-size:12.3px; color:#1e40af;
    margin-top:6px; line-height:1.65;
  }
  .tips529 .warn-box {
    background:#FFF3CD; border:1px solid #FFCA28; border-left:4px solid #F59E0B;
    border-radius:8px; padding:9px 11px;
    font-size:12.3px; color:#92400E;
    margin-top:6px; line-height:1.65;
  }
  .tips529 .success-box {
    background:#ECFDF5; border:1px solid #A7F3D0; border-left:4px solid var(--green,#00843D);
    border-radius:8px; padding:9px 11px;
    font-size:12.3px; color:#065F46;
    margin-top:6px; line-height:1.65;
  }
  .tips529 .danger-box {
    background:#FEF2F2; border:1px solid #FECACA; border-left:4px solid var(--red,#BF0A30);
    border-radius:8px; padding:9px 11px;
    font-size:12.3px; color:#991B1B;
    margin-top:6px; line-height:1.65;
  }

  /* Bottom note strip */
  .tips529 .tips-note {
    text-align:center;
    padding:10px;
    font-size:11.5px;
    color:var(--muted,#6B7280);
    border-top:1px solid var(--border,#D0D5E8);
    margin-top:6px;
  }

  @media (max-width: 768px) {
    .tips529 { padding: 0 12px 28px; }
    .tips529 .tip-card { padding: 13px 12px; }
  }
 .faq529 {
    max-width: 960px;
    margin: 28px auto 0;
    padding: 0 14px 36px;
    font-family: 'Inter', sans-serif;
    color: var(--text, #1A1F36);
  }

  /* Header – clone of .sect-hd */
  .faq529 .faq-sect-hd {
    background: linear-gradient(90deg, var(--navy, #002868), #1a3a6b);
    color: #fff;
    border-radius: 8px;
    padding: 10px 13px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 9px;
  }
  .faq529 .faq-sect-hd h2 {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(13px, 2.5vw, 15px);
    font-weight: 700;
    margin: 0;
    color: #fff;
    line-height: 1.3;
  }

  .faq529 .faq-intro {
    font-size: 13px;
    color: var(--muted, #6B7280);
    line-height: 1.7;
    margin: -4px 0 16px;
  }

  /* FAQ item wrapper – based on .card but slimmer */
  .faq529 .faq-item {
    background: var(--card-bg, #FFFFFF);
    border: 1px solid var(--border, #D0D5E8);
    border-radius: 10px;
    margin-bottom: 9px;
    overflow: hidden;
  }

  .faq529 .faq-q {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 10px 12px;
    cursor: pointer;
    background: #F9FAFB;
  }

  .faq529 .faq-q-icon {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--navy, #002868);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    font-family: 'Montserrat', sans-serif;
    margin-top: 2px;
  }

  .faq529 .faq-q-text {
    flex: 1;
    font-family: 'Montserrat', sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--navy, #002868);
    line-height: 1.5;
  }

  .faq529 .faq-a {
    padding: 9px 12px 11px;
    font-size: 12.5px;
    color: var(--muted, #6B7280);
    line-height: 1.7;
    border-top: 1px solid var(--border, #D0D5E8);
    background: #FFFFFF;
  }
  .faq529 .faq-a strong { color: var(--text, #1A1F36); }

  /* Category label pill */
  .faq529 .faq-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 1px 7px;
    border-radius: 999px;
    font-size: 10px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    border: 1px solid var(--border, #D0D5E8);
    background: var(--light-bg, #F8F9FF);
    color: var(--muted, #6B7280);
    margin-left: 6px;
    text-transform: uppercase;
    letter-spacing: .3px;
  }

  /* Info / warning boxes inside answers */
  .faq529 .info-box {
    background:#EFF6FF; border:1px solid #BFDBFE; border-left:4px solid var(--navy,#002868);
    border-radius:8px; padding:8px 10px;
    font-size:12.3px; color:#1e40af;
    margin-top:7px; line-height:1.6;
  }
  .faq529 .warn-box {
    background:#FFF3CD; border:1px solid #FFCA28; border-left:4px solid #F59E0B;
    border-radius:8px; padding:8px 10px;
    font-size:12.3px; color:#92400E;
    margin-top:7px; line-height:1.6;
  }
  .faq529 .success-box {
    background:#ECFDF5; border:1px solid #A7F3D0; border-left:4px solid var(--green,#00843D);
    border-radius:8px; padding:8px 10px;
    font-size:12.3px; color:#065F46;
    margin-top:7px; line-height:1.6;
  }
  .faq529 .danger-box {
    background:#FEF2F2; border:1px solid #FECACA; border-left:4px solid var(--red,#BF0A30);
    border-radius:8px; padding:8px 10px;
    font-size:12.3px; color:#991B1B;
    margin-top:7px; line-height:1.6;
  }

  /* Optional simple accordion JS hook (.open class) */
  .faq529 .faq-a { display: none; }
  .faq529 .faq-item.open .faq-a { display: block; }

  @media (max-width: 768px) {
    .faq529 { padding: 0 12px 30px; }
    .faq529 .faq-q-text { font-size: 12px; }
    .faq529 .faq-a { font-size: 12px; }
  }
    /* FAQ index pills */
  .faq529 .faq-index-pill {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:4px 10px;
    border-radius:999px;
    border:1px solid var(--border,#D0D5E8);
    background:#FFFFFF;
    color:var(--navy,#002868);
    font-family:'Montserrat',sans-serif;
    font-size:11px;
    font-weight:600;
    text-decoration:none;
    white-space:nowrap;
    transition:background .2s,color .2s,border-color .2s;
  }
  .faq529 .faq-index-pill:hover {
    background:var(--light-bg,#F8F9FF);
    border-color:var(--navy,#002868);
    color:var(--navy,#002868);
  }
  .relcalc529 {
    max-width: 960px;
    margin: 28px auto 0;
    padding: 0 14px 36px;
    font-family: 'Inter', sans-serif;
    color: var(--text, #1A1F36);
  }

  /* Header – clone of .sect-hd */
  .relcalc529 .rel-sect-hd {
    background: linear-gradient(90deg, var(--navy, #002868), #1a3a6b);
    color: #fff;
    border-radius: 8px;
    padding: 10px 13px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 9px;
  }
  .relcalc529 .rel-sect-hd h2 {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(13px, 2.5vw, 15px);
    font-weight: 700;
    margin: 0;
    color: #fff;
    line-height: 1.3;
  }

  .relcalc529 .rel-intro {
    font-size: 13px;
    color: var(--muted, #6B7280);
    line-height: 1.7;
    margin: -4px 0 14px;
  }

  /* Card – based on .card */
  .relcalc529 .rel-card {
    background: var(--card-bg, #FFFFFF);
    border: 1px solid var(--border, #D0D5E8);
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 12px;
  }

  .relcalc529 .rel-card-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: var(--navy, #002868);
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
  }

  .relcalc529 .rel-card-sub {
    font-size: 12.5px;
    color: var(--muted, #6B7280);
    margin-bottom: 9px;
    line-height: 1.5;
  }

  /* Badges */
  .relcalc529 .badge        { background: var(--navy, #002868);   color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }
  .relcalc529 .badge-green  { background: var(--green, #00843D);  color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }
  .relcalc529 .badge-gold   { background: var(--gold, #C8860A);   color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }
  .relcalc529 .badge-purple { background: var(--purple, #7C3AED); color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }

  /* Layout – 2‑column on desktop, 1‑col on mobile */
  .relcalc529 .rel-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  @media (max-width: 768px) {
    .relcalc529 .rel-grid { grid-template-columns: 1fr; }
  }

  /* Link button – based on .btn but styled as an anchor */
  .relcalc529 .rel-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 8px;
    padding: 7px 13px;
    border-radius: 8px;
    border: 2px solid var(--navy, #002868);
    font-family: 'Montserrat', sans-serif;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.35px;
    color: var(--navy, #002868);
    text-decoration: none;
    background: #FFFFFF;
    transition: background .2s, color .2s;
  }
  .relcalc529 .rel-link:hover {
    background: var(--navy, #002868);
    color: #FFFFFF;
  }

  .relcalc529 .rel-link.green {
    border-color: var(--green, #00843D);
    color: var(--green, #00843D);
  }
  .relcalc529 .rel-link.green:hover {
    background: var(--green, #00843D);
    color: #FFFFFF;
  }

  .relcalc529 .rel-link.gold {
    border-color: var(--gold, #C8860A);
    color: var(--gold, #C8860A);
  }
  .relcalc529 .rel-link.gold:hover {
    background: var(--gold, #C8860A);
    color: #FFFFFF;
  }

  .relcalc529 .rel-link.purple {
    border-color: var(--purple, #7C3AED);
    color: var(--purple, #7C3AED);
  }
  .relcalc529 .rel-link.purple:hover {
    background: var(--purple, #7C3AED);
    color: #FFFFFF;
  }

  /* Small bullet list */
  .relcalc529 .rel-list {
    list-style: none;
    padding: 0;
    margin: 4px 0 0;
    font-size: 12.3px;
    color: var(--muted, #6B7280);
  }
  .relcalc529 .rel-list li {
    margin-bottom: 3px;
  }

  .relcalc529 .rel-note {
    text-align:center;
    padding:10px;
    font-size:11.5px;
    color:var(--muted,#6B7280);
    border-top:1px solid var(--border,#D0D5E8);
    margin-top:8px;
  }
 .legal529 {
    max-width: 960px;
    margin: 28px auto 0;
    padding: 0 14px 40px;
    font-family: 'Inter', sans-serif;
    color: var(--text, #1A1F36);
  }

  /* Header – clone of .sect-hd */
  .legal529 .legal-sect-hd {
    background: linear-gradient(90deg, var(--navy, #002868), #1a3a6b);
    color: #fff;
    border-radius: 8px;
    padding: 10px 13px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 9px;
  }
  .legal529 .legal-sect-hd h2 {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(13px, 2.5vw, 15px);
    font-weight: 700;
    margin: 0;
    color: #fff;
    line-height: 1.3;
  }

  .legal529 .legal-intro {
    font-size: 13px;
    color: var(--muted, #6B7280);
    line-height: 1.7;
    margin: -4px 0 14px;
  }

  /* Cards */
  .legal529 .legal-card {
    background: var(--card-bg, #FFFFFF);
    border: 1px solid var(--border, #D0D5E8);
    border-radius: 12px;
    padding: 14px 16px 13px;
    margin-bottom: 12px;
  }

  .legal529 .legal-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin-bottom: 6px;
  }

  .legal529 .legal-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: var(--navy, #002868);
  }

  /* Badges */
  .legal529 .badge        { background: var(--navy, #002868);   color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }
  .legal529 .badge-red    { background: var(--red, #BF0A30);    color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }
  .legal529 .badge-gold   { background: var(--gold, #C8860A);   color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }
  .legal529 .badge-green  { background: var(--green, #00843D);  color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }
  .legal529 .badge-purple { background: var(--purple, #7C3AED); color:#fff; font-size:9.5px; padding:2px 7px; border-radius:9px; font-weight:700; font-family:'Montserrat',sans-serif; white-space:nowrap; }

  .legal529 p {
    font-size: 12.5px;
    color: var(--muted, #6B7280);
    line-height: 1.75;
    margin: 0 0 7px;
  }
  .legal529 p strong { color: var(--text, #1A1F36); }

  /* Bullet list */
  .legal529 ul {
    padding-left: 16px;
    margin: 4px 0 4px;
    font-size: 12.3px;
    color: var(--muted, #6B7280);
  }
  .legal529 ul li {
    margin-bottom: 3px;
  }

  /* Info / warning boxes */
  .legal529 .info-box {
    background:#EFF6FF; border:1px solid #BFDBFE; border-left:4px solid var(--navy,#002868);
    border-radius:8px; padding:9px 11px;
    font-size:12.3px; color:#1e40af;
    margin-top:7px; line-height:1.65;
  }
  .legal529 .warn-box {
    background:#FFF3CD; border:1px solid #FFCA28; border-left:4px solid #F59E0B;
    border-radius:8px; padding:9px 11px;
    font-size:12.3px; color:#92400E;
    margin-top:7px; line-height:1.65;
  }
  .legal529 .success-box {
    background:#ECFDF5; border:1px solid #A7F3D0; border-left:4px solid var(--green,#00843D);
    border-radius:8px; padding:9px 11px;
    font-size:12.3px; color:#065F46;
    margin-top:7px; line-height:1.65;
  }

  .legal529 .legal-note {
    text-align:center;
    padding:10px;
    font-size:11.5px;
    color:var(--muted,#6B7280);
    border-top:1px solid var(--border,#D0D5E8);
    margin-top:8px;
  }

  @media (max-width: 768px) {
    .legal529 { padding: 0 12px 32px; }
  }