/* =====================================================================
   Idaho Plan Finder — Real Benefit Solutions
   Palette measured from realbenefitsolutions.org (#0178BE primary,
   #009BED accent). Neutrals are biased blue so they sit with the brand
   instead of reading as default greys. Semantic colours (eligibility,
   attention, error) are deliberately outside the brand hue so they never
   read as decoration.

   Every rule is written .rbspf.rbspf: heavy enough to outrank a theme or
   page builder, light enough to avoid !important. The reset comes first,
   so component rules below win any tie on source order.
   ===================================================================== */

.rbspf{
  all:initial;
  display:block; box-sizing:border-box; width:100%;
  font-family:var(--body); font-size:16px; line-height:1.55; text-align:left;
  color:var(--ink); background:var(--surface);
  -webkit-font-smoothing:antialiased;

  --blue:#0178be;
  --blue-deep:#0a4e7c;
  --blue-ink:#08344f;
  --sky:#009bed;
  --sky-wash:#e8f4fc;
  --sky-line:#bfe0f5;

  --ink:#17242d;
  --slate:#566a77;
  --slate-soft:#7f95a3;
  --line:#dbe4ec;
  --line-soft:#eaf0f5;
  --surface:#f1f5f9;
  --card:#ffffff;
  --card-sunk:#f7fafc;

  --good:#1a7550;
  --bad:#a63a3a;
  --good-wash:#e7f4ee;
  --good-line:#a9d6c1;
  --alert:#9a6410;
  --alert-wash:#fdf3e2;
  --alert-line:#e8cf9f;
  --flag:#a63a3a;
  --flag-wash:#fbeded;

  --bronze:#a06544;
  --silver:#6d7a84;
  --gold:#a37a17;
  --gold-wash:#fdf6e6;
  --gold-ink:#7a5a10;

  --on-accent:#ffffff;
  --shadow:0 1px 2px rgba(8,52,79,.05), 0 6px 20px rgba(8,52,79,.06);
  --shadow-lift:0 2px 6px rgba(8,52,79,.09), 0 16px 40px rgba(8,52,79,.11);

  --display:"Futura PT","Futura PT Book",Jost,"Century Gothic",-apple-system,BlinkMacSystemFont,sans-serif;
  --body:"Source Sans 3","Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

  --radius:4px;
  --maxw:1240px;
}

/* ------------------------------ reset ------------------------------ */
.rbspf *,.rbspf *::before,.rbspf *::after{box-sizing:border-box}
.rbspf.rbspf h1,.rbspf.rbspf h2,.rbspf.rbspf h3,.rbspf.rbspf h4,.rbspf.rbspf p,
.rbspf.rbspf table,.rbspf.rbspf figure,.rbspf.rbspf ul,.rbspf.rbspf ol,.rbspf.rbspf form,
.rbspf.rbspf dl,.rbspf.rbspf dd,.rbspf.rbspf dt{
  margin:0; padding:0; text-transform:none; letter-spacing:normal; font-weight:400;
  text-align:left; text-shadow:none; float:none;
}
.rbspf.rbspf ul,.rbspf.rbspf ol,.rbspf.rbspf li{list-style:none}
.rbspf.rbspf table{border-collapse:collapse; border:0; width:auto; font-size:inherit}
.rbspf.rbspf th,.rbspf.rbspf td{background:none; border:0; text-align:left; font-weight:400; vertical-align:top; text-transform:none}
.rbspf.rbspf a{text-decoration:none; box-shadow:none; border:0; background:none; color:var(--blue)}
.rbspf.rbspf a:hover{color:var(--blue-deep); text-decoration:underline}
.rbspf.rbspf img,.rbspf.rbspf svg{max-width:100%; border:0; box-shadow:none; border-radius:0}
.rbspf.rbspf button,.rbspf.rbspf input,.rbspf.rbspf select,.rbspf.rbspf textarea,.rbspf.rbspf label{
  font-family:var(--body) !important;
  font-size:inherit; line-height:normal; letter-spacing:normal; text-transform:none;
  margin:0; box-shadow:none; min-height:0; height:auto; width:auto; float:none;
  border:1px solid var(--line); border-radius:var(--radius); background-image:none; text-shadow:none;
  color:var(--ink);
}
.rbspf.rbspf button{border:0; background:none; cursor:pointer; text-align:center}
.rbspf.rbspf label{border:0; display:inline-block}
.rbspf.rbspf input[type=checkbox]{appearance:none; -webkit-appearance:none; border:0; background:none}
.rbspf.rbspf input[type=number]{-moz-appearance:textfield}
.rbspf.rbspf input[type=number]::-webkit-outer-spin-button,
.rbspf.rbspf input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none; margin:0}
.rbspf.rbspf [hidden]{display:none !important}

.rbspf.rbspf h1,.rbspf.rbspf h2,.rbspf.rbspf h3,.rbspf.rbspf h4{font-family:var(--display); text-wrap:balance; color:var(--blue-ink)}
.rbspf.rbspf :focus-visible{outline:2px solid var(--sky); outline-offset:2px; border-radius:2px}
.rbspf.rbspf .tnum{font-variant-numeric:tabular-nums}
.rbspf.rbspf .sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.rbspf.rbspf .wrap{max-width:var(--maxw); margin:0 auto; padding:0}
.rbspf.rbspf.has-tray .wrap{padding-bottom:104px}

/* ------------------------------ buttons ---------------------------- */
.rbspf.rbspf .btn{
  font-family:var(--display); font-size:14px; letter-spacing:.06em; text-transform:uppercase;
  border:1px solid transparent; border-radius:var(--radius); padding:10px 18px;
  cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:var(--blue); color:var(--on-accent); transition:background .15s, color .15s, border-color .15s;
}
.rbspf.rbspf .btn:hover{background:var(--blue-deep); color:var(--on-accent); text-decoration:none}
.rbspf.rbspf .btn[disabled]{opacity:.45; cursor:not-allowed}
.rbspf.rbspf .btn.lg{padding:13px 26px; font-size:15px}
.rbspf.rbspf .btn.sm{padding:7px 13px; font-size:12.5px}
.rbspf.rbspf .btn.ghost{background:transparent; color:var(--blue); border-color:var(--line)}
.rbspf.rbspf .btn.ghost:hover{background:var(--sky-wash); border-color:var(--blue); color:var(--blue-deep)}
.rbspf.rbspf .btn.quiet{background:transparent; color:var(--slate); border-color:transparent; text-transform:none; letter-spacing:0; font-family:var(--body); padding:8px 10px}
.rbspf.rbspf .btn.quiet:hover{color:var(--blue); background:var(--sky-wash)}

/* ------------------------------ intake ----------------------------- */
.rbspf.rbspf .lede{max-width:62ch; margin:0 0 24px}
.rbspf.rbspf .lede h1{font-size:clamp(27px,4vw,38px); font-weight:400; letter-spacing:-.01em; line-height:1.15}
.rbspf.rbspf .lede p{margin:12px 0 0; color:var(--slate); font-size:17px}

.rbspf.rbspf .sheet{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden}
.rbspf.rbspf .step{border-top:1px solid var(--line-soft); padding:24px 28px}
.rbspf.rbspf .step:first-child{border-top:0}
.rbspf.rbspf .step-head{display:flex; align-items:flex-start; gap:12px; margin-bottom:18px}
.rbspf.rbspf .step-num{
  font-family:var(--display); font-size:12px; letter-spacing:.04em; color:var(--on-accent); background:var(--blue);
  width:24px; height:24px; border-radius:50%; display:grid; place-items:center; flex:none; margin-top:2px;
}
.rbspf.rbspf .step-head h2{font-size:20px; font-weight:400}
.rbspf.rbspf .step-head p{margin:2px 0 0; color:var(--slate-soft); font-size:14px}

.rbspf.rbspf .fields{display:flex; flex-wrap:wrap; gap:18px}
.rbspf.rbspf .field{display:flex; flex-direction:column; gap:6px; min-width:0}
.rbspf.rbspf .field label,.rbspf.rbspf .lbl{
  font-family:var(--display); font-size:11.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--slate);
}
.rbspf.rbspf .field .opt{letter-spacing:0; text-transform:none; color:var(--slate-soft); font-family:var(--body); font-size:12px}
.rbspf.rbspf .field .hint{font-size:12.5px; color:var(--slate-soft)}
.rbspf.rbspf input[type=text],.rbspf.rbspf input[type=number],.rbspf.rbspf input[type=email],
.rbspf.rbspf input[type=tel],.rbspf.rbspf input[type=date],.rbspf.rbspf select,.rbspf.rbspf textarea{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:9px 11px; font-size:15.5px; min-width:0; color:var(--ink);
}
.rbspf.rbspf input:focus,.rbspf.rbspf select:focus,.rbspf.rbspf textarea:focus{border-color:var(--sky)}
.rbspf.rbspf .w-zip{width:120px} .rbspf.rbspf .w-year{width:150px}
.rbspf.rbspf .w-date{width:190px} .rbspf.rbspf .w-county{width:230px} .rbspf.rbspf .w-money{width:190px}
.rbspf.rbspf .money-in{position:relative; display:flex; align-items:center}
.rbspf.rbspf .money-in span{position:absolute; left:11px; color:var(--slate-soft); font-size:15.5px}
.rbspf.rbspf .money-in input{padding-left:24px; width:100%}

.rbspf.rbspf .hh{width:100%; font-size:14.5px}
.rbspf.rbspf .hh th{
  font-family:var(--display); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--slate); text-align:left; padding:0 10px 8px; border-bottom:1px solid var(--line);
  white-space:nowrap; line-height:1.3; vertical-align:bottom;
}
.rbspf.rbspf .hh th.c,.rbspf.rbspf .hh td.c{text-align:center}
.rbspf.rbspf .hh td{padding:10px; border-bottom:1px solid var(--line-soft); vertical-align:middle}
.rbspf.rbspf .hh tr:last-child td{border-bottom:0}
.rbspf.rbspf .hh .who{font-family:var(--display); font-size:15px; color:var(--blue-ink); white-space:nowrap}
.rbspf.rbspf .hh .who small{display:block; font-family:var(--body); font-size:12px; color:var(--slate-soft)}
.rbspf.rbspf .hh .age{font-size:12.5px; color:var(--slate-soft); margin-left:8px; white-space:nowrap}
.rbspf.rbspf .hh-scroll{overflow-x:auto}
.rbspf.rbspf .addrow{display:flex; gap:10px; margin-top:14px; flex-wrap:wrap}
.rbspf.rbspf .rowdrop{background:transparent;border:0;color:var(--slate-soft);cursor:pointer;padding:4px 6px;line-height:1;border-radius:3px}
.rbspf.rbspf .rowdrop:hover{color:var(--flag); background:var(--flag-wash)}

.rbspf.rbspf .dob{display:inline-flex; align-items:center; gap:3px}
.rbspf.rbspf .dob input{width:2.9em; text-align:center; padding:9px 4px; font-variant-numeric:tabular-nums}
.rbspf.rbspf .dob input.y{width:4.4em}
.rbspf.rbspf .dob .sep{color:var(--slate-soft); font-size:15px; user-select:none}
.rbspf.rbspf .dob.bad input{border-color:var(--flag); background:var(--flag-wash)}

.rbspf.rbspf .sw{position:relative; display:inline-block; width:38px; height:21px; flex:none}
.rbspf.rbspf .sw input{position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer}
.rbspf.rbspf .sw i{position:absolute; inset:0; background:var(--line); border-radius:11px; transition:background .15s; pointer-events:none}
.rbspf.rbspf .sw i::after{content:""; position:absolute; top:2px; left:2px; width:17px; height:17px; border-radius:50%; background:#fff; transition:transform .15s; box-shadow:0 1px 2px rgba(0,0,0,.25)}
.rbspf.rbspf .sw input:checked + i{background:var(--blue)}
.rbspf.rbspf .sw input:checked + i::after{transform:translateX(17px)}
.rbspf.rbspf .sw input:disabled + i{opacity:.35}
.rbspf.rbspf .sw input:focus-visible + i{outline:2px solid var(--sky); outline-offset:2px}

.rbspf.rbspf .submitbar{
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
  padding:20px 28px; background:var(--card-sunk); border-top:1px solid var(--line);
}
.rbspf.rbspf .submitbar .fine{font-size:13px; color:var(--slate-soft); max-width:58ch; margin:0}

.rbspf.rbspf .alert{
  border-left:3px solid var(--flag); background:var(--flag-wash);
  padding:12px 16px; margin:0 0 20px; border-radius:0 var(--radius) var(--radius) 0; font-size:14.5px;
}
.rbspf.rbspf .alert b{font-family:var(--display); display:block; color:var(--flag)}
.rbspf.rbspf .alert.info{border-color:var(--blue); background:var(--sky-wash)}
.rbspf.rbspf .alert.info b{color:var(--blue-deep)}

.rbspf.rbspf .loading{display:flex; flex-direction:column; align-items:center; gap:14px; padding:80px 20px; text-align:center}
.rbspf.rbspf .spin{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:rbspf-sp .8s linear infinite}
@keyframes rbspf-sp{to{transform:rotate(360deg)}}
.rbspf.rbspf .loading p{margin:0;color:var(--slate);font-size:15px}
@media (prefers-reduced-motion:reduce){.rbspf.rbspf .spin{animation-duration:2.4s}}

/* --------------------------- agent bar ----------------------------- */
.rbspf.rbspf .agentbar{
  display:flex; align-items:flex-end; gap:16px; flex-wrap:wrap;
  background:var(--card); border:1px solid var(--line); border-left:3px solid var(--sky);
  border-radius:var(--radius); padding:12px 16px; margin-bottom:20px;
}
.rbspf.rbspf .agentbar-tag{
  font-family:var(--display); font-size:11.5px; letter-spacing:.13em; text-transform:uppercase;
  color:var(--sky); align-self:center; white-space:nowrap;
}
.rbspf.rbspf .agentbar .field{gap:5px}
.rbspf.rbspf .agentbar input{width:230px; max-width:100%}
.rbspf.rbspf .agentbar .btn{margin-left:auto}

/* --------------------------- eligibility --------------------------- */
.rbspf.rbspf .summary{
  background:var(--card); border:1px solid var(--line); border-left:4px solid var(--blue);
  border-radius:var(--radius); box-shadow:var(--shadow); padding:24px 28px; margin-bottom:18px;
  display:flex; gap:36px; flex-wrap:wrap; align-items:flex-start; justify-content:space-between;
}
.rbspf.rbspf .credit{display:flex; flex-direction:column; gap:3px}
.rbspf.rbspf .credit .amt{font-family:var(--display); font-size:clamp(38px,6vw,54px); line-height:1; color:var(--blue); letter-spacing:-.025em}
.rbspf.rbspf .credit .amt small{font-size:.38em; color:var(--slate); letter-spacing:0}
.rbspf.rbspf .credit .sub{font-size:14.5px; color:var(--slate); max-width:34ch}
.rbspf.rbspf .facts{display:flex; gap:30px; flex-wrap:wrap}
.rbspf.rbspf .fact{min-width:104px}
.rbspf.rbspf .fact .lbl{display:block; margin-bottom:4px}
.rbspf.rbspf .fact .v{display:block; font-family:var(--display); font-size:20px; color:var(--blue-ink); line-height:1.2}
.rbspf.rbspf .fact .n{display:block; font-size:12.5px; color:var(--slate-soft); margin-top:2px}

/* full-width attention bands: Medicaid, CHIP, Medicare, cost-sharing */
.rbspf.rbspf .callout{
  display:flex; gap:16px; align-items:flex-start;
  border:1px solid var(--line); border-radius:var(--radius); background:var(--card);
  padding:20px 24px; margin-bottom:14px; box-shadow:var(--shadow);
}
.rbspf.rbspf .callout .co-icon{
  width:40px; height:40px; border-radius:50%; flex:none; display:grid; place-items:center;
}
.rbspf.rbspf .callout .co-icon svg{width:22px; height:22px; display:block}
.rbspf.rbspf .callout h3{font-size:19px; font-weight:400; margin-bottom:5px}
.rbspf.rbspf .callout p{font-size:15px; color:var(--slate); max-width:70ch}
.rbspf.rbspf .callout p + p{margin-top:8px}
.rbspf.rbspf .callout .co-who{
  display:flex; gap:6px; flex-wrap:wrap; margin:10px 0 2px;
}
.rbspf.rbspf .callout .co-who span{
  font-size:13px; padding:3px 10px; border-radius:12px; background:var(--card-sunk);
  border:1px solid var(--line); color:var(--ink);
}
.rbspf.rbspf .callout .co-body{flex:1 1 340px; min-width:0}
.rbspf.rbspf .callout .co-act{display:flex; gap:10px; flex-wrap:wrap; align-items:center; flex:none}
@media (min-width:940px){
  .rbspf.rbspf .callout{align-items:center}
  .rbspf.rbspf .callout .co-act{margin-left:auto; padding-left:20px; flex-direction:column; align-items:stretch}
}
@media (max-width:939px){ .rbspf.rbspf .callout .co-act{margin-top:14px; width:100%} }
.rbspf.rbspf .callout.attn{border-left:4px solid var(--alert); background:var(--alert-wash); border-color:var(--alert-line)}
.rbspf.rbspf .callout.attn .co-icon{background:#fff; color:var(--alert); border:1px solid var(--alert-line)}
.rbspf.rbspf .callout.attn h3{color:#6f4708}
.rbspf.rbspf .callout.attn p{color:#6f4708; opacity:.92}
.rbspf.rbspf .callout.attn .co-who span{background:#fff; border-color:var(--alert-line)}
.rbspf.rbspf .callout.attn a:not(.btn){color:#6f4708; text-decoration:underline}
.rbspf.rbspf .callout.tip a:not(.btn){color:#13583c; text-decoration:underline}
.rbspf.rbspf .credit .amt{overflow-wrap:anywhere}
.rbspf.rbspf .callout.attn .btn{background:var(--alert); border-color:var(--alert)}
.rbspf.rbspf .callout.attn .btn:hover{background:#7d5008}
.rbspf.rbspf .callout.attn .btn.ghost{background:transparent; color:#6f4708; border-color:var(--alert-line)}
.rbspf.rbspf .callout.attn .btn.ghost:hover{background:#fff}
.rbspf.rbspf .callout.tip{border-left:4px solid var(--good); background:var(--good-wash); border-color:var(--good-line)}
.rbspf.rbspf .callout.tip .co-icon{background:#fff; color:var(--good); border:1px solid var(--good-line)}
.rbspf.rbspf .callout.tip h3{color:#13583c}
.rbspf.rbspf .callout.tip p{color:#13583c; opacity:.92}
.rbspf.rbspf .callout.tip .btn{background:var(--good); border-color:var(--good)}
.rbspf.rbspf .callout.tip .btn:hover{background:#14603f}
.rbspf.rbspf .callout.note{border-left:4px solid var(--blue); background:var(--sky-wash); border-color:var(--sky-line)}
.rbspf.rbspf .callout.note .co-icon{background:#fff; color:var(--blue); border:1px solid var(--sky-line)}

/* plans hidden behind a click when the household looks Medicaid-eligible */
.rbspf.rbspf .plans-veil{
  border:1px dashed var(--line); border-radius:var(--radius); background:var(--card);
  padding:26px; text-align:center; margin-bottom:14px;
}
.rbspf.rbspf .plans-veil p{color:var(--slate); font-size:15px; max-width:62ch; margin:0 auto 14px}

/* --------------------------- results bar --------------------------- */
.rbspf.rbspf .resbar{display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; margin:26px 0 14px}
.rbspf.rbspf .resbar h2{font-size:22px; font-weight:400}
.rbspf.rbspf .resbar h2 b{font-weight:500; color:var(--blue)}

.rbspf.rbspf .toolbar{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:14px 16px; margin-bottom:18px; display:flex; gap:18px; flex-wrap:wrap; align-items:flex-end;
}
.rbspf.rbspf .toolbar .field{gap:6px}
.rbspf.rbspf .toolbar select,.rbspf.rbspf .toolbar input{font-size:14px; padding:7px 9px}
.rbspf.rbspf .toolbar-count{margin-left:auto; font-size:13px; color:var(--slate-soft); align-self:center}
.rbspf.rbspf .chips{display:flex; gap:6px; flex-wrap:wrap}
.rbspf.rbspf .chip{
  font-family:var(--display); font-size:12px; letter-spacing:.07em; text-transform:uppercase;
  border:1px solid var(--line); background:var(--card); color:var(--slate);
  padding:6px 12px; border-radius:2px; cursor:pointer;
}
.rbspf.rbspf .chip:hover{border-color:var(--slate-soft)}
.rbspf.rbspf .chip[aria-pressed="true"]{background:var(--blue); border-color:var(--blue); color:var(--on-accent)}
.rbspf.rbspf .chip.bronze[aria-pressed="true"]{background:var(--bronze); border-color:var(--bronze)}
.rbspf.rbspf .chip.silver[aria-pressed="true"]{background:var(--silver); border-color:var(--silver)}
.rbspf.rbspf .chip.gold[aria-pressed="true"]{background:var(--gold); border-color:var(--gold)}

/* ---------------------------- plan cards --------------------------- */
.rbspf.rbspf .plans{display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:16px; align-items:start}
.rbspf.rbspf .plan{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  display:flex; flex-direction:column; position:relative; transition:box-shadow .15s, border-color .15s;
}
.rbspf.rbspf .plan:hover{box-shadow:var(--shadow)}
.rbspf.rbspf .plan.picked{border-color:var(--blue); box-shadow:0 0 0 2px rgba(1,120,190,.18)}
.rbspf.rbspf .plan-body{padding:16px 18px 14px; display:flex; flex-direction:column; gap:11px; flex:1}
.rbspf.rbspf .plan-top{display:flex; align-items:center; gap:11px; justify-content:space-between}
.rbspf.rbspf .carrier{display:flex; align-items:center; gap:10px; min-width:0}
.rbspf.rbspf .logo{
  width:96px; height:34px; flex:none; display:flex; align-items:center; justify-content:flex-start;
}
.rbspf.rbspf .logo img{max-width:100%; max-height:34px; width:auto; height:auto; object-fit:contain; object-position:left center}
.rbspf.rbspf .mark{
  width:34px; height:34px; border-radius:3px; flex:none; display:grid; place-items:center;
  font-family:var(--display); font-size:12px; letter-spacing:.03em; color:#fff;
}
.rbspf.rbspf .carrier .nm{font-size:12.5px; color:var(--slate); line-height:1.25; min-width:0}
.rbspf.rbspf .metal{
  font-family:var(--display); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase;
  padding:4px 9px; border-radius:2px; color:#fff; white-space:nowrap; flex:none;
}
.rbspf.rbspf .metal.BRONZE{background:var(--bronze)}
.rbspf.rbspf .metal.SILVER{background:var(--silver)}
.rbspf.rbspf .metal.GOLD{background:var(--gold)}
.rbspf.rbspf .metal.PLATINUM{background:var(--blue-deep)}
.rbspf.rbspf .metal.CATASTROPHIC{background:var(--slate)}
.rbspf.rbspf .plan h3{font-size:16.5px; line-height:1.3; font-weight:400}
.rbspf.rbspf .price{display:flex; align-items:baseline; gap:8px; flex-wrap:wrap}
.rbspf.rbspf .price .now{font-family:var(--display); font-size:31px; color:var(--ink); letter-spacing:-.025em; line-height:1}
.rbspf.rbspf .price .per{font-size:13px; color:var(--slate-soft)}
.rbspf.rbspf .price .was{font-size:13.5px; color:var(--slate-soft); text-decoration:line-through}
.rbspf.rbspf .credit-note{font-size:12.5px; color:var(--good)}
.rbspf.rbspf .flag-row{display:flex; gap:6px; flex-wrap:wrap}
.rbspf.rbspf .flag{
  font-family:var(--display); font-size:10.5px; letter-spacing:.09em; text-transform:uppercase;
  padding:3px 8px; border-radius:2px; border:1px solid var(--good-line); color:var(--good); background:var(--good-wash);
}
.rbspf.rbspf .kv{display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px 12px; padding-top:11px; border-top:1px solid var(--line-soft)}
.rbspf.rbspf .kv div{font-size:12px; color:var(--slate); line-height:1.3}
.rbspf.rbspf .kv b{display:block; font-family:var(--display); font-size:16px; color:var(--ink); margin-top:2px}
.rbspf.rbspf .tags{display:flex; gap:6px; flex-wrap:wrap}
.rbspf.rbspf .tag{font-size:11.5px; color:var(--slate); border:1px solid var(--line); padding:2px 7px; border-radius:2px}
.rbspf.rbspf .tag.hsa{color:var(--good); border-color:var(--good-line); background:var(--good-wash)}
.rbspf.rbspf .doclinks{display:flex; gap:14px; flex-wrap:wrap; padding-top:10px; border-top:1px solid var(--line-soft)}
.rbspf.rbspf .doclinks a{font-size:13px; display:inline-flex; align-items:center; gap:5px}
.rbspf.rbspf .doclinks svg{width:13px; height:13px; flex:none; opacity:.7}
.rbspf.rbspf .plan-foot{display:flex; gap:8px; align-items:center; padding:12px 18px; border-top:1px solid var(--line-soft); background:var(--card-sunk)}
.rbspf.rbspf .plan-foot .pick{flex:1}
.rbspf.rbspf .more{
  font-family:var(--body); font-size:13.5px; color:var(--blue); background:none; border:0; cursor:pointer;
  display:inline-flex; align-items:center; gap:5px; padding:6px 8px; border-radius:3px; white-space:nowrap;
}
.rbspf.rbspf .more:hover{background:var(--sky-wash)}
/* "Get started" sits quietly beside the details toggle: available on every
   card without competing with the compare button for attention. */
.rbspf.rbspf .start{
  font-family:var(--body); font-size:13.5px; color:var(--blue); background:none;
  border:0; cursor:pointer; display:inline-flex; align-items:center; gap:5px;
  padding:6px 8px; border-radius:3px; white-space:nowrap;
}
.rbspf.rbspf .start svg{transition:transform .15s}
.rbspf.rbspf .start:hover{background:var(--sky-wash)}
.rbspf.rbspf .start:hover svg{transform:translateX(2px)}
.rbspf.rbspf .plan:hover .start{color:var(--blue-deep)}

.rbspf.rbspf .regplan{
  display:flex; flex-direction:column; gap:2px; padding:12px 15px; margin:0 0 4px;
  border-left:3px solid var(--blue); background:var(--sky-wash); border-radius:3px;
}
.rbspf.rbspf .regplan .lbl{
  font-family:var(--display); font-size:10.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--slate-soft);
}
.rbspf.rbspf .regplan strong{font-size:15px; font-weight:600; color:var(--blue-ink); line-height:1.35}
.rbspf.rbspf .regplan .pr{font-size:13.5px; color:var(--slate)}
.rbspf.rbspf .more .car{transition:transform .15s}
.rbspf.rbspf .more[aria-expanded="true"] .car{transform:rotate(180deg)}

/* expanded detail */
.rbspf.rbspf .detail{border-top:1px solid var(--line); padding:16px 18px 18px; background:var(--card-sunk)}
.rbspf.rbspf .detail h4{
  font-family:var(--display); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue-deep); margin:16px 0 7px; padding-bottom:5px; border-bottom:1px solid var(--line);
}
.rbspf.rbspf .detail h4:first-child{margin-top:0}
.rbspf.rbspf .dl{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:5px 14px; font-size:13.5px}
.rbspf.rbspf .dl dt{color:var(--slate); min-width:0}
.rbspf.rbspf .dl dd{color:var(--ink); text-align:right; min-width:0}
.rbspf.rbspf .dl dd .oon{display:block; font-size:12px; color:var(--slate-soft); margin-top:1px}

/* ------------------------------ tray ------------------------------- */
.rbspf.rbspf .tray{
  position:sticky; bottom:0; z-index:30; margin:24px 0 -104px; padding:14px 18px 18px;
  background:var(--card); border-top:2px solid var(--blue); box-shadow:0 -6px 24px rgba(8,52,79,.10);
  border-radius:var(--radius) var(--radius) 0 0;
  display:flex; gap:16px; align-items:center; flex-wrap:wrap; justify-content:space-between;
}
.rbspf.rbspf .tray-slots{display:flex; gap:8px; flex-wrap:wrap; align-items:center}
.rbspf.rbspf .tray-actions{display:flex; gap:8px; align-items:center; margin-left:auto}
.rbspf.rbspf .slot{
  border:1px solid var(--blue); background:var(--sky-wash); border-radius:var(--radius);
  padding:7px 10px; min-width:130px; max-width:186px; font-size:12.5px; color:var(--ink);
  display:flex; align-items:center; gap:8px;
}
.rbspf.rbspf .slot .t{overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:1.25}
.rbspf.rbspf .slot button{background:transparent;border:0;color:var(--slate);cursor:pointer;padding:0 2px;font-size:15px;line-height:1}
.rbspf.rbspf .slot button:hover{color:var(--flag)}
.rbspf.rbspf .slot-hint{font-size:13px; color:var(--slate-soft); padding:0 4px}

/* ---------------------------- comparison --------------------------- */
.rbspf.rbspf .cmp-head{display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:16px}
.rbspf.rbspf .cmp-head h2{font-size:26px; font-weight:400}
.rbspf.rbspf .cmp-head .who{font-size:14px; color:var(--slate); margin-top:3px}
.rbspf.rbspf .cmp-actions{display:flex; gap:8px; flex-wrap:wrap}
.rbspf.rbspf .matrix-scroll{overflow-x:auto; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow)}
.rbspf.rbspf table.matrix{border-collapse:separate; border-spacing:0; width:100%; font-size:14px}
.rbspf.rbspf table.matrix th,.rbspf.rbspf table.matrix td{padding:11px 14px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line-soft)}
.rbspf.rbspf table.matrix thead th{position:sticky; top:0; z-index:3; background:var(--card); border-bottom:2px solid var(--blue); vertical-align:bottom; padding:14px}
.rbspf.rbspf table.matrix .rowlbl{
  position:sticky; left:0; z-index:2; background:var(--card); width:214px; min-width:214px;
  font-family:var(--display); font-size:13.5px; color:var(--slate); border-right:1px solid var(--line);
}
.rbspf.rbspf table.matrix thead .rowlbl{z-index:4}
.rbspf.rbspf table.matrix .rowlbl .note{display:block; font-family:var(--body); font-size:12px; color:var(--slate-soft); margin-top:2px; line-height:1.35}
.rbspf.rbspf table.matrix tbody tr:hover td:not(.rowlbl){background:var(--card-sunk)}
.rbspf.rbspf .grp td{
  background:var(--sky-wash); font-family:var(--display); font-size:11.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--blue-deep); padding:9px 14px;
  border-top:1px solid var(--sky-line); border-bottom:1px solid var(--sky-line);
}
.rbspf.rbspf .mh{display:flex; flex-direction:column; gap:9px; min-width:206px}
.rbspf.rbspf .mh .h-top{display:flex; align-items:center; gap:8px; justify-content:space-between}
.rbspf.rbspf .mh .logo{width:86px; height:30px}
.rbspf.rbspf .mh .logo img{max-height:30px}
.rbspf.rbspf .mh h3{font-size:15px; line-height:1.28; font-weight:400}
.rbspf.rbspf .mh .h-issuer{font-size:12.5px; color:var(--slate)}
.rbspf.rbspf .mh .h-price{font-family:var(--display); font-size:27px; color:var(--ink); letter-spacing:-.025em; line-height:1}
.rbspf.rbspf .mh .h-price small{font-size:.44em; color:var(--slate-soft); letter-spacing:0}
.rbspf.rbspf .mh .h-was{font-size:12.5px; color:var(--slate-soft)}
.rbspf.rbspf .mh .drop{align-self:flex-start}
.rbspf.rbspf td.best{background:var(--good-wash) !important; position:relative}
.rbspf.rbspf td.best .bestflag{
  display:inline-block; margin-left:7px; vertical-align:2px;
  font-family:var(--display); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--good); background:#fff; border:1px solid var(--good-line); padding:1px 6px; border-radius:2px;
}
.rbspf.rbspf td.num{font-family:var(--display); font-size:17px; font-variant-numeric:tabular-nums; color:var(--ink)}
.rbspf.rbspf td.num.em{font-size:19px}
.rbspf.rbspf .oon{display:block; font-size:12.5px; color:var(--slate-soft); margin-top:3px; line-height:1.35}
.rbspf.rbspf .na{color:var(--slate-soft)}
.rbspf.rbspf .links a{display:inline-block; margin-right:12px; font-size:13px}
.rbspf.rbspf .matrix-note{font-size:13px; color:var(--slate-soft); margin-top:12px; max-width:88ch}

/* ------------------------------ modal ------------------------------ */
.rbspf.rbspf .modal{
  position:fixed; inset:0; z-index:100000; background:rgba(8,52,79,.45);
  display:flex; align-items:center; justify-content:center; padding:20px; overflow-y:auto;
}
.rbspf.rbspf .modal-card{
  background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow-lift);
  width:100%; max-width:470px; padding:26px 28px 22px; position:relative; margin:auto;
}
.rbspf.rbspf .modal-card h3{font-size:21px; font-weight:400}
.rbspf.rbspf .modal-sub{font-size:14px; color:var(--slate); margin-top:5px}
.rbspf.rbspf .modal-x{position:absolute; top:10px; right:12px; font-size:24px; line-height:1; color:var(--slate-soft); background:none; border:0; cursor:pointer; padding:4px 8px}
.rbspf.rbspf .modal-x:hover{color:var(--ink)}
.rbspf.rbspf .modal-card form{display:flex; flex-direction:column; gap:14px; margin-top:18px}
.rbspf.rbspf .modal-card input[type=email],.rbspf.rbspf .modal-card input[type=text],
.rbspf.rbspf .modal-card input[type=tel],.rbspf.rbspf .modal-card select,.rbspf.rbspf .modal-card textarea{width:100%}
.rbspf.rbspf .modal-card textarea{resize:vertical; font-size:15px; line-height:1.5}
.rbspf.rbspf .check{display:flex; align-items:flex-start; gap:9px; font-size:14px; color:var(--slate); cursor:pointer; line-height:1.4}
.rbspf.rbspf .check input{
  appearance:none; -webkit-appearance:none; width:17px; height:17px; flex:none; margin-top:1px;
  border:1px solid var(--line); border-radius:3px; background:var(--card); cursor:pointer; position:relative;
}
.rbspf.rbspf .check input:checked{background:var(--blue); border-color:var(--blue)}
.rbspf.rbspf .check input:checked::after{
  content:""; position:absolute; left:5px; top:1px; width:5px; height:10px;
  border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg);
}
.rbspf.rbspf .hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.rbspf.rbspf .modal-foot{display:flex; gap:10px; justify-content:flex-end; align-items:center; margin-top:2px}
.rbspf.rbspf .modal-fine{font-size:12px; color:var(--slate-soft); line-height:1.5}
.rbspf.rbspf .confirm{
  background:var(--sky-wash); border:1px solid var(--sky-line); border-radius:var(--radius);
  padding:12px 14px; font-size:14px; color:var(--blue-ink); line-height:1.5;
}
.rbspf.rbspf .confirm b{font-weight:400; font-family:var(--display); word-break:break-all}
.rbspf.rbspf .sent{display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; padding:14px 0 4px}
.rbspf.rbspf .sent .tick{width:44px; height:44px; border-radius:50%; background:var(--good-wash); color:var(--good); display:grid; place-items:center; border:1px solid var(--good-line)}
.rbspf.rbspf .sent p{color:var(--slate); font-size:14.5px}

/* ---------------------------- responsive --------------------------- */
@media (max-width:860px){
  .rbspf.rbspf .summary{padding:20px; gap:22px}
  .rbspf.rbspf .kv{grid-template-columns:1fr 1fr}
  .rbspf.rbspf table.matrix .rowlbl{width:160px; min-width:160px}
}
@media (max-width:600px){
  .rbspf.rbspf .step{padding:20px 16px}
  .rbspf.rbspf .submitbar{padding:16px}
  .rbspf.rbspf .plans{grid-template-columns:1fr}
  .rbspf.rbspf .callout{flex-direction:column; gap:12px; padding:18px}
  .rbspf.rbspf .tray{margin:24px 0 -104px; padding:12px 14px 16px}
  .rbspf.rbspf .tray-actions{margin-left:0; width:100%}
  .rbspf.rbspf .tray-actions .btn{flex:1}
  .rbspf.rbspf .cmp-actions{width:100%}
  .rbspf.rbspf .cmp-actions .btn{flex:1}
}

/* -------------- print: only the fallback path uses this ------------ */
@media print{
  .rbspf.rbspf .agentbar,.rbspf.rbspf .toolbar,.rbspf.rbspf .tray,
  .rbspf.rbspf .cmp-actions,.rbspf.rbspf .modal{display:none !important}
}

/* --------------------------- agent card ---------------------------- */
.rbspf.rbspf .agentcard{
  display:flex; align-items:center; gap:14px; margin-top:22px;
  background:var(--card); border:1px solid var(--line); border-left:3px solid var(--blue);
  border-radius:var(--radius); padding:14px 18px;
}
.rbspf.rbspf .agentcard-photo{width:56px; height:56px; border-radius:50%; object-fit:cover; flex:none}
.rbspf.rbspf .agentcard-body{display:flex; flex-direction:column; gap:2px; min-width:0}
.rbspf.rbspf .agentcard-body strong{font-family:var(--display); font-size:18px; color:var(--blue-ink); font-weight:400}
.rbspf.rbspf .agentcard-office{font-size:12.5px; color:var(--slate-soft)}
.rbspf.rbspf .agentcard-links{display:flex; gap:14px; flex-wrap:wrap; margin-top:4px; font-size:13.5px}
.rbspf.rbspf .agentbar select{width:230px; max-width:100%}

/* ---------------------------------------------------------------------
   Phones. The household table has seven columns and cannot usefully
   shrink, so below 700px each member becomes a card and the switches get
   their own labels. Everything else that could push the page sideways is
   pinned to the viewport width.
   --------------------------------------------------------------------- */
.rbspf.rbspf .swrow{display:inline-flex; align-items:center; gap:10px}
.rbspf.rbspf .swlbl{display:none}

@media (max-width:700px){
  .rbspf.rbspf .hh-scroll{overflow-x:visible}
  .rbspf.rbspf .hh,.rbspf.rbspf .hh tbody,.rbspf.rbspf .hh tr,.rbspf.rbspf .hh td{display:block; width:auto}
  .rbspf.rbspf .hh thead{display:none}
  .rbspf.rbspf .hh tr{
    border:1px solid var(--line); border-radius:var(--radius); padding:14px 16px 10px;
    margin-bottom:12px; background:var(--card-sunk); position:relative;
  }
  .rbspf.rbspf .hh td{padding:0; border:0; text-align:left}
  .rbspf.rbspf .hh td.c{text-align:left}
  .rbspf.rbspf .hh .who{font-size:16px; margin-bottom:10px; display:block}
  .rbspf.rbspf .hh td:nth-child(2){margin-bottom:6px}
  .rbspf.rbspf .swrow{display:flex; width:100%; justify-content:space-between; padding:9px 0; border-top:1px solid var(--line-soft)}
  .rbspf.rbspf .swlbl{display:block; font-size:14.5px; color:var(--slate); line-height:1.3; padding-right:12px}
  .rbspf.rbspf .rowdrop{position:absolute; top:10px; right:10px; font-size:18px}
  .rbspf.rbspf .hh td:last-child{padding:0}

  .rbspf.rbspf .dob input{padding:11px 4px; font-size:16px}   /* 16px stops iOS zooming on focus */
  .rbspf.rbspf input[type=text],.rbspf.rbspf input[type=number],.rbspf.rbspf input[type=email],
  .rbspf.rbspf input[type=tel],.rbspf.rbspf input[type=date],.rbspf.rbspf select,.rbspf.rbspf textarea{font-size:16px}
  .rbspf.rbspf .w-zip,.rbspf.rbspf .w-year,.rbspf.rbspf .w-date,.rbspf.rbspf .w-county,.rbspf.rbspf .w-money{width:100%}
  .rbspf.rbspf .fields{gap:14px}
  .rbspf.rbspf .fields .field{width:100%}
  .rbspf.rbspf .agentbar input,.rbspf.rbspf .agentbar select{width:100%}
  .rbspf.rbspf .agentbar .btn{margin-left:0; width:100%}

  .rbspf.rbspf .summary{padding:18px; gap:18px}
  .rbspf.rbspf .facts{gap:18px}
  .rbspf.rbspf .toolbar{gap:14px}
  .rbspf.rbspf .toolbar .field{width:100%}
  .rbspf.rbspf .toolbar select{width:100%}
  .rbspf.rbspf .toolbar-count{margin-left:0}
  .rbspf.rbspf .kv{grid-template-columns:1fr 1fr}
  .rbspf.rbspf .submitbar{flex-direction:column; align-items:stretch; gap:14px}
  .rbspf.rbspf .submitbar .btn{width:100%}
  .rbspf.rbspf .resbar{gap:6px}
  .rbspf.rbspf .cmp-head h2{font-size:22px}
  .rbspf.rbspf .cmp-actions{flex-direction:column; width:100%}
  .rbspf.rbspf .cmp-actions .btn{width:100%; white-space:nowrap}
  .rbspf.rbspf table.matrix .rowlbl{width:132px; min-width:132px; font-size:12.5px}
  .rbspf.rbspf table.matrix th,.rbspf.rbspf table.matrix td{padding:9px 10px}
  .rbspf.rbspf .mh{min-width:150px}
  .rbspf.rbspf .mh .h-price{font-size:22px}
  /* On a phone the chips crowd out the button they sit next to; the count in
     the button says the same thing in less room. */
  .rbspf.rbspf .tray-slots{display:none}
  .rbspf.rbspf .tray{flex-direction:column; align-items:stretch; gap:8px; padding:12px 14px 16px}
  .rbspf.rbspf .tray-actions{margin-left:0; width:100%; gap:10px}
  .rbspf.rbspf .tray-actions .btn{flex:1}
  .rbspf.rbspf.has-tray .wrap{padding-bottom:88px}
  .rbspf.rbspf .modal{padding:0; align-items:flex-end}
  .rbspf.rbspf .modal-card{max-width:none; border-radius:var(--radius) var(--radius) 0 0; padding:22px 18px 18px}
  .rbspf.rbspf .modal-foot{flex-direction:column-reverse; align-items:stretch}
  .rbspf.rbspf .modal-foot .btn{width:100%}
}

/* nothing inside the widget may push the page sideways */
.rbspf.rbspf .lede h1,.rbspf.rbspf .plan h3,.rbspf.rbspf .callout h3{overflow-wrap:break-word}
.rbspf.rbspf .doclinks a,.rbspf.rbspf .agentcard-links a{overflow-wrap:anywhere}

/* --------------------------- next step ----------------------------- */
.rbspf.rbspf .nextstep{
  display:flex; gap:24px; align-items:center; flex-wrap:wrap; justify-content:space-between;
  background:var(--card); border:1px solid var(--line); border-left:4px solid var(--blue);
  border-radius:var(--radius); box-shadow:var(--shadow); padding:24px 28px; margin:26px 0 4px;
}
.rbspf.rbspf .nextstep-body{flex:1 1 380px; min-width:0}
.rbspf.rbspf .nextstep h3{font-size:21px; font-weight:400; margin-bottom:6px}
.rbspf.rbspf .nextstep p{color:var(--slate); font-size:15px; max-width:68ch}
.rbspf.rbspf .nextstep-act{display:flex; flex-direction:column; gap:9px; flex:none; min-width:210px}

/* ------------------------ enrolment dialog ------------------------- */
.rbspf.rbspf .modal-card.wide{max-width:760px; max-height:92vh; overflow-y:auto}
.rbspf.rbspf .steps{display:flex; gap:8px; margin:0 0 20px; padding:0 34px 0 0; flex-wrap:wrap}
.rbspf.rbspf .steps li{
  display:flex; align-items:center; gap:8px; font-size:13px; color:var(--slate-soft);
  padding:6px 12px 6px 6px; border-radius:20px; background:var(--card-sunk); border:1px solid var(--line);
}
.rbspf.rbspf .steps li span{
  width:22px; height:22px; border-radius:50%; display:grid; place-items:center; flex:none;
  background:var(--line); color:var(--slate); font-family:var(--display); font-size:12px;
}
.rbspf.rbspf .steps li.on{color:var(--blue-ink); border-color:var(--blue); background:var(--sky-wash)}
.rbspf.rbspf .steps li.on span{background:var(--blue); color:var(--on-accent)}
.rbspf.rbspf .steps li.done span{background:var(--good); color:#fff}
.rbspf.rbspf .steps li.done{color:var(--good); border-color:var(--good-line); background:var(--good-wash)}

.rbspf.rbspf .safe{
  display:flex; gap:10px; align-items:flex-start; margin:14px 0 4px; padding:11px 14px;
  background:var(--good-wash); border:1px solid var(--good-line); border-radius:var(--radius);
  font-size:13.5px; color:#13583c; line-height:1.5;
}
.rbspf.rbspf .safe svg{width:18px; height:18px; flex:none; margin-top:1px}
.rbspf.rbspf .grid2{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.rbspf.rbspf .grid2 .field input,.rbspf.rbspf .grid2 .field select{width:100%}
.rbspf.rbspf .regstep h3{font-size:22px; font-weight:400}

.rbspf.rbspf .why{margin:12px 0 14px; border:1px solid var(--line); border-radius:var(--radius); background:var(--card-sunk)}
.rbspf.rbspf .why summary{cursor:pointer; padding:11px 14px; font-size:14px; color:var(--blue); list-style:none}
.rbspf.rbspf .why summary::-webkit-details-marker{display:none}
.rbspf.rbspf .why summary::before{content:"?"; display:inline-grid; place-items:center; width:18px; height:18px;
  border-radius:50%; background:var(--blue); color:#fff; font-size:12px; margin-right:8px; vertical-align:-3px}
.rbspf.rbspf .why[open] summary{border-bottom:1px solid var(--line)}
.rbspf.rbspf .why p{padding:12px 14px; font-size:14px; color:var(--slate); line-height:1.6}

/* Signing takes the whole window. A legal document inside a dialog inside a
   page gives you scrollbars within scrollbars, which is what made it feel
   cramped; RightSignature's own interface expects a full viewport. */
.rbspf.rbspf .modal-card.signing{
  max-width:none; width:100%; height:100%; max-height:none; border-radius:0;
  padding:0; display:flex; flex-direction:column; margin:0;
}
.rbspf.rbspf .modal.signing{padding:0; align-items:stretch; overflow:hidden}
.rbspf.rbspf .modal-card.signing .steps,
.rbspf.rbspf .modal-card.signing .modal-x{display:none}
.rbspf.rbspf .modal-card.signing .regstep{display:flex; flex-direction:column; flex:1; min-height:0}

.rbspf.rbspf .sigbar{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  padding:12px 20px; border-bottom:1px solid var(--line); background:var(--card-sunk); flex:none;
}
.rbspf.rbspf .sigbar-what{display:flex; flex-direction:column; line-height:1.25}
.rbspf.rbspf .sigbar-what .lbl{
  font-family:var(--display); font-size:10.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--slate-soft);
}
.rbspf.rbspf .sigbar-what strong{font-family:var(--display); font-size:17px; font-weight:400; color:var(--blue-ink)}
.rbspf.rbspf .sigbar .why{margin:0; border:0; background:none; padding:0}
.rbspf.rbspf .sigbar .why summary{font-size:13.5px}

.rbspf.rbspf .sigframe{
  position:relative; overflow:hidden; background:#fff; flex:1; min-height:0;
  border:1px solid var(--line); border-radius:var(--radius);
}
.rbspf.rbspf .modal-card.signing .sigframe{border:0; border-radius:0}
.rbspf.rbspf .sigframe iframe{display:block; width:100%; height:100%; min-height:520px; border:0}
.rbspf.rbspf .sigload{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:14px; color:var(--slate); font-size:14.5px; background:#fff;
}
.rbspf.rbspf .sigload .spin{
  width:26px; height:26px; border-radius:50%; border:2px solid var(--line);
  border-top-color:var(--blue); animation:rbspf-spin .8s linear infinite;
}
@keyframes rbspf-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.rbspf.rbspf .sigload .spin{animation-duration:2.4s}}

.rbspf.rbspf .sigfoot{
  display:flex; align-items:center; justify-content:flex-end; gap:10px; flex:none;
  padding:12px 20px; border-top:1px solid var(--line); background:var(--card-sunk);
}

/* step 3: creating the exchange account is the action, so it leads */
.rbspf.rbspf .nowdo{
  border:1px solid var(--blue); background:var(--sky-wash);
  border-radius:var(--radius); padding:20px 22px; margin:18px 0 0;
}
.rbspf.rbspf .nowdo h4{
  font-family:var(--display); font-size:18px; font-weight:400;
  color:var(--blue-ink); margin:0 0 6px;
}
.rbspf.rbspf .nowdo p{font-size:14.5px; color:var(--slate); margin:0 0 14px; line-height:1.6}
.rbspf.rbspf .nowdo .btn{display:inline-flex; align-items:center; gap:9px; text-decoration:none}
.rbspf.rbspf .nowdo .fine{font-size:13px; color:var(--slate-soft); margin:12px 0 0}

.rbspf.rbspf .nextlist{margin:16px 0 4px; display:flex; flex-direction:column; gap:10px}
.rbspf.rbspf .nextlist li{
  font-size:14.5px; color:var(--slate); line-height:1.55; padding-left:26px; position:relative;
}
.rbspf.rbspf .nextlist li::before{
  content:""; position:absolute; left:0; top:7px; width:9px; height:9px; border-radius:50%;
  background:var(--sky-wash); border:2px solid var(--blue);
}
.rbspf.rbspf .nextlist b{color:var(--ink); font-weight:600}
.rbspf.rbspf .sent h3{font-size:22px}

@media (max-width:700px){
  .rbspf.rbspf .nextstep{padding:20px; gap:16px}
  .rbspf.rbspf .nextstep-act{width:100%; min-width:0}
  .rbspf.rbspf .grid2{grid-template-columns:1fr}
  .rbspf.rbspf .steps{gap:5px; flex-wrap:nowrap; padding-right:30px}
  .rbspf.rbspf .steps li{font-size:11px; padding:4px 8px 4px 4px; gap:5px; white-space:nowrap}
  .rbspf.rbspf .steps li span{width:18px; height:18px; font-size:11px}
  .rbspf.rbspf .modal-card.wide{max-width:none}
  .rbspf.rbspf .sigbar{padding:10px 14px; gap:10px}
  .rbspf.rbspf .sigbar-what strong{font-size:15.5px}
  .rbspf.rbspf .sigfoot{padding:10px 14px; gap:8px}
  .rbspf.rbspf .sigfoot .btn{flex:1; justify-content:center}
  .rbspf.rbspf .sigframe iframe{min-height:0}
  .rbspf.rbspf .nowdo{padding:16px 16px}
  .rbspf.rbspf .nowdo .btn{width:100%; justify-content:center}
}


/* ------------------------- renewals -------------------------------
   Marking the plan someone already holds turns the comparison from a
   list of options into a before-and-after, so the current plan is
   pinned, tinted and labelled everywhere it appears. */
.rbspf.rbspf .renew-field{margin-top:14px}
.rbspf.rbspf .renew-check{font-size:14.5px; color:var(--ink)}

.rbspf.rbspf .renewbar{
  display:flex; flex-wrap:wrap; align-items:center; gap:14px;
  background:var(--card); border:1px solid var(--line); border-left:3px solid var(--gold);
  border-radius:var(--radius); padding:14px 18px; margin:0 0 16px;
}
.rbspf.rbspf .renewbar-ask{display:flex; flex-direction:column; gap:2px; line-height:1.3}
.rbspf.rbspf .renewbar-ask .lbl{
  font-family:var(--display); font-size:10.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--gold);
}
.rbspf.rbspf .renewbar-ask label{font-size:15px; color:var(--ink); font-weight:600}
.rbspf.rbspf .renewbar-pick{display:flex; align-items:center; gap:8px; flex:1; min-width:260px}
.rbspf.rbspf .renewbar-pick select{flex:1; min-width:0}
.rbspf.rbspf .renewbar-out{flex-basis:100%}
.rbspf.rbspf .renew-wait{font-size:14px; color:var(--slate-soft)}

.rbspf.rbspf .renew-now{
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  background:var(--card-sunk); border-radius:var(--radius); padding:14px 18px; margin-top:4px;
}
.rbspf.rbspf .rn-col{display:flex; flex-direction:column; gap:2px}
.rbspf.rbspf .rn-lbl{
  font-family:var(--display); font-size:10.5px; letter-spacing:.13em;
  text-transform:uppercase; color:var(--slate-soft);
}
.rbspf.rbspf .rn-val{font-size:23px; color:var(--blue-ink); font-weight:600; line-height:1.1}
.rbspf.rbspf .rn-val small{font-size:12.5px; color:var(--slate); font-weight:400; margin-left:2px}
.rbspf.rbspf .rn-arrow{font-size:20px; color:var(--slate-soft)}
.rbspf.rbspf .rn-delta{
  display:flex; flex-direction:column; gap:1px; margin-left:auto;
  padding-left:18px; border-left:1px solid var(--line); text-align:right;
}
.rbspf.rbspf .rn-delta b{font-size:20px; line-height:1.15}
.rbspf.rbspf .rn-delta span{font-size:12.5px; color:var(--slate)}
.rbspf.rbspf .rn-delta .rn-year{color:var(--slate-soft); font-size:12px}
.rbspf.rbspf .renew-now.up .rn-delta b{color:var(--bad)}
.rbspf.rbspf .renew-now.down .rn-delta b{color:var(--good)}
.rbspf.rbspf .renew-now.flat .rn-delta b{color:var(--slate)}

.rbspf.rbspf .plan.current{border-color:var(--gold); box-shadow:0 0 0 1px var(--gold)}
.rbspf.rbspf .curflag{
  display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
  background:var(--gold-wash); color:var(--gold-ink); padding:7px 16px;
  font-family:var(--display); font-size:11px; letter-spacing:.13em; text-transform:uppercase;
}
.rbspf.rbspf .curflag span{
  font-family:var(--body); font-size:13px; letter-spacing:0;
  text-transform:none; color:var(--slate);
}
.rbspf.rbspf .matrix th.curcol,.rbspf.rbspf .matrix td.curcol{background:var(--gold-wash)}
.rbspf.rbspf .curtag{
  display:inline-block; background:var(--gold); color:#fff; font-family:var(--display);
  font-size:9.5px; letter-spacing:.12em; text-transform:uppercase;
  padding:2px 7px; border-radius:2px; margin-bottom:6px;
}
.rbspf.rbspf .matrix tr.changerow td{font-weight:600}
.rbspf.rbspf .matrix tr.changerow td.worse{color:var(--bad)}
.rbspf.rbspf .matrix tr.changerow td.better{color:var(--good)}

@media (max-width:700px){
  .rbspf.rbspf .renewbar{padding:12px 14px; gap:10px}
  .rbspf.rbspf .renewbar-pick{min-width:0; width:100%}
  .rbspf.rbspf .renew-now{gap:12px; padding:12px 14px}
  .rbspf.rbspf .rn-delta{margin-left:0; padding-left:0; border-left:0; text-align:left; flex-basis:100%}
  .rbspf.rbspf .rn-val{font-size:20px}
}

/* ==================== medical / dental / vision tabs ==================== */
.rbspf.rbspf .lines{
  display:flex; gap:2px; margin:0 0 20px; border-bottom:2px solid var(--line);
  overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;
}
.rbspf.rbspf .lines::-webkit-scrollbar{display:none}
.rbspf.rbspf .line{
  flex:1 1 0; min-width:132px; text-align:left; cursor:pointer; background:transparent;
  border:0; border-bottom:3px solid transparent; margin-bottom:-2px;
  padding:12px 16px 11px; display:flex; flex-direction:column; gap:2px;
  color:var(--slate); transition:color .15s, border-color .15s, background .15s;
}
.rbspf.rbspf .line:hover{background:var(--sky-wash); color:var(--blue)}
.rbspf.rbspf .line .line-n{
  font-family:var(--display); font-size:16px; letter-spacing:.02em; color:inherit; line-height:1.2;
}
.rbspf.rbspf .line .line-s{font-size:12.5px; color:var(--slate-soft); line-height:1.2}
.rbspf.rbspf .line.is-on{color:var(--blue-ink); border-bottom-color:var(--blue); background:transparent}
.rbspf.rbspf .line.is-on .line-n{color:var(--blue-ink)}
.rbspf.rbspf .line:focus-visible{outline:2px solid var(--blue); outline-offset:-2px}

/* the "this does not come from the exchange" note at the top of each pane */
.rbspf.rbspf .ancnote{
  border:1px solid var(--line); border-left:3px solid var(--blue); background:var(--sky-wash);
  padding:13px 16px; border-radius:var(--radius); margin:0 0 20px;
  font-size:14.5px; line-height:1.55; color:var(--slate);
}
.rbspf.rbspf .ancnote b{color:var(--blue-ink); font-family:var(--display); font-weight:400}

/* the two dental questions */
.rbspf.rbspf .ask{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:6px 22px 20px; box-shadow:var(--shadow);
}
.rbspf.rbspf .ask-row{padding:18px 0 0; display:flex; flex-direction:column; gap:10px}
.rbspf.rbspf .ask-row + .ask-row{border-top:1px solid var(--line-soft); padding-top:18px; margin-top:4px}
.rbspf.rbspf .ask-q{
  font-family:var(--display); font-size:16.5px; color:var(--blue-ink); line-height:1.3;
}
.rbspf.rbspf .ask-q .hint{
  display:block; font-family:var(--body); font-size:13px; color:var(--slate-soft); margin-top:3px;
}
.rbspf.rbspf .ask .chip{font-size:12.5px; padding:9px 15px; text-transform:none; letter-spacing:.02em; font-family:var(--body)}
.rbspf.rbspf .ask .chip.is-on,
.rbspf.rbspf .ask .chip[aria-checked="true"]{background:var(--blue); border-color:var(--blue); color:var(--on-accent)}

.rbspf.rbspf .denlead{
  border-left:3px solid var(--good); background:var(--good-wash); border:1px solid var(--good-line);
  border-left-width:3px; padding:13px 16px; border-radius:var(--radius); margin:0 0 18px;
  font-size:15px; line-height:1.55; color:var(--ink);
}
.rbspf.rbspf .denlead b{font-family:var(--display); font-weight:400; color:var(--blue-ink)}

/* dental + vision cards — same shell as the medical cards, simpler inside */
.rbspf.rbspf .plans.anc{grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}
.rbspf.rbspf .anc-plan{padding:17px 19px 15px; gap:12px}
.rbspf.rbspf .anc-plan.best{border-color:var(--good-line); box-shadow:0 0 0 2px rgba(26,117,80,.12)}
.rbspf.rbspf .anc-plan > .bestflag{
  position:absolute; top:-9px; left:16px; font-family:var(--display); font-size:10px;
  letter-spacing:.11em; text-transform:uppercase; color:var(--on-accent); background:var(--good);
  padding:3px 9px; border-radius:2px;
}
.rbspf.rbspf .anc-plan .p-head{display:flex; gap:14px; justify-content:space-between; align-items:flex-start}
.rbspf.rbspf .anc-plan .p-id{min-width:0}
.rbspf.rbspf .anc-plan .h-issuer{
  font-family:var(--display); font-size:11px; letter-spacing:.11em; text-transform:uppercase; color:var(--slate);
  display:block; margin-bottom:3px;
}
.rbspf.rbspf .anc-plan h3{font-size:17px; line-height:1.25; font-weight:400; margin:0}
.rbspf.rbspf .anc-plan .p-sub{font-size:13px; color:var(--slate-soft); display:block; margin-top:3px; line-height:1.4}
.rbspf.rbspf .anc-plan .p-price{text-align:right; flex:none}
.rbspf.rbspf .anc-plan .h-price{
  font-family:var(--display); font-size:26px; color:var(--ink); letter-spacing:-.025em; line-height:1;
}
.rbspf.rbspf .anc-plan .h-price small{font-size:.44em; color:var(--slate-soft); letter-spacing:0}
.rbspf.rbspf .anc-plan .h-was{font-size:11.5px; color:var(--slate-soft); display:block; margin-top:3px}
.rbspf.rbspf .anc-plan .p-why{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:5px}
.rbspf.rbspf .anc-plan .p-why li{
  font-size:13.5px; color:var(--good); line-height:1.45; padding-left:17px; position:relative;
}
.rbspf.rbspf .anc-plan .p-why li::before{
  content:""; position:absolute; left:2px; top:.55em; width:6px; height:6px; border-radius:50%;
  background:var(--good);
}
.rbspf.rbspf .anc-plan .p-facts{
  display:flex; flex-wrap:wrap; gap:6px 18px; padding-top:11px; border-top:1px solid var(--line-soft);
}
.rbspf.rbspf .anc-plan .p-facts span{font-size:13px; color:var(--ink); line-height:1.35}
.rbspf.rbspf .anc-plan .p-facts b{
  display:block; font-family:var(--display); font-weight:400; font-size:10.5px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--slate-soft); margin-bottom:1px;
}
.rbspf.rbspf .anc-plan .p-per{font-size:12px; color:var(--slate-soft); line-height:1.4}
.rbspf.rbspf .anc-plan .p-actions{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:auto; padding-top:4px}
.rbspf.rbspf .anc-plan .btn.sm{font-size:12px; padding:8px 13px}
.rbspf.rbspf .anc-plan .p-detail{
  border-top:1px solid var(--line-soft); padding-top:13px; display:flex; flex-direction:column; gap:12px;
}
.rbspf.rbspf .anc-plan .p-list{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:6px}
.rbspf.rbspf .anc-plan .p-list li{
  font-size:13.5px; color:var(--slate); line-height:1.5; margin:0; list-style:none;
  padding-left:15px; position:relative;
}
.rbspf.rbspf .anc-plan .p-list li::before{
  content:""; position:absolute; left:2px; top:.6em; width:5px; height:5px; border-radius:50%;
  background:var(--slate-soft);
}
.rbspf.rbspf .anc-plan .p-dl{
  display:grid; grid-template-columns:auto 1fr; gap:5px 14px; margin:0; font-size:13px;
}
.rbspf.rbspf .anc-plan .p-dl dt{color:var(--slate-soft); line-height:1.45}
.rbspf.rbspf .anc-plan .p-dl dd{margin:0; color:var(--ink); line-height:1.45}
.rbspf.rbspf .anc-plan .p-links{display:flex; gap:14px; flex-wrap:wrap; font-size:13px}
.rbspf.rbspf .anc-plan .p-note{margin:0; font-size:12.5px; color:var(--slate-soft); line-height:1.5}
.rbspf.rbspf .anc-plan .p-note b{color:var(--slate); font-family:var(--display); font-weight:400}

.rbspf.rbspf .anc-aside{
  grid-column:1/-1; margin-top:14px; padding-top:18px; border-top:1px solid var(--line);
}
.rbspf.rbspf .anc-aside h3{font-size:15px; margin:0 0 5px; font-weight:400}
.rbspf.rbspf .anc-aside > p{margin:0 0 14px; font-size:13.5px; color:var(--slate); line-height:1.55; max-width:66ch}

@media (max-width:700px){
  .rbspf.rbspf .lines{gap:0}
  .rbspf.rbspf .line{min-width:112px; padding:10px 12px 9px}
  .rbspf.rbspf .line .line-n{font-size:14.5px}
  .rbspf.rbspf .line .line-s{font-size:11.5px}
  .rbspf.rbspf .ask{padding:4px 16px 16px}
  .rbspf.rbspf .plans.anc{grid-template-columns:1fr}
  .rbspf.rbspf .anc-plan .p-head{gap:10px}
  .rbspf.rbspf .anc-plan .h-price{font-size:23px}
}

.rbspf.rbspf .dentrade{
  border:1px solid #e8cf9f; border-left:3px solid var(--gold); background:var(--gold-wash);
  padding:13px 16px; border-radius:var(--radius); margin:0 0 18px;
  font-size:14px; line-height:1.6; color:var(--gold-ink);
}
.rbspf.rbspf .dentrade b{font-family:var(--display); font-weight:400; color:var(--gold-ink)}

/* compare picker on the dental / vision cards */
.rbspf.rbspf .anc-pick{
  display:inline-flex; align-items:center; gap:7px; cursor:pointer; margin-left:auto;
  font-size:12.5px; color:var(--slate); white-space:nowrap; padding:6px 2px;
}
.rbspf.rbspf .anc-pick input{width:16px; height:16px; margin:0; accent-color:var(--blue); flex:none}
.rbspf.rbspf .anc-pick:hover{color:var(--blue)}
.rbspf.rbspf .anc-tray .tray-in{display:flex; gap:12px; align-items:center; flex-wrap:wrap}
.rbspf.rbspf .anc-tray .tray-n{
  font-family:var(--display); font-size:14px; color:var(--blue-ink); margin-right:auto;
}
@media (max-width:700px){
  .rbspf.rbspf .anc-tray .tray-n{width:100%; margin-right:0}
  .rbspf.rbspf .anc-tray .tray-in .btn{flex:1}
}

/* choose your agent — the enrolment link is coded to whoever is picked */
.rbspf.rbspf .ancagent{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:12px 16px; margin:0 0 16px;
}
.rbspf.rbspf .ancagent label{
  font-family:var(--display); font-size:13.5px; color:var(--blue-ink); letter-spacing:.01em;
}
.rbspf.rbspf .ancagent select{font-size:14px; padding:7px 9px; min-width:190px}
.rbspf.rbspf .ancagent .hint{font-size:12.5px; color:var(--slate-soft); flex:1 1 16ch}

/* the two questions are a refinement bar now, not a gate */
.rbspf.rbspf .ask-lede{
  padding:16px 0 2px; display:flex; flex-direction:column; gap:2px;
}
.rbspf.rbspf .ask-lede b{
  font-family:var(--display); font-weight:400; font-size:16.5px; color:var(--blue-ink);
}
.rbspf.rbspf .ask-lede span{font-size:13.5px; color:var(--slate); line-height:1.5}
.rbspf.rbspf .ask-lede + .ask-row{border-top:1px solid var(--line-soft); margin-top:12px}

.rbspf.rbspf .denbar-actions{display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.rbspf.rbspf .denbar-actions .lbl{
  font-family:var(--display); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--slate-soft);
}
.rbspf.rbspf .denbar-actions select{font-size:14px; padding:7px 9px}

/* what a plan covers, shown before they answer anything */
.rbspf.rbspf .anc-plan .p-covers{
  font-size:13.5px; color:var(--slate); line-height:1.45;
  padding:8px 11px; background:var(--sky-wash); border-radius:var(--radius);
}
.rbspf.rbspf .anc-plan .btn.enrol{background:var(--good); border-color:var(--good)}
.rbspf.rbspf .anc-plan .btn.enrol:hover{background:#145c3d; border-color:#145c3d}

@media (max-width:700px){
  .rbspf.rbspf .ancagent{gap:7px}
  .rbspf.rbspf .ancagent select{width:100%; min-width:0}
  .rbspf.rbspf .ancagent .hint{flex:1 1 100%}
  .rbspf.rbspf .denbar-actions{width:100%}
  .rbspf.rbspf .denbar-actions select{flex:1}
}
