/* r21 (21 Oct) PREVIEW: zero layout movement + one-line benefit list + sticky CTAs (V-A top bar / V-B floating pill) */
/* 1a. Phones scale from a shared bottom baseline, small deltas, so nothing jumps upward */
.kh.r19.dsk.dp .ph-v,.kh.r19.dsk.dp .ph-k{transform-origin:50% 100%}
.kh.r19.dsk.dp.swap .ph-v{transform:scale(.9)!important}
.kh.r19.dsk.dp.swap .ph-k{transform:scale(1.04)!important}
/* 1a. "Caller hung up" label: fixed slot under the voicemail phone, reserved from t=0, fades only */
.kh.r19.dsk.dp .vpan{overflow:visible}
.kh.r19.dsk.dp .vlost{position:absolute!important;top:calc(100% + 14px)!important;bottom:auto!important;left:50%!important;right:auto!important;transform:translateX(-50%);
  width:max-content;max-width:none;height:30px;display:flex!important;align-items:center;padding:0 14px;border-radius:99px;
  background:rgba(224,80,80,.14);color:#ff9a9a;font-size:14px;font-weight:800;letter-spacing:.02em;white-space:nowrap;line-height:1;opacity:0;transition:opacity .5s}
.kh.r19.dsk.dp.swap .vlost{opacity:1;transition:opacity .5s .9s}
/* 1b. Benefit list: every line on ONE line */
.kh.dsk .kpan .fl17{width:max-content!important;max-width:none!important}
.kh.dsk .fl17 li{white-space:nowrap;font-size:21px!important;font-weight:600}.kh.dsk .fl17 .ch{font-size:14px!important}.kh.dsk .fl17 li:not(.on){opacity:.45}.kh.fo.dsk .fl17 li{opacity:.45}.kh.dsk .fl17 .ck{width:32px;height:32px}.kh.dsk .fl17 .ck svg{width:17px;height:17px}@media (max-width:1359px){.kh.dsk .fl17 li{font-size:19px!important}}
/* r22c (21 Oct): bigger list needs room; tighten phone-to-list gap and nudge the stage left so the list keeps a 48px+ right gutter */
.kh.r19.dsk.dp .kpan{gap:30px}
.kh.dsk .stg{translate:-28px 0}
.kh.dsk .fl17 li .soon{margin-left:10px;flex:none}
/* 2. Sticky CTAs (desktop/tablet only; mobile keeps its bottom bar) */
.r21cta{display:none}
html.kh-d .r21cta{display:flex}
.r21a{position:fixed;top:0;left:0;right:0;z-index:60;height:64px;align-items:center;gap:18px;padding:0 var(--khg,48px);
  background:rgba(10,16,30,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.08);
  transform:translateY(-100%);transition:transform .35s cubic-bezier(.3,.7,.2,1);box-sizing:border-box}
.r21a.on{transform:none}
.r21a .wm{height:22px;width:auto;display:block}
.r21a .pr{color:#9aa6b8;font-size:14px;font-weight:600;white-space:nowrap}
.r21a .pr b{color:#fff}
.r21a .sp{flex:1}
.r21 .r21btn{display:inline-flex;align-items:center;gap:9px;height:42px;padding:0 20px;border-radius:99px;font-family:inherit;font-weight:800;font-size:15px;line-height:1;position:static;width:auto;inset:auto;text-decoration:none;white-space:nowrap;cursor:pointer;border:0}
.r21 .r21h{background:#FF7A1A;color:#0b1220}
.r21 .r21h .wv{display:inline-flex;align-items:center;gap:2px;height:16px}
.r21 .r21h .wv i{display:block;width:2px;border-radius:2px;background:currentColor}
.r21 .r21k{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.55)}
.r21 .r21h.pl{background:#ffb27a}
@media (prefers-reduced-motion:reduce){.r21a{transition:none}}
@media (max-width:1240px){.kh.dsk .fl17 li{font-size:18px!important}.kh.dsk .fl17 ul{gap:13px}}
@media (max-width:1160px){.kh.dsk .stg{margin-left:calc(-1 * clamp(0px,3vw,36px))!important}}
/* r21b (21 Oct): hero fills the first screen exactly; no divider line under it; soft fade into the next section */
html.kh-d .kh.dsk.kh-hero{position:relative}
html.kh-d .kh.dsk .h16{min-height:calc(100svh - 76px)!important;align-items:center!important;padding-top:clamp(8px,2vh,24px)!important;padding-bottom:clamp(40px,7vh,72px)!important;box-sizing:border-box}
html.kh-d .kh.dsk.kh-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:56px;pointer-events:none;background:linear-gradient(180deg,rgba(10,18,32,0),rgba(10,18,32,.55))}
html.kh-d .kh-hero.dsk + section.s,html.kh-d .kh-hero.dsk + noscript + section.s,html.kh-d main > section.s.obj{border-top:0!important}
/* r22d (21 Oct) PREVIEW: mobile hero gap. The hero fills the first screen down to the CTA bar, so the phone grows into the space
   and the buttons sit ~18px under it; no double 124px reservation under the hero; the objection cards follow straight on.
   The bar's line + shadow fade in once you scroll (bar fill = page navy, so at the top it reads as part of the hero). */
html.kh-m .kh.kh-hero.mob.sticky{display:flex;flex-direction:column;padding-bottom:0!important;height:max(560px,calc(100svh - 103px));box-sizing:border-box}
html.kh-m .kh.kh-hero.mob.sticky .mtop{flex:none}
html.kh-m .kh.kh-hero.mob.sticky .h16{flex:1 1 auto;min-height:0;width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;gap:0;padding-bottom:0}
html.kh-m .kh.kh-hero.mob.sticky .h16 .txt{flex:none;align-self:stretch}
html.kh-m .kh.kh-hero.mob.sticky .stg{flex:1 1 0;min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:0;margin-top:14px}
html.kh-m .kh.kh-hero.mob.sticky .kpan{flex:1 1 0;min-height:0;container-type:size}
html.kh-m .kh.kh-hero.mob.r19.sticky .ph-k{--h:min(100cqh,660px);--w:min(calc(var(--h) / 2.15),max(240px,calc(100cqw - 116px)),264px);--fs:calc(var(--w) * .0467)}
html.kh-m .kh-hero.mob.sticky ~ section.s.obj{padding-top:20px;border-top:0}
html.kh-m .kh.mob.r18.sticky .thumb{border-top-color:rgba(255,255,255,.09)}
@supports (animation-timeline:scroll()){
  html.kh-m .kh.mob.r18.sticky .thumb{animation:khbar linear both;animation-timeline:scroll(root);animation-range:0 56px}
  @keyframes khbar{from{border-top-color:transparent;box-shadow:0 -14px 30px -10px transparent}to{border-top-color:rgba(255,255,255,.09);box-shadow:0 -14px 30px -10px rgba(0,0,0,.6)}}
}
