/* ─────────────────────────────────────────────────────────────
   BeneDocuments — Public Stylesheet v2
───────────────────────────────────────────────────────────── */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --blue:#2f6bff;
  --blue-deep:var(--bd-primary);
  --blue-lt:#eff6ff;
  --blue-mid:#bfdbfe;
  --tan:#F3EBDD;
  --green:#059669;
  --green-lt:#ecfdf5;
  --gray-50:#f8fafc;
  --gray-100:#f1f5f9;
  --gray-200:#e2e8f0;
  --gray-300:#cbd5e1;
  --gray-400:#94a3b8;
  --gray-500:#64748b;
  --gray-600:#475569;
  --gray-700:var(--bd-secondary);
  --gray-900:#0f172a;
  --r:14px;
  --r-sm:10px;
  --font:'Plus Jakarta Sans',system-ui,sans-serif;
  --mono:'DM Mono',ui-monospace,monospace;
  --shadow:0 2px 12px rgba(0,0,0,.07),0 1px 3px rgba(0,0,0,.04);
  --shadow-hover:0 8px 28px rgba(0,0,0,.12),0 2px 6px rgba(0,0,0,.06);
  --bd-card-bg:          #ffffff;
  --bd-archive-card-bg:  #ffffff;
  --bd-single-card-bg:   #ffffff;
  --bd-archive-btn-bg:   #FBB040;
  --bd-archive-btn-text: #01164F;
  --bd-warn-bg:     #fffbeb;
  --bd-warn-text:   #b45309;
  --bd-green-lt:    #f0fdf4;
  --bd-green-text:  #166534;
}

body{-webkit-font-smoothing:antialiased}

/* Scope everything so admin styles don't interfere */
.benedoc-main{
  /* --bd-fs: multiplicador tipográfico global. Lo emite class-settings.php
     derivado del slider "Base font size". El fallback var(--bd-fs,1) en cada
     regla garantiza que si no se emite, todo queda exactamente como antes. */
  --bd-fs:1;
  --bd-prose-max:none;
  width:92%;
  max-width:1200px;
  margin:0 auto;
  padding:32px 20px 80px;
  font-family:var(--bd-font) !important;
  color:var(--bd-text) !important;
  font-size:16px !important;
  line-height:1.5 !important;
}
.benedoc-main *{font-family:inherit}

/* ── BACK LINK ────────────────────────────────────────────── */
.benedoc-main .bd-back{
  display:inline-flex;align-items:center;gap:5px;
  font-size:calc(.8rem * var(--bd-fs,1));font-weight:600;text-decoration:none;
  color:var(--bd-text-muted);transition:color .15s;margin-bottom:20px;
}
.benedoc-main .bd-back:hover{color:var(--bd-accent)}
.benedoc-main .bd-back--hero{color:var(--bd-hero-subtext,rgba(255,255,255,.6));margin-bottom:16px}
.benedoc-main .bd-back--hero:hover{color:var(--bd-hero-text,#fff)}

/* ── ARCHIVE ──────────────────────────────────────────────── */
/* ── ARCHIVE PAGE HEADER ──────────────────────────────────── */
.benedoc-main .bd-archive-title{font-size:calc(1.9rem * var(--bd-fs,1));font-weight:800;letter-spacing:-.03em;margin-bottom:28px}

/* ═══════════════════════════════════════════════════════════
   SINGLE PLAN
═══════════════════════════════════════════════════════════ */
.benedoc-main .bd-single{display:flex;flex-direction:column;gap:20px}

/* ── HERO ─────────────────────────────────────────────────── */
.benedoc-main .bd-hero{
  position:relative;overflow:hidden;
  background:var(--bd-hero-bg, #0b1120);
  background-size:cover;
  background-position:center top;
  border-radius:var(--bd-radius);
  color:#fff;
  min-height:200px;
}
.benedoc-main .bd-hero-overlay{
  position:absolute;inset:0;
  background: var(--bd-hero-overlay-bg, linear-gradient(135deg, rgba(5,10,30,.75) 0%, rgba(15,8,35,.58) 100%));
  pointer-events:none;
}
.benedoc-main .bd-hero-inner{
  position:relative;z-index:1;
  padding:36px 40px 40px;
}
.benedoc-main .bd-plan-title{
  font-size:calc(2.2rem * var(--bd-fs,1)) !important;font-weight:800 !important;letter-spacing:-.04em !important;
  line-height:1.15 !important;margin-bottom:6px !important;
  color:var(--bd-hero-text,#fff) !important;
  background:none !important;
  -webkit-text-fill-color:var(--bd-hero-text,#fff) !important;
}
.benedoc-main .bd-plan-provider{
  font-size:calc(.82rem * var(--bd-fs,1)) !important;color:var(--bd-hero-subtext,rgba(255,255,255,.55)) !important;margin-bottom:10px !important;
}
.benedoc-main .bd-plan-desc{
  font-size:calc(.88rem * var(--bd-fs,1));color:var(--bd-hero-subtext,rgba(255,255,255,.75));
  line-height:1.6;max-width:var(--bd-prose-max, none);margin-bottom:16px;
}
.benedoc-main .bd-hero-price{
  display:flex;align-items:baseline;gap:8px;margin-top:8px;
}
.benedoc-main .bd-price-from{font-size:calc(.78rem * var(--bd-fs,1));color:var(--bd-hero-subtext,rgba(255,255,255,.55))}
.benedoc-main .bd-price-val{
  font-size:calc(2.2rem * var(--bd-fs,1));font-weight:800;
  font-family:var(--mono);color:var(--bd-hero-price,#fff);
}
.benedoc-main .bd-price-mo{font-size:calc(.82rem * var(--bd-fs,1));color:var(--bd-hero-subtext,rgba(255,255,255,.55))}

/* ── SECTION SUBHEADS ─────────────────────────────────────── */
/* Pill-style colored label */
.benedoc-main .bd-section-head{
  display:inline-flex;align-items:center;gap:7px;
  font-size:calc(.65rem * var(--bd-fs,1));font-weight:800;text-transform:uppercase;letter-spacing:.14em;
  color:#182957;margin-bottom:18px;
}
.benedoc-main .bd-section-head::before{
  content:'';width:3px;height:13px;
  background:#182957;border-radius:2px;display:inline-block;
}

/* ── RATE BLOCKS ──────────────────────────────────────────── */
.benedoc-main .bd-rate-block{
  background:var(--bd-single-card-bg, var(--bd-card-bg, #ffffff));border:none;border-radius:var(--bd-radius);
  box-shadow:var(--shadow);overflow:hidden;
}

/* Tier header — "Plan 1", "Option 1 – $10,000" */
.benedoc-main .bd-tier-header{
  padding:14px 22px 12px;
  border-bottom:1px solid var(--bd-bg-section);
  background:var(--bd-bg-section);
}
.benedoc-main .bd-tier-name{
  font-size:calc(.9rem * var(--bd-fs,1));font-weight:700;color:var(--bd-text);display:block;
}
.benedoc-main .bd-tier-sub{
  font-size:calc(.75rem * var(--bd-fs,1));color:var(--bd-text-muted);margin-top:3px;display:block;line-height:1.4;
}

/* Rate cards — ALL identical, no highlight on Employee Only */
.benedoc-main .bd-rate-cards{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(130px, 1fr));
  gap:10px;
  padding:16px;
}
.benedoc-main .bd-rate-card{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:18px 12px 16px;
  border:1px solid var(--bd-border);border-radius:calc(var(--bd-radius) - 4px);
  background:var(--bd-single-card-bg, var(--bd-card-bg, #ffffff));transition:box-shadow .15s,border-color .15s;
}
.benedoc-main .bd-rate-card:hover{
  box-shadow:var(--shadow-hover);border-color:var(--bd-border);
}
.benedoc-main .bd-rate-emoji{font-size:calc(1.5rem * var(--bd-fs,1));margin-bottom:8px}
.benedoc-main .bd-rate-name{
  font-size:calc(.72rem * var(--bd-fs,1));font-weight:600;color:var(--bd-text-muted);
  margin-bottom:8px;line-height:1.3;min-height:2em;
  display:flex;align-items:center;justify-content:center;
}
.benedoc-main .bd-rate-price{
  font-size:calc(1.5rem * var(--bd-fs,1));font-weight:800;
  font-family:var(--mono);color:var(--bd-text);
}
.benedoc-main .bd-rate-mo{font-size:calc(.68rem * var(--bd-fs,1));color:var(--gray-400);margin-top:2px}

/* ── FREQUENCY SELECTOR ───────────────────────────────────── */
.benedoc-main .bd-freq-selector{
  display:flex;align-items:center;gap:10px;
  padding:6px 4px 16px;flex-wrap:wrap;
}
.benedoc-main .bd-freq-label{
  font-size:calc(.68rem * var(--bd-fs,1));font-weight:700;color:var(--bd-text-muted);
  text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;
}
.benedoc-main .bd-freq-btns{display:flex;gap:4px;flex-wrap:wrap;}
.benedoc-main .bd-freq-btn{
  padding:5px 13px;border-radius:20px;
  border:1.5px solid var(--bd-border);
  background:transparent;
  font-size:calc(.72rem * var(--bd-fs,1));font-weight:600;color:var(--bd-text-muted);
  cursor:pointer;transition:border-color .15s,color .15s,background .15s;
  font-family:var(--bd-font,inherit);line-height:1.2;
}
.benedoc-main .bd-freq-btn:hover{
  border-color:var(--bd-primary,#01164F);color:var(--bd-primary,#01164F);
}
.benedoc-main .bd-freq-btn--active{
  background:var(--bd-primary,#01164F);
  border-color:var(--bd-primary,#01164F);
  color:#fff;
}
.benedoc-main .bd-freq-btn--active:hover{color:#fff;}

.benedoc-main .bd-rate-na{
  padding:20px;font-size:calc(.85rem * var(--bd-fs,1));color:var(--gray-400);text-align:center;
}

/* Rate-based (STD) */
.benedoc-main .bd-rate-info{
  display:flex;align-items:flex-start;gap:14px;padding:22px;
}
.benedoc-main .bd-rate-info-icon{font-size:calc(1.5rem * var(--bd-fs,1));flex-shrink:0;margin-top:2px}
.benedoc-main .bd-rate-info-val{font-size:calc(.95rem * var(--bd-fs,1));font-weight:700;color:var(--bd-text);margin-bottom:4px}
.benedoc-main .bd-rate-info-sub{font-size:calc(.78rem * var(--bd-fs,1));color:var(--bd-text-muted);line-height:1.5}

/* ── AGE PIVOT ────────────────────────────────────────────── */
.benedoc-main .bd-agepivot{padding:18px 22px 14px}
.benedoc-main .bd-agepivot-top{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;
}
.benedoc-main .bd-agepivot-top label{
  font-size:calc(.82rem * var(--bd-fs,1));font-weight:600;color:var(--bd-text-muted);
}
.benedoc-main .bd-agepivot-top input{
  width:80px;padding:8px 12px;
  border:1.5px solid var(--bd-border);border-radius:8px;
  font-size:calc(.9rem * var(--bd-fs,1));font-family:var(--mono);font-weight:700;color:var(--bd-text);
  transition:border-color .15s,box-shadow .15s;background:var(--bd-single-card-bg, var(--bd-card-bg, #ffffff));
}
.benedoc-main .bd-agepivot-top input:focus{
  outline:none;border-color:var(--bd-accent);
  box-shadow:0 0 0 3px rgba(47,107,255,.12);
}
.benedoc-main .bd-agepivot-scroll{overflow-x:auto;padding-bottom:10px}
.benedoc-main .bd-agepivot-table{
  width:100%;border-collapse:collapse;font-size:calc(.82rem * var(--bd-fs,1));min-width:300px;
}
.benedoc-main .bd-agepivot-table thead th{
  padding:9px 14px;text-align:left;
  font-size:calc(.68rem * var(--bd-fs,1));font-weight:700;text-transform:uppercase;letter-spacing:.07em;
  color: var(--bd-plan-header-text, var(--gray-400));border-bottom:2px solid var(--bd-bg-section);white-space:nowrap;
  background: var(--bd-plan-header-bg, var(--bd-bg-section));
}
.benedoc-main .bd-agepivot-table tbody tr{
  border-bottom:1px solid var(--bd-bg-section);transition:background .12s;
}
.benedoc-main .bd-agepivot-table tbody tr:last-child{border:none}
.benedoc-main .bd-agepivot-table tbody td{
  padding:8px 14px;color:var(--bd-text);font-family:var(--mono);
}
.benedoc-main .bd-age-cell{
  font-family:var(--bd-font) !important;
  font-weight:600 !important;color:var(--bd-text-muted) !important;font-size:calc(.78rem * var(--bd-fs,1)) !important;
}
.benedoc-main .bd-agepivot-table tbody tr.bd-row-hi{
  background:var(--tan);
}
.benedoc-main .bd-agepivot-table tbody tr.bd-row-hi td{
  color:var(--bd-warn-text, #7c5c2a);font-weight:700;
  background:var(--bd-warn-bg, transparent);
}
.benedoc-main .bd-agepivot-table tbody tr.bd-row-hi .bd-age-cell{
  color:var(--bd-warn-text, #7c5c2a) !important;
}

/* ── HEALTH COMPARISON TABLE ──────────────────────────────── */
.benedoc-main .bd-compare{
  background:var(--bd-single-card-bg, var(--bd-card-bg, #ffffff));border:1px solid var(--bd-border);border-radius:var(--bd-radius);
  box-shadow:var(--shadow);overflow:hidden;
}
.benedoc-main .bd-compare-scroll{/* no scroll */}
.benedoc-main .bd-compare-table{
  width:100%;border-collapse:collapse;font-size:calc(.82rem * var(--bd-fs,1));table-layout:auto;
}
.benedoc-main .bd-compare-table thead th{
  padding:12px 16px;text-align:left;background: var(--bd-plan-header-bg, var(--bd-table-header));
  color: var(--bd-plan-header-text, var(--bd-table-header-text, #fff));
  font-size:calc(.72rem * var(--bd-fs,1));font-weight:700;
  border-bottom:2px solid var(--bd-border);
  border-right:1px solid rgba(255,255,255,.15);
  white-space:normal;
  overflow-wrap:break-word;
}
.benedoc-main .bd-compare-table thead th:last-child { border-right:none; }
.benedoc-main .bd-compare-table tbody tr{/* dividers via td border-top */}
.benedoc-main .bd-compare-table tbody tr{}
.benedoc-main .bd-compare-table tbody td{
  padding:10px 16px;font-size:calc(.82rem * var(--bd-fs,1));
  color:var(--bd-text);
  white-space:normal;      /* allow wrapping — content can be long */
  overflow-wrap:break-word;
  border-top:  1px solid var(--bd-border);
  border-left: 1px solid var(--bd-border);
  border-right:  none;
  border-bottom: none;
}
.benedoc-main .bd-compare-table tbody td:first-child { border-left: none; }
.benedoc-main .bd-cmp-lbl{
  font-size:calc(.75rem * var(--bd-fs,1)) !important;
  font-weight:700 !important;color:var(--bd-text-muted) !important;
  border-right:2px solid var(--bd-border) !important;
}
.benedoc-main .bd-cmp-null{color:var(--bd-border) !important}
.benedoc-main .bd-compare-note{
  padding:12px 16px;font-size:calc(.75rem * var(--bd-fs,1));color:var(--gray-400);
  border-top:1px solid var(--bd-border);
}

/* ── INFO GRID ────────────────────────────────────────────── */
.benedoc-main .bd-info-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:16px;
}

/* Base card */
.benedoc-main .bd-info-card{border-radius:var(--bd-radius);padding:24px;background:var(--bd-single-card-bg, var(--bd-card-bg, #ffffff))}

/* Tan — Key Numbers */
.benedoc-main .bd-info-card--tan{
  background:var(--tan);border:none;box-shadow:none;
}

/* Ghost — no border, shadow */
.benedoc-main .bd-info-card--ghost{
  background:var(--bd-single-card-bg, var(--bd-card-bg, #ffffff));border:none;
  box-shadow:var(--shadow);transition:box-shadow .2s ease;
}
.benedoc-main .bd-info-card--ghost:hover{box-shadow:var(--shadow-hover)}
.benedoc-main .bd-info-card--wide{grid-column:1/-1}

/* ── KEY NUMBERS — fixed layout ───────────────────────────── */
/* 2×2 grid, each cell: icon left + text right, no overflow */
.benedoc-main .bd-keynums{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px 12px;
}
.benedoc-main .bd-keynum{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:10px;
  min-width:0;      /* prevent grid blowout */
}
.benedoc-main .bd-keynum-icon{
  font-size:calc(1.4rem * var(--bd-fs,1));
  flex-shrink:0;
  line-height:1;
  margin-top:1px;
}
.benedoc-main .bd-keynum-body{
  display:flex;flex-direction:column;gap:2px;min-width:0;
}
.benedoc-main .bd-keynum-val{
  font-size:calc(1rem * var(--bd-fs,1));font-weight:800;
  color:var(--bd-text);line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.benedoc-main .bd-keynum-lbl{
  font-size:calc(.7rem * var(--bd-fs,1));color:var(--bd-text-muted);line-height:1.3;
}

/* Badge */
.benedoc-main .bd-badge-all{
  font-size:calc(.62rem * var(--bd-fs,1));font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  background:var(--bd-table-group-bg, var(--bd-accent-light));color:var(--bd-accent);
  padding:2px 8px;border-radius:10px;margin-left:4px;
}

/* ── CHIPS ────────────────────────────────────────────────── */
.benedoc-main .bd-chips{display:flex;flex-wrap:wrap;gap:8px}
.benedoc-main .bd-chip{
  display:inline-flex;align-items:center;
  background:var(--bd-bg-section);border:1px solid var(--bd-border);
  border-radius:20px;padding:5px 14px;
  font-size:calc(.75rem * var(--bd-fs,1));font-weight:600;color:var(--bd-text);
}

/* ── COVERED CONDITIONS ───────────────────────────────────── */
.benedoc-main .bd-ls-group{margin-bottom:18px}
.benedoc-main .bd-ls-group:last-child{margin-bottom:0}
.benedoc-main .bd-ls-group-lbl{
  font-size:calc(.65rem * var(--bd-fs,1));font-weight:800;text-transform:uppercase;letter-spacing:.1em;
  color:var(--gray-400);margin-bottom:8px;
}
.benedoc-main .bd-ls-items{display:flex;flex-direction:column;gap:5px}
.benedoc-main .bd-ls-item{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:7px 12px;background:var(--bd-bg-section);border-radius:8px;
}
.benedoc-main .bd-ls-name{font-size:calc(.82rem * var(--bd-fs,1));font-weight:600;color:var(--gray-800);flex:1;white-space:normal;overflow-wrap:break-word;word-break:normal}
.benedoc-main .bd-ls-pay{
  font-size:calc(.82rem * var(--bd-fs,1));font-weight:600;color:var(--gray-800);
  white-space:nowrap;
}
.benedoc-main .bd-ls-badge{font-size:calc(.7rem * var(--bd-fs,1));margin-left:4px}
.benedoc-main .bd-ls-note{font-size:calc(.73rem * var(--bd-fs,1));color:var(--gray-400);margin-top:12px;font-style:italic}

/* ── ELIGIBILITY ──────────────────────────────────────────── */
/* ── Eligibility / Advantages / Limitations / Ideal For lists ───────────────
   Translation-safe layout. Weglot/translation plugins wrap words in <span>
   tags which become extra flex children when li uses display:flex, creating
   word-by-word column gaps.

   Solution: use CSS Grid with exactly 2 columns:
     Column 1 (auto): the icon — fixed width, never grows
     Column 2 (minmax(0,1fr)): the text — fills remaining space, wraps freely

   The icon is .bd-elig-ico (span before text). The text content node and any
   Weglot-injected spans are in column 2 together because grid only creates
   tracks for the DEFINED columns — overflow is placed in column 2 automatically
   via the implicit grid. To make this reliable, wrap the text in a span.bd-elig-txt.
   ─────────────────────────────────────────────────────────────────────────── */
.benedoc-main .bd-elig-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding: 0;
  margin: 0;
}
.benedoc-main .bd-elig-list li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 8px;
  align-items: flex-start;
  font-size:calc(.84rem * var(--bd-fs,1));
  color: var(--bd-text-muted);
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
}
.benedoc-main .bd-elig-ico {
  font-size:calc(1rem * var(--bd-fs,1));
  flex-shrink: 0;
  margin-top: 1px;
  /* Stays in column 1 of the grid */
}
/* Text wrapper: column 2 of the grid — all Weglot spans land here */
.benedoc-main .bd-elig-txt {
  /* No explicit grid-column needed — auto-placed in column 2 */
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
}
/* Weglot/translation span safety: never create rigid columns inside text */
.benedoc-main .bd-elig-list li span:not(.bd-elig-ico):not(.bd-elig-txt) {
  display: inline;         /* not block, not flex, not grid */
  white-space: normal;
  word-break: normal;
}

/* ── RICH LIST ────────────────────────────────────────────── */
.benedoc-main .bd-rich-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.benedoc-main .bd-rich-list>li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;align-items:flex-start;font-size:calc(.84rem * var(--bd-fs,1));color:var(--bd-text-muted);line-height:1.55;white-space:normal;overflow-wrap:break-word;word-break:normal}
.benedoc-main .bd-rl-marker{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;min-width:20px;height:20px;background:var(--bd-primary,#01164F);color:#fff;font-size:calc(.68rem * var(--bd-fs,1));font-weight:700;border-radius:50%}
.benedoc-main .bd-rich-list--unordered .bd-rl-marker{background:transparent;color:var(--bd-primary,#01164F);font-size:calc(1rem * var(--bd-fs,1));font-weight:700;min-width:16px}
.benedoc-main .bd-rl-item-body{flex:1}
.benedoc-main .bd-rl-children{list-style:disc;margin:6px 0 0 0;padding-left:18px;display:flex;flex-direction:column;gap:5px}
.benedoc-main .bd-rl-children li{font-size:calc(.82rem * var(--bd-fs,1));color:var(--bd-text-muted);line-height:1.5}
.benedoc-main .bd-rl-note{font-size:calc(.73rem * var(--bd-fs,1));color:var(--gray-400);margin-top:14px;font-style:italic;line-height:1.5}

/* ── GOOD FIT ─────────────────────────────────────────────── */
.benedoc-main .bd-fit-lbl{font-size:calc(.72rem * var(--bd-fs,1));font-weight:700;color:var(--bd-text-muted);margin-bottom:6px}
/* bd-fit (Is This Right For You) — Weglot-safe */
.benedoc-main .bd-fit--yes ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 0;
}
.benedoc-main .bd-fit--yes ul li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 6px;
  font-size:calc(.82rem * var(--bd-fs,1));
  color: var(--bd-text-muted);
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
}
.benedoc-main .bd-fit--yes ul li::before {
  content: '✓';
  color: var(--green);
  font-weight: 700;
  flex-shrink: 0;
}

/* ── BENEAI CTA — solid var(--bd-primary) ───────────────────────────── */
.benedoc-main .bd-beneai{
  background:var(--bd-beneai-bg);
  border-radius:var(--bd-radius);
  padding:32px 36px;
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:24px;
}
.benedoc-main .bd-beneai-content{flex:1;min-width:200px}
.benedoc-main .bd-beneai-h{
  font-size:calc(1.05rem * var(--bd-fs,1));font-weight:700;color:var(--bd-beneai-text,#fff);line-height:1.35;margin-bottom:6px;
}
.benedoc-main .bd-beneai-sub{
  font-size:calc(.82rem * var(--bd-fs,1));color:var(--bd-beneai-subtext,#a0aec0);line-height:1.6;max-width:460px;
}
.benedoc-main .bd-beneai-btn{
  border:none;cursor:pointer;font-family:var(--bd-font);

  display:inline-flex;align-items:center;gap:8px;
  background:var(--ctm-btn2-bg);color:var(--ctm-btn2-text);font-size:calc(.85rem * var(--bd-fs,1));font-weight:700;
  padding:12px 22px;border-radius:8px;text-decoration:none;
  transition:all .15s;white-space:nowrap;flex-shrink:0;
  box-shadow:0 4px 16px rgba(0,0,0,.2);
}
.benedoc-main .bd-beneai-btn:hover{
  background:var(--ctm-btn2-hover-bg);color:var(--ctm-btn2-hover-text);transform:translateY(-1px);
  box-shadow:0 6px 20px rgba(0,0,0,.25);
}

/* ── FOOTER META ──────────────────────────────────────────── */
.benedoc-main .bd-footer-meta{
  display:flex;flex-wrap:wrap;gap:16px;
  padding-top:8px;border-top:1px solid var(--bd-bg-section);
}
.benedoc-main .bd-footer-meta span{font-size:calc(.75rem * var(--bd-fs,1));color:var(--gray-400)}

/* ── RESPONSIVE ───────────────────────────────────────────── */
@media(max-width:640px){
  .benedoc-main{padding:20px 14px 60px}
  .benedoc-main .bd-hero-inner{padding:26px 20px 30px}
  .benedoc-main .bd-plan-title{font-size:calc(1.6rem * var(--bd-fs,1))}
  .benedoc-main .bd-price-val{font-size:calc(1.7rem * var(--bd-fs,1))}
  .benedoc-main .bd-info-grid{grid-template-columns:1fr}
  .benedoc-main .bd-keynums{grid-template-columns:1fr 1fr}
  .benedoc-main .bd-beneai{padding:24px 20px;flex-direction:column}
  .benedoc-main .bd-rate-cards{grid-template-columns:repeat(2,1fr)}
  .benedoc-main .bd-agepivot{padding:14px 16px 8px}
}

/* ── ELIGIBILITY NOTE (spouse clarification etc.) ─────────── */
.benedoc-main .bd-elig-note{
  font-size:calc(.75rem * var(--bd-fs,1));color:var(--bd-text-muted);line-height:1.5;
  margin-top:12px;padding-top:10px;border-top:1px solid var(--bd-bg-section);
  font-style:italic;
}

/* ── DOCUMENT LINK ────────────────────────────────────────── */
.benedoc-main .bd-doc-link-card{
  padding:0;background:none;box-shadow:none;
}
.benedoc-main .bd-doc-link{
  display:inline-flex;align-items:center;gap:8px;
  font-size:calc(.82rem * var(--bd-fs,1));font-weight:600;color:var(--bd-text-muted);
  text-decoration:none;padding:12px 0;
  transition:color .15s;
}
.benedoc-main .bd-doc-link span{
  color:var(--bd-accent);text-decoration:underline;text-underline-offset:3px;
}
.benedoc-main .bd-doc-link:hover span{color:var(--bd-accent)}

/* ── FIT LIST — no label prefix now, bullet only ─────────── */
/* bd-fit::before — see consolidated rule above */

/* ── VISION BENEFIT TABLE ─────────────────────────────────── */
.benedoc-main .bd-vision-block{display:flex;flex-direction:column;gap:16px}
.benedoc-main .bd-vision-table{
  display:flex;flex-direction:column;gap:1px;
  border-top:1px solid var(--bd-bg-section);margin-top:4px;
  padding:12px 18px 14px;
}
.benedoc-main .bd-vision-row{
  display:grid;
  grid-template-columns:28px 1fr auto auto;
  align-items:center;gap:8px;
  padding:8px 0;
  border-bottom:1px solid var(--bd-bg-section);
}
.benedoc-main .bd-vision-row:last-child{border-bottom:none}
.benedoc-main .bd-vision-row--freq{margin-top:4px;border-top:1px solid var(--bd-bg-section)}
.benedoc-main .bd-vision-icon{font-size:calc(1rem * var(--bd-fs,1));text-align:center}
.benedoc-main .bd-vision-label{font-size:calc(.82rem * var(--bd-fs,1));color:var(--bd-text-muted);font-weight:500}
.benedoc-main .bd-vision-val{
  font-size:calc(.9rem * var(--bd-fs,1));font-weight:700;color:var(--bd-text);
  font-family:var(--mono);text-align:right;
}
.benedoc-main .bd-vision-suffix{
  font-size:calc(.7rem * var(--bd-fs,1));color:var(--gray-400);min-width:60px;
}
.benedoc-main .bd-rate-na-inline{
  font-size:calc(.9rem * var(--bd-fs,1));color:var(--bd-border);
}

/* OON rows slightly muted */
.benedoc-main .bd-vision-row:has(.bd-vision-label:contains("OON")) .bd-vision-val,
.benedoc-main .bd-vision-row:has(.bd-vision-label:contains("Out-of-network")) .bd-vision-val{
  color:var(--bd-text-muted);
}

/* ── CANCER COMPARISON TABLE ──────────────────────────────── */
.benedoc-main .bd-cancer-compare{
  background:var(--bd-single-card-bg, var(--bd-card-bg, #ffffff));border:none;border-radius:var(--bd-radius);
  box-shadow:var(--shadow);overflow:hidden;
}

/* Column header row */
.benedoc-main .bd-cc-head{
  display:grid;
  grid-template-columns:1fr repeat(2, 180px);
  border-bottom:3px solid var(--bd-table-header);
}
.benedoc-main .bd-cc-label-col{
  padding:18px 20px;
  background:var(--bd-single-card-bg, var(--bd-card-bg, #ffffff));
  display:flex;align-items:flex-end;
}
.benedoc-main .bd-cc-tier-col{
  padding:20px 16px;text-align:center;
  border-left:2px solid var(--bd-bg-section);
}
.benedoc-main .bd-cc-tier-col--lo{
  background: var(--bd-plan-header-bg, var(--bd-bg-section));
}
.benedoc-main .bd-cc-tier-col--hi{
  background: var(--bd-plan-header-bg, var(--bd-accent-light));
}
.benedoc-main .bd-cc-tier-name{
  font-size:calc(.75rem * var(--bd-fs,1));font-weight:800;
  text-transform:uppercase;letter-spacing:.08em;
  margin-bottom:8px;
}
.benedoc-main .bd-cc-tier-col--lo .bd-cc-tier-name{ color: var(--bd-plan-header-text, var(--bd-text-muted)); }
.benedoc-main .bd-cc-tier-col--hi .bd-cc-tier-name{ color: var(--bd-plan-header-text, var(--bd-text)); }
.benedoc-main .bd-cc-tier-price{
  font-size:calc(1.25rem * var(--bd-fs,1));font-weight:800;font-family:var(--mono);
}
.benedoc-main .bd-cc-tier-col--lo .bd-cc-tier-price{ color: var(--bd-plan-header-text, var(--bd-text)); }
.benedoc-main .bd-cc-tier-col--hi .bd-cc-tier-price{ color: var(--bd-plan-header-text, var(--bd-text)); }
.benedoc-main .bd-cc-tier-price span{
  font-size:calc(.7rem * var(--bd-fs,1));font-weight:400;
}
.benedoc-main .bd-cc-tier-col--lo .bd-cc-tier-price span{ color: var(--bd-plan-header-text, var(--gray-400)); }
.benedoc-main .bd-cc-tier-col--hi .bd-cc-tier-price span{ color: var(--bd-plan-header-text, var(--gray-400)); }

/* Section label */
.benedoc-main .bd-cc-section-label{
  font-size:calc(.63rem * var(--bd-fs,1));font-weight:800;text-transform:uppercase;letter-spacing:.14em;
  color:#fff;padding:8px 20px;
  background:var(--bd-accent);
  border-top:none;border-bottom:none;
}
.benedoc-main .bd-cc-section-row-sub {
  grid-column: 1 / -1;
  background: var(--bd-table-group-bg, var(--bd-accent-light));
  color: var(--bd-table-group-text, var(--bd-primary));
  font-size:calc(.68rem * var(--bd-fs,1));
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 7px 20px;
  border-top: 1px solid var(--bd-border);
  border-bottom: 1px solid var(--bd-border);
}

/* Data row */
.benedoc-main .bd-cc-row{
  display:grid;
  grid-template-columns:1fr repeat(2, 180px);
  border-bottom:1px solid var(--bd-border);
  transition:background .12s;
}
.benedoc-main .bd-cc-row:last-of-type{border-bottom:none}
.benedoc-main .bd-cc-row:nth-child(even){background:var(--bd-bg-section)}
.benedoc-main .bd-cc-row{}
.benedoc-main .bd-cc-label{
  padding:11px 20px;font-size:calc(.85rem * var(--bd-fs,1));font-weight:600;color:var(--bd-text);
  display:flex;align-items:center;gap:8px;line-height:1.4;
}
.benedoc-main .bd-cc-emoji{font-size:calc(.9rem * var(--bd-fs,1));flex-shrink:0;}
.benedoc-main .bd-cc-val{
  padding:11px 16px;text-align:center;
  font-size:calc(.85rem * var(--bd-fs,1));font-weight:600;
  color:var(--bd-text);
  border-left:1px solid var(--bd-border);
  display:flex;align-items:center;justify-content:center;
  line-height:1.3;
}
/* Hi tier column (rightmost) gets accent background */
.benedoc-main .bd-cc-row > .bd-cc-val:last-child{
  background: color-mix(in srgb, var(--bd-accent, #2f6bff) 4%, transparent);
  border-left: 2px solid color-mix(in srgb, var(--bd-accent, #2f6bff) 18%, transparent);
  color:var(--bd-text);
  font-weight:700;
}
.benedoc-main .bd-cc-val--highlight{
  color:var(--bd-text) !important;
  font-size:calc(1rem * var(--bd-fs,1));
}
.benedoc-main .bd-cc-label--emph{
  font-weight:800;
  color:var(--bd-text);
}
.benedoc-main .bd-cc-val--emph{
  font-weight:800;
  font-size:calc(1.05rem * var(--bd-fs,1));
}

/* Footer */
.benedoc-main .bd-cc-footer{
  padding:14px 20px;font-size:calc(.76rem * var(--bd-fs,1));color:var(--bd-text-muted);
  border-top:1px solid var(--bd-border);
  background:var(--bd-bg-section);line-height:1.6;
}

@media(max-width:640px){
  .benedoc-main .bd-cc-head,
  .benedoc-main .bd-cc-row{
    grid-template-columns:1fr repeat(2, 120px);
  }
  .benedoc-main .bd-cc-label-col,
  .benedoc-main .bd-cc-label{padding:10px 12px}
  .benedoc-main .bd-cc-tier-col,
  .benedoc-main .bd-cc-val{padding:10px 8px}
  .benedoc-main .bd-cc-val{font-size:calc(.76rem * var(--bd-fs,1))}
  .benedoc-main .bd-cc-tier-price{font-size:calc(1rem * var(--bd-fs,1))}
}


/* ── DOWNLOAD ALL PDF ──────────────────────────────────────── */
.benedoc-main .bd-archive-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}


/* ── PDF EXPORT BUTTON ──────────────────────────────────────── */
.benedoc-main .bd-pdf-bar {
  display: flex;
  justify-content: center;
  padding: 24px 0 8px;
}
.benedoc-main .bd-pdf-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--ctm-btn-bg, #FBB040);
  border: none;
  border-radius: 10px;
  color: var(--ctm-btn-text, #01164F);
  font-size:calc(.9rem * var(--bd-fs,1));
  font-weight: 700;
  padding: 12px 28px;
  cursor: pointer;
  transition: background .15s, transform .1s;
  box-shadow: 0 2px 8px rgba(30,58,95,.25);
  font-family: inherit;
}
.benedoc-main .bd-pdf-btn:hover {
  background: var(--ctm-btn-hover-bg, #e8a030);
  color: var(--ctm-btn-hover-text, var(--bd-cta-text));
  transform: translateY(-1px);
}
.benedoc-main .bd-pdf-btn:disabled {
  opacity: .6;
  cursor: not-allowed;
  transform: none;
}
.benedoc-main .bd-doc-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 28px;
  background: var(--ctm-btn-bg, #FBB040);
  color: var(--ctm-btn-text, #01164F);
  border-radius: 10px;
  font-size:calc(.9rem * var(--bd-fs,1));
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(30,58,95,.25);
  transition: background .15s, transform .1s;
}
.benedoc-main .bd-doc-link:hover {
  background: var(--ctm-btn-hover-bg, #e8a030);
  color: var(--ctm-btn-hover-text, var(--bd-cta-text));
  transform: translateY(-1px);
}

.benedoc-main .bd-plans-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
  margin-top: 24px;
}

.benedoc-main .bd-archive .bd-plan-card {
  background: var(--bd-archive-card-bg, #ffffff);
  border: 1px solid var(--bd-archive-border);
  border-radius: var(--bd-radius);
  box-shadow: var(--shadow);
  padding: 22px 24px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: box-shadow .2s, transform .2s;
}
.benedoc-main .bd-archive .bd-plan-card:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,.1);
  transform: translateY(-2px);
}

.benedoc-main .bd-archive .bd-plan-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.benedoc-main .bd-archive .bd-plan-type-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size:calc(.7rem * var(--bd-fs,1));
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--bd-card-badge-text, var(--bd-accent));
  background: var(--bd-card-badge-bg, var(--bd-table-group-bg, var(--bd-accent-light)));
  padding: 3px 8px;
  border-radius: 99px;
}

.benedoc-main .bd-archive .bd-plan-card-price {
  font-size:calc(.75rem * var(--bd-fs,1));
  font-weight: 700;
  font-family: var(--mono);
  color: var(--bd-text-muted);
  white-space: nowrap;
}

.benedoc-main .bd-archive .bd-plan-card-title {
  font-size:calc(1.05rem * var(--bd-fs,1));
  font-weight: 800;
  color: var(--bd-archive-card-title, var(--bd-text));
  line-height: 1.25;
  margin: 0;
}

.benedoc-main .bd-archive .bd-plan-card-provider {
  font-size:calc(.75rem * var(--bd-fs,1));
  color: var(--bd-archive-card-provider, var(--bd-text-muted));
  margin: 0;
}

.benedoc-main .bd-archive .bd-plan-card-desc {
  font-size:calc(.82rem * var(--bd-fs,1));
  color: var(--bd-archive-card-desc, var(--bd-text-muted));
  line-height: 1.55;
  margin: 0;
  flex: 1;
}

.benedoc-main .bd-archive .bd-plan-card-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  padding: 9px 16px;
  background: var(--bd-archive-btn-bg, var(--bd-cta-bg));
  color: var(--bd-archive-btn-text, var(--bd-cta-text));
  font-size:calc(.8rem * var(--bd-fs,1));
  font-weight: 700;
  border-radius: calc(var(--bd-radius) - 4px);
  text-decoration: none;
  align-self: flex-start;
  transition: background .15s, transform .15s;
}
.benedoc-main .bd-archive .bd-plan-card-btn:hover {
  background: var(--bd-archive-btn-hover, var(--bd-cta-hover));
  color: var(--bd-archive-btn-text-hover, var(--bd-archive-btn-text, var(--bd-cta-text)));
  transform: translateX(2px);
}

/* ── Guide download button bar — lives inside [benefit_plans] ── */
.benedoc-main .bd-archive .bd-archive-guide-bar {
  display: flex;
  justify-content: flex-start;
  margin-bottom: 20px;
}

@media screen and (max-width: 600px) {
  .benedoc-main .bd-archive .bd-plans-grid {
    grid-template-columns: 1fr;
  }
}

/* ── RIDERS COMPARISON ────────────────────────────────────── */
.benedoc-main .bd-riders-wrap {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin: 24px 0;
}

.benedoc-main .bd-riders-tier {
  background:var(--bd-single-card-bg, var(--bd-card-bg, #ffffff));
  border-radius: var(--bd-radius);
  box-shadow: var(--shadow);
  overflow: hidden;
}

.benedoc-main .bd-riders-tier-head {
  background: var(--bd-table-header);
  color: #fff;
  padding: 20px 22px 16px;
}

.benedoc-main .bd-riders-tier-name {
  font-size:calc(1rem * var(--bd-fs,1));
  font-weight: 800;
  color: #fff;
  margin: 0 0 8px;
  line-height: 1.3;
}

.benedoc-main .bd-riders-tier-desc {
  font-size:calc(.78rem * var(--bd-fs,1));
  color: rgba(255,255,255,.75);
  line-height: 1.5;
  margin: 0 0 12px;
}

.benedoc-main .bd-riders-contact {
  font-size:calc(.8rem * var(--bd-fs,1));
  color: rgba(255,255,255,.5);
  font-style: italic;
  margin: 8px 0 0;
}

.benedoc-main .bd-riders-prices {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.benedoc-main .bd-riders-price-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(255,255,255,.1);
  border-radius: 6px;
  padding: 6px 10px;
}

.benedoc-main .bd-riders-coverage {
  font-size:calc(.78rem * var(--bd-fs,1));
  color: rgba(255,255,255,.8);
}

.benedoc-main .bd-riders-amount {
  font-size:calc(.85rem * var(--bd-fs,1));
  font-weight: 700;
  font-family: var(--mono);
  color: #fff;
}

.benedoc-main .bd-riders-lump {
  margin-top: 12px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.benedoc-main .bd-riders-lump-item {
  background: rgba(255,255,255,.15);
  border-radius: 8px;
  padding: 8px 12px;
  text-align: center;
}

.benedoc-main .bd-riders-lump-val {
  display: block;
  font-size:calc(1.1rem * var(--bd-fs,1));
  font-weight: 800;
  font-family: var(--mono);
  color: #fff;
}

.benedoc-main .bd-riders-lump-lbl {
  display: block;
  font-size:calc(.7rem * var(--bd-fs,1));
  color: rgba(255,255,255,.7);
  margin-top: 2px;
}

.benedoc-main .bd-riders-list {
  list-style: none;
  padding: 16px 22px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.benedoc-main .bd-riders-item {
  border-bottom: 1px solid var(--bd-bg-section);
  padding-bottom: 12px;
}
.benedoc-main .bd-riders-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.benedoc-main .bd-riders-item-name {
  font-size:calc(.85rem * var(--bd-fs,1));
  font-weight: 700;
  color: var(--bd-primary);
  margin-bottom: 3px;
}

.benedoc-main .bd-riders-item-desc {
  font-size:calc(.78rem * var(--bd-fs,1));
  color: var(--bd-text-muted);
  line-height: 1.5;
}

@media screen and (max-width: 600px) {
  .benedoc-main .bd-riders-wrap {
    grid-template-columns: 1fr;
  }
}

/* ── VISION DETAIL TABLE ──────────────────────────────────── */
.benedoc-main .bd-vision-detail-table {
  margin: 20px 0;
  border: 1px solid var(--bd-border);
  border-radius: var(--bd-radius);
  overflow: hidden;
  font-size:calc(.82rem * var(--bd-fs,1));
}

.benedoc-main .bd-vision-detail-head {
  display: grid;
  grid-template-columns: 2fr 1fr;
  background: var(--bd-table-header);
  color: #fff;
  font-weight: 700;
  font-size:calc(.75rem * var(--bd-fs,1));
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 10px 14px;
  gap: 8px;
}

.benedoc-main .bd-vision-detail-row {
  display: grid;
  grid-template-columns: 2fr 1fr;
  padding: 8px 14px;
  gap: 8px;
  border-bottom: 1px solid var(--bd-bg-section);
  align-items: center;
}
.benedoc-main .bd-vision-detail-row:last-child { border-bottom: none; }
.benedoc-main .bd-vision-detail-row:nth-child(even) { background: var(--bd-bg-section); }

.benedoc-main .bd-vision-detail-service {
  color: var(--bd-text);
  font-weight: 500;
}

.benedoc-main .bd-vision-detail-in {
  color: var(--bd-text);
  font-weight: 600;
  font-size:calc(.8rem * var(--bd-fs,1));
}

.benedoc-main .bd-vision-detail-oon {
  color: var(--bd-text-muted);
  font-size:calc(.78rem * var(--bd-fs,1));
}

.benedoc-main .bd-vision-detail-row--freq {
  background: var(--tan) !important;
  font-weight: 600;
}

@media screen and (max-width: 520px) {
  .benedoc-main .bd-vision-detail-head,
  .benedoc-main .bd-vision-detail-row {
    grid-template-columns: 1.5fr 1fr;
    font-size:calc(.75rem * var(--bd-fs,1));
    padding: 7px 10px;
  }
}

/* ── CANCER COMPARISON — Not included style ───────────────── */
.benedoc-main .bd-cc-val--none {
  color: var(--gray-400);
  font-style: italic;
  font-size:calc(.78rem * var(--bd-fs,1));
}

/* ── WELLNESS BENEFIT BADGE (CI) ─────────────────────────── */
.benedoc-main .bd-wellness-badge {
  margin-top: 12px;
  background:var(--bd-green-lt, #f0fdf4);
  border: 1px solid var(--bd-green-border, #bbf7d0);
  border-radius: 8px;
  padding: 10px 14px;
  font-size:calc(.8rem * var(--bd-fs,1));
  color:var(--bd-green-text, #166534);
  line-height: 1.5;
}
.benedoc-main .bd-wellness-badge strong {
  color:var(--bd-green-text, #15803d);
}


/* ── ACCIDENT DETAIL TABLE ───────────────────────────────── */
.benedoc-main .bd-accident-wrap {
  margin: 24px 0;
}

.benedoc-main .bd-accident-table {
  border: 1px solid var(--bd-border);
  border-radius: var(--bd-radius);
  overflow: hidden;
  font-size:calc(.82rem * var(--bd-fs,1));
}

.benedoc-main .bd-accident-table-head {
  display: grid;
  grid-template-columns: 1fr auto;
  background: var(--bd-table-header);
  color: #fff;
  font-weight: 700;
  font-size:calc(.75rem * var(--bd-fs,1));
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 10px 16px;
  gap: 16px;
}

.benedoc-main .bd-accident-section-label {
  background: var(--bd-bg-section);
  color: var(--bd-text-muted);
  font-size:calc(.72rem * var(--bd-fs,1));
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 7px 16px;
  border-top: 1px solid var(--bd-border);
}

/* Section header rows (new section_header pattern — same visual as dental) */
.benedoc-main .bd-accident-section-header {
  background: var(--bd-table-group-bg, var(--bd-accent-light));
  color: var(--bd-table-group-text, var(--bd-primary));
  font-size:calc(.72rem * var(--bd-fs,1));
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  padding: 8px 16px;
  border-top: 1px solid var(--bd-border);
  border-bottom: 1px solid var(--bd-border);
  display: block;
}

.benedoc-main .bd-accident-row {
  display: grid;
  grid-template-columns: 1fr auto;
  padding: 9px 16px;
  border-bottom: 1px solid var(--bd-bg-section);
  align-items: center;
  gap: 16px;
}
.benedoc-main .bd-accident-row:last-child { border-bottom: none; }
.benedoc-main .bd-accident-row:nth-child(even) { background: var(--bd-bg-section); }
.benedoc-main .bd-accident-row--alt { background: var(--bd-bg-section); }

.benedoc-main .bd-accident-benefit {
  color: var(--bd-text);
  font-size:calc(.82rem * var(--bd-fs,1));
}

.benedoc-main .bd-accident-amount {
  color: var(--bd-text);
  font-weight: 700;
  font-size:calc(.82rem * var(--bd-fs,1));
  white-space: nowrap;
  text-align: right;
}

/* Category cards fallback (no detail table) */
.benedoc-main .bd-accident-cats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}

.benedoc-main .bd-accident-cat-card {
  background:var(--bd-single-card-bg, var(--bd-card-bg, #ffffff));
  border: 1px solid var(--bd-border);
  border-radius: var(--bd-radius);
  padding: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  box-shadow: var(--shadow);
}

.benedoc-main .bd-accident-cat-icon { font-size:calc(1.6rem * var(--bd-fs,1)); }

.benedoc-main .bd-accident-cat-name {
  font-size:calc(.8rem * var(--bd-fs,1));
  font-weight: 700;
  color: var(--gray-800);
}

.benedoc-main .bd-accident-cat-count {
  font-size:calc(.72rem * var(--bd-fs,1));
  color: var(--gray-400);
}

/* ── HR CONTACT MESSAGE ─────────────────────────────────── */
.benedoc-main .bd-rate-contact-hr {
  display: flex;
  align-items: center;
  gap: 14px;
  background:var(--bd-warn-bg, #fffbeb);
  border: 1px solid var(--bd-warn-border, #fde68a);
  border-radius: var(--bd-radius);
  padding: 14px 18px;
  margin: 8px 0;
}
.benedoc-main .bd-rate-contact-icon {
  font-size:calc(1.6rem * var(--bd-fs,1));
  flex-shrink: 0;
}
.benedoc-main .bd-rate-contact-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.benedoc-main .bd-rate-contact-body strong {
  font-size:calc(.85rem * var(--bd-fs,1));
  color: var(--bd-warn-text-strong, #92400e);
  font-weight: 700;
}
.benedoc-main .bd-rate-contact-body span {
  font-size:calc(.8rem * var(--bd-fs,1));
  color:var(--bd-warn-text, #b45309);
}

/* ── PDF EXPORT BUTTON ──────────────────────────────────── */
/* ── PRINT / PDF STYLES ─────────────────────────────────── */
/* ── PRINT / PDF EXPORT ─────────────────────────────────── */


/* ── DENTAL DETAIL TABLE ────────────────────────────────── */
.benedoc-main .bd-table-scroll { /* no overflow-x:auto — tables adapt instead of scroll */ }
.benedoc-main .bd-table-wrap {
  border: 1px solid var(--bd-border);
  border-radius: var(--bd-radius);
  overflow: hidden;
}
/* ── bd-table (dental detail / deductibles) ─────────────────────────────────
   Single source of truth for borders.
   Strategy: border-top + border-left on cells only.
   The wrapper (.bd-table-wrap) provides the outer frame (border + border-radius).
   No cell border ever reaches the wrapper edge → zero double-borders, zero artifacts.
   ─────────────────────────────────────────────────────────────────────────────── */
.benedoc-main .bd-table {
  width: 100%;
  border-collapse: collapse;
  font-size:calc(.82rem * var(--bd-fs,1));
  table-layout: auto;  /* auto: browser sizes columns to content */
}
.benedoc-main .bd-table thead th {
  background: var(--bd-plan-header-bg, var(--bd-table-header));
  color: var(--bd-plan-header-text, var(--bd-table-header-text, #fff));
  font-weight: 700;
  padding: 10px 16px;
  text-align: left;
  font-size:calc(.75rem * var(--bd-fs,1));
  text-transform: uppercase;
  letter-spacing: .05em;
  /* Dividers between header cells only — no outer edges */
  border-top:    none;
  border-bottom: 2px solid var(--bd-border);
  border-left:   1px solid rgba(255,255,255,.15);
  border-right:  none;
}
.benedoc-main .bd-table thead th:first-child { border-left: none; }
.benedoc-main .bd-table tbody td {
  padding: 10px 16px;
  color: var(--bd-text);
  vertical-align: top;
  line-height: 1.5;
  overflow-wrap: break-word;
  background: var(--bd-bg, #fff);
  /* Top + left only — wrapper provides bottom and right */
  border-top:    1px solid var(--bd-border);
  border-left:   1px solid var(--bd-border);
  border-bottom: none;
  border-right:  none;
}
.benedoc-main .bd-table tbody td:first-child { border-left: none; }
.benedoc-main .bd-table .bd-table-cell,
.benedoc-main .bd-table .bd-table-cell-secondary {
  white-space: normal;     /* allow wrapping; use .bd-nowrap for short values */
  overflow-wrap: break-word;
  text-align: center;
  background: var(--bd-bg, #fff);
}
.benedoc-main .bd-table tbody tr.bd-table-row-alt { background: var(--bd-table-row-alt, var(--bd-bg-section)); }
/* ── Column widths: scoped by data-cols — no global width dominance ──────────
   bd-table-label width is set here only as a fallback for 2-col tables.
   Colgroup inline styles in PHP override these for multi-column tables.
   ─────────────────────────────────────────────────────────────────────────── */
.benedoc-main .bd-benefit-table[data-cols="2"] td.bd-table-label { width: 40%; }
.benedoc-main .bd-benefit-table[data-cols="3"] td.bd-table-label,
.benedoc-main .bd-dental-table[data-cols="3"]  td.bd-table-label { width: 34%; }
.benedoc-main .bd-benefit-table[data-cols="4"] td.bd-table-label { width: 28%; }
/* 5+ col: no label width — card layout on mobile, colgroup handles desktop */

.benedoc-main .bd-table-label {
  font-weight: 700;
  color: var(--bd-text);
  /* width intentionally not set globally — see per-col rules above */
}
.benedoc-main .bd-table-cell {
  color: var(--bd-text);
  font-weight: 400;
  text-align: center;
  /* width not set globally — colgroup controls column distribution */
}
.benedoc-main .bd-table-cell-secondary {
  color: var(--bd-text-muted);
  text-align: center;
  /* width and min-width removed — colgroup controls column distribution */
}
/* ── Text wrapping utilities ─────────────────────────────────────────────────
   All table cells: word-break:normal + overflow-wrap:break-word.
   This breaks between words/tokens only — never mid-number or mid-word.
   Use .bd-nowrap on cells that must never wrap (truly short values).
   ─────────────────────────────────────────────────────────────────────────── */
.benedoc-main table td,
.benedoc-main table th {
  overflow-wrap: break-word; /* break between words only — never mid-number */
  word-break: normal;        /* keep "80%" and "$1,500" on one line */
}
/* Short-value helper — add class="bd-table-cell bd-nowrap" in PHP for $-amounts */
.benedoc-main .bd-nowrap { white-space: nowrap !important; }

/* ── Phantom column prevention ───────────────────────────────────────────────
   If a truly empty td has no content and no class, collapse it.
   This catches edge cases where header col-span declares more cols than tbody.
   Note: :empty matches cells with NO children/text nodes at all.
   ─────────────────────────────────────────────────────────────────────────── */
.benedoc-main .bd-benefit-table td:empty:not(.bd-table-cell):not(.bd-table-label) {
  padding: 0 !important;
  border: none !important;
  min-width: 0 !important;
  width: 0 !important;
}
/* ── Group header last-child: no trailing space ──────────────────────────── */
.benedoc-main .bd-benefit-table thead .bd-table-col-groups th:last-child,
.benedoc-main .bd-benefit-table thead .bd-table-subheader   th:last-child {
  border-right: none !important;
}

.benedoc-main .bd-table-note {
  color: var(--bd-text-muted);
  font-size:calc(.75rem * var(--bd-fs,1));
  font-style: italic;
}

/* Dental mobile */
@media screen and (max-width: 480px) {
  .benedoc-main .bd-table {
    font-size:calc(.73rem * var(--bd-fs,1));
    table-layout: auto;
  }
  .benedoc-main .bd-table thead th,
  .benedoc-main .bd-table tbody td {
    padding: 7px 8px;
  }
  .benedoc-main .bd-table-label { width: auto; }
  .benedoc-main .bd-table-cell  { width: auto; }
}

/* ── CI OVERVIEW ─────────────────────────────────── */
.benedoc-main .bd-ci-overview {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.benedoc-main .bd-ci-amounts {
  background: var(--bd-bg-section);
  border: 1px solid var(--bd-border);
  border-radius: var(--bd-radius);
  padding: 20px 24px;
}
.benedoc-main .bd-ci-amounts-label {
  font-size:calc(.75rem * var(--bd-fs,1));
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--bd-text-muted);
  margin-bottom: 12px;
}
.benedoc-main .bd-ci-amounts-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.benedoc-main .bd-ci-amount-badge {
  background: var(--bd-table-header);
  color: #fff;
  font-weight: 700;
  font-size:calc(.95rem * var(--bd-fs,1));
  padding: 8px 20px;
  border-radius: 999px;
}

/* ── PDF EXPORT BUTTON ──────────────────────────────── */
/* ── Deductible & Max table header tweaks ── */
/* ── Dental table service label column ──────────────── */
/* Dental table SERVICE col: 34% for 3-col layout (equal thirds) */
.benedoc-main .bd-table .bd-table-label-col {
  width: 34%;
  text-align: left;
}
.bd-table-dedmax .bd-table-label-col { width: 40%; }
.bd-table-dedmax thead th:nth-child(2),
.bd-table-dedmax thead th:nth-child(3) { width: 30%; text-align: center; }

/* ── Additional Info Sections ──────────────────────────── */
.bd-info-section { margin-top: 32px; }
.bd-info-section-desc {
    color: var(--bd-text-muted);
    font-size:calc(.95rem * var(--bd-fs,1));
    margin: 0 0 16px;
    line-height: 1.6;
}
.bd-info-items { display: flex; flex-direction: column; gap: 10px; }
.bd-info-item {
    background: var(--bd-bg-section);
    border: 1px solid var(--bd-border);
    border-radius: 8px;
    padding: 14px 16px;
}
.bd-info-item-header {
  /* grid: label takes all remaining space, value badge stays right */
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}
.bd-info-item-label {
  font-weight: 600;
  color: var(--bd-primary);
  font-size:calc(.92rem * var(--bd-fs,1));
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  /* no letter-spacing or word-spacing — breaks translated text */
}
.bd-info-item-value {
    font-weight: 700;
    color: var(--bd-primary);
    font-size:calc(.92rem * var(--bd-fs,1));
    background: var(--bd-table-group-bg, var(--bd-accent-light));
    padding: 2px 10px;
    border-radius: 20px;
    white-space: nowrap;
}
.bd-info-item-note {
    color: var(--bd-text-muted);
    font-size:calc(.85rem * var(--bd-fs,1));
    margin: 6px 0 0;
    line-height: 1.5;
}

/* ── Additional Sections — Comparison Table ─────────────────── */
.bd-addl-table-wrap {
    margin: 16px 0 4px;
    border-radius: 8px;
    border: 1px solid var(--bd-border);
    overflow: hidden;
}
.bd-addl-table {
    width: 100%;
    border-collapse: separate;  /* separate model: no border-merge artifacts */
    border-spacing: 0;
    font-size:calc(.84rem * var(--bd-fs,1));
    table-layout: auto;
}
.bd-addl-table thead tr {
    background: var(--bd-plan-header-bg, var(--bd-table-header));
}
/* Thead th: top+left borders, none on outer edges */
.bd-addl-table thead th {
    border-top:    0;          /* wrapper top-border */
    border-left:   1px solid rgba(255,255,255,.15);
    border-right:  0;
    border-bottom: 2px solid var(--bd-border);
    padding: 10px 10px;
}
.bd-addl-table thead th:first-child { border-left: 0; }
.bd-addl-th-label {
    color: var(--bd-plan-header-text, #fff);
    font-weight: 700;
    text-align: left;
    padding: 10px 14px;
    font-size:calc(.75rem * var(--bd-fs,1));
    text-transform: uppercase;
    letter-spacing: .04em;
    width: 28%;
}
.bd-addl-th-plan {
    color: var(--bd-plan-header-text, #fff);
    font-weight: 700;
    text-align: center;
    padding: 10px 10px;
    font-size:calc(.75rem * var(--bd-fs,1));
    text-transform: uppercase;
    letter-spacing: .04em;
}
.bd-addl-table tbody td {
    border-top:   1px solid var(--bd-border);
    border-left:  1px solid var(--bd-border);
    border-bottom: none;
    border-right:  none;
}
.bd-addl-table tbody td:first-child { border-left: none; }
.bd-addl-row-alt { background: var(--bd-bg-section); }
.bd-addl-td-label {
    padding: 9px 14px;
    color: var(--bd-text);
    font-weight: 600;
    font-size:calc(.82rem * var(--bd-fs,1));
    line-height: 1.4;
    vertical-align: top;
}
.bd-addl-td-val {
    padding: 9px 10px;
    color: var(--bd-primary);
    font-weight: 600;
    text-align: center;   /* amounts/rates are short — center is appropriate */
    font-size:calc(.82rem * var(--bd-fs,1));
    line-height: 1.4;
    vertical-align: top;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
}
.bd-addl-table-note {
    color: var(--bd-text-muted);
    font-size:calc(.78rem * var(--bd-fs,1));
    margin: 8px 0 0;
    font-style: italic;
    line-height: 1.5;
}

/* ── Per-tier health summary table ─────────────────────── */
.bd-tier-summary-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 14px;
    font-size:calc(.88rem * var(--bd-fs,1));
}
.bd-tier-summary-table thead th {
    background: var(--bd-plan-header-bg, var(--bd-bg-section));
    color: var(--bd-plan-header-text, var(--bd-text-muted));
    font-weight: 600;
    font-size:calc(.78rem * var(--bd-fs,1));
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 6px 12px;
    text-align: left;
    border-bottom: 1px solid var(--bd-border);
}
.bd-tier-summary-table thead th:first-child { width: 45%; }
.bd-tier-summary-table tbody tr { border-bottom: 1px solid var(--bd-border); }
.bd-tier-summary-table tbody tr:last-child { border-bottom: none; }
.bd-tier-summary-table tbody td {
    padding: 7px 12px;
    color: var(--bd-text);
    vertical-align: top;
}
.bd-tier-summary-table .bd-tst-label {
    font-weight: 600;
    color: var(--bd-primary);
}
.bd-tier-summary-notes {
    font-size:calc(.8rem * var(--bd-fs,1));
    color: var(--bd-text-muted, #9CA3AF);
    margin: 8px 0 0;
    line-height: 1.5;
    padding: 0 4px;
}

/* ── Health Detail Table ────────────────────────────────── */
.bd-health-detail-table {
    margin-top: 16px;
    border: 1px solid var(--bd-border);
    border-radius: 10px;
    overflow: hidden;
    font-size:calc(.88rem * var(--bd-fs,1));
    box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
.bd-hdt-section { border-bottom: 1px solid var(--bd-border); }
.bd-hdt-section:last-child { border-bottom: none; }
.bd-hdt-section-title {
    background: var(--bd-table-header);
    padding: 7px 14px;
    font-size:calc(.72rem * var(--bd-fs,1));
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #fff;
}
.bd-hdt-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 14px;
    border-top: 1px solid var(--bd-border, #F3F4F6);
    gap: 12px;
}
.bd-hdt-row:nth-child(even) { background: var(--bd-bg-section); }
.bd-hdt-row:first-of-type { border-top: none; }
.bd-hdt-label { color: var(--bd-text-muted); font-size:calc(.85rem * var(--bd-fs,1)); }
.bd-hdt-value {
    font-weight: 700;
    color: var(--bd-primary);
    text-align: right;
    white-space: nowrap;
    font-size:calc(.85rem * var(--bd-fs,1));
}

/* ── Video Banner ────────────────────────────────────────── */
/* ── VIDEO BANNER ──────────────────────────────────────────────────────────
   Uses only --bd-* CTM variables. No hardcoded colors, no gradients.
   Two modes:
     --single  : horizontal row — dark header left, action right (stacks on mobile)
     --multi   : dark header top + ghost button row below

   CTM variables consumed:
     --bd-table-header        header background
     --bd-table-header-text   text on header
     --bd-accent              primary button background
     --bd-cta-text            primary button text
     --bd-bg                  action row background (multi)
     --bd-border              card border + separator
     --bd-text                ghost button text
     --bd-bg-section          ghost button hover
   ────────────────────────────────────────────────────────────────────────── */

/* Base card shell */
.bd-video-banner {
    border-radius: var(--bd-radius, 8px);
    overflow: hidden;
    border: 1px solid var(--bd-border);
    margin-bottom: 24px;
    display: block;
}

/* ── SINGLE mode: side-by-side on desktop ──────────────────────────────── */
.bd-video-banner--single {
    display: flex;
    flex-direction: row;
    align-items: stretch;
}
.bd-video-banner--single .bd-vb-header {
    flex: 1;
    min-width: 0;
}
.bd-video-banner--single .bd-vb-actions {
    flex-direction: column;
    justify-content: center;
    background: var(--bd-table-header, #1d4ed8);
    border-top: none;
    border-left: 1px solid rgba(255,255,255,.15);
    padding: 14px 18px;
    gap: 6px;
}

/* ── MULTI mode: stacked ───────────────────────────────────────────────── */
.bd-video-banner--multi {
    display: block;
}
.bd-video-banner--multi .bd-vb-actions {
    background: var(--bd-bg, #fff);
    border-top: 1px solid var(--bd-border);
    padding: 12px 16px;
}

/* Header: dark band */
.bd-vb-header {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--bd-table-header, #1d4ed8);
    padding: 14px 18px;
}

/* Icon circle */
.bd-vb-icon {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: rgba(255,255,255,.15);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    color: var(--bd-table-header-text, #fff);
}
.bd-vb-icon svg { display: block; }

/* Text */
.bd-vb-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.bd-vb-title {
    font-size:calc(.88rem * var(--bd-fs,1));
    font-weight: 600;
    color: var(--bd-table-header-text, #fff);
    line-height: 1.3;
}
.bd-vb-sub {
    font-size:calc(.78rem * var(--bd-fs,1));
    color: rgba(255,255,255,.72);
    line-height: 1.3;
}

/* Action row */
.bd-vb-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

/* Buttons */
.bd-vb-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size:calc(.82rem * var(--bd-fs,1));
    font-weight: 600;
    padding: 8px 16px;
    border-radius: 6px;
    text-decoration: none;
    transition: opacity .15s;
    white-space: nowrap;
    flex-shrink: 0;
    cursor: pointer;
}
.bd-vb-btn:hover { opacity: .85; text-decoration: none; }

/* Primary — uses --ctm-btn2-* same as .bd-beneai-btn */
.bd-vb-btn--primary {
    background: var(--ctm-btn2-bg, #fff);
    color: var(--ctm-btn2-text, #01164F);
    box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
.bd-vb-btn--primary:hover {
    background: var(--ctm-btn2-hover-bg, #f1f5f9);
    color: var(--ctm-btn2-hover-text, #01164F);
    opacity: 1;
}

/* Ghost — on the light action row (multi mode) */
.bd-vb-btn--ghost {
    background: transparent;
    color: var(--bd-text, #1e293b);
    border: 1px solid var(--bd-border);
}
.bd-vb-btn--ghost:hover { background: var(--bd-bg-section, #f8fafc); }

.bd-vb-play { flex-shrink: 0; }

/* Mobile: single stacks vertically */
@media screen and (max-width: 600px) {
    .bd-video-banner--single {
        flex-direction: column;
    }
    .bd-video-banner--single .bd-vb-actions {
        flex-direction: row;
        border-left: none;
        border-top: 1px solid rgba(255,255,255,.15);
        padding: 10px 16px;
    }
}


/* ── Dental table section header rows ───────────────────── */
.benedoc-main .bd-table-group-row td {
    background: var(--bd-table-group-bg, #f1f5f9);
    color: var(--bd-table-group-text, var(--bd-text));
    font-weight: 700;
    font-size:calc(.78rem * var(--bd-fs,1));
    text-transform: uppercase;
    letter-spacing: .08em;
    padding: 10px 16px;
    border-top: 2px solid var(--bd-border); /* accent separator above group */
    border-bottom: none;  /* next row's border-top provides the visual divider */
    border-left: none;
    border-right: none;
}

/* ── Benefit table (universal) ───────────────────────────── */
/* ── Benefit table base ─────────────────────────────────────────────────────
   3+ col tables: table-layout:auto so columns size proportionally to content.
   2-col tables: table-layout:fixed + border-collapse:separate gives cleaner
   borders — see [data-cols="2"] override below.
   ─────────────────────────────────────────────────────────────────────────── */
.benedoc-main .bd-benefit-table {
    table-layout: auto;
    border-collapse: collapse;
    width: 100%;
}

/* ── 2-col benefit table: fixed layout + border-separate model ───────────────
   border-collapse:separate + border-spacing:0 means:
   • cell borders are independent — they never fight the wrapper border
   • wrapper border-radius + overflow:hidden clips corners perfectly
   • no "cut line" at table edges — the border strategy is the source of truth
   • table-layout:fixed + colgroup 40/60 gives controlled, professional widths
   ─────────────────────────────────────────────────────────────────────────── */
.benedoc-main .bd-benefit-table[data-cols="2"] {
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
}
/* Service/label th width: per col-count. Values match PHP colgroup. */
.benedoc-main .bd-benefit-table[data-cols="2"]  .bd-table-label-th,
.benedoc-main .bd-dental-table[data-cols="2"]   .bd-table-label-th { width: 40%; }
.benedoc-main .bd-benefit-table[data-cols="3"]  .bd-table-label-th,
.benedoc-main .bd-dental-table[data-cols="3"]   .bd-table-label-th { width: 34%; }
.benedoc-main .bd-benefit-table[data-cols="4"]  .bd-table-label-th,
.benedoc-main .bd-dental-table[data-cols="4"]   .bd-table-label-th { width: 28%; }
.benedoc-main .bd-benefit-table[data-cols="5"]  .bd-table-label-th,
.benedoc-main .bd-dental-table[data-cols="5"]   .bd-table-label-th { width: 24%; }
.benedoc-main .bd-benefit-table[data-cols="6"]  .bd-table-label-th,
.benedoc-main .bd-benefit-table[data-cols="7"]  .bd-table-label-th,
.benedoc-main .bd-benefit-table[data-cols="8"]  .bd-table-label-th,
.benedoc-main .bd-dental-table[data-cols="6"]   .bd-table-label-th,
.benedoc-main .bd-dental-table[data-cols="7"]   .bd-table-label-th,
.benedoc-main .bd-dental-table[data-cols="8"]   .bd-table-label-th { width: 26%; }
.benedoc-main .bd-benefit-table .bd-table-label-th {
    text-align: left;  /* no global width — see per-col rules above */
}
/* ── Cell borders: top+left only — wrapper provides outer frame ── */
/* This is the fix for the "cut border" and "double border" artifacts.
   With border-collapse:collapse, cell borders at the table edge fight
   with the wrapper border. By using only top+left (never right/bottom),
   no cell border ever reaches the wrapper → zero conflicts, zero artefacts. */
.benedoc-main .bd-benefit-table th,
.benedoc-main .bd-benefit-table td {
    border-top:  1px solid var(--bd-border);
    border-left: 1px solid var(--bd-border);
    border-right:  none;
    border-bottom: none;
    padding: 10px 14px;
    vertical-align: top;
    background: var(--bd-plan-header-bg, var(--bd-bg, #fff));
}
/* First column: no left border (wrapper provides it) */
.benedoc-main .bd-benefit-table th:first-child,
.benedoc-main .bd-benefit-table td:first-child { border-left: none; }
/* First row of thead: no top border (wrapper provides it) */
.benedoc-main .bd-benefit-table thead tr:first-child th { border-top: none; }
/* Divider between thead and tbody */
.benedoc-main .bd-benefit-table thead tr:last-child th {
    border-bottom: 2px solid var(--bd-border);
}
.benedoc-main .bd-benefit-table tbody td {
    color: var(--bd-text);
    font-size:calc(.82rem * var(--bd-fs,1));
    line-height: 1.5;
}
.benedoc-main .bd-benefit-table tbody td.bd-table-label {
    font-weight: 500;
    color: var(--bd-text);
    background: var(--bd-table-service-bg, #fff);
    vertical-align: top;
}
.benedoc-main .bd-benefit-table tbody tr.bd-table-row-alt td.bd-table-label:not([rowspan]) {
    background: var(--bd-table-row-alt, #f8fafc);
}
.benedoc-main .bd-benefit-table td.bd-table-cell {
    text-align: center;
    color: var(--bd-text);
    font-weight: 600;
    font-size:calc(.85rem * var(--bd-fs,1));
    vertical-align: middle;
    white-space: normal;          /* allow wrapping; .bd-nowrap keeps short values on one line */
    background: var(--bd-bg, #fff); /* explicit bg kills any theme gradient on cells */
    /* min-width removed — let table-layout:auto size columns naturally */
}
.benedoc-main .bd-benefit-table tbody tr.bd-table-row-alt td.bd-table-cell {
    background: var(--bd-table-row-alt, #f8fafc);
}
/* Rowspan merged cells */
.benedoc-main .bd-benefit-table td[rowspan] {
    background: var(--bd-table-merged-bg, #f8fafc);
    color: var(--bd-text);
    font-weight: 700;
    font-size:calc(.9rem * var(--bd-fs,1));
    vertical-align: middle;
    text-align: center;
}
/* ── 2-col: separate border model — precise control, no artifacts ───────────
   With border-collapse:separate we draw borders on the sides that face the
   interior only. The wrapper provides all four outer edges.
   ─────────────────────────────────────────────────────────────────────────── */

/* All cells in 2-col: top + left borders; zero on outer edges */
.benedoc-main .bd-benefit-table[data-cols="2"] th,
.benedoc-main .bd-benefit-table[data-cols="2"] td {
    border-top:   1px solid var(--bd-border);
    border-left:  1px solid var(--bd-border);
    border-right:  0;
    border-bottom: 0;
}
/* First column: no left border — wrapper provides it */
.benedoc-main .bd-benefit-table[data-cols="2"] th:first-child,
.benedoc-main .bd-benefit-table[data-cols="2"] td:first-child { border-left: 0; }
/* First thead row: no top border — wrapper provides it */
.benedoc-main .bd-benefit-table[data-cols="2"] thead tr:first-child th { border-top: 0; }

/* Value cells (second column): left-aligned, readable for long text */
.benedoc-main .bd-benefit-table[data-cols="2"] td.bd-table-cell {
    text-align: left;
    font-weight: 600;
    font-size:calc(.85rem * var(--bd-fs,1));
    vertical-align: middle;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
}
/* Short values can override to center via .bd-nowrap */
.benedoc-main .bd-benefit-table[data-cols="2"] td.bd-table-cell.bd-nowrap {
    text-align: center;
}
/* Rowspan merged cells in 2-col stay centered */
.benedoc-main .bd-benefit-table[data-cols="2"] td[rowspan] {
    text-align: center;
    vertical-align: middle;
}
/* Group rows: span full width, no left border */
.benedoc-main .bd-benefit-table[data-cols="2"] tbody tr.bd-table-group-row td {
    border-left: 0;
    border-right: 0;
}

/* ── Column group header row (e.g. "DISTRIBUTION") ── */
.benedoc-main .bd-table-col-groups th {
    padding: 8px 12px;
    text-align: center;
    vertical-align: middle;
}
/* ── Subheader row (e.g. "PLAN PAYS | YOU PAY") ── */
.benedoc-main .bd-table-subheader th {
    font-size:calc(.72rem * var(--bd-fs,1));
    font-weight: 700;
    padding: 7px 12px;
    text-align: center;
}
/* Group header rows inside tbody */
.benedoc-main .bd-benefit-table tbody tr.bd-table-group-row td {
    background: var(--bd-bg-section);
    font-size:calc(.75rem * var(--bd-fs,1));
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--bd-text-muted);
    padding: 8px 14px;
    border-top: 1px solid var(--bd-border); /* matches tbody td strategy */
    border-bottom: none;
    border-left: none;
    border-right: none;
}
.benedoc-main .bd-table-note {
    color: var(--bd-text-muted, #94a3b8);
    font-size:calc(.72rem * var(--bd-fs,1));
    font-style: italic;
    font-weight: 400;
    margin-top: 3px;
}
.benedoc-main .bd-table-scroll {
    /* no overflow-x:auto — tables adapt to container width */
}





/* ── Disability rates + key numbers two-column layout ────── */
.bd-rate-block--with-kn {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    flex-wrap: wrap;
}
.bd-rate-kn-col {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 180px;
    flex: 0 0 auto;
}
.bd-rate-kn-item {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--bd-kn-bg, var(--bd-accent-light, #F0F4FF));
    border: 1px solid var(--bd-kn-border, #DBEAFE);
    border-radius: 8px;
    padding: 10px 14px;
}
.bd-rate-kn-icon { font-size:calc(1.3rem * var(--bd-fs,1)); flex-shrink: 0; }
.bd-rate-kn-val {
    font-size:calc(1.15rem * var(--bd-fs,1));
    font-weight: 800;
    color: var(--bd-primary);
    line-height: 1.1;
}
.bd-rate-kn-lbl {
    font-size:calc(.75rem * var(--bd-fs,1));
    color: var(--bd-text-muted);
    margin-top: 2px;
}
.bd-rate-price-col {
    flex: 1;
    min-width: 200px;
}
@media screen and (max-width: 540px) {
    .bd-rate-block--with-kn { flex-direction: column; }
    .bd-rate-kn-col { flex-direction: row; flex-wrap: wrap; }
    .bd-rate-kn-item { flex: 1 1 calc(50% - 8px); }
}

/* ── SHORT / LONG TERM DISABILITY DETAIL ──────────────────────── */
.benedoc-main .bd-std-wrap {
  margin: 24px 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* At-a-glance number grid */
.benedoc-main .bd-std-glance {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
}
.benedoc-main .bd-std-glance-card {
  background:var(--bd-single-card-bg, var(--bd-card-bg, #ffffff));
  border: 1px solid var(--bd-border);
  border-radius: var(--bd-radius);
  padding: 16px 14px;
  text-align: center;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.benedoc-main .bd-std-glance-ico {
  font-size:calc(1.5rem * var(--bd-fs,1));
  line-height: 1;
}
.benedoc-main .bd-std-glance-val {
  font-size:calc(1.1rem * var(--bd-fs,1));
  font-weight: 800;
  color: var(--bd-primary);
  margin-top: 4px;
}
.benedoc-main .bd-std-glance-lbl {
  font-size:calc(.72rem * var(--bd-fs,1));
  color: var(--bd-text-muted);
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 600;
}

/* Benefit detail table */
.benedoc-main .bd-std-table {
  border: 1px solid var(--bd-border);
  border-radius: var(--bd-radius);
  overflow: hidden;
  font-size:calc(.83rem * var(--bd-fs,1));
}
.benedoc-main .bd-std-table-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--bd-table-header);
  color: var(--bd-table-header-text, #fff);
  font-weight: 700;
  font-size:calc(.75rem * var(--bd-fs,1));
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: 11px 16px;
}
.benedoc-main .bd-std-row {
  display: grid;
  grid-template-columns: 220px 1fr;
  padding: 12px 16px;
  border-bottom: 1px solid var(--bd-bg-section);
  align-items: start;
  gap: 16px;
}
.benedoc-main .bd-std-row:last-child { border-bottom: none; }
.benedoc-main .bd-std-row:nth-child(even) { background: var(--bd-bg-section); }
.benedoc-main .bd-std-term {
  font-weight: 700;
  color: var(--bd-text);
  font-size:calc(.8rem * var(--bd-fs,1));
}
.benedoc-main .bd-std-def {
  color: var(--bd-text-muted);
  line-height: 1.55;
}
.benedoc-main .bd-std-sub-row {
  display: block;
  margin-bottom: 2px;
}
.benedoc-main .bd-std-sub-lbl {
  font-weight: 700;
  color: var(--bd-text);
}

/* Definitions grid */
.benedoc-main .bd-std-defs {
  border: 1px solid var(--bd-border);
  border-radius: var(--bd-radius);
  overflow: hidden;
}
.benedoc-main .bd-std-defs-head {
  background: var(--bd-table-group-bg, var(--bd-accent-light));
  color: var(--bd-table-group-text, var(--bd-primary));
  font-size:calc(.75rem * var(--bd-fs,1));
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  padding: 10px 16px;
  border-bottom: 1px solid var(--bd-accent-light, #BFDBFE);
}
.benedoc-main .bd-std-def-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0;
}
.benedoc-main .bd-std-def-card {
  padding: 14px 16px;
  border-right: 1px solid var(--bd-bg-section);
  border-bottom: 1px solid var(--bd-bg-section);
}
.benedoc-main .bd-std-def-card:last-child { border-right: none; }
.benedoc-main .bd-std-def-card-title {
  font-size:calc(.78rem * var(--bd-fs,1));
  font-weight: 800;
  color: var(--gray-800);
  margin-bottom: 6px;
}
.benedoc-main .bd-std-def-card-body {
  font-size:calc(.78rem * var(--bd-fs,1));
  color: var(--bd-text-muted);
  line-height: 1.55;
}

/* Exclusions */
.benedoc-main .bd-std-excl {
  background:var(--bd-warn-bg, #fffbeb);
  border: 1px solid var(--bd-warn-border, #fde68a);
  border-radius: var(--bd-radius);
  padding: 14px 18px;
}
.benedoc-main .bd-std-excl-head {
  font-weight: 800;
  font-size:calc(.8rem * var(--bd-fs,1));
  color: var(--bd-warn-text-strong, #92400e);
  margin-bottom: 8px;
}
.benedoc-main .bd-std-excl-list {
  margin: 0;
  padding-left: 18px;
  font-size:calc(.8rem * var(--bd-fs,1));
  color: var(--bd-warn-text, #78350f);
  line-height: 1.6;
}

/* Responsive */
@media screen and (max-width: 600px) {
  .benedoc-main .bd-std-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .benedoc-main .bd-std-term {
    font-size:calc(.75rem * var(--bd-fs,1));
    color: var(--bd-text-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
  }
  .benedoc-main .bd-std-def-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media screen and (max-width: 400px) {
  .benedoc-main .bd-std-def-grid {
    grid-template-columns: 1fr;
  }
}

/* ── HEALTH PLAN CROSS-COMPARISON TABLE ───────────────────────── */
/* ── HEALTH PLAN COMPARISON TABLE ──────────────────────────────── */
/* ══════════════════════════════════════════════════════════════════════════
   COMPARISON TABLE — .bd-ct-*
   Semantic comparison element for side-by-side plan/account comparisons
   (FSA vs HSA, PPO vs HDHP, Base vs Buy-Up, etc.)
   Distinct from .bd-compare-table (rate fallback for tiers).
   Desktop: professional table, no scroll. Mobile: feature cards.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Section wrapper ────────────────────────────────────────────────────── */
.benedoc-main .bd-ct-section { margin-bottom: 28px; }
.benedoc-main .bd-ct-subtitle {
  font-size:calc(.84rem * var(--bd-fs,1)); color: var(--bd-heading, var(--bd-text, #0f172a));
  margin: -10px 0 14px; line-height: 1.4;
}

/* ── Desktop table ──────────────────────────────────────────────────────── */
.benedoc-main .bd-ct-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: auto;
  font-size:calc(.84rem * var(--bd-fs,1));
}
/* Comparison table header cells — all styling via CSS so CTM vars always win */
.benedoc-main .bd-ct-table thead th {
  background: var(--bd-plan-header-bg, var(--bd-table-header));
  color: var(--bd-plan-header-text, var(--bd-table-header-text, #fff));
  font-size:calc(.75rem * var(--bd-fs,1));
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: 10px 14px;
  text-align: center;
  vertical-align: middle;
  border: 1px solid var(--bd-table-header-border, #ffffff);
}
.benedoc-main .bd-ct-table .bd-ct-feature-col {
  width: 32%;
  text-align: left;
}
.benedoc-main .bd-ct-row td {
  padding: 10px 14px;
  vertical-align: top;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  border-top:  1px solid var(--bd-border);
  border-left: 1px solid var(--bd-border);
  border-right:  0;
  border-bottom: 0;
}
.benedoc-main .bd-ct-row td:first-child { border-left: 0; }
.benedoc-main .bd-ct-table thead tr:first-child th { border-top: 0; }
.benedoc-main .bd-ct-feature {
  font-weight: 700; color: var(--bd-text);
  font-size:calc(.84rem * var(--bd-fs,1)); line-height: 1.45;
}
.benedoc-main .bd-ct-value {
  color: var(--bd-text); font-size:calc(.84rem * var(--bd-fs,1)); line-height: 1.5; text-align: left; font-weight: 400;
}
.benedoc-main .bd-ct-empty { color: var(--bd-text-muted); }
.benedoc-main .bd-ct-row:nth-child(even) { background: var(--bd-bg-section); }
.benedoc-main .bd-ct-highlight-header td {
  padding: 6px 14px 4px;
  font-size:calc(.68rem * var(--bd-fs,1)); font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em;
  color: var(--bd-text-muted);
  border-top: 2px solid var(--bd-border); border-left: 0;
  background: var(--bd-bg-section);
}
.benedoc-main .bd-ct-highlight-row .bd-ct-highlight-feature {
  font-style: italic; font-weight: 700;
  color: var(--bd-text, #0f172a) !important;
  -webkit-text-fill-color: var(--bd-text, #0f172a) !important;
}
.benedoc-main .bd-ct-highlight-row .bd-ct-highlight-value {
  font-weight: 600;
  color: var(--bd-text, #0f172a) !important;
  -webkit-text-fill-color: var(--bd-text, #0f172a) !important;
}
.benedoc-main .bd-ct-notes {
  list-style: none; padding: 0; margin: 10px 0 0;
  display: flex; flex-direction: column; gap: 4px;
}
.benedoc-main .bd-ct-notes li {
  font-size:calc(.75rem * var(--bd-fs,1)); color: var(--bd-heading, var(--bd-text, #0f172a));
  font-style: italic; padding-left: 14px; position: relative;
}
.benedoc-main .bd-ct-notes li::before {
  content: '※'; position: absolute; left: 0;
  font-style: normal; color: var(--bd-border);
}

/* ══════════════════════════════════════════════════════════════════════════
   SECTION HEADER — .bd-section-header
   Manual title separator inserted between plan sections.
   No white card/box — sits directly in the page flow with generous spacing.
   ══════════════════════════════════════════════════════════════════════════ */
.benedoc-main .bd-section-header {
  margin: 36px 0 18px;
  padding: 0;
}
.benedoc-main .bd-section-header:first-child { margin-top: 8px; }
.benedoc-main .bd-sh-title {
  font-size:calc(1.35rem * var(--bd-fs,1));
  font-weight: 800;
  color: var(--bd-heading, var(--bd-primary, #01164f));
  line-height: 1.2;
  margin: 0 0 4px;
  padding: 0;
}
.benedoc-main .bd-section-title {
  color: var(--bd-heading, var(--bd-text, #0f172a));
}
.benedoc-main .bd-sh-subtitle {
  font-size:calc(.85rem * var(--bd-fs,1));
  color: var(--bd-text-muted);
  margin: 0;
  line-height: 1.5;
}
.benedoc-main .bd-sh-line .bd-sh-title,
.benedoc-main .bd-sh-line .bd-section-title {
  padding-bottom: 10px;
  border-bottom: 3px solid var(--bd-primary, #01164f);
}
.benedoc-main .bd-sh-accent .bd-sh-title,
.benedoc-main .bd-sh-accent .bd-section-title {
  padding-bottom: 10px;
  border-bottom: 3px solid var(--bd-accent, #f59e0b);
}
.benedoc-main .bd-sh-upper .bd-sh-title,
.benedoc-main .bd-sh-upper .bd-section-title {
  font-size:calc(.75rem * var(--bd-fs,1));
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding-bottom: 6px;
  border-bottom: 2px solid var(--bd-primary, #01164f);
}

.benedoc-main .bd-hc-wrap {
  margin: 28px 0;
}
.benedoc-main .bd-hc-scroll {
  /* no overflow-x:auto — hc-table adapts to container width */
  border-radius: var(--bd-radius);
  box-shadow: 0 4px 24px rgba(0,0,0,.09), 0 1px 4px rgba(0,0,0,.05);
}
.benedoc-main .bd-hc-table {
  width: 100%;
  border-collapse: collapse;
  font-size:calc(.82rem * var(--bd-fs,1));
}

/* ── Column header: plan names ── */
.benedoc-main .bd-hc-head-row {
  background: var(--bd-table-header);
}
.benedoc-main .bd-hc-th-label {
  background: var(--bd-plan-header-bg, transparent);
  padding: 14px 18px;
  width: 210px;
  font-size:calc(.7rem * var(--bd-fs,1));
  font-weight: 700;
  color: var(--bd-plan-header-text, rgba(255,255,255,.55));
  text-transform: uppercase;
  letter-spacing: .06em;
}
.benedoc-main .bd-hc-th-plan {
  padding: 14px 10px;
  text-align: center;
  border-left: 1px solid rgba(255,255,255,.1);
  color: var(--bd-plan-header-text, #fff);

  background: var(--bd-plan-header-bg, transparent);
}
.benedoc-main .bd-hc-th-plan-name {
  display: block;
  font-size:calc(.82rem * var(--bd-fs,1));
  font-weight: 800;
  letter-spacing: .01em;
  line-height: 1.3;
}
.benedoc-main .bd-hc-th-plan-sub {
  display: block;
  font-size:calc(.68rem * var(--bd-fs,1));
  font-weight: 500;
  color: var(--bd-plan-header-text, rgba(255,255,255,.6));
  margin-top: 2px;
  letter-spacing: .03em;
}

/* ── Section header rows ── */
.benedoc-main .bd-hc-section-row td {
  background: linear-gradient(90deg, var(--bd-table-header) 0%, var(--bd-secondary) 100%);
  color: #fff;
  font-size:calc(.68rem * var(--bd-fs,1));
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  padding: 9px 18px;
}

/* ── Data rows ── */
.benedoc-main .bd-hc-row {
  border-bottom: 1px solid var(--bd-border);
  transition: background .1s;
}
.benedoc-main .bd-hc-row:last-child { border-bottom: none; }
.benedoc-main .bd-hc-row:nth-child(even) { background: var(--bd-bg-section); }

.benedoc-main .bd-hc-td-label {
  padding: 11px 18px;
  color: var(--bd-text-muted);
  font-weight: 600;
  font-size:calc(.79rem * var(--bd-fs,1));
  border-right: 2px solid var(--bd-border);
  white-space: nowrap;
}
.benedoc-main .bd-hc-td-val {
  padding: 11px 10px;
  text-align: center;
  color: var(--bd-text);
  font-size:calc(.81rem * var(--bd-fs,1));
  border-left: 1px solid var(--bd-border);
  vertical-align: middle;
  line-height: 1.4;
}

/* ── Value states ── */
.benedoc-main .bd-hc-td-val.bd-hc-good {
  color: var(--bd-green-text, #047857);
  font-weight: 700;
  background:var(--bd-hc-good-bg, var(--bd-green-lt, #f0fdf4));
}
.benedoc-main .bd-hc-row:hover .bd-hc-td-val.bd-hc-good {
  background: var(--bd-hc-good-bg, #dcfce7);
}
.benedoc-main .bd-hc-free {
  color: var(--bd-green-text, #047857);
  font-weight: 800;
  font-size:calc(.88rem * var(--bd-fs,1));
}
.benedoc-main .bd-hc-contact {
  color: var(--gray-400);
  font-size:calc(.74rem * var(--bd-fs,1));
  font-style: italic;
}
.benedoc-main .bd-hc-null { color: var(--bd-border); }

/* ── Mobile ── */
@media screen and (max-width: 640px) {
  .benedoc-main .bd-hc-th-label,
  .benedoc-main .bd-hc-td-label {
    /* min-width:130px removed — caused overflow at 390px viewport.
       The @media(max-width:768px) hc block converts hc-table to grid 1fr/1fr
       so width is governed by grid tracks, not fixed px values. */
    font-size:calc(.74rem * var(--bd-fs,1));
    padding-left: 12px;
  }
  .benedoc-main .bd-hc-th-plan,
  .benedoc-main .bd-hc-td-val {
    /* min-width:100px removed — same reason */
    font-size:calc(.75rem * var(--bd-fs,1));
  }
}

/* ── VIDEO BANNER mobile overflow handled in @media(max-width:768px) above ── */


/* ═══════════════════════════════════════════════════════════════════════
   BENEDOCUMENTS — RESPONSIVE + SCROLL SYSTEM
   ═══════════════════════════════════════════════════════════════════════ */

/* Tables no longer scroll — bd-table-scroll is a pass-through container */
.benedoc-main .bd-table-scroll {
  /* overflow intentionally not set — tables adapt via column proportions */
  width: 100%;
}
/* bd-has-scroll class kept for backward compat but no visual effect */
.benedoc-main .bd-table-scroll.bd-has-scroll { /* no-op */ }

/* Wide tables: width:100% + table-layout:auto on mobile — no scroll needed */
.benedoc-main .bd-table-scroll .bd-benefit-table[data-cols="5"],
.benedoc-main .bd-table-scroll .bd-benefit-table[data-cols="6"],
.benedoc-main .bd-table-scroll .bd-benefit-table[data-cols="7"],
.benedoc-main .bd-table-scroll .bd-benefit-table[data-cols="8"],
.benedoc-main .bd-table-scroll .bd-benefit-table[data-cols="9"],
.benedoc-main .bd-table-scroll .bd-benefit-table[data-cols="10"],
.benedoc-main .bd-table-scroll .bd-benefit-table[data-cols="11"],
.benedoc-main .bd-table-scroll .bd-benefit-table[data-cols="12"] {
  width: 100%;
  font-size:calc(.77rem * var(--bd-fs,1));
}

/* Age pivot: desktop/mobile split */
.benedoc-main .bd-agepivot-mobile { display: none; }
.benedoc-main .bd-agepivot-desktop { display: block; }

/* ── Mobile responsive ─────────────────────────────────────── */
@media screen and (max-width:768px) {

  /* ══════════════════════════════════════════════════════════════════════════
     MOBILE RESPONSIVE ARCHITECTURE — READ BEFORE MODIFYING
     ══════════════════════════════════════════════════════════════════════════

     TABLE DISPLAY STRATEGY (governed by data-table-mode attribute from PHP):
       data-table-mode="matrix"  → display:table compact (schedule/INN/OON matrices)
       data-table-mode="card"    → display:block stacked cards (option/rate tables)
       data-table-mode="compare" → display:block stacked cards (plan-name columns)
       (unset / dental-table)    → falls back to bd-table-dense class

     CARD VALUE CELLS — all use vertical stacking (label on top, value below):
       display: block  OR  display: flex; flex-direction: column
       NO justify-content: space-between in any card table cell
       NO flex-direction: row in any card table cell

     INTENTIONAL HORIZONTAL LAYOUTS (must NOT be changed):
       .bd-ls-item          → flex-direction:row  (lump-sum condition row: label | badge)
       .bd-ls-pay           → white-space:nowrap  (price badge "$500" must not wrap)
       .bd-benefit-table--amounts tbody → flex-wrap:wrap (chip grid for amounts)
       .bd-rate-kn-col      → flex-direction:row at ≤540px (key-number chips 2-per-row)
       .bd-agepivot-card    → flex-direction:row/column (interactive rate picker UI)
       .bd-hc-row           → grid 1fr/1fr (health comparison pairs)
       .bd-rpk-*            → rate-per-thousand calculator widgets
     ══════════════════════════════════════════════════════════════════════════ */

  /* ── PAGE SHELL ─────────────────────────────────────────────────────── */
  .benedoc-main { padding:16px 14px 60px!important }
  .benedoc-main .bd-hero-inner  { padding:24px 18px 28px }
  .benedoc-main .bd-plan-title  { font-size:calc(1.5rem * var(--bd-fs,1)) }
  .benedoc-main .bd-price-val   { font-size:calc(1.6rem * var(--bd-fs,1)) }
  .benedoc-main .bd-section-title { font-size:calc(.95rem * var(--bd-fs,1))!important;margin-bottom:10px!important }

  /* ── LAYOUT GRIDS → single column ───────────────────────────────────── */
  .benedoc-main .bd-info-grid   { grid-template-columns:1fr!important;gap:12px!important }
  .benedoc-main .bd-keynums     { grid-template-columns:1fr 1fr!important;gap:8px!important }
  .benedoc-main .bd-archive .bd-plans-grid { grid-template-columns:1fr!important }
  .benedoc-main .bd-beneai      { padding:20px 16px;flex-direction:column }
  .benedoc-main .bd-riders-wrap { grid-template-columns:1fr }

  /* ══════════════════════════════════════════════════════════════════════════
     MOBILE TABLE SYSTEM — one strategy per table type
     Base: wrapper (.bd-table-wrap) provides the outer border+radius.
     All tables: table-layout:auto + overflow-wrap:break-word (set globally).

     v3.8.3 — "No overflow-x:auto on any table" ya no es cierto a propósito.
     El plan era: TODA tabla ancha se convierte a tarjetas (display:block) y
     por eso nunca hace falta desplazar. Eso funciona cuando los atributos
     `data-cols`/`data-table-mode` que emite PHP calzan exactamente con el
     valor que cada selector de este archivo enumera a mano (2, 3, 4, 5, 6-8,
     9-12...). Si por lo que sea no calzan —una hoja vieja en caché, un tema
     o page builder con su propio CSS de mayor especificidad sobre esta misma
     clase, un valor de columnas fuera del rango enumerado— la tabla se queda
     en `display:table`, y como esta regla ponía `overflow:hidden`, el sobrante
     se recortaba en silencio en vez de poder desplazarse. Ese es el reporte:
     una tabla de red de planes con columnas agrupadas, viendo columnas
     cortadas sin ninguna forma de deslizar para ver el resto.

     `overflow-x:auto` es una red de seguridad, no un reemplazo del modo
     tarjeta: una tabla que SÍ se convirtió a display:block no tiene nada que
     desbordar (ocupa 100% del ancho, apilada), así que este cambio no le
     afecta en nada. Sólo entra en juego cuando el mecanismo de arriba falla
     por cualquier motivo — y ahí, en vez de un corte silencioso, la persona
     puede deslizar para ver el resto de la tabla. ══════════════════════════ */

  /* ── Wrapper / scroll container reset ─────────────────────────────────── */
  .benedoc-main .bd-table-wrap {
    overflow-x: auto !important;      /* red de seguridad: ver nota arriba */
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--bd-radius, 8px) !important;
  }
  .benedoc-main .bd-table-scroll {
    overflow: visible !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  /* Kill any inline min-width injected by PHP */
  .benedoc-main .bd-benefit-table,
  .benedoc-main .bd-dental-table { min-width: 0 !important; max-width: 100% !important; }

  /* ── NUCLEAR RULE: ALL benefit/dental tables with 4+ columns → display:block ─
     This is the primary containment rule. Every individual T6a/T6b/T7 block
     below INHERITS from this — it sets the non-negotiable block context first.
     Attribute selectors in T6a/T7 then customize appearance (cards, labels, etc).

     Covers every possible combination of data-table-mode + bd-table-dense + col count
     without relying on PHP classification being correct. If a table has 4+ columns
     it CANNOT be rendered as display:table on a 390px screen, period.

     Columns 2-3 are explicitly excluded (they fit on mobile as tables).
     ─────────────────────────────────────────────────────────────────────────── */
  .benedoc-main .bd-benefit-table[data-cols="4"],
  .benedoc-main .bd-benefit-table[data-cols="5"],
  .benedoc-main .bd-benefit-table[data-cols="6"],
  .benedoc-main .bd-benefit-table[data-cols="7"],
  .benedoc-main .bd-benefit-table[data-cols="8"],
  .benedoc-main .bd-benefit-table[data-cols="9"],
  .benedoc-main .bd-benefit-table[data-cols="10"],
  .benedoc-main .bd-benefit-table[data-cols="11"],
  .benedoc-main .bd-benefit-table[data-cols="12"],
  .benedoc-main .bd-dental-table[data-cols="4"],
  .benedoc-main .bd-dental-table[data-cols="5"],
  .benedoc-main .bd-dental-table[data-cols="6"],
  .benedoc-main .bd-dental-table[data-cols="7"],
  .benedoc-main .bd-dental-table[data-cols="8"] {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
  /* thead hidden for all 4+ col tables — column names come via data-label ::before */
  .benedoc-main .bd-benefit-table[data-cols="4"] thead,
  .benedoc-main .bd-benefit-table[data-cols="5"] thead,
  .benedoc-main .bd-benefit-table[data-cols="6"] thead,
  .benedoc-main .bd-benefit-table[data-cols="7"] thead,
  .benedoc-main .bd-benefit-table[data-cols="8"] thead,
  .benedoc-main .bd-benefit-table[data-cols="9"] thead,
  .benedoc-main .bd-benefit-table[data-cols="10"] thead,
  .benedoc-main .bd-benefit-table[data-cols="11"] thead,
  .benedoc-main .bd-benefit-table[data-cols="12"] thead,
  .benedoc-main .bd-dental-table[data-cols="4"] thead,
  .benedoc-main .bd-dental-table[data-cols="5"] thead,
  .benedoc-main .bd-dental-table[data-cols="6"] thead,
  .benedoc-main .bd-dental-table[data-cols="7"] thead,
  .benedoc-main .bd-dental-table[data-cols="8"] thead { display: none !important; }
  /* tbody, tr, td, th → all block */
  .benedoc-main .bd-benefit-table[data-cols="4"] tbody,
  .benedoc-main .bd-benefit-table[data-cols="5"] tbody,
  .benedoc-main .bd-benefit-table[data-cols="6"] tbody,
  .benedoc-main .bd-benefit-table[data-cols="7"] tbody,
  .benedoc-main .bd-benefit-table[data-cols="8"] tbody,
  .benedoc-main .bd-benefit-table[data-cols="9"] tbody,
  .benedoc-main .bd-benefit-table[data-cols="10"] tbody,
  .benedoc-main .bd-benefit-table[data-cols="11"] tbody,
  .benedoc-main .bd-benefit-table[data-cols="12"] tbody,
  .benedoc-main .bd-dental-table[data-cols="4"] tbody,
  .benedoc-main .bd-dental-table[data-cols="5"] tbody,
  .benedoc-main .bd-dental-table[data-cols="6"] tbody,
  .benedoc-main .bd-dental-table[data-cols="7"] tbody,
  .benedoc-main .bd-dental-table[data-cols="8"] tbody { display: block !important; }
  .benedoc-main .bd-benefit-table[data-cols="4"] tr,
  .benedoc-main .bd-benefit-table[data-cols="5"] tr,
  .benedoc-main .bd-benefit-table[data-cols="6"] tr,
  .benedoc-main .bd-benefit-table[data-cols="7"] tr,
  .benedoc-main .bd-benefit-table[data-cols="8"] tr,
  .benedoc-main .bd-benefit-table[data-cols="9"] tr,
  .benedoc-main .bd-benefit-table[data-cols="10"] tr,
  .benedoc-main .bd-benefit-table[data-cols="11"] tr,
  .benedoc-main .bd-benefit-table[data-cols="12"] tr,
  .benedoc-main .bd-dental-table[data-cols="4"] tr,
  .benedoc-main .bd-dental-table[data-cols="5"] tr,
  .benedoc-main .bd-dental-table[data-cols="6"] tr,
  .benedoc-main .bd-dental-table[data-cols="7"] tr,
  .benedoc-main .bd-dental-table[data-cols="8"] tr {
    display: block !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    box-sizing: border-box !important;
  }
  .benedoc-main .bd-benefit-table[data-cols="4"] td,
  .benedoc-main .bd-benefit-table[data-cols="4"] th,
  .benedoc-main .bd-benefit-table[data-cols="5"] td,
  .benedoc-main .bd-benefit-table[data-cols="5"] th,
  .benedoc-main .bd-benefit-table[data-cols="6"] td,
  .benedoc-main .bd-benefit-table[data-cols="6"] th,
  .benedoc-main .bd-benefit-table[data-cols="7"] td,
  .benedoc-main .bd-benefit-table[data-cols="7"] th,
  .benedoc-main .bd-benefit-table[data-cols="8"] td,
  .benedoc-main .bd-benefit-table[data-cols="8"] th,
  .benedoc-main .bd-benefit-table[data-cols="9"] td,
  .benedoc-main .bd-benefit-table[data-cols="9"] th,
  .benedoc-main .bd-benefit-table[data-cols="10"] td,
  .benedoc-main .bd-benefit-table[data-cols="10"] th,
  .benedoc-main .bd-benefit-table[data-cols="11"] td,
  .benedoc-main .bd-benefit-table[data-cols="11"] th,
  .benedoc-main .bd-benefit-table[data-cols="12"] td,
  .benedoc-main .bd-benefit-table[data-cols="12"] th,
  .benedoc-main .bd-dental-table[data-cols="4"] td,
  .benedoc-main .bd-dental-table[data-cols="4"] th,
  .benedoc-main .bd-dental-table[data-cols="5"] td,
  .benedoc-main .bd-dental-table[data-cols="5"] th,
  .benedoc-main .bd-dental-table[data-cols="6"] td,
  .benedoc-main .bd-dental-table[data-cols="6"] th,
  .benedoc-main .bd-dental-table[data-cols="7"] td,
  .benedoc-main .bd-dental-table[data-cols="7"] th,
  .benedoc-main .bd-dental-table[data-cols="8"] td,
  .benedoc-main .bd-dental-table[data-cols="8"] th {
    display: block !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    white-space: normal !important; overflow-wrap: break-word !important;
    word-break: normal !important; text-align: left !important;
    box-sizing: border-box !important;
  }
  /* Default card appearance for data rows (T6a/T6b/T7 refine further) */
  .benedoc-main .bd-benefit-table[data-cols="4"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="5"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="6"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="7"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="8"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="9"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="10"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="11"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="12"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table[data-cols="4"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table[data-cols="5"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table[data-cols="6"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table[data-cols="7"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table[data-cols="8"] tr:not(.bd-table-group-row) {
    border: 1px solid var(--bd-border) !important;
    border-radius: 6px !important;
    margin: 4px 0 !important;
    overflow: hidden !important;
    background: var(--bd-bg, #fff) !important;
  }
  /* Default card header and value cell (T6a/T6b/T7 override as needed) */
  .benedoc-main .bd-benefit-table[data-cols="4"] td.bd-table-label,
  .benedoc-main .bd-benefit-table[data-cols="5"] td.bd-table-label,
  .benedoc-main .bd-benefit-table[data-cols="6"] td.bd-table-label,
  .benedoc-main .bd-benefit-table[data-cols="7"] td.bd-table-label,
  .benedoc-main .bd-benefit-table[data-cols="8"] td.bd-table-label,
  .benedoc-main .bd-benefit-table[data-cols="9"] td.bd-table-label,
  .benedoc-main .bd-benefit-table[data-cols="10"] td.bd-table-label,
  .benedoc-main .bd-benefit-table[data-cols="11"] td.bd-table-label,
  .benedoc-main .bd-benefit-table[data-cols="12"] td.bd-table-label,
  .benedoc-main .bd-dental-table[data-cols="4"] td.bd-table-label,
  .benedoc-main .bd-dental-table[data-cols="5"] td.bd-table-label,
  .benedoc-main .bd-dental-table[data-cols="6"] td.bd-table-label,
  .benedoc-main .bd-dental-table[data-cols="7"] td.bd-table-label,
  .benedoc-main .bd-dental-table[data-cols="8"] td.bd-table-label {
    padding: 6px 10px !important;
    font-weight: 700 !important;
    background: var(--bd-bg-section) !important;
    border-bottom: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important; border-top: none !important;
  }
  .benedoc-main .bd-benefit-table[data-cols="4"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table[data-cols="5"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table[data-cols="6"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table[data-cols="7"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table[data-cols="8"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table[data-cols="9"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table[data-cols="10"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table[data-cols="11"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table[data-cols="12"] td.bd-table-cell,
  .benedoc-main .bd-dental-table[data-cols="4"] td.bd-table-cell,
  .benedoc-main .bd-dental-table[data-cols="5"] td.bd-table-cell,
  .benedoc-main .bd-dental-table[data-cols="6"] td.bd-table-cell,
  .benedoc-main .bd-dental-table[data-cols="7"] td.bd-table-cell,
  .benedoc-main .bd-dental-table[data-cols="8"] td.bd-table-cell {
    padding: 5px 10px !important;
    border-top: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important; border-bottom: none !important;
    font-size:calc(.78rem * var(--bd-fs,1)) !important;
  }
  .benedoc-main .bd-benefit-table[data-cols="4"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-cols="5"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-cols="6"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-cols="7"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-cols="8"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-cols="9"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-cols="10"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-cols="11"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-cols="12"] td.bd-table-cell::before,
  .benedoc-main .bd-dental-table[data-cols="4"] td.bd-table-cell::before,
  .benedoc-main .bd-dental-table[data-cols="5"] td.bd-table-cell::before,
  .benedoc-main .bd-dental-table[data-cols="6"] td.bd-table-cell::before,
  .benedoc-main .bd-dental-table[data-cols="7"] td.bd-table-cell::before,
  .benedoc-main .bd-dental-table[data-cols="8"] td.bd-table-cell::before {
    content: attr(data-label);
    display: block !important;
    font-size:calc(.6rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    color: var(--bd-text-muted) !important; text-transform: uppercase !important;
    letter-spacing: .04em !important; margin-bottom: 2px !important;
  }
  /* Group rows: slim section divider */
  .benedoc-main .bd-benefit-table[data-cols="4"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table[data-cols="5"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table[data-cols="6"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table[data-cols="7"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table[data-cols="8"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table[data-cols="9"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table[data-cols="10"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table[data-cols="11"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table[data-cols="12"] tr.bd-table-group-row,
  .benedoc-main .bd-dental-table[data-cols="4"] tr.bd-table-group-row,
  .benedoc-main .bd-dental-table[data-cols="5"] tr.bd-table-group-row,
  .benedoc-main .bd-dental-table[data-cols="6"] tr.bd-table-group-row,
  .benedoc-main .bd-dental-table[data-cols="7"] tr.bd-table-group-row,
  .benedoc-main .bd-dental-table[data-cols="8"] tr.bd-table-group-row {
    background: transparent !important;
    border: none !important; border-radius: 0 !important;
    border-top: 1px solid var(--bd-border) !important;
    padding: 4px 10px !important; margin: 6px 0 2px !important;
    font-size:calc(.64rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    text-transform: uppercase !important; letter-spacing: .05em !important;
    color: var(--bd-text-muted) !important;
  }
  .benedoc-main .bd-benefit-table[data-cols="4"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-benefit-table[data-cols="5"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-benefit-table[data-cols="6"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-benefit-table[data-cols="7"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-benefit-table[data-cols="8"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-dental-table[data-cols="4"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-dental-table[data-cols="5"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-dental-table[data-cols="6"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-dental-table[data-cols="7"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-dental-table[data-cols="8"] tr.bd-table-group-row:first-child {
    border-top: none !important; margin-top: 0 !important;
  }

  /* ══════════════════════════════════════════════════════════════════════════
     GLOBAL MOBILE OVERFLOW SAFETY NET (v3.0.15)
     ─────────────────────────────────────────────────────────────────────────
     Goal: document.body.scrollWidth <= window.innerWidth on every mobile
     viewport. No element inside .benedoc-main may force horizontal overflow.

     Root causes addressed:
       A) .benedoc-main had no overflow-x:hidden → stray wide children escape
       B) .bd-hc-scroll / .bd-hc-wrap had no width cap → health-compare overflow
       C) @media(max-width:640px) min-width:130px on bd-hc-td-label + 100px on
          bd-hc-td-val could sum past the viewport with padding
       D) colgroup rules only covered benefit/dental tables — not hc/ct/compare
       E) desktop white-space:nowrap on .bd-hc-td-label not overridden in @media 768

     DOCUMENTED EXCEPTION: .bd-agepivot-scroll retains overflow-x:auto (the
     only intentional horizontal-scroll surface; see T13 block).
     ══════════════════════════════════════════════════════════════════════════ */

  /* ── A) .benedoc-main container: clip overflow at source ────────────────── */
  .benedoc-main {
    overflow-x: hidden !important;
    /* width/max-width already set by desktop rule; box-sizing inherited below */
  }

  /* ── B) All descendants: universal width cap ────────────────────────────── */
  /* Uses !important so no specific selector (tr, td, label-th, etc.) can
     override the 100% cap with max-width:none or a fixed px value.
     Excludes svg/img/picture/video (intrinsic sizing), the age-pivot
     horizontal-scroll exception, and — v3.8.3 — .bd-table-span-scroll: la
     misma excepción, para la MISMA razón. Ver la nota completa junto a
     .bd-table-wrap más arriba: cuando una tabla ancha no logra convertirse a
     tarjetas (display:block), este cap universal es precisamente lo que le
     impedía desbordar y por tanto lo que le impedía tener algo que
     desplazar. Sin esta excepción, el fallback de scroll de más abajo nunca
     tendría efecto. */
  .benedoc-main *:not(svg):not(img):not(picture):not(video):not(.bd-agepivot-scroll):not(.bd-agepivot-scroll *) {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* ── C) Health-compare wrappers: explicit width containment ─────────────── */
  .benedoc-main .bd-hc-wrap,
  .benedoc-main .bd-hc-scroll {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  /* ── D) Any table still in display:table mode on mobile: hard width cap ─── */
  .benedoc-main table,
  .bd-addl-table {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .benedoc-main table[data-table-mode="matrix"],
  .benedoc-main table.bd-table-dense,
  .benedoc-main .bd-compare-table,
  .bd-addl-table {
    table-layout: fixed !important;
  }
  .benedoc-main td,
  .benedoc-main th,
  .bd-addl-table td,
  .bd-addl-table th {
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }

  /* ── E) Wrapper hard stop ───────────────────────────────────────────────── */
  .benedoc-main .bd-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;      /* v3.8.3 — red de seguridad, ver nota arriba */
    -webkit-overflow-scrolling: touch;
  }

  /* ── F) colgroup: neutralize desktop column proportions for ALL table types.
     PHP emits <col style="width:X%"> for desktop. The !important cascade beats
     inline styles, stripping desktop proportions in card/block layout and
     preventing fixed columns from summing past 100% in any remaining
     display:table table.
     data-cols="2" excluded: its 40/60 colgroup must be preserved. */
  .benedoc-main .bd-benefit-table:not([data-cols="2"]) colgroup,
  .benedoc-main .bd-benefit-table:not([data-cols="2"]) col,
  .benedoc-main .bd-dental-table:not([data-cols="2"]) colgroup,
  .benedoc-main .bd-dental-table:not([data-cols="2"]) col,
  .benedoc-main .bd-hc-table colgroup,
  .benedoc-main .bd-hc-table col,
  .benedoc-main .bd-ct-table colgroup,
  .benedoc-main .bd-ct-table col,
  .benedoc-main .bd-compare-table colgroup,
  .benedoc-main .bd-compare-table col,
  .benedoc-main .bd-addl-table colgroup,
  .benedoc-main .bd-addl-table col {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  /* ── G) Nullify the @media(max-width:640px) min-width values on hc cells ──
     Those rules set min-width:130px + min-width:100px which can sum past the
     viewport. They are overridden here at @media(max-width:768px) so the
     768px block wins for all phones. */
  .benedoc-main .bd-hc-th-label,
  .benedoc-main .bd-hc-td-label {
    min-width: 0 !important;
    width: auto !important;
    white-space: normal !important;
  }
  .benedoc-main .bd-hc-th-plan,
  .benedoc-main .bd-hc-td-val {
    min-width: 0 !important;
  }

  /* ──────────────────────────────────────────────────────────────────────────
     T1/T2 — 2-col benefit table (with or without rowspan)
     Strategy: keep display:table on mobile — 2 columns fit cleanly at 320px+.
     No conversion to grid or cards: table model is already correct,
     and switching display mode breaks the border-separate model.
     Column widths: 40% label / 60% value (matches colgroup + desktop CSS).
     Rowspan resolved by JS (resolveRowspans) before any layout kicks in.
     ────────────────────────────────────────────────────────────────────────── */
  .benedoc-main .bd-benefit-table[data-cols="2"],
  .benedoc-main .bd-dental-table[data-cols="2"] {
    display: table !important;
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    font-size:calc(.82rem * var(--bd-fs,1)) !important;
    min-width: 0 !important;
  }
  /* Thead: keep visible on mobile — the column labels are meaningful */
  .benedoc-main .bd-benefit-table[data-cols="2"] thead,
  .benedoc-main .bd-dental-table[data-cols="2"] thead { display: table-header-group !important; }
  .benedoc-main .bd-benefit-table[data-cols="2"] tbody,
  .benedoc-main .bd-dental-table[data-cols="2"] tbody { display: table-row-group !important; }
  .benedoc-main .bd-benefit-table[data-cols="2"] tr,
  .benedoc-main .bd-dental-table[data-cols="2"] tr    { display: table-row !important; }
  .benedoc-main .bd-benefit-table[data-cols="2"] td,
  .benedoc-main .bd-benefit-table[data-cols="2"] th,
  .benedoc-main .bd-dental-table[data-cols="2"] td,
  .benedoc-main .bd-dental-table[data-cols="2"] th {
    display: table-cell !important;
    padding: 8px 10px !important;
    font-size:calc(.8rem * var(--bd-fs,1)) !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }
  /* Value cells: left-aligned on mobile for readability */
  .benedoc-main .bd-benefit-table[data-cols="2"] td.bd-table-cell,
  .benedoc-main .bd-dental-table[data-cols="2"] td.bd-table-cell {
    text-align: left !important;
    font-size:calc(.8rem * var(--bd-fs,1)) !important;
    vertical-align: middle !important;
  }
  /* Rowspan-cloned cells (inserted by JS resolveRowspans) */
  .benedoc-main .bd-benefit-table[data-cols="2"] td.bd-rs-clone,
  .benedoc-main .bd-dental-table[data-cols="2"] td.bd-rs-clone {
    text-align: center !important;
    font-weight: 600 !important;
  }
  /* Group-row: spans full width, slightly smaller text */
  .benedoc-main .bd-benefit-table[data-cols="2"] tr.bd-table-group-row td,
  .benedoc-main .bd-dental-table[data-cols="2"] tr.bd-table-group-row td {
    font-size:calc(.72rem * var(--bd-fs,1)) !important;
    padding: 6px 10px !important;
  }

  /* ──────────────────────────────────────────────────────────────────────────
     T3 — amount table (chip layout, 2-col)
     Strategy: unchanged — chip grid already works well on mobile.
     ────────────────────────────────────────────────────────────────────────── */
  .benedoc-main .bd-benefit-table--amounts {
    display: block !important; width: 100% !important;
    border: none !important; min-width: 0 !important;
  }
  .benedoc-main .bd-benefit-table--amounts thead { display: none !important; }
  .benedoc-main .bd-benefit-table--amounts tbody {
    display: flex !important; flex-wrap: wrap !important;
    padding: 6px !important; background: var(--bd-bg-section) !important;
  }
  .benedoc-main .bd-benefit-table--amounts tr.bd-table-group-row {
    width: 100% !important; display: block !important;
    background: var(--bd-bg-section) !important;
    padding: 8px 14px !important; margin: 0 -6px !important;
    font-size:calc(.72rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    text-transform: uppercase !important; letter-spacing: .06em !important;
    color: var(--bd-text-muted) !important;
    border-bottom: 1px solid var(--bd-border) !important;
    border-top: 1px solid var(--bd-border) !important;
  }
  .benedoc-main .bd-benefit-table--amounts tr.bd-table-group-row:first-child { border-top: none !important; }
  .benedoc-main .bd-benefit-table--amounts tbody tr:not(.bd-table-group-row) {
    display: inline-flex !important; flex-direction: column !important;
    align-items: center !important; justify-content: center !important;
    width: calc(33.333% - 8px) !important; margin: 4px !important;
    padding: 8px 4px 6px !important;
    background: var(--bd-bg, #fff) !important;
    border: 1px solid var(--bd-border) !important; border-radius: 8px !important;
    text-align: center !important;
  }
  .benedoc-main .bd-benefit-table--amounts td.bd-table-label {
    display: block !important; font-size:calc(.62rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    color: var(--bd-text-muted) !important; padding: 0 0 2px !important;
    border: none !important; background: none !important; line-height: 1.2 !important;
  }
  .benedoc-main .bd-benefit-table--amounts td.bd-table-cell {
    display: block !important; font-size:calc(.92rem * var(--bd-fs,1)) !important; font-weight: 800 !important;
    color: var(--bd-text) !important; padding: 0 !important;
    border: none !important; background: none !important;
  }

  /* ──────────────────────────────────────────────────────────────────────────
     T4 — 3-col benefit table, no column_groups
     T9 — bd-dental-table 3-col
     Strategy: compressed table (display:table). 3 columns fit on 375px.
     Label column 40%, two value columns share 60%.
     white-space:normal prevents overlap; overflow-wrap:break-word for long strings.
     ────────────────────────────────────────────────────────────────────────── */
  .benedoc-main .bd-benefit-table[data-cols="3"]:not([data-has-groups]),
  .benedoc-main .bd-dental-table[data-cols="3"] {
    display: table !important; table-layout: auto !important;
    width: 100% !important; font-size:calc(.74rem * var(--bd-fs,1)) !important; min-width: 0 !important;
  }
  .benedoc-main .bd-benefit-table[data-cols="3"]:not([data-has-groups]) thead,
  .benedoc-main .bd-dental-table[data-cols="3"] thead { display: table-header-group !important; }
  .benedoc-main .bd-benefit-table[data-cols="3"]:not([data-has-groups]) tbody,
  .benedoc-main .bd-dental-table[data-cols="3"] tbody { display: table-row-group !important; }
  .benedoc-main .bd-benefit-table[data-cols="3"]:not([data-has-groups]) tr,
  .benedoc-main .bd-dental-table[data-cols="3"] tr { display: table-row !important; }
  .benedoc-main .bd-benefit-table[data-cols="3"]:not([data-has-groups]) td,
  .benedoc-main .bd-benefit-table[data-cols="3"]:not([data-has-groups]) th,
  .benedoc-main .bd-dental-table[data-cols="3"] td,
  .benedoc-main .bd-dental-table[data-cols="3"] th {
    display: table-cell !important;
    padding: 7px 6px !important; font-size:calc(.72rem * var(--bd-fs,1)) !important;
    white-space: normal !important; overflow-wrap: break-word !important;
  }
  /* T4 3-col: 34% label, 33%+33% value — equal thirds */
  .benedoc-main .bd-benefit-table[data-cols="3"]:not([data-has-groups]) tbody .bd-table-label-th,
  .benedoc-main .bd-dental-table[data-cols="3"] tbody .bd-table-label-th {
    width: 34% !important; background: var(--bd-plan-header-bg, var(--bd-bg, #fff)) !important;
  }
  .benedoc-main .bd-benefit-table[data-cols="3"]:not([data-has-groups]) thead .bd-table-label-th,
  .benedoc-main .bd-dental-table[data-cols="3"] thead .bd-table-label-th {
    width: 34% !important; vertical-align: middle !important;
    background: var(--bd-plan-header-bg, var(--bd-table-header)) !important;
    color: var(--bd-plan-header-text, var(--bd-table-header-text, #fff)) !important;
  }
  /* Dental 3-col group rows: slim separator like T6a dense */
  .benedoc-main .bd-dental-table[data-cols="3"] tr.bd-table-group-row td,
  .benedoc-main .bd-benefit-table[data-cols="3"] tr.bd-table-group-row td {
    padding: 3px 6px !important;
    font-size:calc(.62rem * var(--bd-fs,1)) !important;
    letter-spacing: .04em !important;
  }


  /* ──────────────────────────────────────────────────────────────────────────
     T5 — 3-col benefit table WITH column_groups (SERVICE rowspan=2 in thead)
     Same as T4 but column-group header row is visible.
     JS adds data-has-groups so we don't need !not([data-has-groups]) complexity.
     ────────────────────────────────────────────────────────────────────────── */
  .benedoc-main .bd-benefit-table[data-cols="3"][data-has-groups] {
    display: table !important; table-layout: auto !important;
    width: 100% !important; font-size:calc(.72rem * var(--bd-fs,1)) !important; min-width: 0 !important;
  }
  .benedoc-main .bd-benefit-table[data-cols="3"][data-has-groups] thead { display: table-header-group !important; }
  .benedoc-main .bd-benefit-table[data-cols="3"][data-has-groups] tbody { display: table-row-group !important; }
  .benedoc-main .bd-benefit-table[data-cols="3"][data-has-groups] tr   { display: table-row !important; }
  .benedoc-main .bd-benefit-table[data-cols="3"][data-has-groups] td,
  .benedoc-main .bd-benefit-table[data-cols="3"][data-has-groups] th   {
    display: table-cell !important;
    padding: 6px 5px !important; font-size:calc(.7rem * var(--bd-fs,1)) !important;
    white-space: normal !important; overflow-wrap: break-word !important;
  }
  /* T5 3-col with groups: 34% label — same as T4 */
  .benedoc-main .bd-benefit-table[data-cols="3"][data-has-groups] tbody .bd-table-label-th {
    width: 34% !important; background: var(--bd-plan-header-bg, var(--bd-bg, #fff)) !important;
  }
  .benedoc-main .bd-benefit-table[data-cols="3"][data-has-groups] thead .bd-table-label-th {
    width: 34% !important; background: var(--bd-plan-header-bg, var(--bd-table-header)) !important;
    color: var(--bd-plan-header-text, var(--bd-table-header-text, #fff)) !important;
    vertical-align: middle !important;
  }

  /* ══════════════════════════════════════════════════════════════════════════
     T6 — 4-5 col tables: ALL modes → stacked card on mobile (v3.0.14)
     ─────────────────────────────────────────────────────────────────────────
     SINGLE SOURCE OF TRUTH:
       2 col  → display:table (fits cleanly at 320px+)
       3 col  → display:table compact (fits at 375px+)
       4+ col → display:block stacked cards (ALL modes: matrix, card, compare)

     data-table-mode and bd-table-dense still emitted by PHP for JS/debugging.
     On mobile, mode no longer determines display:table vs card — col count does.
     ══════════════════════════════════════════════════════════════════════════ */

  /* ── T6a: MATRIX mode 4-5 col — STACKED CARD layout ────────────────────────
     display:table on mobile for 4-5 col matrices causes overflow at 390-430px:
     4 cols × minimum readable width always exceeds the viewport.
     Rule (v3.0.13+): 2 col = table, 3 col = compact table, 4+ col = stacked cards.

     Applies to:
       • bd-benefit-table[data-table-mode="matrix"]  col 4-5  (Vision, Medical)
       • bd-dental-table.bd-table-dense              col 4-5  (Dental INN/OON)

     Desktop / PDF: unaffected — rules live inside @media(max-width:768px).
     Weglot: display:block; ::before is display:block — no flex children conflict.
     ────────────────────────────────────────────────────────────────────────── */

  /* Table shell → block */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"],
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"],
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"],
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] {
    display: block !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    border: 0 !important; border-radius: 0 !important;
  }

  /* thead → hidden; column labels come from data-label ::before */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"] thead,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"] thead,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"] thead,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] thead { display: none !important; }

  /* tbody → block */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"] tbody,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"] tbody,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"] tbody,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] tbody { display: block !important; }

  /* Group rows → slim section divider */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"] tr.bd-table-group-row,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"] tr.bd-table-group-row,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] tr.bd-table-group-row {
    display: block !important; padding: 4px 10px !important; margin: 6px 0 2px !important;
    background: transparent !important; border-top: 1px solid var(--bd-border) !important;
    border-bottom: none !important; font-size:calc(.64rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    text-transform: uppercase !important; letter-spacing: .05em !important;
    color: var(--bd-text-muted) !important;
  }
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"] tr.bd-table-group-row td,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"] tr.bd-table-group-row td,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"] tr.bd-table-group-row td,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] tr.bd-table-group-row td {
    display: block !important; padding: 0 !important; border: none !important;
  }
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] tr.bd-table-group-row:first-child {
    border-top: 0 !important; margin-top: 0 !important;
  }

  /* Data rows → card */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] tr:not(.bd-table-group-row) {
    display: block !important;
    border: 1px solid var(--bd-border) !important; border-radius: 6px !important;
    margin: 4px 0 !important; overflow: hidden !important;
    background: var(--bd-bg, #fff) !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* Card header: service/benefit name */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"] td.bd-table-label,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"] td.bd-table-label,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"] td.bd-table-label,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] td.bd-table-label {
    display: block !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    padding: 6px 10px !important; font-size:calc(.78rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    background: var(--bd-bg-section) !important;
    border-bottom: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important;
    white-space: normal !important; overflow-wrap: break-word !important;
    text-align: left !important; box-sizing: border-box !important;
  }

  /* Value cells: stacked — column label on top, value below */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"] td.bd-table-cell,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"] td.bd-table-cell,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] td.bd-table-cell {
    display: block !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    padding: 5px 10px !important; font-size:calc(.78rem * var(--bd-fs,1)) !important;
    border-top: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important; border-bottom: none !important;
    white-space: normal !important; overflow-wrap: break-word !important; word-break: normal !important;
    text-align: left !important; box-sizing: border-box !important;
  }
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"] td.bd-table-cell:first-of-type,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"] td.bd-table-cell:first-of-type,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"] td.bd-table-cell:first-of-type,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] td.bd-table-cell:first-of-type { border-top: 0 !important; }

  /* Secondary value cells — same stacked pattern */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"] td.bd-table-cell-secondary,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"] td.bd-table-cell-secondary,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"] td.bd-table-cell-secondary,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] td.bd-table-cell-secondary {
    display: block !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    padding: 5px 10px !important; font-size:calc(.75rem * var(--bd-fs,1)) !important;
    color: var(--bd-text-muted) !important;
    border-top: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important; border-bottom: none !important;
    white-space: normal !important; overflow-wrap: break-word !important; word-break: normal !important;
    text-align: left !important; box-sizing: border-box !important;
  }
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"] td.bd-table-cell-secondary:first-of-type,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"] td.bd-table-cell-secondary:first-of-type,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"] td.bd-table-cell-secondary:first-of-type,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] td.bd-table-cell-secondary:first-of-type { border-top: 0 !important; }

  /* Column label (::before) — uppercase tag stacked ABOVE the value */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"] td.bd-table-cell::before,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"] td.bd-table-cell::before,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"] td.bd-table-cell-secondary::before,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"] td.bd-table-cell-secondary::before,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"] td.bd-table-cell-secondary::before,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] td.bd-table-cell-secondary::before {
    content: attr(data-label);
    display: block !important;
    font-size:calc(.6rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    color: var(--bd-text-muted) !important; text-transform: uppercase !important;
    letter-spacing: .04em !important; margin-bottom: 2px !important;
  }

  /* Safety net: any th not covered above (colgroup headers hidden with thead) */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="4"] th,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="5"] th,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="4"] th,
  .benedoc-main .bd-dental-table.bd-table-dense[data-cols="5"] th {
    display: block !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* ── T6b: CARD mode — stacked card layout (default for 4-5 col non-matrix) ──
     Fires for data-table-mode="card", "compare", or any table WITHOUT matrix mode.
     Uses :not([data-table-mode="matrix"]) so it catches unset/unknown modes too.
     Each row → card. Service label = card header. Value cells = stacked column.
     ────────────────────────────────────────────────────────────────────────── */
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="4"],
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="5"],
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="4"],
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="5"] {
    display: block !important;
    width: 100% !important;
    border: 0 !important; border-radius: 0 !important; overflow: visible !important;
  }
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="4"] thead,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="5"] thead,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="4"] thead,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="5"] thead { display: none !important; }
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="4"] tbody,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="5"] tbody,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="4"] tbody,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="5"] tbody { display: block !important; }
  /* Group rows: slim section label */
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="4"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="5"] tr.bd-table-group-row,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="4"] tr.bd-table-group-row,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="5"] tr.bd-table-group-row {
    display: block !important; padding: 4px 10px !important; margin: 6px 0 2px !important;
    background: transparent !important; border-top: 1px solid var(--bd-border) !important;
    border-bottom: none !important; font-size:calc(.64rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    text-transform: uppercase !important; letter-spacing: .05em !important;
    color: var(--bd-text-muted) !important;
  }
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="4"] tr.bd-table-group-row td,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="5"] tr.bd-table-group-row td,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="4"] tr.bd-table-group-row td,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="5"] tr.bd-table-group-row td {
    display: block !important; padding: 0 !important; border: none !important;
  }
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="4"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="5"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="4"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="5"] tr.bd-table-group-row:first-child {
    border-top: 0 !important; margin-top: 0 !important;
  }
  /* Data rows → cards */
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="4"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="5"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="4"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="5"] tr:not(.bd-table-group-row) {
    display: block !important;
    border: 1px solid var(--bd-border) !important; border-radius: 6px !important;
    margin: 4px 0 !important; overflow: hidden !important;
    background: var(--bd-bg, #fff) !important;
    /* Reset any inherited table-row width/min-width so the card spans the container */
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    box-sizing: border-box !important;
  }
  /* Card header: service/benefit name */
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="4"] td.bd-table-label,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="5"] td.bd-table-label,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="4"] td.bd-table-label,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="5"] td.bd-table-label {
    display: block !important; padding: 6px 10px !important;
    font-size:calc(.78rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    background: var(--bd-bg-section) !important;
    border-bottom: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important;
    white-space: normal !important; overflow-wrap: break-word !important;
    /* Reset desktop column-width rules (e.g. [data-cols="4"] td.bd-table-label { width:28% })
       which otherwise survive the display:block conversion in card mode. */
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    box-sizing: border-box !important;
  }
  /* Value cells: stacked — column label on top, value below */
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="4"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="5"] td.bd-table-cell,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="4"] td.bd-table-cell,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="5"] td.bd-table-cell {
    display: block !important;
    padding: 5px 10px !important;
    font-size:calc(.78rem * var(--bd-fs,1)) !important;
    border-top: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important; border-bottom: none !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    text-align: left !important;
    /* Reset desktop colgroup/cell width rules so cards span full width */
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    box-sizing: border-box !important;
  }
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="4"] td.bd-table-cell:first-of-type,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="5"] td.bd-table-cell:first-of-type,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="4"] td.bd-table-cell:first-of-type,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="5"] td.bd-table-cell:first-of-type { border-top: 0 !important; }
  /* bd-table-cell-secondary: same stacked-card treatment as bd-table-cell
     (desktop only sets text-align:center; without this, secondary cells
     keep table-cell sizing/centering when card mode is active) */
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="4"] td.bd-table-cell-secondary,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="5"] td.bd-table-cell-secondary,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="4"] td.bd-table-cell-secondary,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="5"] td.bd-table-cell-secondary {
    display: block !important;
    padding: 5px 10px !important;
    font-size:calc(.78rem * var(--bd-fs,1)) !important;
    border-top: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important; border-bottom: none !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    text-align: left !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    box-sizing: border-box !important;
  }
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="4"] td.bd-table-cell-secondary:first-of-type,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="5"] td.bd-table-cell-secondary:first-of-type,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="4"] td.bd-table-cell-secondary:first-of-type,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="5"] td.bd-table-cell-secondary:first-of-type { border-top: 0 !important; }
  /* Column label (::before) — tiny uppercase tag, displayed as block ABOVE the value */
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="4"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="5"] td.bd-table-cell::before,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="4"] td.bd-table-cell::before,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="5"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="4"] td.bd-table-cell-secondary::before,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="5"] td.bd-table-cell-secondary::before,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="4"] td.bd-table-cell-secondary::before,
  .benedoc-main .bd-dental-table:not(.bd-table-dense)[data-cols="5"] td.bd-table-cell-secondary::before {
    content: attr(data-label);
    display: block !important;
    font-size:calc(.6rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    color: var(--bd-text-muted) !important; text-transform: uppercase !important;
    letter-spacing: .04em !important; margin-bottom: 2px !important;
  }

  /* ══════════════════════════════════════════════════════════════════════════
     T7 — 6-8 col tables: ALL modes → stacked card on mobile (v3.0.14)
     ─────────────────────────────────────────────────────────────────────────
     Same rule as T6: col count determines layout, not data-table-mode.
     All 6-8 col tables (matrix, card, compare) use stacked cards on mobile.
     ══════════════════════════════════════════════════════════════════════════ */

  /* ── T7-matrix: STACKED CARD layout for 6-8 col matrices on mobile ──────────
     display:table + table-layout:fixed for 6-8 columns at 390-430px causes
     horizontal overflow regardless of font-size because 8 columns × minimum
     readable cell width always exceeds the viewport.

     FIX: same stacked card pattern as T6b/T7-card.
       - table  → display:block  (kills the table formatting context entirely)
       - thead  → display:none   (column names come from data-label ::before)
       - tbody  → display:block
       - tr     → display:block, card border+radius
       - td.bd-table-label  → card header (service/benefit name)
       - td.bd-table-cell   → stacked row: COLUMN LABEL on top, value below
       - td.bd-table-cell-secondary → same stacked pattern

     colgroup/col width rules are already neutralised by the global
     .bd-benefit-table:not([data-cols="2"]) col { width:auto } rule above.
     Once display:block is set, colgroup has zero effect on layout.

     Desktop / PDF: untouched — these rules are inside @media(max-width:768px).
     Weglot: block layout needs no flex children; ::before is display:block.
     ────────────────────────────────────────────────────────────────────────── */

  /* Table shell → block */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"],
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"],
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"],
  .benedoc-main .bd-dental-table[data-cols="6"],
  .benedoc-main .bd-dental-table[data-cols="7"],
  .benedoc-main .bd-dental-table[data-cols="8"] {
    display: block !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    border: 0 !important; border-radius: 0 !important;
  }

  /* thead → hidden; column names injected via data-label ::before */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"] thead,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"] thead,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"] thead,
  .benedoc-main .bd-dental-table[data-cols="6"] thead,
  .benedoc-main .bd-dental-table[data-cols="7"] thead,
  .benedoc-main .bd-dental-table[data-cols="8"] thead { display: none !important; }

  /* tbody → block container */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"] tbody,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"] tbody,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"] tbody,
  .benedoc-main .bd-dental-table[data-cols="6"] tbody,
  .benedoc-main .bd-dental-table[data-cols="7"] tbody,
  .benedoc-main .bd-dental-table[data-cols="8"] tbody { display: block !important; }

  /* Group rows (e.g. PREVENTIVE, BASIC, MAJOR) → slim section divider */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"] tr.bd-table-group-row,
  .benedoc-main .bd-dental-table[data-cols="6"] tr.bd-table-group-row,
  .benedoc-main .bd-dental-table[data-cols="7"] tr.bd-table-group-row,
  .benedoc-main .bd-dental-table[data-cols="8"] tr.bd-table-group-row {
    display: block !important;
    padding: 4px 10px !important; margin: 6px 0 2px !important;
    background: transparent !important; border-top: 1px solid var(--bd-border) !important;
    border-bottom: none !important; font-size:calc(.64rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    text-transform: uppercase !important; letter-spacing: .05em !important;
    color: var(--bd-text-muted) !important;
  }
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"] tr.bd-table-group-row td,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"] tr.bd-table-group-row td,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"] tr.bd-table-group-row td,
  .benedoc-main .bd-dental-table[data-cols="6"] tr.bd-table-group-row td,
  .benedoc-main .bd-dental-table[data-cols="7"] tr.bd-table-group-row td,
  .benedoc-main .bd-dental-table[data-cols="8"] tr.bd-table-group-row td {
    display: block !important; padding: 0 !important; border: none !important;
  }
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-dental-table[data-cols="6"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-dental-table[data-cols="7"] tr.bd-table-group-row:first-child,
  .benedoc-main .bd-dental-table[data-cols="8"] tr.bd-table-group-row:first-child {
    border-top: 0 !important; margin-top: 0 !important;
  }

  /* Data rows → card */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table[data-cols="6"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table[data-cols="7"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table[data-cols="8"] tr:not(.bd-table-group-row) {
    display: block !important;
    border: 1px solid var(--bd-border) !important; border-radius: 6px !important;
    margin: 4px 0 !important; overflow: hidden !important;
    background: var(--bd-bg, #fff) !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
  }

  /* Card header: service/benefit name — td.bd-table-label */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"] td.bd-table-label,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"] td.bd-table-label,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"] td.bd-table-label,
  .benedoc-main .bd-dental-table[data-cols="6"] td.bd-table-label,
  .benedoc-main .bd-dental-table[data-cols="7"] td.bd-table-label,
  .benedoc-main .bd-dental-table[data-cols="8"] td.bd-table-label {
    display: block !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    padding: 6px 10px !important;
    font-size:calc(.78rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    background: var(--bd-bg-section) !important;
    border-bottom: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important;
    white-space: normal !important; overflow-wrap: break-word !important; word-break: normal !important;
    text-align: left !important;
    box-sizing: border-box !important;
  }

  /* Value cells (bd-table-cell) → stacked: COLUMN LABEL on top, value below */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"] td.bd-table-cell,
  .benedoc-main .bd-dental-table[data-cols="6"] td.bd-table-cell,
  .benedoc-main .bd-dental-table[data-cols="7"] td.bd-table-cell,
  .benedoc-main .bd-dental-table[data-cols="8"] td.bd-table-cell {
    display: block !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    padding: 5px 10px !important; font-size:calc(.78rem * var(--bd-fs,1)) !important;
    border-top: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important; border-bottom: none !important;
    white-space: normal !important; overflow-wrap: break-word !important; word-break: normal !important;
    text-align: left !important;
    box-sizing: border-box !important;
  }
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"] td.bd-table-cell:first-of-type,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"] td.bd-table-cell:first-of-type,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"] td.bd-table-cell:first-of-type,
  .benedoc-main .bd-dental-table[data-cols="6"] td.bd-table-cell:first-of-type,
  .benedoc-main .bd-dental-table[data-cols="7"] td.bd-table-cell:first-of-type,
  .benedoc-main .bd-dental-table[data-cols="8"] td.bd-table-cell:first-of-type { border-top: 0 !important; }

  /* Secondary value cells (bd-table-cell-secondary) — same stacked pattern */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"] td.bd-table-cell-secondary,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"] td.bd-table-cell-secondary,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"] td.bd-table-cell-secondary,
  .benedoc-main .bd-dental-table[data-cols="6"] td.bd-table-cell-secondary,
  .benedoc-main .bd-dental-table[data-cols="7"] td.bd-table-cell-secondary,
  .benedoc-main .bd-dental-table[data-cols="8"] td.bd-table-cell-secondary {
    display: block !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    padding: 5px 10px !important; font-size:calc(.75rem * var(--bd-fs,1)) !important;
    color: var(--bd-text-muted) !important;
    border-top: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important; border-bottom: none !important;
    white-space: normal !important; overflow-wrap: break-word !important; word-break: normal !important;
    text-align: left !important;
    box-sizing: border-box !important;
  }
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"] td.bd-table-cell-secondary:first-of-type,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"] td.bd-table-cell-secondary:first-of-type,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"] td.bd-table-cell-secondary:first-of-type,
  .benedoc-main .bd-dental-table[data-cols="6"] td.bd-table-cell-secondary:first-of-type,
  .benedoc-main .bd-dental-table[data-cols="7"] td.bd-table-cell-secondary:first-of-type,
  .benedoc-main .bd-dental-table[data-cols="8"] td.bd-table-cell-secondary:first-of-type { border-top: 0 !important; }

  /* Column label (::before) — tiny uppercase tag, stacked ABOVE the value */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"] td.bd-table-cell::before,
  .benedoc-main .bd-dental-table[data-cols="6"] td.bd-table-cell::before,
  .benedoc-main .bd-dental-table[data-cols="7"] td.bd-table-cell::before,
  .benedoc-main .bd-dental-table[data-cols="8"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"] td.bd-table-cell-secondary::before,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"] td.bd-table-cell-secondary::before,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"] td.bd-table-cell-secondary::before,
  .benedoc-main .bd-dental-table[data-cols="6"] td.bd-table-cell-secondary::before,
  .benedoc-main .bd-dental-table[data-cols="7"] td.bd-table-cell-secondary::before,
  .benedoc-main .bd-dental-table[data-cols="8"] td.bd-table-cell-secondary::before {
    content: attr(data-label);
    display: block !important;
    font-size:calc(.6rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    color: var(--bd-text-muted) !important; text-transform: uppercase !important;
    letter-spacing: .04em !important; margin-bottom: 2px !important;
  }

  /* Any remaining th/td not covered above (safety net) */
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="6"] th,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="7"] th,
  .benedoc-main .bd-benefit-table[data-table-mode="matrix"][data-cols="8"] th,
  .benedoc-main .bd-dental-table[data-cols="6"] th,
  .benedoc-main .bd-dental-table[data-cols="7"] th,
  .benedoc-main .bd-dental-table[data-cols="8"] th {
    display: block !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* T7-card: stacked card layout for non-matrix 6-8 col tables
     (option tables, plan-name columns, coverage amount tables)
     Card layout for 6-8 col is the same pattern as T6b */
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="6"],
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="7"],
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="8"] {
    display: block !important;
    width: 100% !important;
    border: 0 !important; border-radius: 0 !important; overflow: visible !important;
  }
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="6"] thead,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="7"] thead,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="8"] thead { display: none !important; }
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="6"] tbody,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="7"] tbody,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="8"] tbody { display: block !important; }
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="6"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="7"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="8"] tr.bd-table-group-row {
    display: block !important;
    padding: 4px 10px !important; margin: 6px 0 2px !important;
    background: transparent !important; border-top: 1px solid var(--bd-border) !important;
    font-size:calc(.64rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    text-transform: uppercase !important; letter-spacing: .05em !important;
    color: var(--bd-text-muted) !important;
  }
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="6"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="7"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="8"] tr:not(.bd-table-group-row) {
    display: block !important;
    border: 1px solid var(--bd-border) !important; border-radius: 6px !important;
    margin: 4px 0 !important; overflow: hidden !important;
    background: var(--bd-bg, #fff) !important;
  }
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="6"] td.bd-table-label,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="7"] td.bd-table-label,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="8"] td.bd-table-label {
    display: block !important; padding: 6px 10px !important;
    font-size:calc(.78rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    background: var(--bd-bg-section) !important;
    border-bottom: 1px solid var(--bd-border) !important;
  }
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="6"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="7"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="8"] td.bd-table-cell {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    padding: 5px 10px !important; font-size:calc(.78rem * var(--bd-fs,1)) !important;
    border-top: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important; border-bottom: none !important;
    white-space: normal !important; overflow-wrap: break-word !important; word-break: normal !important;
  }
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="6"] td.bd-table-cell:first-of-type,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="7"] td.bd-table-cell:first-of-type,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="8"] td.bd-table-cell:first-of-type { border-top: 0 !important; }
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="6"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="7"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table:not([data-table-mode="matrix"])[data-cols="8"] td.bd-table-cell::before {
    content: attr(data-label);
    display: block !important; font-size:calc(.6rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    color: var(--bd-text-muted) !important; text-transform: uppercase !important;
    letter-spacing: .04em !important; margin-bottom: 1px !important;
  }

  /* ──────────────────────────────────────────────────────────────────────────
     T8 — 9-12 col benefit table
     Strategy: full card-per-row with data-label.
     ────────────────────────────────────────────────────────────────────────── */
  .benedoc-main .bd-benefit-table[data-cols="9"],
  .benedoc-main .bd-benefit-table[data-cols="10"],
  .benedoc-main .bd-benefit-table[data-cols="11"],
  .benedoc-main .bd-benefit-table[data-cols="12"] {
    display: block !important; width: 100% !important;
    border: none !important; min-width: 0 !important;
  }
  .benedoc-main .bd-benefit-table[data-cols="9"] thead,
  .benedoc-main .bd-benefit-table[data-cols="10"] thead,
  .benedoc-main .bd-benefit-table[data-cols="11"] thead,
  .benedoc-main .bd-benefit-table[data-cols="12"] thead { display: none !important; }
  .benedoc-main .bd-benefit-table[data-cols="9"] tbody,
  .benedoc-main .bd-benefit-table[data-cols="10"] tbody,
  .benedoc-main .bd-benefit-table[data-cols="11"] tbody,
  .benedoc-main .bd-benefit-table[data-cols="12"] tbody { display: block !important; }
  .benedoc-main .bd-benefit-table[data-cols="9"] tr,
  .benedoc-main .bd-benefit-table[data-cols="10"] tr,
  .benedoc-main .bd-benefit-table[data-cols="11"] tr,
  .benedoc-main .bd-benefit-table[data-cols="12"] tr {
    display: block !important;
    border: 1px solid var(--bd-border) !important; border-radius: 8px !important;
    margin-bottom: 8px !important; padding: 0 !important; overflow: hidden !important;
  }
  .benedoc-main .bd-benefit-table[data-cols="9"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table[data-cols="10"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table[data-cols="11"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table[data-cols="12"] tr.bd-table-group-row {
    background: var(--bd-bg-section) !important; border-radius: 0 !important;
  }
  .benedoc-main .bd-benefit-table[data-cols="9"] td.bd-table-label,
  .benedoc-main .bd-benefit-table[data-cols="10"] td.bd-table-label,
  .benedoc-main .bd-benefit-table[data-cols="11"] td.bd-table-label,
  .benedoc-main .bd-benefit-table[data-cols="12"] td.bd-table-label {
    display: block !important; font-weight: 700 !important;
    padding: 8px 12px !important; font-size:calc(.8rem * var(--bd-fs,1)) !important;
    background: var(--bd-bg-section) !important;
    border-bottom: 1px solid var(--bd-border) !important;
    white-space: normal !important; overflow-wrap: break-word !important;
  }
  .benedoc-main .bd-benefit-table[data-cols="9"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table[data-cols="10"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table[data-cols="11"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table[data-cols="12"] td.bd-table-cell {
    display: flex !important;
    flex-direction: column !important;   /* label on top, value below */
    align-items: flex-start !important;
    padding: 5px 12px !important; font-size:calc(.78rem * var(--bd-fs,1)) !important;
    border-top: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important; border-bottom: none !important;
    white-space: normal !important; overflow-wrap: break-word !important; word-break: normal !important;
  }
  .benedoc-main .bd-benefit-table[data-cols="9"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-cols="10"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-cols="11"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table[data-cols="12"] td.bd-table-cell::before {
    content: attr(data-label);
    display: block !important;                /* label stacks ABOVE value — matches T6b/T7-card */
    font-size:calc(.64rem * var(--bd-fs,1)) !important; font-weight: 600 !important;
    color: var(--bd-text-muted) !important; text-transform: uppercase !important;
    letter-spacing: .04em !important; margin-bottom: 2px !important;
  }
  .benedoc-main .bd-benefit-table[data-cols="9"] td.bd-table-cell:nth-child(even),
  .benedoc-main .bd-benefit-table[data-cols="10"] td.bd-table-cell:nth-child(even),
  .benedoc-main .bd-benefit-table[data-cols="11"] td.bd-table-cell:nth-child(even),
  .benedoc-main .bd-benefit-table[data-cols="12"] td.bd-table-cell:nth-child(even) { border-right: none !important; }

  /* ──────────────────────────────────────────────────────────────────────────
     T10 — bd-hc-table (health comparison, complex headers)
     Strategy: grid layout, 2 columns per row. Plan label spans full width.
     Do NOT apply resolveRowspans to this table.
     ────────────────────────────────────────────────────────────────────────── */
  .benedoc-main .bd-hc-scroll   { overflow-x: hidden !important; overflow-y: visible !important; }
  .benedoc-main .bd-hc-table    { font-size:calc(.74rem * var(--bd-fs,1)) !important; width: 100% !important; min-width: 0 !important; }
  .benedoc-main .bd-hc-table    { display: block !important; }
  .benedoc-main .bd-hc-table thead { display: none !important; }
  .benedoc-main .bd-hc-table tbody { display: block !important; }
  .benedoc-main .bd-hc-row {
    display: grid !important; grid-template-columns: 1fr 1fr !important;
    border-bottom: 1px solid var(--bd-border) !important;
  }
  .benedoc-main .bd-hc-td-label {
    grid-column: 1 / -1 !important;
    background: var(--bd-bg-section) !important;
    font-weight: 600 !important;
    font-size:calc(.72rem * var(--bd-fs,1)) !important;
    padding: 4px 10px !important;    /* reduced from 7px 12px */
    border-right: none !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    color: var(--bd-text-muted) !important;
  }
  .benedoc-main .bd-hc-td-val {
    border-left: none !important;
    border-top: 1px solid var(--bd-border) !important;
    padding: 5px 8px !important;     /* tighter than 8px 10px */
    text-align: center !important;
    font-size:calc(.74rem * var(--bd-fs,1)) !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
  }

  /* ──────────────────────────────────────────────────────────────────────────
     T11 — bd-compare-table (plan comparison fallback)
     Strategy: card-per-row. First td = row label (benefit name).
     Subsequent tds = plan value columns with data-label for plan name.
     ────────────────────────────────────────────────────────────────────────── */
  .benedoc-main .bd-compare { overflow: visible !important; }
  .benedoc-main .bd-compare-scroll { overflow: visible !important; }
  .benedoc-main .bd-compare-table {
    display: block !important; width: 100% !important; table-layout: auto !important;
  }
  .benedoc-main .bd-compare-table thead { display: none !important; }
  .benedoc-main .bd-compare-table tbody { display: block !important; }
  .benedoc-main .bd-compare-table tbody tr {
    display: block !important;
    border: 1px solid var(--bd-border) !important; border-radius: 8px !important;
    margin: 8px 0 !important; overflow: hidden !important;
    background: var(--bd-bg, #fff) !important;
  }
  .benedoc-main .bd-compare-table tbody td {
    display: flex !important;
    flex-direction: column !important;   /* plan label on top, value below */
    align-items: flex-start !important;
    padding: 7px 12px !important; font-size:calc(.8rem * var(--bd-fs,1)) !important;
    border-top: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important; border-bottom: none !important;
    white-space: normal !important; overflow-wrap: break-word !important; word-break: normal !important;
  }
  .benedoc-main .bd-compare-table tbody td.bd-cmp-lbl {
    font-weight: 700 !important; background: var(--bd-bg-section) !important;
    border-top: 0 !important; border-right: none !important;
    font-size:calc(.78rem * var(--bd-fs,1)) !important; justify-content: flex-start !important;
    min-width: 0 !important;
  }
  .benedoc-main .bd-compare-table tbody td::before {
    content: attr(data-label);
    font-size:calc(.66rem * var(--bd-fs,1)) !important; font-weight: 600 !important;
    color: var(--bd-text-muted) !important; text-transform: uppercase !important;
    letter-spacing: .04em !important; margin-right: 8px !important; flex-shrink: 0 !important;
  }
  .benedoc-main .bd-compare-table tbody td.bd-cmp-lbl::before { content: none !important; }

  /* ──────────────────────────────────────────────────────────────────────────
     comparison_table — mobile card layout
     Each feature row becomes a card: feature title + one row per column value.
     No horizontal scrolling. Works for 2–4 columns.
     ────────────────────────────────────────────────────────────────────────── */
  .benedoc-main .bd-ct-table {
    display: block !important;
    width: 100% !important;
    border: 0 !important; border-radius: 0 !important; overflow: visible !important;
  }
  .benedoc-main .bd-ct-table thead { display: none !important; }
  .benedoc-main .bd-ct-table tbody { display: block !important; }

  /* Highlight separator */
  .benedoc-main .bd-ct-highlight-header { display: block !important; }
  .benedoc-main .bd-ct-highlight-header td {
    display: block !important; border-radius: 0 !important;
    padding: 4px 10px !important; margin: 8px 0 2px !important;
  }

  /* Regular rows: card */
  .benedoc-main .bd-ct-row {
    display: block !important;
    border: 1px solid var(--bd-border) !important; border-radius: 6px !important;
    margin: 6px 0 !important; overflow: hidden !important;
    background: var(--bd-bg, #fff) !important;
  }
  /* Feature cell: card header */
  .benedoc-main .bd-ct-row .bd-ct-feature {
    display: block !important; width: 100% !important;
    padding: 7px 10px !important; font-size:calc(.8rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    background: var(--bd-bg-section) !important;
    border-bottom: 1px solid var(--bd-border) !important;
  }
  /* Value cells: stacked, label tag above value */
  .benedoc-main .bd-ct-row .bd-ct-value {
    display: flex !important; flex-direction: column !important;
    padding: 5px 10px !important; font-size:calc(.78rem * var(--bd-fs,1)) !important;
    border-top: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important; border-bottom: none !important;
    white-space: normal !important; overflow-wrap: break-word !important;
  }
  .benedoc-main .bd-ct-row .bd-ct-value:first-of-type { border-top: 0 !important; }
  /* Column name from data-label */
  .benedoc-main .bd-ct-row .bd-ct-value::before {
    content: attr(data-label);
    display: block !important; font-size:calc(.62rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    color: var(--bd-text-muted) !important; text-transform: uppercase !important;
    letter-spacing: .04em !important; margin-bottom: 1px !important;
  }
  /* Highlight rows: same card but accent color */
  .benedoc-main .bd-ct-highlight-row {
    display: block !important;
    border: 1px solid var(--bd-primary, #1d4ed8) !important; border-radius: 6px !important;
    margin: 4px 0 !important; overflow: hidden !important;
    background: var(--bd-accent-light, #eff6ff) !important;
  }
  .benedoc-main .bd-ct-highlight-row .bd-ct-highlight-feature {
    display: block !important; padding: 7px 10px !important; font-size:calc(.8rem * var(--bd-fs,1)) !important;
    background: var(--bd-primary, #1d4ed8) !important;
    color: var(--bd-table-header-text, #fff) !important;
    border-bottom: 1px solid rgba(255,255,255,.2) !important;
  }
  .benedoc-main .bd-ct-highlight-row .bd-ct-highlight-value {
    display: flex !important; flex-direction: column !important;
    padding: 5px 10px !important; font-size:calc(.78rem * var(--bd-fs,1)) !important;
    border-top: 1px solid rgba(0,0,0,.08) !important;
  }
  .benedoc-main .bd-ct-highlight-row .bd-ct-highlight-value::before {
    content: attr(data-label);
    display: block !important; font-size:calc(.62rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    color: var(--bd-primary, #1d4ed8) !important; text-transform: uppercase !important;
    letter-spacing: .04em !important; margin-bottom: 1px !important;
  }

  /* T12 — bd-addl-table (supplemental life / AD&D coverage table)
     Strategy: same card pattern as compare-table.
     ────────────────────────────────────────────────────────────────────────── */
  .benedoc-main .bd-addl-table-wrap { overflow: visible !important; }
  .benedoc-main .bd-addl-table { display: block !important; width: 100% !important; }
  .benedoc-main .bd-addl-table thead { display: none !important; }
  .benedoc-main .bd-addl-table tbody { display: block !important; }
  .benedoc-main .bd-addl-table tbody tr {
    display: block !important;
    border: 1px solid var(--bd-border) !important; border-radius: 8px !important;
    margin: 8px 0 !important; overflow: hidden !important;
    background: var(--bd-bg, #fff) !important;
  }
  .benedoc-main .bd-addl-table tbody td {
    display: flex !important;
    flex-direction: column !important;   /* column label on top, value below */
    align-items: flex-start !important;
    padding: 7px 12px !important; font-size:calc(.8rem * var(--bd-fs,1)) !important;
    border-top: 1px solid var(--bd-border) !important;
    border-left: none !important; border-right: none !important; border-bottom: none !important;
    white-space: normal !important; overflow-wrap: break-word !important; word-break: normal !important;
  }
  .benedoc-main .bd-addl-table tbody td:first-child {
    font-weight: 700 !important; background: var(--bd-bg-section) !important;
    border-top: 0 !important; justify-content: flex-start !important;
  }
  .benedoc-main .bd-addl-table tbody td::before {
    content: attr(data-label);
    font-size:calc(.66rem * var(--bd-fs,1)) !important; font-weight: 600 !important;
    color: var(--bd-text-muted) !important; text-transform: uppercase !important;
    letter-spacing: .04em !important; margin-right: 8px !important; flex-shrink: 0 !important;
  }
  .benedoc-main .bd-addl-table tbody td:first-child::before { content: none !important; }

  /* ──────────────────────────────────────────────────────────────────────────
     T13 — bd-agepivot-table (age-banded rates)
     Strategy: intentional horizontal scroll. This is the ONLY table with
     overflow-x:auto — it has 10-15 amount columns that cannot be card-ified
     without losing the age-band/amount cross-reference meaning.
     ────────────────────────────────────────────────────────────────────────── */
  .benedoc-main .bd-agepivot-desktop { display: none !important; }
  .benedoc-main .bd-agepivot-desktop,.benedoc-main .bd-agepivot-desktop table,
  .benedoc-main .bd-agepivot-desktop thead,.benedoc-main .bd-agepivot-desktop tbody,
  .benedoc-main .bd-agepivot-desktop tr,.benedoc-main .bd-agepivot-desktop td,
  .benedoc-main .bd-agepivot-desktop th { display: none !important; }
  .benedoc-main .bd-agepivot-mobile { display: block !important; }

  /* ── Other mobile layout ─────────────────────────────────────────────────── */
  .benedoc-main .bd-single { overflow: visible !important; }
  .benedoc-main .bd-info-card { padding: 16px 14px !important; }
  .benedoc-main .bd-ls-item {
    display: flex !important; flex-direction: row !important;
    align-items: center !important; justify-content: space-between !important;
    flex-wrap: nowrap !important; gap: 8px !important; padding: 8px 10px !important;
  }
  .benedoc-main .bd-ls-name {
    flex: 1 1 0 !important; min-width: 0 !important;
    font-size:calc(.78rem * var(--bd-fs,1)) !important; white-space: normal !important;
  }
  .benedoc-main .bd-ls-pay {
    flex-shrink: 0 !important; white-space: nowrap !important;
    font-size:calc(.72rem * var(--bd-fs,1)) !important; font-weight: 700 !important;
    color: var(--bd-accent) !important;
    background: var(--bd-accent-light, #eff6ff) !important;
    border: 1px solid var(--bd-border, #e5e7eb) !important;
    border-radius: 20px !important; padding: 2px 9px !important; max-width: 48% !important;
  }

  /* ── CANCER COMPARE — stack tiers vertically ─────────────────────────── */
  .benedoc-main .bd-cancer-compare { overflow:visible!important }
  .benedoc-main .bd-cc-head {
    display:none!important
  }
  .benedoc-main .bd-cc-row {
    display:flex!important;
    flex-direction:column!important;
    padding:0!important;
    border-bottom:1px solid var(--bd-border)!important
  }
  .benedoc-main .bd-cc-label {
    padding:10px 14px 6px!important;
    font-weight:600!important;
    font-size:calc(.82rem * var(--bd-fs,1))!important;
    border-bottom:none!important
  }
  .benedoc-main .bd-cc-val {
    padding:4px 14px 10px!important;
    font-size:calc(.8rem * var(--bd-fs,1))!important;
    border-top:none!important
  }
  .benedoc-main .bd-cc-val::before {
    content:attr(data-tier);
    display:inline-block;
    font-size:calc(.68rem * var(--bd-fs,1));font-weight:700;
    text-transform:uppercase;letter-spacing:.05em;
    color:var(--bd-text-muted);margin-right:6px
  }
  .benedoc-main .bd-cc-section-label { padding:10px 14px!important;font-size:calc(.75rem * var(--bd-fs,1))!important }

  /* ── ACCIDENT TABLE — already flex-based, just tighten ───────────────── */
  .benedoc-main .bd-accident-wrap  { margin:12px 0 }
  .benedoc-main .bd-accident-table-head,
  .benedoc-main .bd-accident-row   { padding:8px 12px!important;font-size:calc(.8rem * var(--bd-fs,1))!important }
  .benedoc-main .bd-accident-section-label { font-size:calc(.72rem * var(--bd-fs,1))!important }

  /* ── VISION DETAIL TABLE — reduce cols ───────────────────────────────── */
  .benedoc-main .bd-vision-detail-head,
  .benedoc-main .bd-vision-detail-row {
    grid-template-columns:1.6fr 1fr!important;
    font-size:calc(.78rem * var(--bd-fs,1))!important;
    padding:8px 12px!important
  }
  .benedoc-main .bd-vision-detail-oon { display:none!important }

  /* ── STD/LTD — already flex/grid, just collapse ──────────────────────── */
  .benedoc-main .bd-std-row {
    grid-template-columns:1fr!important;gap:3px!important
  }
  .benedoc-main .bd-std-term {
    font-size:calc(.72rem * var(--bd-fs,1))!important;color:var(--bd-text-muted)!important;
    text-transform:uppercase!important;letter-spacing:.04em!important
  }
  .benedoc-main .bd-std-def-grid { grid-template-columns:1fr 1fr!important }
  .benedoc-main .bd-rate-block--with-kn { flex-direction:column!important }
  .benedoc-main .bd-rate-kn-col { flex-direction:row!important;flex-wrap:wrap!important }
  .benedoc-main .bd-rate-kn-item { flex:1 1 calc(50% - 8px)!important }

  /* ── AGE PIVOT — hide full table, show interactive card ──────────────── */
  .benedoc-main .bd-agepivot-desktop,
  .benedoc-main .bd-agepivot-desktop table,
  .benedoc-main .bd-agepivot-desktop thead,
  .benedoc-main .bd-agepivot-desktop tbody,
  .benedoc-main .bd-agepivot-desktop tr,
  .benedoc-main .bd-agepivot-desktop td,
  .benedoc-main .bd-agepivot-desktop th { display:none!important }
  .benedoc-main .bd-agepivot-mobile    { display:block!important }
  .benedoc-main .bd-agepivot           { padding:16px 14px 12px!important }
  .benedoc-main .bd-agepivot-top       { flex-direction:column!important;align-items:stretch!important;gap:8px!important;margin-bottom:14px!important }
  .benedoc-main .bd-agepivot-top label { font-size:calc(.82rem * var(--bd-fs,1))!important;font-weight:700!important }
  .benedoc-main .bd-agepivot-top input { width:100%!important;font-size:calc(1.1rem * var(--bd-fs,1))!important;padding:11px 16px!important;border-radius:10px!important;border:2px solid var(--bd-border)!important;text-align:center!important }
  .benedoc-main .bd-agepivot-top input:focus { border-color:var(--bd-accent)!important;box-shadow:0 0 0 3px var(--bd-accent-light,rgba(47,107,255,.12))!important }
  .benedoc-main .bd-agepivot-amount-select { width:100%!important }
  .benedoc-main .bd-agepivot-mobile-prompt { text-align:center;font-size:calc(.82rem * var(--bd-fs,1));color:var(--bd-text-muted);padding:14px 12px 6px;line-height:1.5 }
  .benedoc-main .bd-agepivot-mobile-age-lbl { font-size:calc(.7rem * var(--bd-fs,1));font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--bd-text-muted);margin-bottom:10px }
  .benedoc-main .bd-agepivot-mobile-cards   { display:grid;grid-template-columns:repeat(2,1fr);gap:8px }
  .benedoc-main .bd-agepivot-card { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:14px 10px 12px;background:var(--bd-bg,#fff);border:1px solid var(--bd-border);border-radius:10px;text-align:center }
  .benedoc-main .bd-agepivot-card-name  { font-size:calc(.68rem * var(--bd-fs,1));font-weight:700;color:var(--bd-text-muted);line-height:1.3;min-height:2.2em;display:flex;align-items:center;justify-content:center }
  .benedoc-main .bd-agepivot-card-price { font-size:calc(1.2rem * var(--bd-fs,1));font-weight:800;color:var(--bd-text);line-height:1 }
  .benedoc-main .bd-agepivot-card-mo    { font-size:calc(.64rem * var(--bd-fs,1));font-weight:400;color:var(--bd-text-muted);margin-left:1px }

  /* ── RATE CARDS ───────────────────────────────────────────────────────── */
  .benedoc-main .bd-rate-cards { grid-template-columns:repeat(2,1fr)!important;gap:8px!important;padding:12px!important }
  .benedoc-main .bd-rate-card  { padding:14px 8px 12px!important;gap:4px!important }
  .benedoc-main .bd-rate-name  { font-size:calc(.68rem * var(--bd-fs,1))!important }
  .benedoc-main .bd-rate-price { font-size:calc(1.2rem * var(--bd-fs,1))!important }

  /* ── CONDITIONS LIST ─────────────────────────────────────────────────── */
  .benedoc-main .bd-info-card { padding:16px 14px!important }
  .benedoc-main .bd-ls-item   { display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;flex-wrap:nowrap!important;gap:8px!important;padding:7px 10px!important }
  .benedoc-main .bd-ls-name   { flex:1 1 0!important;min-width:0!important;font-size:calc(.78rem * var(--bd-fs,1))!important;white-space:normal!important }
  .benedoc-main .bd-ls-pay    { flex-shrink:0!important;white-space:nowrap!important;font-size:calc(.7rem * var(--bd-fs,1))!important;font-weight:700!important;color:var(--bd-accent)!important;background:var(--bd-accent-light,#eff6ff)!important;border:1px solid var(--bd-border,#e5e7eb)!important;border-radius:20px!important;padding:2px 9px!important }

  /* ── TOBACCO TOGGLE ──────────────────────────────────────────────────── */
  .benedoc-main .bd-tobacco-header  { gap:8px }
  .benedoc-main .bd-tobacco-group-name { font-size:calc(.75rem * var(--bd-fs,1)) }
  .benedoc-main .bd-tobacco-btn     { padding:5px 11px;font-size:calc(.75rem * var(--bd-fs,1)) }
  .benedoc-main .bd-agepivot-amount-row { gap:8px }

    /* compare-table mobile handled in T11 block above */
  /* ── Elementor specificity ───────────────────────────────────────────── */
  .elementor-widget-theme-post-content .benedoc-main .bd-rate-block,
  .elementor-section .benedoc-main .bd-rate-block,
  .e-con .benedoc-main .bd-rate-block { overflow:visible!important }
  .elementor-widget-theme-post-content .benedoc-main .bd-table-wrap,
  .elementor-section .benedoc-main .bd-table-wrap,
  .e-con .benedoc-main .bd-table-wrap { overflow-x:auto!important; overflow-y:hidden!important; -webkit-overflow-scrolling:touch; } /* v3.8.3 — red de seguridad, ver nota en la línea ~2586 */
  .elementor-widget-theme-post-content .benedoc-main .bd-table-scroll,
  .elementor-section .benedoc-main .bd-table-scroll,
  .e-con .benedoc-main .bd-table-scroll { overflow:visible!important;display:block!important;width:100%!important;max-width:100%!important }
  .elementor-widget-theme-post-content .benedoc-main .bd-agepivot-desktop,
  .elementor-section .benedoc-main .bd-agepivot-desktop,
  .e-con .benedoc-main .bd-agepivot-desktop { display:none!important }
  .elementor-widget-theme-post-content .benedoc-main .bd-agepivot-mobile,
  .elementor-section .benedoc-main .bd-agepivot-mobile,
  .e-con .benedoc-main .bd-agepivot-mobile { display:block!important }

}

@media screen and (max-width:480px) {
  /* Very narrow — collapse rate cards and age pivot cards to single column */
  .benedoc-main .bd-rate-cards { grid-template-columns:1fr!important }
  .benedoc-main .bd-agepivot-mobile-cards { grid-template-columns:1fr!important }
  .benedoc-main .bd-agepivot-card {
    flex-direction:row!important;justify-content:space-between!important;
    padding:11px 16px!important
  }
  .benedoc-main .bd-agepivot-card-name  { min-height:unset!important;text-align:left!important }
  .benedoc-main .bd-keynums { grid-template-columns:1fr!important }
  .benedoc-main .bd-std-def-grid { grid-template-columns:1fr!important }
}



/* ═══ END RESPONSIVE SYSTEM ═════════════════════════════════════════════ */

/* ── TOBACCO TOGGLE ──────────────────────────────────────────────────── */
.benedoc-main .bd-tobacco-group {
  margin-bottom: 24px;
}
.benedoc-main .bd-tobacco-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.benedoc-main .bd-tobacco-group-name {
  font-size:calc(.8rem * var(--bd-fs,1));
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--bd-text-muted);
}
/* ── Rate-per-$1,000 life insurance widget ─────────────────── */
.benedoc-main .bd-rpk-wrap {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px;
    background: var(--bd-bg-section);
    border: 1px solid var(--bd-border);
    border-radius: var(--bd-radius);
    margin-top: 8px;
}
.benedoc-main .bd-rpk-selector {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.benedoc-main .bd-rpk-label,
.benedoc-main .bd-rpk-age-label {
    font-size:calc(.72rem * var(--bd-fs,1));
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--bd-text-muted);
}
.benedoc-main .bd-rpk-select {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--bd-border);
    border-radius: var(--bd-radius);
    background: var(--bd-bg, #fff);
    font-size:calc(.9rem * var(--bd-fs,1));
    font-weight: 600;
    color: var(--bd-text);
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 36px;
}
.benedoc-main .bd-rpk-result {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    align-items: end;
}
.benedoc-main .bd-rpk-price-wrap {
    display: flex;
    align-items: baseline;
    gap: 4px;
    background: var(--bd-bg, #fff);
    border: 1px solid var(--bd-border);
    border-radius: var(--bd-radius);
    padding: 12px 16px;
}
.benedoc-main .bd-rpk-price {
    font-size:calc(1.6rem * var(--bd-fs,1));
    font-weight: 800;
    color: var(--bd-text);
    line-height: 1;
}
.benedoc-main .bd-rpk-freq {
    font-size:calc(.75rem * var(--bd-fs,1));
    color: var(--bd-text-muted);
    font-weight: 500;
}
.benedoc-main .bd-rpk-age-wrap {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.benedoc-main .bd-rpk-age-input {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--bd-border);
    border-radius: var(--bd-radius);
    font-size:calc(.9rem * var(--bd-fs,1));
    font-weight: 600;
    color: var(--bd-text);
    background: var(--bd-bg, #fff);
}
.benedoc-main .bd-rpk-age-input:focus {
    outline: 2px solid var(--bd-primary);
    outline-offset: 1px;
    border-color: var(--bd-primary);
}
.benedoc-main .bd-rpk-hint {
    grid-column: 1 / -1;
    font-size:calc(.72rem * var(--bd-fs,1));
    color: var(--bd-text-muted);
    margin: 0;
}
@media screen and (max-width: 480px) {
    .benedoc-main .bd-rpk-result { grid-template-columns: 1fr; }
}

.benedoc-main .bd-tobacco-toggle {
  display: flex;
  gap: 0;
  border: 1.5px solid var(--bd-border);
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
}
.benedoc-main .bd-tobacco-btn {
  background: transparent;
  border: none;
  padding: 6px 14px;
  font-size:calc(.8rem * var(--bd-fs,1));
  font-weight: 600;
  color: var(--bd-text-muted);
  cursor: pointer;
  transition: background .15s, color .15s;
  line-height: 1.4;
}
.benedoc-main .bd-tobacco-btn + .bd-tobacco-btn {
  border-left: 1.5px solid var(--bd-border);
}
.benedoc-main .bd-tobacco-btn--active {
  background: var(--bd-primary, #01164F);
  color: #fff;
}
.benedoc-main .bd-tobacco-btn:not(.bd-tobacco-btn--active):hover {
  background: var(--bd-bg-section);
}

/* ── BENEFIT AMOUNT SELECTOR (CI age pivot) ──────────────────────────── */
.benedoc-main .bd-agepivot-amount-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.benedoc-main .bd-agepivot-amount-label {
  font-size:calc(.82rem * var(--bd-fs,1));
  font-weight: 700;
  color: var(--bd-text-muted);
  white-space: nowrap;
}
.benedoc-main .bd-agepivot-amount-select {
  padding: 7px 12px;
  border: 1.5px solid var(--bd-border);
  border-radius: 8px;
  font-size:calc(.9rem * var(--bd-fs,1));
  font-weight: 600;
  color: var(--bd-text);
  background: var(--bd-bg);
  cursor: pointer;
  min-width: 120px;
}
.benedoc-main .bd-agepivot-amount-select:focus {
  outline: none;
  border-color: var(--bd-accent);
  box-shadow: 0 0 0 3px var(--bd-accent-light, rgba(47,107,255,.12));
}

/* ── SINGLE-CARD mobile result (CI benefit-amount mode) ──────────────── */
.benedoc-main .bd-agepivot-card--single {
  grid-column: 1 / -1;
  flex-direction: row !important;
  justify-content: space-between !important;
  padding: 16px 20px !important;
}
.benedoc-main .bd-agepivot-card--single .bd-agepivot-card-name {
  font-size:calc(.85rem * var(--bd-fs,1)) !important;
  min-height: unset !important;
  text-align: left !important;
}
.benedoc-main .bd-agepivot-card--single .bd-agepivot-card-price {
  font-size:calc(1.5rem * var(--bd-fs,1)) !important;
}

/* Mobile adjustments for tobacco toggle + amount selector */
@media screen and (max-width: 768px) {
  .benedoc-main .bd-tobacco-header   { gap: 8px; }
  .benedoc-main .bd-tobacco-group-name { font-size:calc(.75rem * var(--bd-fs,1)); }
  .benedoc-main .bd-tobacco-btn      { padding: 5px 11px; font-size:calc(.75rem * var(--bd-fs,1)); }
  .benedoc-main .bd-agepivot-amount-row  { gap: 8px; }
  .benedoc-main .bd-agepivot-amount-select { width: 100%; }
}


/* ========================================================================
   QA PATCH v3.2.2 — Contrast, JPS dark mode, cards, and HSA/FSA tables
   ------------------------------------------------------------------------
   Targets QA notes in Javier Uplift.pdf:
   - JPS tiles alignment and incorrect tile colors
   - Video banner text not readable on light/low-contrast themes
   - Dark mode cards staying white or inheriting inverted colors incorrectly
   - HSA/FSA table rows becoming white-on-white / inconsistent font weight
   - Excess vertical gaps between FSA/HSA content cards
   ======================================================================== */

/* Archive / guide cards: equal tile heights and theme-correct colors. */
.benedoc-main .bd-archive .bd-plans-grid {
  align-items: stretch;
}
.benedoc-main .bd-archive .bd-plan-card {
  height: 100%;
  min-height: 190px;
  background: var(--bd-archive-card-bg, var(--bd-single-card-bg, var(--bd-card-bg, #ffffff))) !important;
  color: var(--bd-text, #0f172a) !important;
  border-color: var(--bd-archive-border) !important;
}
.benedoc-main .bd-archive .bd-plan-card-title,
.benedoc-main .bd-archive .bd-plan-card-provider,
.benedoc-main .bd-archive .bd-plan-card-desc,
.benedoc-main .bd-archive .bd-plan-card-price {
  color: inherit;
}
.benedoc-main .bd-archive .bd-plan-card-title {
  color: var(--bd-archive-card-title, var(--bd-text, #0f172a)) !important;
}
.benedoc-main .bd-archive .bd-plan-card-provider,
.benedoc-main .bd-archive .bd-plan-card-desc,
.benedoc-main .bd-archive .bd-plan-card-price {
  color: var(--bd-archive-card-desc, var(--bd-text-muted, #64748b)) !important;
}

/* Video banner: keep header legible even when a customer theme uses pale colors. */
.benedoc-main .bd-video-banner {
  background: var(--bd-single-card-bg, var(--bd-card-bg, #ffffff)) !important;
  color: var(--bd-text, #0f172a) !important;
}
.benedoc-main .bd-vb-header,
.benedoc-main .bd-video-banner--single .bd-vb-actions {
  background: var(--bd-video-header-bg, var(--bd-table-header, #1d4ed8)) !important;
  color: var(--bd-video-header-text, var(--bd-table-header-text, #ffffff)) !important;
}
.benedoc-main .bd-vb-title,
.benedoc-main .bd-vb-icon {
  color: var(--bd-video-header-text, var(--bd-table-header-text, #ffffff)) !important;
  -webkit-text-fill-color: var(--bd-video-header-text, var(--bd-table-header-text, #ffffff)) !important;
}
.benedoc-main .bd-vb-sub {
  /* v3.8.2 — antes usaba --bd-video-subtext, una variable que ni CTM ni
     BeneDocuments definen en ningún sitio; siempre caía al respaldo fijo
     rgba(255,255,255,.82) y nunca seguía al color de marca. Ahora usa la
     misma cadena que .bd-vb-title, así que "Watch a quick overview..."
     sigue el mismo color que "Corporate Discounts video". */
  color: var(--bd-video-header-text, var(--bd-table-header-text, #ffffff)) !important;
  -webkit-text-fill-color: var(--bd-video-header-text, var(--bd-table-header-text, #ffffff)) !important;
}
.benedoc-main .bd-video-banner--multi .bd-vb-actions {
  background: var(--bd-single-card-bg, var(--bd-card-bg, #ffffff)) !important;
}
.benedoc-main .bd-vb-btn--ghost {
  color: var(--bd-text, #0f172a) !important;
  border-color: var(--bd-border, #dbe4f0) !important;
  background: transparent !important;
}

/* Tables: stabilize text color/weight so HSA/FSA and JPS do not flip contrast. */
.benedoc-main .bd-table-wrap,
.benedoc-main .bd-benefit-table,
.benedoc-main .bd-dental-table,
.benedoc-main .bd-compare-table,
.benedoc-main .bd-addl-table {
  background: var(--bd-single-card-bg, var(--bd-card-bg, #ffffff)) !important;
  color: var(--bd-text, #0f172a) !important;
}
.benedoc-main .bd-benefit-table tbody td,
.benedoc-main .bd-benefit-table tbody td.bd-table-label,
.benedoc-main .bd-benefit-table td.bd-table-cell,
.benedoc-main .bd-benefit-table td.bd-table-cell-secondary,
.benedoc-main .bd-dental-table tbody td,
.benedoc-main .bd-dental-table td,
.benedoc-main .bd-compare-table tbody td,
.benedoc-main .bd-addl-table tbody td {
  color: var(--bd-table-body-text, var(--bd-text, #0f172a)) !important;
  -webkit-text-fill-color: var(--bd-table-body-text, var(--bd-text, #0f172a)) !important;
}
.benedoc-main .bd-table-note,
.benedoc-main .bd-benefit-table em,
.benedoc-main .bd-dental-table em,
.benedoc-main .bd-compare-table em {
  color: var(--bd-table-note-text, var(--bd-text-muted, #64748b)) !important;
  -webkit-text-fill-color: var(--bd-table-note-text, var(--bd-text-muted, #64748b)) !important;
}
.benedoc-main .bd-benefit-table thead th,
.benedoc-main .bd-dental-table thead th,
.benedoc-main .bd-compare-table thead th,
.benedoc-main .bd-addl-table thead th {
  background: var(--bd-plan-header-bg, var(--bd-table-header, #1f5f9f)) !important;
  color: var(--bd-plan-header-text, var(--bd-table-header-text, #ffffff)) !important;
  -webkit-text-fill-color: var(--bd-plan-header-text, var(--bd-table-header-text, #ffffff)) !important;
}
.benedoc-main .bd-benefit-table tbody tr.bd-table-group-row td,
.benedoc-main .bd-dental-table tbody tr.bd-table-group-row td,
.benedoc-main .bd-table-group-row td {
  background: var(--bd-table-group-bg, var(--bd-bg-section, #f1f5f9)) !important;
  color: var(--bd-table-group-text, var(--bd-text, #0f172a)) !important;
  -webkit-text-fill-color: var(--bd-table-group-text, var(--bd-text, #0f172a)) !important;
}

/* FSA/HSA comparison blocks: reduce large white gaps without crushing content. */
.benedoc-main .bd-single > * + .bd-info-card,
.benedoc-main .bd-single > * + .bd-rate-block,
.benedoc-main .bd-single > * + .bd-table-wrap {
  margin-top: 0 !important;
}
/* v3.4.2 — el gap del flex .bd-single (20px) ya separa estos bloques.
   El margin-top de 14px se SUMABA al gap (los márgenes no colapsan en flex),
   produciendo huecos de ~96px entre tarjetas junto con el padding de 24px.
   Se pone a 0 y el espaciado queda gobernado por un solo mecanismo: el gap. */
.benedoc-main .bd-info-card + .bd-info-card,
.benedoc-main .bd-rate-block + .bd-rate-block,
.benedoc-main .bd-table-wrap + .bd-table-wrap {
  margin-top: 0 !important;
}

/* v3.4.2 — padding interno de las ghost cards: 24px → 16/20px.
   Reduce el hueco entre el último renglón de una tarjeta y el título
   de la siguiente sin comprimir el contenido. */
.benedoc-main .bd-info-card--ghost { padding: 16px 20px; }

/* v3.4.3 — la prosa ocupa todo el ancho del contenedor.
   --bd-prose-max es la perilla: 'none' (default) = llenar; ponerle un valor
   como 90ch vuelve a limitar la longitud de línea sin tocar nada más. */
.benedoc-main .bd-info-card--ghost .bd-rich-list,
.benedoc-main .bd-info-card--ghost > p,
.benedoc-main .bd-tb-body,
.benedoc-main .bd-tb-text,
.benedoc-main .bd-info-section-desc { max-width: var(--bd-prose-max, none); }

/* v3.4.3 — cuerpo de los text_block. Antes venía como style="font-size:14px"
   inline desde el PHP, lo que anulaba --bd-fs por completo: ese párrafo era el
   único que NO respondía al slider. .875rem = 14px exactos con --bd-fs:1, así
   que el aspecto por defecto no cambia, pero ahora sí escala. */
.benedoc-main .bd-tb-body {
  font-size:calc(.875rem * var(--bd-fs,1));
  line-height:1.7;
  color:inherit;
  margin:0;
}

/* Mobile card tables: labels and values must stay visible in all themes. */
@media screen and (max-width:768px) {
  .benedoc-main .bd-benefit-table[data-cols="4"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="5"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="6"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="7"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="8"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="9"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="10"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="11"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table[data-cols="12"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table[data-cols="4"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table[data-cols="5"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table[data-cols="6"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table[data-cols="7"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-dental-table[data-cols="8"] tr:not(.bd-table-group-row) {
    background: var(--bd-single-card-bg, var(--bd-card-bg, #ffffff)) !important;
    color: var(--bd-text, #0f172a) !important;
  }
  .benedoc-main .bd-benefit-table td.bd-table-label,
  .benedoc-main .bd-dental-table td.bd-table-label {
    color: var(--bd-text, #0f172a) !important;
    -webkit-text-fill-color: var(--bd-text, #0f172a) !important;
  }
  .benedoc-main .bd-benefit-table td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table td.bd-table-cell-secondary::before,
  .benedoc-main .bd-dental-table td.bd-table-cell::before,
  .benedoc-main .bd-dental-table td.bd-table-cell-secondary::before {
    color: var(--bd-table-label-text, var(--bd-text-muted, #64748b)) !important;
    -webkit-text-fill-color: var(--bd-table-label-text, var(--bd-text-muted, #64748b)) !important;
  }
}

/* Dark mode safety: use dark surfaces, not white cards on colored backgrounds. */
/* ══════════════════════════════════════════════════════════════════════════
   LISTA DE SELECTORES DE MODO OSCURO  (v3.5.7)
   Debe coincidir con BeneDoc_Settings::dark_selectors(). Antes eran dos
   listas distintas que sólo compartían `body.dark .benedoc-main`: según cómo
   marcara el DOM el conmutador del tema se activaba una y no la otra, y el
   modo oscuro quedaba a medias. El síntoma visible era el hero con el fondo
   ya oscurecido y el texto todavía en navy: ilegible.
   ══════════════════════════════════════════════════════════════════════════ */
body.dark-mode .benedoc-main,
body.dark .benedoc-main,
body.bd-theme-dark .benedoc-main,
html.dark .benedoc-main,
html.dark-mode .benedoc-main,
.dark-mode .benedoc-main,
[data-theme="dark"] .benedoc-main,
[data-bs-theme="dark"] .benedoc-main,
.benedoc-main[data-theme="dark"],
.benedoc-main.bd-theme-dark {
  --bd-card-bg: var(--bd-dark-card-bg, #111827);
  --bd-single-card-bg: var(--bd-dark-card-bg, #111827);
  --bd-archive-card-bg: var(--bd-dark-card-bg, #111827);
  --bd-text: var(--bd-dark-text, #f8fafc);
  --bd-text-muted: var(--bd-dark-text-muted, #cbd5e1);
  --bd-border: var(--bd-dark-border, rgba(255,255,255,.18));
  --bd-bg-section: var(--bd-dark-section-bg, rgba(255,255,255,.08));
  --bd-table-row-alt: var(--bd-dark-row-alt, rgba(255,255,255,.06));
  --bd-table-service-bg: var(--bd-dark-card-bg, #111827);
  --bd-table-merged-bg: var(--bd-dark-section-bg, rgba(255,255,255,.08));

  /* v3.5.7 — el hero no estaba contemplado aquí. Sus colores salen de un
     único juego de ajustes (hero_text_color…), pensado para el modo claro,
     así que en oscuro el texto se quedaba navy sobre fondo azul. */
  --bd-hero-text:    var(--bd-dark-hero-text, #ffffff);
  --bd-hero-subtext: var(--bd-dark-hero-subtext, rgba(255,255,255,.82));
  --bd-hero-price:   var(--bd-dark-hero-price, #ffffff);
}
:is(body.dark-mode, body.dark, body.bd-theme-dark, html.dark, html.dark-mode,
    .dark-mode, [data-theme="dark"], [data-bs-theme="dark"]) .benedoc-main :is(.bd-info-card, .bd-rate-block, .bd-plan-card, .bd-table-wrap),
.benedoc-main:is([data-theme="dark"], .bd-theme-dark) :is(.bd-info-card, .bd-rate-block, .bd-plan-card, .bd-table-wrap) {
  background: var(--bd-single-card-bg, #111827) !important;
  color: var(--bd-text, #f8fafc) !important;
  border-color: var(--bd-border, rgba(255,255,255,.18)) !important;
}

/* v3.5.7 — fondo del hero en oscuro. Si CTM (o el ajuste) aporta un color
   propio se usa tal cual; si no, se superpone una capa oscura sobre el color
   de marca, de modo que CUALQUIER hero claro se oscurece lo suficiente para
   que el texto blanco contraste, sin tener que adivinar la paleta. */
:is(body.dark-mode, body.dark, body.bd-theme-dark, html.dark, html.dark-mode,
    .dark-mode, [data-theme="dark"], [data-bs-theme="dark"]) .benedoc-main .bd-hero,
.benedoc-main:is([data-theme="dark"], .bd-theme-dark) .bd-hero {
  position: relative;
}
/* Capa como ::after, no como background-image: si hero_type es "image" o
   "gradient", los ajustes emiten `background: url(...)` y sobrescribir
   background-image se habría comido la imagen del hero. El ::after va sobre
   el fondo y por debajo de .bd-hero-inner, que ya tiene z-index:1. */
:is(body.dark-mode, body.dark, body.bd-theme-dark, html.dark, html.dark-mode,
    .dark-mode, [data-theme="dark"], [data-bs-theme="dark"]) .benedoc-main .bd-hero::after,
.benedoc-main:is([data-theme="dark"], .bd-theme-dark) .bd-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  /* .68, no .45: con .45 el texto blanco sólo llegaba a 4.65:1 sobre el azul
     claro de este cliente y bajaba de 4.5:1 en heros blancos, verdes o
     naranjas. Con .68 cualquier color de marca supera 6.8:1 y el subtexto al
     82% se mantiene sobre 4.5:1. Ajustable con --bd-dark-hero-scrim. */
  background: var(--bd-dark-hero-scrim, rgba(6, 14, 32, .68));
}

/* El enlace de vuelta vive dentro del hero, pero usaba --bd-text-muted (el
   gris del cuerpo de página) en vez del color del hero. En claro salía gris
   sobre azul claro y en oscuro seguía oscuro. Ahora acompaña al título. */
.benedoc-main .bd-hero .bd-back,
.benedoc-main .bd-hero-inner .bd-back {
  color: var(--bd-hero-text, #fff) !important;
  opacity: .88;
}
.benedoc-main .bd-hero .bd-back:hover { opacity: 1; }

/* ========================================================================
   QA PATCH v3.2.3 - PDF pagination / Vision schedule stability
   ------------------------------------------------------------------------
   Targets QA notes in Javier Uplift.pdf:
   - Vision schedule loses / clips columns in PDF
   - PDF cuts through rows in Vision, Accident, Long Term, Critical Illness
   - Black / transparent bands appearing around PDF slices
   ======================================================================== */

/* Vision detail tables: keep out-of-network data visible when present. */
.benedoc-main .bd-vision-detail-table--has-oon .bd-vision-detail-head,
.benedoc-main .bd-vision-detail-table--has-oon .bd-vision-detail-row {
  grid-template-columns: 1.6fr 1fr 1fr !important;
}
.benedoc-main .bd-vision-detail-table--has-oon .bd-vision-detail-oon {
  display: block !important;
  color: var(--bd-text-muted, #475569) !important;
  -webkit-text-fill-color: var(--bd-text-muted, #475569) !important;
  font-weight: 600;
}

/* The PDF exporter adds bd-pdf-exporting to the cloned body. These rules are
   intentionally screen-safe, but only activate in the html2canvas clone. */
body.bd-pdf-exporting,
body.bd-pdf-exporting .benedoc-main {
  background: #ffffff !important;
  color: #111827 !important;
}
body.bd-pdf-exporting .bd-table-wrap,
body.bd-pdf-exporting .bd-vision-detail-table,
body.bd-pdf-exporting .bd-accident-table,
body.bd-pdf-exporting .bd-std-table,
body.bd-pdf-exporting .bd-hc-wrap,
body.bd-pdf-exporting .bd-hc-scroll {
  background: #ffffff !important;
  color: #111827 !important;
  box-shadow: none !important;
  overflow: visible !important;
}
body.bd-pdf-exporting table,
body.bd-pdf-exporting th,
body.bd-pdf-exporting td,
body.bd-pdf-exporting .bd-table-label,
body.bd-pdf-exporting .bd-table-cell,
body.bd-pdf-exporting .bd-table-cell-secondary,
body.bd-pdf-exporting .bd-vision-detail-service,
body.bd-pdf-exporting .bd-vision-detail-in,
body.bd-pdf-exporting .bd-vision-detail-oon,
body.bd-pdf-exporting .bd-accident-benefit,
body.bd-pdf-exporting .bd-accident-amount,
body.bd-pdf-exporting .bd-std-term,
body.bd-pdf-exporting .bd-std-def {
  color: var(--bd-plan-header-text, #111827) !important;
  -webkit-text-fill-color: var(--bd-plan-header-text, #111827) !important;
  background-color: var(--bd-plan-header-bg, #ffffff) !important;
}
body.bd-pdf-exporting thead th,
body.bd-pdf-exporting .bd-table-col-groups th,
body.bd-pdf-exporting .bd-table-subheader th,
body.bd-pdf-exporting .bd-vision-detail-head,
body.bd-pdf-exporting .bd-accident-table-head,
body.bd-pdf-exporting .bd-std-table-head {
  background: var(--bd-plan-header-bg, var(--bd-table-header, #1f5f9f)) !important;
  color: var(--bd-plan-header-text, #ffffff) !important;
  -webkit-text-fill-color: var(--bd-plan-header-text, #ffffff) !important;
}
body.bd-pdf-exporting .bd-table-group-row td,
body.bd-pdf-exporting .bd-accident-section-header,
body.bd-pdf-exporting .bd-accident-section-label,
body.bd-pdf-exporting .bd-hc-section-row td {
  background: #eef4fb !important;
  color: #111827 !important;
  -webkit-text-fill-color: #111827 !important;
}

@media screen and (max-width: 520px) {
  .benedoc-main .bd-vision-detail-table--has-oon .bd-vision-detail-head,
  .benedoc-main .bd-vision-detail-table--has-oon .bd-vision-detail-row {
    grid-template-columns: 1.35fr 1fr 1fr !important;
    font-size:calc(.72rem * var(--bd-fs,1)) !important;
  }
}

/* ========================================================================
   QA PATCH v3.2.3b - Real-table Vision markup
   ------------------------------------------------------------------------
   The Vision renderer now outputs <table>/<tr>/<td> so PDF pagination has
   reliable row boundaries. These overrides neutralize the old div/grid Vision
   CSS when those same classes appear on real table elements.
   ======================================================================== */

.benedoc-main .bd-vision-scroll {
  margin: 14px 0 4px;
}
.benedoc-main .bd-vision-table-wrap {
  overflow: hidden;
  border-radius: var(--bd-radius);
  border: 1px solid var(--bd-border, #dbe4f0);
  background: var(--bd-single-card-bg, var(--bd-card-bg, #ffffff));
}

.benedoc-main table.bd-vision-table,
.benedoc-main table.bd-vision-detail-table {
  display: table !important;
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  margin: 0;
  padding: 0;
  background: var(--bd-single-card-bg, var(--bd-card-bg, #ffffff));
  color: var(--bd-text, #0f172a);
}
.benedoc-main table.bd-vision-table thead,
.benedoc-main table.bd-vision-detail-table thead {
  display: table-header-group !important;
}
.benedoc-main table.bd-vision-table tbody,
.benedoc-main table.bd-vision-detail-table tbody {
  display: table-row-group !important;
}
.benedoc-main table.bd-vision-table tr,
.benedoc-main table.bd-vision-detail-table tr,
.benedoc-main table.bd-vision-detail-table tr.bd-vision-detail-head,
.benedoc-main table.bd-vision-detail-table tr.bd-vision-detail-row {
  display: table-row !important;
  grid-template-columns: none !important;
  padding: 0 !important;
  gap: 0 !important;
  border-bottom: none;
}
.benedoc-main table.bd-vision-table th,
.benedoc-main table.bd-vision-table td,
.benedoc-main table.bd-vision-detail-table th,
.benedoc-main table.bd-vision-detail-table td {
  display: table-cell !important;
  padding: 10px 12px;
  vertical-align: top;
  border-bottom: 1px solid var(--bd-bg-section, #eef2f7);
  color: var(--bd-plan-header-text, var(--bd-text, #0f172a));
  -webkit-text-fill-color: var(--bd-plan-header-text, currentColor);
  background: var(--bd-plan-header-bg, transparent);
}
.benedoc-main table.bd-vision-table tr:last-child td,
.benedoc-main table.bd-vision-detail-table tr:last-child td {
  border-bottom: none;
}
.benedoc-main table.bd-vision-detail-table th {
  background: var(--bd-plan-header-bg, var(--bd-table-header, #1f5f9f)) !important;
  color: var(--bd-plan-header-text, var(--bd-table-header-text, #ffffff)) !important;
  -webkit-text-fill-color: var(--bd-plan-header-text, var(--bd-table-header-text, #ffffff)) !important;
  font-weight: 700;
  font-size:calc(.75rem * var(--bd-fs,1));
  text-transform: uppercase;
  letter-spacing: .04em;
  text-align: left;
}
.benedoc-main table.bd-vision-table .bd-vision-icon {
  width: 44px;
  text-align: center;
  font-size:calc(.95rem * var(--bd-fs,1));
  vertical-align: middle;
}
.benedoc-main table.bd-vision-table .bd-vision-label {
  width: 42%;
  font-size:calc(.82rem * var(--bd-fs,1));
  color: var(--bd-text-muted, #64748b);
  font-weight: 600;
  vertical-align: middle;
}
.benedoc-main table.bd-vision-table .bd-vision-val {
  width: 26%;
  text-align: right;
  font-size:calc(.9rem * var(--bd-fs,1));
  font-weight: 700;
  color: var(--bd-text, #0f172a);
  font-family: var(--mono);
  white-space: normal;
  vertical-align: middle;
}
.benedoc-main table.bd-vision-table .bd-vision-suffix {
  width: 24%;
  min-width: 0;
  font-size:calc(.72rem * var(--bd-fs,1));
  color: var(--bd-text-muted, #64748b);
  vertical-align: middle;
}
.benedoc-main table.bd-vision-table .bd-vision-row--oon .bd-vision-val,
.benedoc-main table.bd-vision-table .bd-vision-row--oon .bd-vision-suffix {
  color: var(--bd-text-muted, #64748b) !important;
}
.benedoc-main table.bd-vision-table .bd-vision-row--freq td,
.benedoc-main table.bd-vision-detail-table .bd-vision-detail-row--freq td,
.benedoc-main table.bd-vision-detail-table tr.bd-table-row-alt td {
  background: var(--bd-bg-section, #f1f5f9) !important;
}
.benedoc-main table.bd-vision-detail-table th:first-child,
.benedoc-main table.bd-vision-detail-table td:first-child {
  width: 64%;
}
.benedoc-main table.bd-vision-detail-table th:last-child,
.benedoc-main table.bd-vision-detail-table td:last-child {
  width: 36%;
}
.benedoc-main table.bd-vision-detail-table .bd-vision-detail-service,
.benedoc-main table.bd-vision-detail-table .bd-vision-detail-in {
  font-weight: 600;
}

@media screen and (max-width: 520px) {
  .benedoc-main .bd-vision-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .benedoc-main table.bd-vision-table,
  .benedoc-main table.bd-vision-detail-table {
    min-width: 520px;
  }
  .benedoc-main table.bd-vision-table td,
  .benedoc-main table.bd-vision-detail-table th,
  .benedoc-main table.bd-vision-detail-table td {
    padding: 8px 10px;
    font-size:calc(.76rem * var(--bd-fs,1));
  }
}

/* QA PATCH v3.2.3c - Vision OON real-table column widths */
.benedoc-main table.bd-vision-detail-table--has-oon th:first-child,
.benedoc-main table.bd-vision-detail-table--has-oon td:first-child {
  width: 50%;
}
.benedoc-main table.bd-vision-detail-table--has-oon th:nth-child(2),
.benedoc-main table.bd-vision-detail-table--has-oon td:nth-child(2),
.benedoc-main table.bd-vision-detail-table--has-oon th:nth-child(3),
.benedoc-main table.bd-vision-detail-table--has-oon td:nth-child(3) {
  width: 25%;
}
.benedoc-main table.bd-vision-detail-table--has-oon th.bd-vision-detail-oon,
.benedoc-main table.bd-vision-detail-table--has-oon td.bd-vision-detail-oon {
  display: table-cell !important;
  color: var(--bd-plan-header-text, var(--bd-text, #0f172a)) !important;
  -webkit-text-fill-color: var(--bd-plan-header-text, currentColor) !important;
}

/* ========================================================================
   QA PATCH v3.2.4 - Critical Illness and Pet mobile readability
   ------------------------------------------------------------------------
   Targets QA notes in Javier Uplift.pdf:
   - Critical Illness mobile: long condition labels were squeezed while the
     percentage column had excessive empty space.
   - My Pet mobile: yes/no eligibility tables and HR contact messages needed
     better wrapping and spacing on narrow phones.
   ======================================================================== */

@media screen and (max-width: 768px) {
  /* 2-col short-value tables: use the screen for labels, not the short value. */
  .benedoc-main .bd-benefit-table--short-values[data-cols="2"] {
    table-layout: fixed !important;
  }
  .benedoc-main .bd-benefit-table--short-values[data-cols="2"] .bd-table-label-th,
  .benedoc-main .bd-benefit-table--short-values[data-cols="2"] td.bd-table-label {
    width: 68% !important;
  }
  .benedoc-main .bd-benefit-table--short-values[data-cols="2"] thead th:not(.bd-table-label-th),
  .benedoc-main .bd-benefit-table--short-values[data-cols="2"] td.bd-table-cell {
    width: 32% !important;
    text-align: center !important;
  }

  /* Critical Illness percentage schedules: make condition names readable. */
  .benedoc-main .bd-benefit-table--percent-values[data-cols="2"] .bd-table-label-th,
  .benedoc-main .bd-benefit-table--percent-values[data-cols="2"] td.bd-table-label {
    width: 74% !important;
  }
  .benedoc-main .bd-benefit-table--percent-values[data-cols="2"] thead th:not(.bd-table-label-th),
  .benedoc-main .bd-benefit-table--percent-values[data-cols="2"] td.bd-table-cell {
    width: 26% !important;
    min-width: 64px !important;
    text-align: center !important;
    font-weight: 800 !important;
  }
  .benedoc-main .bd-benefit-table--percent-values[data-cols="2"] td.bd-table-label {
    padding: 8px 9px !important;
    font-size:calc(.76rem * var(--bd-fs,1)) !important;
    line-height: 1.32 !important;
  }
  .benedoc-main .bd-benefit-table--percent-values[data-cols="2"] .bd-table-note {
    display: block !important;
    margin-top: 4px !important;
    font-size:calc(.66rem * var(--bd-fs,1)) !important;
    line-height: 1.28 !important;
    color: var(--bd-text-muted, #64748b) !important;
  }

  /* 3-col short-value tables: Pet yes/no columns should not split thirds. */
  .benedoc-main .bd-benefit-table--short-values[data-cols="3"] {
    table-layout: fixed !important;
  }
  .benedoc-main .bd-benefit-table--short-values[data-cols="3"] .bd-table-label-th,
  .benedoc-main .bd-benefit-table--short-values[data-cols="3"] td.bd-table-label {
    width: 68% !important;
  }
  .benedoc-main .bd-benefit-table--short-values[data-cols="3"] thead th:not(.bd-table-label-th),
  .benedoc-main .bd-benefit-table--short-values[data-cols="3"] td.bd-table-cell {
    width: 16% !important;
    text-align: center !important;
    font-weight: 800 !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
  .benedoc-main .bd-benefit-table--short-values[data-cols="3"] td.bd-table-label {
    padding: 8px 9px !important;
    font-size:calc(.75rem * var(--bd-fs,1)) !important;
    line-height: 1.3 !important;
  }

  /* Pet/no-price rate cards: compact, readable HR contact callouts. */
  .benedoc-main .bd-rate-block .bd-rate-contact-hr,
  .benedoc-main .bd-ci-overview .bd-rate-contact-hr {
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 10px 12px !important;
    margin: 10px 12px 12px !important;
    border-radius: 10px !important;
  }
  .benedoc-main .bd-rate-contact-icon {
    font-size:calc(1.15rem * var(--bd-fs,1)) !important;
    line-height: 1.1 !important;
    margin-top: 1px !important;
  }
  .benedoc-main .bd-rate-contact-body strong {
    font-size:calc(.78rem * var(--bd-fs,1)) !important;
    line-height: 1.25 !important;
  }
  .benedoc-main .bd-rate-contact-body span {
    font-size:calc(.72rem * var(--bd-fs,1)) !important;
    line-height: 1.35 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  /* External chat/dark-mode widgets sit above the lower-right corner on phones. */
  .benedoc-main {
    padding-bottom: 110px !important;
  }
}

@media screen and (max-width: 390px) {
  .benedoc-main .bd-benefit-table--percent-values[data-cols="2"] .bd-table-label-th,
  .benedoc-main .bd-benefit-table--percent-values[data-cols="2"] td.bd-table-label,
  .benedoc-main .bd-benefit-table--short-values[data-cols="3"] .bd-table-label-th,
  .benedoc-main .bd-benefit-table--short-values[data-cols="3"] td.bd-table-label {
    font-size:calc(.71rem * var(--bd-fs,1)) !important;
  }
  .benedoc-main .bd-benefit-table--percent-values[data-cols="2"] thead th:not(.bd-table-label-th),
  .benedoc-main .bd-benefit-table--percent-values[data-cols="2"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table--short-values[data-cols="3"] thead th:not(.bd-table-label-th),
  .benedoc-main .bd-benefit-table--short-values[data-cols="3"] td.bd-table-cell {
    font-size:calc(.72rem * var(--bd-fs,1)) !important;
  }
}

body.bd-pdf-exporting .benedoc-main {
  padding-bottom: 0 !important;
}


/* ========================================================================
   QA PATCH v3.2.4 - Critical Illness mobile + Pet/mobile rate cards
   ------------------------------------------------------------------------
   Targets QA notes in Javier Uplift.pdf:
   - Critical Illness tables are cramped on mobile because long condition names
     are forced into a narrow two-column layout.
   - My Pet mobile cards/contact blocks need safer spacing and no overflow.
   ======================================================================== */

@media screen and (max-width: 768px) {
  /* CI condition/benefit tables: row-card layout only for tables marked by PHP. */
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: visible !important;
    table-layout: auto !important;
  }
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] colgroup,
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] col,
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] thead {
    display: none !important;
  }
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] tbody,
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] tr,
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] td,
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] th {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    text-align: left !important;
  }
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] tr:not(.bd-table-group-row) {
    border: 1px solid var(--bd-border, #e2e8f0) !important;
    border-radius: 8px !important;
    margin: 6px 0 !important;
    overflow: hidden !important;
    background: var(--bd-single-card-bg, var(--bd-card-bg, #fff)) !important;
  }
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] tr.bd-table-group-row {
    display: block !important;
    padding: 7px 2px 3px !important;
    margin: 10px 0 4px !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--bd-text-muted, #64748b) !important;
  }
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] tr.bd-table-group-row td {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
    font-size:calc(.68rem * var(--bd-fs,1)) !important;
    font-weight: 800 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
  }
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] td.bd-table-label {
    padding: 8px 10px !important;
    font-weight: 700 !important;
    background: var(--bd-bg-section, #f8fafc) !important;
    color: var(--bd-text, #0f172a) !important;
    -webkit-text-fill-color: var(--bd-text, #0f172a) !important;
    border: 0 !important;
    border-bottom: 1px solid var(--bd-border, #e2e8f0) !important;
  }
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] td.bd-table-cell.bd-nowrap {
    padding: 8px 10px !important;
    font-size:calc(.82rem * var(--bd-fs,1)) !important;
    font-weight: 700 !important;
    color: var(--bd-text, #0f172a) !important;
    -webkit-text-fill-color: var(--bd-text, #0f172a) !important;
    border: 0 !important;
    text-align: left !important;
  }
  .benedoc-main .bd-benefit-table--mobile-cards-2[data-cols="2"] td.bd-table-cell::before {
    content: attr(data-label);
    display: block !important;
    margin-bottom: 2px !important;
    font-size:calc(.62rem * var(--bd-fs,1)) !important;
    font-weight: 800 !important;
    letter-spacing: .05em !important;
    text-transform: uppercase !important;
    color: var(--bd-table-label-text, var(--bd-text-muted, #64748b)) !important;
    -webkit-text-fill-color: var(--bd-table-label-text, var(--bd-text-muted, #64748b)) !important;
  }

  /* Mobile safe spacing for rate/contact cards used by Pet and similar plans. */
  .benedoc-main .bd-rate-block {
    overflow: visible !important;
    border-radius: 10px !important;
  }
  .benedoc-main .bd-tier-header {
    padding: 12px 14px 10px !important;
  }
  .benedoc-main .bd-tier-name {
    line-height: 1.25 !important;
    overflow-wrap: break-word !important;
  }
  .benedoc-main .bd-rate-contact-hr {
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 12px 13px !important;
    margin: 10px 0 !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .benedoc-main .bd-rate-contact-icon {
    font-size:calc(1.25rem * var(--bd-fs,1)) !important;
    line-height: 1 !important;
    margin-top: 2px !important;
  }
  .benedoc-main .bd-rate-contact-body {
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }
  .benedoc-main .bd-rate-contact-body strong {
    font-size:calc(.82rem * var(--bd-fs,1)) !important;
    line-height: 1.25 !important;
    overflow-wrap: break-word !important;
  }
  .benedoc-main .bd-rate-contact-body span {
    font-size:calc(.74rem * var(--bd-fs,1)) !important;
    line-height: 1.45 !important;
    overflow-wrap: break-word !important;
  }
}

@media screen and (max-width: 520px) {
  .benedoc-main {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  .benedoc-main .bd-single {
    gap: 14px !important;
    padding-bottom: 72px !important; /* leaves room for mobile chat widgets/buttons */
  }
  .benedoc-main .bd-rate-cards {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    padding: 12px !important;
  }
  .benedoc-main .bd-rate-card {
    padding: 14px 12px !important;
  }
  .benedoc-main .bd-ci-overview,
  .benedoc-main .bd-ci-amounts {
    width: 100% !important;
    max-width: 100% !important;
  }
  .benedoc-main .bd-ci-amounts {
    padding: 16px 14px !important;
  }
  .benedoc-main .bd-ci-amounts-row {
    gap: 8px !important;
  }
  .benedoc-main .bd-ci-amount-badge {
    flex: 1 1 calc(50% - 8px) !important;
    min-width: 128px !important;
    text-align: center !important;
    padding: 8px 12px !important;
  }
}


/* QA PATCH v3.2.4b - mobile plan labels for fallback comparison tables */
@media screen and (max-width:768px) {
  .benedoc-main .bd-hc-td-val::before {
    content: attr(data-label);
    display: block !important;
    margin-bottom: 2px !important;
    font-size:calc(.58rem * var(--bd-fs,1)) !important;
    font-weight: 700 !important;
    letter-spacing: .035em !important;
    text-transform: uppercase !important;
    color: var(--bd-text-muted, #64748b) !important;
    -webkit-text-fill-color: var(--bd-text-muted, #64748b) !important;
  }
}
body.bd-pdf-exporting .benedoc-main td[data-label]::before,
body.bd-pdf-exporting .benedoc-main .bd-hc-td-val::before {
  content: none !important;
}

/* ========================================================================
   QA PATCH v3.2.4b - Forced mobile cards for CI + My Pet 2/3-col tables
   ------------------------------------------------------------------------
   PHP marks only the QA-targeted Critical Illness and My Pet tables with
   .bd-table-mobile-card, so normal 2/3-column tables keep their compact table
   layout. These marked tables become row cards on phones for readability.
   ======================================================================== */

@media screen and (max-width: 768px) {
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"],
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: visible !important;
    table-layout: auto !important;
  }

  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] colgroup,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] col,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] thead,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] colgroup,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] col,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] thead {
    display: none !important;
  }

  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] tbody,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] tr,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] td,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] th,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] tbody,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] tr,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] td,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] th {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    text-align: left !important;
  }

  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] tr:not(.bd-table-group-row),
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] tr:not(.bd-table-group-row) {
    border: 1px solid var(--bd-border, #e2e8f0) !important;
    border-radius: 8px !important;
    margin: 7px 0 !important;
    overflow: hidden !important;
    background: var(--bd-single-card-bg, var(--bd-card-bg, #ffffff)) !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .06) !important;
  }

  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] tr.bd-table-group-row,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] tr.bd-table-group-row {
    display: block !important;
    margin: 12px 0 5px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--bd-text-muted, #64748b) !important;
  }

  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] tr.bd-table-group-row td,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] tr.bd-table-group-row td {
    display: block !important;
    padding: 0 2px !important;
    border: 0 !important;
    background: transparent !important;
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
    font-size:calc(.68rem * var(--bd-fs,1)) !important;
    font-weight: 800 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
  }

  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] td.bd-table-label,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] td.bd-table-label {
    padding: 8px 10px !important;
    font-size:calc(.8rem * var(--bd-fs,1)) !important;
    line-height: 1.35 !important;
    font-weight: 800 !important;
    color: var(--bd-text, #0f172a) !important;
    -webkit-text-fill-color: var(--bd-text, #0f172a) !important;
    background: var(--bd-bg-section, #f8fafc) !important;
    border: 0 !important;
    border-bottom: 1px solid var(--bd-border, #e2e8f0) !important;
  }

  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] td.bd-table-cell.bd-nowrap,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] td.bd-table-cell,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] td.bd-table-cell.bd-nowrap {
    padding: 8px 10px !important;
    font-size:calc(.82rem * var(--bd-fs,1)) !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
    color: var(--bd-text, #0f172a) !important;
    -webkit-text-fill-color: var(--bd-text, #0f172a) !important;
    background: var(--bd-single-card-bg, var(--bd-card-bg, #ffffff)) !important;
    border: 0 !important;
    border-top: 1px solid var(--bd-border, #e2e8f0) !important;
    text-align: left !important;
  }

  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] td.bd-table-cell:first-of-type,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] td.bd-table-cell:first-of-type {
    border-top: 0 !important;
  }

  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="2"] td.bd-table-cell::before,
  .benedoc-main .bd-benefit-table.bd-table-mobile-card[data-cols="3"] td.bd-table-cell::before {
    content: attr(data-label);
    display: block !important;
    margin-bottom: 2px !important;
    font-size:calc(.62rem * var(--bd-fs,1)) !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    letter-spacing: .05em !important;
    text-transform: uppercase !important;
    color: var(--bd-text-muted, #64748b) !important;
    -webkit-text-fill-color: var(--bd-text-muted, #64748b) !important;
  }

  .benedoc-main .bd-benefit-table.bd-table-mobile-card .bd-table-note {
    margin-top: 4px !important;
    font-size:calc(.68rem * var(--bd-fs,1)) !important;
    line-height: 1.35 !important;
  }

  .benedoc-main .bd-ci-overview {
    gap: 12px !important;
  }

  .benedoc-main .bd-ci-amounts {
    padding: 14px !important;
  }

  .benedoc-main .bd-ci-amounts-label {
    margin-bottom: 9px !important;
    font-size:calc(.68rem * var(--bd-fs,1)) !important;
  }

  .benedoc-main .bd-ci-amount-badge {
    font-size:calc(.82rem * var(--bd-fs,1)) !important;
    padding: 6px 10px !important;
  }
}

body.bd-pdf-exporting .benedoc-main .bd-benefit-table.bd-table-mobile-card {
  display: table !important;
  table-layout: auto !important;
  border-collapse: collapse !important;
}
body.bd-pdf-exporting .benedoc-main .bd-benefit-table.bd-table-mobile-card thead { display: table-header-group !important; }
body.bd-pdf-exporting .benedoc-main .bd-benefit-table.bd-table-mobile-card tbody { display: table-row-group !important; }
body.bd-pdf-exporting .benedoc-main .bd-benefit-table.bd-table-mobile-card tr { display: table-row !important; }
body.bd-pdf-exporting .benedoc-main .bd-benefit-table.bd-table-mobile-card th,
body.bd-pdf-exporting .benedoc-main .bd-benefit-table.bd-table-mobile-card td { display: table-cell !important; }


/* ========================================================================
   QA PATCH v3.2.5 - Accident/Cancer semantic tables and PDF stability
   ======================================================================== */
.benedoc-main table.bd-accident-table,
.benedoc-main table.bd-cc-table {
  display: table !important;
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  margin: 0;
  background: var(--bd-single-card-bg, var(--bd-card-bg, #ffffff));
  color: var(--bd-text, #0f172a);
  border: 1px solid var(--bd-border, #dbe4f0);
  border-radius: var(--bd-radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.benedoc-main table.bd-accident-table thead,
.benedoc-main table.bd-cc-table thead { display: table-header-group !important; }
.benedoc-main table.bd-accident-table tbody,
.benedoc-main table.bd-cc-table tbody { display: table-row-group !important; }
.benedoc-main table.bd-accident-table tr,
.benedoc-main table.bd-cc-table tr,
.benedoc-main table.bd-accident-table tr.bd-accident-table-head,
.benedoc-main table.bd-accident-table tr.bd-accident-row,
.benedoc-main table.bd-cc-table tr.bd-cc-head,
.benedoc-main table.bd-cc-table tr.bd-cc-row {
  display: table-row !important;
  grid-template-columns: none !important;
  page-break-inside: avoid;
  break-inside: avoid;
}
.benedoc-main table.bd-accident-table th,
.benedoc-main table.bd-accident-table td,
.benedoc-main table.bd-cc-table th,
.benedoc-main table.bd-cc-table td {
  display: table-cell !important;
  vertical-align: middle;
  box-sizing: border-box;
  border-bottom: 1px solid var(--bd-bg-section, #eef2f7);
  color: var(--bd-plan-header-text, var(--bd-text, #0f172a));
  -webkit-text-fill-color: var(--bd-plan-header-text, currentColor);
  background: var(--bd-plan-header-bg, transparent);
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
}
.benedoc-main table.bd-accident-table tr:last-child td,
.benedoc-main table.bd-cc-table tr:last-child td { border-bottom: none; }
.benedoc-main table.bd-accident-table { box-shadow: none; font-size:calc(.82rem * var(--bd-fs,1)); }
.benedoc-main table.bd-accident-table th {
  background: var(--bd-plan-header-bg, var(--bd-table-header, #1f5f9f)) !important;
  color: var(--bd-plan-header-text, var(--bd-table-header-text, #ffffff)) !important;
  -webkit-text-fill-color: var(--bd-plan-header-text, var(--bd-table-header-text, #ffffff)) !important;
  font-weight: 700;
  font-size:calc(.75rem * var(--bd-fs,1));
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 10px 16px;
  text-align: left;
}
.benedoc-main table.bd-accident-table th:last-child { text-align: right; }
.benedoc-main table.bd-accident-table .bd-accident-benefit { width: 68%; padding: 9px 16px; font-size:calc(.82rem * var(--bd-fs,1)); font-weight: 700; }
.benedoc-main table.bd-accident-table .bd-accident-amount  { width: 32%; padding: 9px 16px; font-size:calc(.82rem * var(--bd-fs,1)); font-weight: 400; text-align: right; white-space: normal; }
.benedoc-main table.bd-accident-table tr.bd-accident-row--alt td,
.benedoc-main table.bd-accident-table tr.bd-accident-row:nth-child(even) td { background: var(--bd-bg-section, #f8fafc) !important; }
.benedoc-main table.bd-accident-table tr.bd-accident-section-header td,
.benedoc-main table.bd-accident-table tr.bd-accident-section-label td {
  background: var(--bd-table-group-bg, var(--bd-accent-light, #eef4fb)) !important;
  color: var(--bd-table-group-text, var(--bd-primary, #0f172a)) !important;
  -webkit-text-fill-color: var(--bd-table-group-text, var(--bd-primary, #0f172a)) !important;
  font-size:calc(.72rem * var(--bd-fs,1));
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  padding: 8px 16px;
  text-align: left;
}
.benedoc-main table.bd-cc-table { border: none; }
.benedoc-main table.bd-cc-table th.bd-cc-label-col,
.benedoc-main table.bd-cc-table th.bd-cc-tier-col {
  display: table-cell !important;
  padding: 18px 16px;
  text-align: center;
  vertical-align: bottom;
  border-bottom: 3px solid var(--bd-table-header, #1f5f9f);
  border-left: 2px solid var(--bd-bg-section, #eef2f7);
}
.benedoc-main table.bd-cc-table th.bd-cc-label-col { border-left: 0; background: var(--bd-plan-header-bg, var(--bd-single-card-bg, var(--bd-card-bg, #ffffff))) !important; }
.benedoc-main table.bd-cc-table th.bd-cc-tier-col--lo { background: var(--bd-plan-header-bg, var(--bd-bg-section, #f8fafc)) !important; }
.benedoc-main table.bd-cc-table th.bd-cc-tier-col--hi { background: var(--bd-plan-header-bg, var(--bd-accent-light, #eef4ff)) !important; }
.benedoc-main table.bd-cc-table .bd-cc-tier-name { font-size:calc(.75rem * var(--bd-fs,1)); font-weight: 800; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; color: var(--bd-plan-header-text, var(--bd-text, #0f172a)); }
.benedoc-main table.bd-cc-table .bd-cc-tier-price { font-size:calc(1.15rem * var(--bd-fs,1)); font-weight: 800; font-family: var(--mono); color: var(--bd-plan-header-text, var(--bd-text, #0f172a)); }
.benedoc-main table.bd-cc-table .bd-cc-tier-price span { font-size:calc(.7rem * var(--bd-fs,1)); font-weight: 400; color: var(--bd-plan-header-text, var(--bd-text-muted, #64748b)); }
.benedoc-main table.bd-cc-table tr.bd-cc-section-label td {
  background: var(--bd-accent, #1f5f9f) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font-size:calc(.63rem * var(--bd-fs,1));
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .14em;
  padding: 8px 20px;
  text-align: left;
}
.benedoc-main table.bd-cc-table tr.bd-cc-section-row-sub td {
  background: var(--bd-table-group-bg, var(--bd-accent-light, #eef4fb)) !important;
  color: var(--bd-table-group-text, var(--bd-primary, #0f172a)) !important;
  -webkit-text-fill-color: var(--bd-table-group-text, var(--bd-primary, #0f172a)) !important;
  font-size:calc(.68rem * var(--bd-fs,1));
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 7px 20px;
}
.benedoc-main table.bd-cc-table td.bd-cc-label { display: table-cell !important; padding: 11px 20px; font-size:calc(.85rem * var(--bd-fs,1)); font-weight: 600; line-height: 1.4; text-align: left; }
.benedoc-main table.bd-cc-table td.bd-cc-val { display: table-cell !important; padding: 11px 16px; text-align: center; font-size:calc(.85rem * var(--bd-fs,1)); font-weight: 700; line-height: 1.3; border-left: 1px solid var(--bd-border, #e2e8f0); }
.benedoc-main table.bd-cc-table tr.bd-cc-row:nth-child(even) td { background: var(--bd-bg-section, #f8fafc); }
.benedoc-main table.bd-cc-table tr.bd-cc-row td.bd-cc-val:last-child { background: color-mix(in srgb, var(--bd-accent, #2f6bff) 4%, transparent); border-left: 2px solid color-mix(in srgb, var(--bd-accent, #2f6bff) 18%, transparent); }
.benedoc-main table.bd-cc-table .bd-cc-emoji { display: inline-block; margin-right: 8px; }
.benedoc-main table.bd-cc-table .bd-cc-val--none { color: var(--gray-400, #94a3b8) !important; -webkit-text-fill-color: currentColor !important; font-style: italic; font-size:calc(.78rem * var(--bd-fs,1)); }
.benedoc-main table.bd-cc-table tr.bd-cc-footer-row td { padding: 0; border-bottom: 0; }
.benedoc-main table.bd-cc-table .bd-cc-footer { border-top: 1px solid var(--bd-border, #e2e8f0); }
@media screen and (max-width: 640px) {
  .benedoc-main .bd-cancer-compare { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .benedoc-main table.bd-cc-table { min-width: 620px; }
  .benedoc-main table.bd-accident-table .bd-accident-benefit,
  .benedoc-main table.bd-accident-table .bd-accident-amount { padding: 8px 10px; font-size:calc(.78rem * var(--bd-fs,1)); }
}
body.bd-pdf-exporting .benedoc-main table.bd-accident-table,
body.bd-pdf-exporting .benedoc-main table.bd-cc-table { display: table !important; width: 100% !important; border-collapse: collapse !important; table-layout: fixed !important; background: #ffffff !important; color: #111827 !important; box-shadow: none !important; overflow: visible !important; }
body.bd-pdf-exporting .benedoc-main table.bd-accident-table thead,
body.bd-pdf-exporting .benedoc-main table.bd-cc-table thead { display: table-header-group !important; }
body.bd-pdf-exporting .benedoc-main table.bd-accident-table tbody,
body.bd-pdf-exporting .benedoc-main table.bd-cc-table tbody { display: table-row-group !important; }
body.bd-pdf-exporting .benedoc-main table.bd-accident-table tr,
body.bd-pdf-exporting .benedoc-main table.bd-cc-table tr { display: table-row !important; }
body.bd-pdf-exporting .benedoc-main table.bd-accident-table th,
body.bd-pdf-exporting .benedoc-main table.bd-accident-table td,
body.bd-pdf-exporting .benedoc-main table.bd-cc-table th,
body.bd-pdf-exporting .benedoc-main table.bd-cc-table td { display: table-cell !important; background: var(--bd-plan-header-bg, #ffffff) !important; color: var(--bd-plan-header-text, #111827) !important; -webkit-text-fill-color: var(--bd-plan-header-text, #111827) !important; page-break-inside: avoid !important; break-inside: avoid !important; }
body.bd-pdf-exporting .benedoc-main table.bd-accident-table th,
body.bd-pdf-exporting .benedoc-main table.bd-cc-table thead th,
body.bd-pdf-exporting .benedoc-main table.bd-cc-table tr.bd-cc-section-label td { background: var(--bd-plan-header-bg, var(--bd-table-header, #1f5f9f)) !important; color: var(--bd-plan-header-text, #ffffff) !important; -webkit-text-fill-color: var(--bd-plan-header-text, #ffffff) !important; }
body.bd-pdf-exporting .benedoc-main table.bd-accident-table tr.bd-accident-section-header td,
body.bd-pdf-exporting .benedoc-main table.bd-accident-table tr.bd-accident-section-label td,
body.bd-pdf-exporting .benedoc-main table.bd-cc-table tr.bd-cc-section-row-sub td { background: #eef4fb !important; color: #111827 !important; -webkit-text-fill-color: #111827 !important; }
body.bd-pdf-exporting .benedoc-main table.bd-cc-table td[data-label]::before,
body.bd-pdf-exporting .benedoc-main table.bd-accident-table td[data-label]::before { content: none !important; }

/* QA PATCH v3.2.5 - Cancer semantic footer consistency */
.benedoc-main table.bd-cc-table tr.bd-cc-footer td {
  padding: 14px 20px !important;
  font-size:calc(.76rem * var(--bd-fs,1)) !important;
  color: var(--bd-text-muted, #64748b) !important;
  -webkit-text-fill-color: var(--bd-text-muted, #64748b) !important;
  background: var(--bd-bg-section, #f8fafc) !important;
  line-height: 1.6 !important;
  border-top: 1px solid var(--bd-border, #e2e8f0) !important;
}
body.bd-pdf-exporting .benedoc-main table.bd-cc-table tr.bd-cc-footer td {
  background: #f8fafc !important;
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

/* QA PATCH v3.2.5 - Accident/Cancer/Hospital/Emergency schedule protection */
body.bd-pdf-exporting .benedoc-main table.bd-table-qa-pdf-schedule,
body.bd-pdf-exporting .benedoc-main table.bd-table-detail-mobile {
  display: table !important;
  width: 100% !important;
  table-layout: fixed !important;
  border-collapse: collapse !important;
  overflow: visible !important;
  background: #ffffff !important;
  color: #111827 !important;
}
body.bd-pdf-exporting .benedoc-main table.bd-table-qa-pdf-schedule thead,
body.bd-pdf-exporting .benedoc-main table.bd-table-detail-mobile thead { display: table-header-group !important; }
body.bd-pdf-exporting .benedoc-main table.bd-table-qa-pdf-schedule tbody,
body.bd-pdf-exporting .benedoc-main table.bd-table-detail-mobile tbody { display: table-row-group !important; }
body.bd-pdf-exporting .benedoc-main table.bd-table-qa-pdf-schedule tr,
body.bd-pdf-exporting .benedoc-main table.bd-table-detail-mobile tr {
  display: table-row !important;
  page-break-inside: avoid !important;
  break-inside: avoid !important;
}
body.bd-pdf-exporting .benedoc-main table.bd-table-qa-pdf-schedule th,
body.bd-pdf-exporting .benedoc-main table.bd-table-qa-pdf-schedule td,
body.bd-pdf-exporting .benedoc-main table.bd-table-detail-mobile th,
body.bd-pdf-exporting .benedoc-main table.bd-table-detail-mobile td {
  display: table-cell !important;
  color: var(--bd-plan-header-text, #111827) !important;
  -webkit-text-fill-color: var(--bd-plan-header-text, #111827) !important;
  background: var(--bd-plan-header-bg, #ffffff) !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
}
body.bd-pdf-exporting .benedoc-main table.bd-table-qa-pdf-schedule thead th,
body.bd-pdf-exporting .benedoc-main table.bd-table-detail-mobile thead th {
  background: var(--bd-plan-header-bg, var(--bd-table-header, #1f5f9f)) !important;
  color: var(--bd-plan-header-text, #ffffff) !important;
  -webkit-text-fill-color: var(--bd-plan-header-text, #ffffff) !important;
}
body.bd-pdf-exporting .benedoc-main table.bd-table-qa-pdf-schedule td[data-label]::before,
body.bd-pdf-exporting .benedoc-main table.bd-table-detail-mobile td[data-label]::before { content: none !important; }

/* ── Kill all tr:hover backgrounds inside benedoc-main (v3.2.9)
   Overrides any WordPress theme or CTM global tr:hover rule. ── */
.benedoc-main table tr:hover,
.benedoc-main table tbody tr:hover,
.benedoc-main table tr:hover td,
.benedoc-main table tbody tr:hover td {
  background-color: inherit !important;
  background: inherit !important;
}

/* ═══════════════════════════════════════════════════════════════
   QA v3.4.0 — global additions
   ═══════════════════════════════════════════════════════════════ */

/* ── Bottom "My Benefits Guide" navigation button ── */
.benedoc-main .bd-back-bottom-wrap{
  display:flex;justify-content:center;margin:28px 0 8px;
}
.benedoc-main .bd-back--bottom{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 22px;border-radius:999px;
  background:var(--bd-cta-bg,#FBB040);color:var(--bd-cta-text,#01164F);
  font-size:calc(.85rem * var(--bd-fs,1));font-weight:700;text-decoration:none;
  transition:background .15s ease;
}
.benedoc-main .bd-back--bottom:hover{
  background:var(--bd-cta-hover,#e8a030);color:var(--bd-cta-text-hover,var(--bd-cta-text,#01164F));
}

/* ── Configurable callout boxes ── */
.benedoc-main .bd-callout{
  border-radius:var(--bd-radius,12px);
  padding:18px 22px;margin:22px 0;
  background:var(--bd-accent-light,#eff6ff);
  border:1px solid var(--bd-border,#e2e8f0);
  color:var(--bd-text,#0f172a);
  font-size:calc(.9rem * var(--bd-fs,1));line-height:1.65;
}
.benedoc-main .bd-callout--accent{
  background:var(--bd-accent-light,#eff6ff);
  border-left:4px solid var(--bd-accent,#2f6bff);
}
.benedoc-main .bd-callout--warning{
  background:#fff8eb;border-left:4px solid var(--bd-cta-bg,#FBB040);
}
.benedoc-main .bd-callout-title{
  font-weight:800;font-size:calc(1rem * var(--bd-fs,1));margin-bottom:8px;
  color:var(--bd-subhead,var(--bd-primary,#01164F));
  display:flex;align-items:center;gap:8px;
}
.benedoc-main .bd-callout-icon{font-size:calc(1.05rem * var(--bd-fs,1));line-height:1}
.benedoc-main .bd-callout-body{margin:0 0 8px}
.benedoc-main .bd-callout-list{margin:6px 0 4px;padding-left:20px}
.benedoc-main .bd-callout-list li{margin-bottom:5px}
.benedoc-main .bd-callout-note{margin:8px 0 0;font-size:calc(.82rem * var(--bd-fs,1));color:var(--bd-text-muted,#64748b)}

/* ── Auto-linked URLs in text banks / notes / callouts ── */
.benedoc-main a.bd-auto-link{
  color:var(--bd-accent,#2f6bff);font-weight:600;text-decoration:underline;
  word-break:break-word;
}
.benedoc-main a.bd-auto-link:hover{opacity:.8}

/* ── Comparison tables: fixed layout so colgroup widths hold ── */
.benedoc-main .bd-ct-table--fixed{table-layout:fixed;width:100%}
@media screen and (max-width:640px){
  /* card layout on mobile ignores colgroup — release fixed layout */
  .benedoc-main .bd-ct-table--fixed{table-layout:auto}
}

/* ── Mobile: bottom button + callouts ── */
@media screen and (max-width:640px){
  .benedoc-main .bd-back--bottom{width:100%;justify-content:center}
  .benedoc-main .bd-callout{padding:14px 16px}
}


/* ═══════════════════════════════════════════════════════════════
   QA — Highlights list (Main Advantages / Limitations / Ideal For)
   Solo aplica dentro de .bd-info-card--ghost, no afecta otros títulos
   ═══════════════════════════════════════════════════════════════ */

/* Labels de sección (MAIN ADVANTAGES / LIMITATIONS / IDEAL FOR / text-block headers)
   Solo dentro de ghost cards — el resto del plugin no cambia */
.benedoc-main .bd-info-card--ghost .bd-section-head {
  font-size:calc(.72rem * var(--bd-fs,1));   /* sube desde .65rem — más legible, mismo tracking */
  font-weight: 800;    /* igual que el base, no cambia */
}

/* Items de lista: color completo (no muted) y tamaño consistente con las tablas */
.benedoc-main .bd-info-card--ghost .bd-elig-list li {
  font-size:calc(.85rem * var(--bd-fs,1));
  color: var(--bd-text, #0f172a);   /* reemplaza text-muted */
  font-weight: 400;
}


/* ── Global: first column bold, data columns normal — all table types ── */
.benedoc-main .bd-benefit-table tbody td:first-child,
.benedoc-main .bd-dental-table  tbody td:first-child,
.benedoc-main .bd-addl-table    tbody td:first-child,
.benedoc-main .bd-tier-summary-table tbody td:first-child,
.benedoc-main .bd-std-table     tbody td:first-child,
.benedoc-main .bd-ltd-table     tbody td:first-child,
.benedoc-main .bd-table         tbody td:first-child { font-weight: 700; }

.benedoc-main .bd-benefit-table tbody td:not(:first-child),
.benedoc-main .bd-dental-table  tbody td:not(:first-child),
.benedoc-main .bd-addl-table    tbody td:not(:first-child),
.benedoc-main .bd-tier-summary-table tbody td:not(:first-child),
.benedoc-main .bd-std-table     tbody td:not(:first-child),
.benedoc-main .bd-ltd-table     tbody td:not(:first-child),
.benedoc-main .bd-table         tbody td:not(:first-child) { font-weight: 400; }

/* v3.4.6 — enlaces dentro del hero y de las tarjetas del archivo.
   .bd-auto-link usa var(--bd-accent), que sobre el fondo de color del hero
   puede quedar con poco contraste. Ahí el enlace hereda el color del texto
   circundante y se distingue solo por el subrayado, que contrasta siempre. */
.benedoc-main .bd-plan-desc a.bd-auto-link,
.benedoc-main .bd-hero a.bd-auto-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.benedoc-main .bd-plan-desc a.bd-auto-link:hover,
.benedoc-main .bd-hero a.bd-auto-link:hover { opacity: .75; }

/* v3.4.7 — negrita **texto**. Regla defensiva: varios contenedores fijan
   font-weight y podrían aplanar el <strong> heredándolo. */
.benedoc-main strong,
.benedoc-main .bd-elig-txt strong,
.benedoc-main .bd-rl-item-body strong,
.benedoc-main .bd-tb-body strong,
.benedoc-main td strong { font-weight: 700; }

/* v3.4.9 — los niveles de cobertura ahora usan SVG en vez de emoji.
   El emoji heredaba font-size; el SVG necesita dimensiones propias y
   toma el color del contexto vía currentColor. */
.benedoc-main .bd-rate-emoji,
.benedoc-main .bd-cc-emoji { display:inline-flex; align-items:center; justify-content:center; line-height:0; }
.benedoc-main .bd-rate-emoji .bd-tier-icon { color: var(--bd-accent, #1f3864); }
.benedoc-main .bd-cc-emoji  .bd-tier-icon { color: var(--bd-accent, #1f3864); vertical-align:-3px; margin-right:6px; }


/* ═══════════════════════════════════════════════════════════════════════════
   IMPRESIÓN / PDF NATIVO
   v3.5.5 — este bloque estaba en la línea ~1271, con DIEZ bloques
   @media (max-width: …) por detrás. En impresión el viewport de A4 con
   márgenes de 12mm son ~703 CSS px, así que el breakpoint de 768px se
   activaba y, al venir después en el archivo, ganaba por orden de cascada:
   las tablas salían apiladas como tarjetas de móvil en vez de como tablas.

   Dos medidas: los breakpoints pasaron a `@media screen and (max-width: …)`
   —son de pantalla, no de papel— y este bloque se movió al final para que
   nada posterior lo pise. Mantenerlo AL FINAL del archivo.
   ═══════════════════════════════════════════════════════════════════════════ */
@media print {

  /* ── Page setup ── */
  @page {
    size: A4 portrait;
    margin: 14mm 12mm;
  }

  /* ── Color preservation ── */
  *, *::before, *::after {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }

  /* ── Ocultar el cromo del tema, no la página entera ──────────────────
     v3.5.4. La regla anterior era una lista blanca adivinada:

       body > *:not(.benedoc-wrap):not(#page):not(#wrapper):not(main)
              :not(#main):not(#content) { display:none !important }

     Ocultaba TODO hijo directo de <body> salvo que su clase o id estuviera
     en esos seis nombres. Con cualquier tema que use otro wrapper (la
     mayoría), el contenedor del contenido caía en el :not() y la impresión
     salía en blanco — una sola página vacía, sin ningún indicio de por qué.

     Ahora se oculta un hermano de primer nivel sólo si NO contiene el plan,
     usando :has(). Funciona con cualquier tema porque no depende de nombres.
     Va dentro de @supports: si el navegador no soporta :has(), no se oculta
     nada y se imprime la página con el cromo del tema. Salir con encabezado
     de más es recuperable; salir en blanco, no. */
     Y el ancla estaba mal: `.benedoc-wrap` no se emite en ningún punto del
     plugin. El contenedor real es `.benedoc-main` (templates/single-benefit-plan.php
     y class-frontend-rest.php). Así que la lista blanca dependía por completo
     de que el tema usara #page/#wrapper/main/#main/#content. */
  @supports selector(:has(*)) {
    body > *:not(:has(.benedoc-main)):not(.benedoc-main) {
      display: none !important;
    }
  }
  header, footer, nav, aside,
  #wpadminbar, .site-header, .site-footer,
  .wp-block-template-part,
  .bd-back, .bd-back--hero,
  .bd-pdf-bar,
  .bd-beneai, .bd-beneai-wrap,
  .bd-video-banner, .bd-footer-meta,
  .bd-archive-actions { display: none !important; }

  /* v3.5.4 — el plan suele vivir dentro de varios contenedores del tema.
     Si alguno tiene altura fija, overflow oculto o columnas, la impresión
     se corta. Se neutralizan sólo los ancestros del plan. */
  @supports selector(:has(*)) {
    body :has(.benedoc-main) {
      height: auto !important;
      max-height: none !important;
      overflow: visible !important;
      float: none !important;
      width: auto !important;
    }
  }

  /* ── Cromo que se colaba en la impresión (v3.5.5) ────────────────────
     Lo observado en el PDF de prueba, punto por punto. */

  /* Banner de vídeo: class-frontend-assets.php emite
     `.benedoc-main .bd-video-banner--single{display:flex!important}` en
     wp_head prio 999, o sea después de esta hoja. Con igual especificidad
     gana el último, así que el banner sobrevivía — y en papel su texto se
     estrujaba en una columna de un carácter. Se sube la especificidad. */
  html body .benedoc-main .bd-video-banner,
  html body .benedoc-main .bd-video-banner--single,
  html body .benedoc-main .bd-video-banner--multi,
  html body .benedoc-main .bd-vb-header,
  html body .benedoc-main .bd-vb-actions,
  html body .benedoc-main .bd-beneai,
  html body .benedoc-main .bd-beneai-btn { display: none !important; }

  /* Lanzadores flotantes de chat/soporte de terceros. No son del plugin, así
     que no se pueden nombrar con certeza: se cubren los patrones habituales
     y cualquier elemento marcado como no imprimible. */
  .no-print, [data-no-print], [aria-label*="chat" i][class*="button" i],
  #intercom-container, .intercom-lightweight-app,
  .crisp-client, #hubspot-messages-iframe-container,
  .drift-widget-controller, #tawkchat-container,
  .wp-chatbot, .chat-widget, .chat-bubble { display: none !important; }

  /* Título de la página del tema encima del plan: duplica el título del
     plan que ya viene en el hero. */
  .entry-title, .page-title, h1.wp-block-post-title,
  .wp-block-post-title, .elementor-page-title { display: none !important; }

  /* Los temas suelen añadir la URL entre paréntesis detrás de cada enlace.
     En un resumen de beneficios eso llena el texto de ruido:
     "1-877-377-6773 (tel:+18773776773)". El enlace no es pulsable en papel,
     pero el número y el dominio ya están escritos. */
  .benedoc-main a[href]::after,
  .benedoc-main a[href]::before { content: none !important; }

  /* ── Reset layout for print ── */
  .benedoc-main {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .benedoc-main .bd-single {
    display: block !important;
    gap: 0 !important;
  }

  /* ── Hero ── */
  .benedoc-main .bd-hero {
    border-radius: 8px !important;
    min-height: 0 !important;
    margin-bottom: 16pt !important;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .benedoc-main .bd-hero-inner {
    padding: 20pt 24pt !important;
  }
  .benedoc-main .bd-hero-overlay { display: none !important; }

  /* ── Rate cards ── */
  .benedoc-main .bd-rate-block {
    page-break-inside: avoid;
    break-inside: avoid;
    margin-bottom: 12pt !important;
  }
  .benedoc-main .bd-rate-cards {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
  }
  .benedoc-main .bd-rate-card {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* ── Sections ── */
  .benedoc-main .bd-section {
    margin-bottom: 0 !important;
  }
  .benedoc-main .bd-section-head {
    page-break-after: avoid;
    break-after: avoid;
  }
  .benedoc-main .bd-section-title {
    page-break-after: avoid;
    break-after: avoid;
  }

  /* ── Tables: the key rules ── */
  .benedoc-main .bd-table-scroll {
    overflow: visible !important;
    max-width: 100% !important;
  }
  .benedoc-main .bd-table-wrap {
    overflow: visible !important;
    border-radius: 0 !important;
  }
  .benedoc-main .bd-table {
    width: 100% !important;
    page-break-inside: auto;
    break-inside: auto;
  }
  .benedoc-main .bd-table thead {
    display: table-header-group; /* repeat header on each page natively */
  }
  .benedoc-main .bd-table tfoot {
    display: table-footer-group;
  }
  .benedoc-main .bd-table tr {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .benedoc-main .bd-table th,
  .benedoc-main .bd-table td {
    padding: 7pt 12pt !important;
    font-size: 8pt !important;
  }
  .benedoc-main .bd-table thead th {
    font-size: 7.5pt !important;
  }
  /* Table group headers (EMERGENCY CARE & DIAGNOSTICS etc) */
  .benedoc-main .bd-table .bd-table-group-row td {
    page-break-after: avoid;
    break-after: avoid;
  }

  /* ── Info grid (Is This Right / Who Can Enroll) ── */
  .benedoc-main .bd-info-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .benedoc-main .bd-info-card {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* ── Key numbers ── */
  .benedoc-main .bd-keynum-card {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* ── Typography adjustments for print ── */
  .benedoc-main .bd-plan-title { font-size: 22pt !important; }
  .benedoc-main .bd-plan-provider { font-size: 10pt !important; }
  .benedoc-main .bd-plan-desc { font-size: 9pt !important; }
  .benedoc-main .bd-section-title { font-size: 13pt !important; }
  .benedoc-main .bd-rate-price { font-size: 16pt !important; }
  .benedoc-main .bd-rate-name { font-size: 7.5pt !important; min-height: 0 !important; }
  .benedoc-main .bd-rate-mo { font-size: 7pt !important; }
  .benedoc-main { font-size: 9pt !important; }

  /* ── Tighten spacing for PDF ── */
  /* Info sections (IN-NETWORK REIMBURSEMENT etc) */
  .benedoc-main .bd-info-section { margin-top: 12pt !important; margin-bottom: 0 !important; }
  .benedoc-main .bd-info-section-desc { margin: 0 0 6pt !important; font-size: 8.5pt !important; }
  .benedoc-main .bd-section-head { margin-bottom: 8pt !important; font-size: 8pt !important; }

  /* Benefit blocks */
  .benedoc-main .bd-benefit-block { margin-bottom: 8pt !important; }
  .benedoc-main .bd-section-title { margin-bottom: 8pt !important; }

  /* Info items (key-value rows) */
  .benedoc-main .bd-info-items { gap: 6pt !important; }
  .benedoc-main .bd-info-item { padding: 8pt 12pt !important; }

  /* Remove large top padding from first children */
  .benedoc-main .bd-single > *:first-child { margin-top: 0 !important; }

  /* Tighten card padding */
  .benedoc-main .bd-section > .bd-card { padding: 12pt 16pt !important; }
  .benedoc-main .bd-keynum-card { padding: 10pt 14pt !important; }

  /* Remove min-heights that force empty space */
  .benedoc-main * { min-height: 0 !important; }
  .benedoc-main .bd-rate-name { min-height: 0 !important; }
  .benedoc-main .bd-hero { min-height: 0 !important; }
  /* comparison_table: always table in PDF */
  .benedoc-main .bd-ct-table { display: table !important; font-size:calc(.7rem * var(--bd-fs,1)) !important; }
  .benedoc-main .bd-ct-table thead { display: table-header-group !important; }
  .benedoc-main .bd-ct-table tbody { display: table-row-group !important; }
  .benedoc-main .bd-ct-table tr { display: table-row !important; }
  .benedoc-main .bd-ct-table td,
  .benedoc-main .bd-ct-table th { display: table-cell !important; padding: 5px 8px !important; }
  .benedoc-main .bd-section-header { margin: 20pt 0 10pt; page-break-after: avoid; }
  .benedoc-main .bd-sh-title,
.benedoc-main .bd-section-header .bd-section-title { font-size: 14pt; }

  /* ── Ajuste al ancho del papel (v3.5.5) ──────────────────────────────
     El área útil de A4 con márgenes de 12mm son ~703 CSS px, bastante menos
     que los 1200 para los que está diseñada la vista de escritorio. Con los
     breakpoints ya acotados a `screen`, las tablas vuelven a ser tablas;
     aquí sólo se las obliga a caber en la caja en vez de desbordarse por la
     derecha, que es lo que hacían al no poder desplazarse en papel. */
  .benedoc-main { width: 100% !important; }

  .benedoc-main .bd-table,
  .benedoc-main .bd-ct-table,
  .benedoc-main .bd-hc-table,
  .benedoc-main .bd-addl-table {
    table-layout: fixed !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .benedoc-main table th,
  .benedoc-main table td {
    overflow-wrap: break-word !important;
    word-break: normal !important;
    hyphens: auto;
  }
  /* Los contenedores con scroll no sirven en papel: lo que sobresale se
     recorta en silencio. Se dejan fluir. */
  .benedoc-main .bd-table-scroll,
  .benedoc-main .bd-agepivot-scroll {
    overflow: visible !important;
    max-width: 100% !important;
  }

  /* Hueco muerto al principio: al ocultar el título del tema quedaban sus
     márgenes y los del contenedor. */
  .benedoc-main { margin-top: 0 !important; padding-top: 0 !important; }
  .benedoc-main > *:first-child { margin-top: 0 !important; }

  /* Viudas y huérfanas: una línea suelta al pie de página se ve descuidada. */
  .benedoc-main p,
  .benedoc-main li { orphans: 3; widows: 3; }
  .benedoc-main h2,
  .benedoc-main h3,
  .benedoc-main .bd-section-title,
  .benedoc-main .bd-section-head {
    break-after: avoid-page;
    page-break-after: avoid;
  }
}

/* 3.8.1: independent label-header role from CTM. Missing values remain
   invalid so existing header rules retain their original fallback. A label is
   never data-bd-group=1; no table JSON or group numbering changes are needed. */
.benedoc-main table thead th[data-bd-label-header],
.benedoc-main table thead th.bd-table-label-th {
  --bd-plan-header-bg: var(--bd-table-label-header-bg);
  --bd-plan-header-text: var(--bd-table-label-header-text);
}

/* 3.8.0: CTM supplies values. An unset slot stays invalid so the existing
   per-column / secondary / subheader fallback in each rule is used. */
.benedoc-main th[data-bd-group="1"] {
  --bd-plan-header-bg: var(--bd-table-group-1-bg);
  --bd-plan-header-text: var(--bd-table-group-1-text);
}
.benedoc-main th[data-bd-group="2"] {
  --bd-plan-header-bg: var(--bd-table-group-2-bg);
  --bd-plan-header-text: var(--bd-table-group-2-text);
}
.benedoc-main th[data-bd-group="3"] {
  --bd-plan-header-bg: var(--bd-table-group-3-bg);
  --bd-plan-header-text: var(--bd-table-group-3-text);
}
.benedoc-main th[data-bd-group="4"] {
  --bd-plan-header-bg: var(--bd-table-group-4-bg);
  --bd-plan-header-text: var(--bd-table-group-4-text);
}
.benedoc-main th[data-bd-group="5"] {
  --bd-plan-header-bg: var(--bd-table-group-5-bg);
  --bd-plan-header-text: var(--bd-table-group-5-text);
}
.benedoc-main th[data-bd-group="6"] {
  --bd-plan-header-bg: var(--bd-table-group-6-bg);
  --bd-plan-header-text: var(--bd-table-group-6-text);
}

.benedoc-main .bd-table-data-error pre { white-space:pre-wrap; overflow-wrap:anywhere; max-width:100%; }
.benedoc-main .bd-table-span-scroll { max-width:100%; min-width:0; }
.benedoc-main .bd-table-span-scroll:focus-visible { outline:2px solid var(--bd-accent); outline-offset:2px; }

/* ═══════════════════════════════════════════════════════════════════════════
   v3.9.0 — VISTA MÓVIL DEDICADA PARA TABLAS AGRUPADAS POR PLAN
   Generada en class-frontend.php (render_bt_mobile_cards). Por defecto está
   oculta; sólo sustituye a la tabla por debajo de 768px en pantalla. En
   escritorio, impresión y exportación PDF (captura a 900px) no aparece, así
   que la tabla sigue idéntica en esos contextos.

   Todos los colores salen de variables de CTM, con los mismos respaldos que
   la tabla: marca, modo oscuro y colores por grupo se heredan sin nada nuevo
   que configurar.
   ═══════════════════════════════════════════════════════════════════════════ */
.benedoc-main .bd-bt-cards { display: none !important; }

@media screen and (max-width: 768px) {
  .benedoc-main .bd-table-scroll.bd-bt-hide-mobile { display: none !important; }

  .benedoc-main .bd-bt-cards {
    display: flex !important;
    flex-direction: column;
    gap: 12px;
    margin: 4px 0 8px;
  }

  /* Banda de categoría — mismo tratamiento que la fila de grupo de la tabla */
  .benedoc-main .bd-bt-cards-group {
    margin: 10px 0 0;
    padding: 9px 14px;
    border-radius: 8px;
    background: var(--bd-table-group-bg, var(--bd-bg-section, #f1f5f9));
    color: var(--bd-table-group-text, var(--bd-text, #0f172a));
    font-size: calc(.72rem * var(--bd-fs,1));
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .benedoc-main .bd-bt-cards-group:first-child { margin-top: 0; }

  /* Tarjeta de servicio */
  .benedoc-main .bd-bt-card {
    background: var(--bd-card-bg, #ffffff);
    border: 1px solid var(--bd-border, #e2e8f0);
    border-radius: var(--bd-radius, 12px);
    padding: 14px 14px 12px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
  }
  .benedoc-main .bd-bt-card-title {
    margin: 0 0 10px !important;
    font-size: calc(.95rem * var(--bd-fs,1)) !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    color: var(--bd-text, #0f172a) !important;
    overflow-wrap: anywhere;
  }
  .benedoc-main .bd-bt-card-note {
    margin: -4px 0 10px !important;
    font-size: calc(.78rem * var(--bd-fs,1));
    line-height: 1.45;
    color: var(--bd-text-muted, #64748b);
  }

  /* Valor que abarca varios planes */
  .benedoc-main .bd-bt-all {
    margin: 0 0 10px;
    padding: 10px 12px;
    border-radius: 8px;
    background: var(--bd-bg-section, #f8fafc);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--bd-text, #0f172a);
  }

  /* Bloque de plan — la etiqueta usa el color de cabecera, y el color por
     grupo de CTM (bd_table_group_N_bg) cuando está configurado. */
  .benedoc-main .bd-bt-plan {
    --bd-bt-plan-bg:   var(--bd-table-header, #01164F);
    --bd-bt-plan-text: var(--bd-table-header-text, #ffffff);
    border-top: 1px solid var(--bd-border, #e2e8f0);
    padding-top: 10px;
    margin-top: 10px;
  }
  .benedoc-main .bd-bt-plan:first-of-type { border-top: 0; padding-top: 0; margin-top: 0; }
  .benedoc-main .bd-bt-plan--secondary {
    --bd-bt-plan-bg: var(--bd-table-header-oon, var(--bd-table-header, #334155));
  }
  .benedoc-main .bd-bt-plan[data-bd-group="1"] { --bd-bt-plan-bg: var(--bd-table-group-1-bg, var(--bd-table-header, #01164F)); --bd-bt-plan-text: var(--bd-table-group-1-text, var(--bd-table-header-text, #fff)); }
  .benedoc-main .bd-bt-plan[data-bd-group="2"] { --bd-bt-plan-bg: var(--bd-table-group-2-bg, var(--bd-table-header, #01164F)); --bd-bt-plan-text: var(--bd-table-group-2-text, var(--bd-table-header-text, #fff)); }
  .benedoc-main .bd-bt-plan[data-bd-group="3"] { --bd-bt-plan-bg: var(--bd-table-group-3-bg, var(--bd-table-header, #01164F)); --bd-bt-plan-text: var(--bd-table-group-3-text, var(--bd-table-header-text, #fff)); }
  .benedoc-main .bd-bt-plan[data-bd-group="4"] { --bd-bt-plan-bg: var(--bd-table-group-4-bg, var(--bd-table-header, #01164F)); --bd-bt-plan-text: var(--bd-table-group-4-text, var(--bd-table-header-text, #fff)); }
  .benedoc-main .bd-bt-plan[data-bd-group="5"] { --bd-bt-plan-bg: var(--bd-table-group-5-bg, var(--bd-table-header, #01164F)); --bd-bt-plan-text: var(--bd-table-group-5-text, var(--bd-table-header-text, #fff)); }
  .benedoc-main .bd-bt-plan[data-bd-group="6"] { --bd-bt-plan-bg: var(--bd-table-group-6-bg, var(--bd-table-header, #01164F)); --bd-bt-plan-text: var(--bd-table-group-6-text, var(--bd-table-header-text, #fff)); }

  .benedoc-main .bd-bt-plan-name {
    display: inline-block;
    margin: 0 0 8px !important;
    /* v4.0.4 — 999px (píldora) recortaba con sus curvas las esquinas del texto
       cuando el nombre ocupa varias líneas. 12px se ve igual en una línea y
       deja un rectángulo redondeado limpio en varias. */
    padding: 5px 12px !important;
    border-radius: 12px;
    background: var(--bd-bt-plan-bg);
    color: var(--bd-bt-plan-text) !important;
    font-size: calc(.7rem * var(--bd-fs,1)) !important;
    font-weight: 800 !important;
    letter-spacing: .06em;
    text-transform: uppercase;
    line-height: 1.4 !important;
  }

  /* Pares red → valor */
  .benedoc-main .bd-bt-kvs { margin: 0 !important; padding: 0 !important; }
  .benedoc-main .bd-bt-kv {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 2px 12px;
    padding: 6px 0;
  }
  .benedoc-main .bd-bt-kv + .bd-bt-kv { border-top: 1px dashed var(--bd-border, #e2e8f0); }
  .benedoc-main .bd-bt-kv dt {
    flex: 1 1 45%;
    min-width: 0;
    margin: 0;
    font-size: calc(.78rem * var(--bd-fs,1));
    line-height: 1.35;
    color: var(--bd-text-muted, #64748b);
  }
  .benedoc-main .bd-bt-kv dd {
    flex: 0 1 auto;
    margin: 0 0 0 auto;   /* si salta de línea, sigue alineado a la derecha con las demás cifras */
    max-width: 100%;
    text-align: right;
    font-size: calc(.9rem * var(--bd-fs,1));
    font-weight: 700;
    line-height: 1.35;
    font-variant-numeric: tabular-nums;
    color: var(--bd-text, #0f172a);
    overflow-wrap: anywhere;
  }
  .benedoc-main .bd-bt-plan-whole {
    font-size: calc(1rem * var(--bd-fs,1));
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--bd-text, #0f172a);
  }
}

/* Impresión: siempre la tabla, nunca las tarjetas */
@media print {
  .benedoc-main .bd-bt-cards { display: none !important; }
  .benedoc-main .bd-table-scroll.bd-bt-hide-mobile { display: block !important; }
}
/* Exportación PDF iniciada desde un móvil: el clon de html2canvas debe
   capturar la tabla, no las tarjetas. */
body.bd-pdf-exporting .benedoc-main .bd-bt-cards { display: none !important; }
body.bd-pdf-exporting .benedoc-main .bd-table-scroll.bd-bt-hide-mobile { display: block !important; }

/* ── v3.9.3 — Alineación y anchos de columna elegidos en el editor ──────────
   Solo se activan si la tabla trae column_align / column_widths /
   header_align / valign (clase .bd-tl). Aplican en escritorio, impresión y
   PDF (html2canvas captura a 900px). En móvil las tablas conservan su vista
   de tarjetas: forzar allí anchos fijos las rompería.
   Especificidad deliberadamente MENOR que las reglas móviles con !important. */
@media screen and (min-width: 769px), print {
  .benedoc-main table.bd-tl.bd-tl-fixed { table-layout: fixed !important; }
  .benedoc-main table.bd-tl td.bd-al-left { text-align: left !important; }
  .benedoc-main table.bd-tl td.bd-al-center { text-align: center !important; }
  .benedoc-main table.bd-tl td.bd-al-right { text-align: right !important; }
  .benedoc-main table.bd-tl.bd-tl-h-left thead th { text-align: left !important; }
  .benedoc-main table.bd-tl.bd-tl-h-center thead th { text-align: center !important; }
  .benedoc-main table.bd-tl.bd-tl-h-right thead th { text-align: right !important; }
  .benedoc-main table.bd-tl.bd-tl-v-top td,
  .benedoc-main table.bd-tl.bd-tl-v-top th { vertical-align: top !important; }
  .benedoc-main table.bd-tl.bd-tl-v-middle td,
  .benedoc-main table.bd-tl.bd-tl-v-middle th { vertical-align: middle !important; }
  .benedoc-main table.bd-tl.bd-tl-v-bottom td,
  .benedoc-main table.bd-tl.bd-tl-v-bottom th { vertical-align: bottom !important; }
}
/* Exportación PDF iniciada desde un móvil. */
body.bd-pdf-exporting .benedoc-main table.bd-tl.bd-tl-fixed { table-layout: fixed !important; }
body.bd-pdf-exporting .benedoc-main table.bd-tl td.bd-al-left { text-align: left !important; }
body.bd-pdf-exporting .benedoc-main table.bd-tl td.bd-al-center { text-align: center !important; }
body.bd-pdf-exporting .benedoc-main table.bd-tl td.bd-al-right { text-align: right !important; }
body.bd-pdf-exporting .benedoc-main table.bd-tl.bd-tl-h-left thead th { text-align: left !important; }
body.bd-pdf-exporting .benedoc-main table.bd-tl.bd-tl-h-center thead th { text-align: center !important; }
body.bd-pdf-exporting .benedoc-main table.bd-tl.bd-tl-h-right thead th { text-align: right !important; }
body.bd-pdf-exporting .benedoc-main table.bd-tl.bd-tl-v-top td,
body.bd-pdf-exporting .benedoc-main table.bd-tl.bd-tl-v-top th { vertical-align: top !important; }
body.bd-pdf-exporting .benedoc-main table.bd-tl.bd-tl-v-middle td,
body.bd-pdf-exporting .benedoc-main table.bd-tl.bd-tl-v-middle th { vertical-align: middle !important; }
body.bd-pdf-exporting .benedoc-main table.bd-tl.bd-tl-v-bottom td,
body.bd-pdf-exporting .benedoc-main table.bd-tl.bd-tl-v-bottom th { vertical-align: bottom !important; }

/* ── v3.9.4 — Peso del texto por columna / cabeceras (solo esta tabla) ──
   Los colores de cabecera por columna van en línea con !important desde PHP
   (BeneDoc_Table_Layout::header_style) para ganar al CTM sin tocarlo. */
.benedoc-main table.bd-tl td.bd-fw-bold   { font-weight: 700 !important; }
.benedoc-main table.bd-tl td.bd-fw-normal { font-weight: 400 !important; }
.benedoc-main table.bd-tl.bd-tl-hw-bold   thead th { font-weight: 700 !important; }
.benedoc-main table.bd-tl.bd-tl-hw-normal thead th { font-weight: 400 !important; }

/* ── v3.9.6 — Viñetas de texto convertidas en <ul> real ─────────────────
   Solo estructura: sin colores, variables ni estilos en línea. El color y
   la forma de la viñeta los controla el CSS global del sitio
   (p. ej. ul li::marker { color: … }). Esto únicamente evita la sangría de
   ~40px del navegador, que se come el ancho de celdas y tarjetas móviles,
   y alinea la lista a la izquierda aunque la columna esté centrada. */
.benedoc-main ul.bd-bullets {
  list-style: disc;
  margin: 0;
  padding-left: 1.15em;
  text-align: left;
}
.benedoc-main ul.bd-bullets li { margin: 0; padding: 0; }
.benedoc-main ul.bd-bullets li + li { margin-top: .25em; }

/* ── v3.9.8 — "Who Can Enroll": viñetas como lista real ─────────────────
   Antes el punto era un • de texto dentro de span.bd-elig-ico, inalcanzable
   para ul li::marker. Ahora esos ítems son <li> con viñeta propia. Solo
   estructura, sin colores: display:list-item es imprescindible porque un
   elemento con display:grid no genera ::marker. Los ítems con icono
   (familia, ✓) no cambian. */
.benedoc-main .bd-elig-list li.bd-elig-li--dot {
  display: list-item;
  list-style: disc;
  margin-left: 1.15em;
}
