/* ===== OB unbundling slide (scoped under .obu) — prospect-specific, OBGYN only =====
   Two-column dark slide: copy left, before/after billing diagram right.
   Every dollar figure is computed in ob-unbundling.js from the constants at its top
   (antepartum PNR, visit count, delivery/postpartum PNR, deductible, coinsurance).
   Never hand-type a total into this markup. */

.obu { display: grid; grid-template-columns: 1.6fr 1fr; gap: clamp(24px, 3.2vw, 62px); align-items: center; width: min(1560px, 100%); }
.obu__copy { min-width: 0; }
/* .obu is not .wrap/.prod/.store, so it never picked up a deck title size and fell back to
   the browser's default h2 (24px) while every other slide sat at 35-43px. Match the other
   two-column slides. */
.obu .title { font-size: clamp(26px, 2.7vw, 48px); margin-top: clamp(10px, 1.6vh, 20px); }
.obu__intro { color: rgba(255,255,255,.72); font-size: clamp(13px, 1.15vw, 18px); line-height: 1.55; margin: 0 0 4px; max-width: 44ch; }
.obu__note { margin-top: clamp(10px, 1.6vh, 20px); font-size: clamp(9px, .72vw, 11px); line-height: 1.5; color: rgba(255,255,255,.42); max-width: 46ch; }

.obu__vis { min-width: 0; display: flex; flex-direction: column; gap: clamp(8px, 1.2vh, 14px); }
.obu__panel { border: 1px solid rgba(255,255,255,.14); border-radius: 10px; background: rgba(255,255,255,.035); padding: clamp(10px, 1.4vh, 16px) clamp(12px, 1.2vw, 18px); }
.obu__panel--now { border-color: rgba(255,255,255,.20); }
.obu__panel--next { border-color: rgba(0,152,255,.55); background: rgba(0,152,255,.07); }

.obu__phead { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: clamp(7px, 1vh, 11px); }
.obu__plabel { font-size: clamp(8.5px, .68vw, 10.5px); letter-spacing: .16em; color: rgba(255,255,255,.55); }
.obu__panel--next .obu__plabel { color: #7fc9ff; }
.obu__pcount { font-size: clamp(8.5px, .68vw, 10.5px); letter-spacing: .06em; color: rgba(255,255,255,.45); font-variant-numeric: tabular-nums; }

/* "Through 2026" — one wide bundled row */
.obu__bundle { display: flex; align-items: center; gap: clamp(8px, .9vw, 14px); border: 1px solid rgba(255,255,255,.22); border-radius: 7px; background: rgba(255,255,255,.05); padding: clamp(9px, 1.2vh, 14px) clamp(10px, 1vw, 15px); }
.obu__code { font-size: clamp(9px, .72vw, 11.5px); letter-spacing: .05em; color: #7fc9ff; flex: none; }
.obu__bname { font-size: clamp(11px, .95vw, 15px); color: rgba(255,255,255,.95); flex: 1; min-width: 0; }
.obu__bnote { font-style: normal; font-size: clamp(8px, .62vw, 10px); letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.45); margin-left: 8px; white-space: nowrap; }
.obu__bprice { font-size: clamp(12px, 1.05vw, 17px); color: #fff; font-variant-numeric: tabular-nums; flex: none; }
.obu__cap { margin: clamp(6px,.9vh,9px) 0 0; font-size: clamp(9.5px, .76vw, 12px); line-height: 1.45; color: rgba(255,255,255,.55); }
.obu__panel--next .obu__cap { color: rgba(255,255,255,.72); }

/* the Jan 1 2027 hinge */
.obu__hinge { display: flex; align-items: center; gap: 10px; padding: 0 2px; }
.obu__hinge i { flex: 1; height: 0; border-top: 1.5px dashed rgba(0,152,255,.45); }
.obu__hingelbl { font-size: clamp(8.5px, .68vw, 10.5px); letter-spacing: .14em; color: #7fc9ff; flex: none; }

/* "From 2027" — the chip grid */
.obu__chips { display: flex; flex-direction: column; gap: clamp(4px, .5vw, 7px); }
.obu__grid { display: grid; gap: clamp(4px, .5vw, 7px); }
.obu__grid--ante { grid-template-columns: repeat(5, 1fr); }
.obu__grid--birth { grid-template-columns: repeat(2, 1fr); }
.obu__chip { border: 1px solid rgba(255,255,255,.16); border-radius: 5px; background: rgba(255,255,255,.05); padding: clamp(5px,.75vh,8px) clamp(4px,.45vw,7px); text-align: center; opacity: 0; transform: translateY(7px); transition: opacity .34s ease, transform .34s cubic-bezier(.22,1,.36,1), border-color .34s ease, background-color .34s ease; }
.obu__chip.is-in { opacity: 1; transform: none; }
.obu__chiplbl { display: block; font-size: clamp(7.2px, .58vw, 9px); letter-spacing: .07em; color: rgba(255,255,255,.5); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.obu__chipval { display: block; margin-top: 2px; font-size: clamp(9.5px, .8vw, 12.5px); color: #fff; font-variant-numeric: tabular-nums; }
/* visits still eating the deductible read hotter than the ones past it */
.obu__chip--ded { border-color: rgba(255,163,102,.62); background: rgba(255,163,102,.15); }
.obu__chip--ded .obu__chipval { color: #ffc79a; }
.obu__chip--ded .obu__chiplbl { color: rgba(255,199,154,.72); }
.obu__chip--coins { border-color: rgba(0,152,255,.58); background: rgba(0,152,255,.16); }
.obu__chip--coins .obu__chipval { color: #93d2ff; }
.obu__chip--coins .obu__chiplbl { color: rgba(147,210,255,.72); }

.obu__legend { display: flex; flex-wrap: wrap; gap: clamp(8px, 1vw, 16px); margin-top: clamp(7px,1vh,10px); font-size: clamp(8.5px, .66vw, 10.5px); color: rgba(255,255,255,.55); }
.obu__legend span { display: inline-flex; align-items: center; gap: 5px; }
.obu__legend i { width: 8px; height: 8px; border-radius: 2px; flex: none; }
.obu__legend i.ded { background: rgba(255,163,102,.65); }
.obu__legend i.coins { background: rgba(0,152,255,.65); }

.obu__total { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-top: clamp(8px,1.1vh,12px); padding-top: clamp(7px,1vh,10px); border-top: 1px solid rgba(255,255,255,.14); }
.obu__totlbl { font-size: clamp(8.5px, .68vw, 10.5px); letter-spacing: .1em; color: rgba(255,255,255,.55); }
.obu__totval { font-size: clamp(13px, 1.15vw, 19px); color: #fff; font-variant-numeric: tabular-nums; }

@media (max-width: 1100px) {
  .obu { grid-template-columns: 1fr; gap: clamp(14px, 2.4vh, 24px); }
  .obu__vis { max-width: 560px; }
  .obu__intro, .obu__note { max-width: 46ch; }
}
@media (max-width: 1100px) {
  .obu__grid--ante { grid-template-columns: repeat(5, 1fr); }
}
@media (max-width: 700px) {
  .obu__grid--ante { grid-template-columns: repeat(4, 1fr); }
}

/* ===== plan-year reset strip =====
   Real corpus figures sitting under the modelled before/after, so the slide's own
   constants are anchored to something measured. Every number here comes from the
   same query: Athena claims carrying a global obstetric code, service dates
   2024-2025, patient responsibility aged 180 days, 5,725 claims across 32 groups.
   If these are refreshed, refresh all four together — they share one denominator. */

@media screen and (max-width: 1100px) {
}

/* The source note follows the benchmark strip now, so it has to give back the height the strip
   took. At 1280x720 the column ran 11px past the slide before this. */
.s-obu .obu__note { margin-top: clamp(8px, 1.1vh, 13px); font-size: clamp(8px, .62vw, 9.5px); line-height: 1.45; color: rgba(255,255,255,.36); max-width: 52ch; }

.obu__delta{display:flex;align-items:center;justify-content:space-between;gap:12px;
  border:1px solid rgba(255,163,102,.55);border-radius:8px;background:rgba(255,163,102,.12);
  padding:clamp(9px,1.2vh,13px) clamp(12px,1.2vw,18px)}
.obu__deltalbl{font-size:clamp(9.5px,.76vw,12px);line-height:1.4;color:rgba(255,255,255,.85)}
.obu__deltaval{font-size:clamp(16px,1.45vw,24px);color:#ffc79a;font-variant-numeric:tabular-nums;flex:none}

/* Copy column is the wide side on this slide, so lift the deck's global text caps here.
   The note is capped in px, not ch: its font is 9-11px, so a ch-based cap resolves far
   narrower than the body above it and the block reads ragged. */
.s-obu .feat__body { max-width: 62ch; }
.s-obu .obu__note { max-width: 640px; }
.s-obu .feat__bar { width: 580px; }
.s-obu .dashrule { width: 600px; }
@media (max-width: 1100px) {
  .s-obu .feat__body { max-width: 46ch; }
  .s-obu .obu__note { max-width: 46ch; }
  .s-obu .feat__bar { width: 290px; }
  .s-obu .dashrule { width: 300px; }
}
