/* Behavior and accessibility repairs; the archived source CSS owns the design. */
:focus-visible { outline: 2px solid var(--secondary, #0c4ba7); outline-offset: 4px; }
[hidden] { display: none !important; }
/* Header logos carry width/height to reserve their box; keep the source's proportional scaling. */
.hdr .tp-lg img { height: auto; }
/* The live mobile hero's resized source image is missing; retain its observed blank space. */
@media (max-width: 500px) {
  #MainstageS8 > picture.img-bg { visibility: hidden; }
}
.replica-error-visible { display: block !important; }
.replica-form-status { margin-top: 1.5rem; padding: 1rem; border: 1px solid currentColor; }
.replica-form-status a { text-decoration: underline; }
.replica-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; }
form[aria-busy="true"] button[type="submit"] { cursor: wait; opacity: .65; }
.hdr li:focus-within > .fly-nv { opacity: 1; visibility: visible !important; }
@media (max-width: 1279px) {
  html.mnu-opn { overflow: hidden; }
  .hdr .nv[inert] { visibility: hidden; }
}
#replica-search { width: min(90vw, 42rem); max-height: 85vh; padding: 2rem; border: 0; color: var(--text, #000); background: var(--main-bg, #fff); }
#replica-search::backdrop { background: rgb(0 0 0 / 55%); }
#replica-search h2 { margin: 0 3rem 1rem 0; font-size: 1.5rem; }
#replica-search form { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1rem 0; }
#replica-search label { width: 100%; }
#replica-search input { flex: 1; min-width: 0; padding: .75rem; border: 1px solid #777; }
#replica-search button { min-width: 44px; min-height: 44px; padding: .75rem 1rem; background: var(--buttons, #f0cc01); color: var(--primary, #2d2d2d); }
#replica-search .replica-search-close { position: absolute; top: .5rem; right: .5rem; font-size: 1.5rem; background: transparent; }
#replica-search ul { padding: 0; list-style: none; }
#replica-search li a { display: block; padding: .75rem 0; text-decoration: underline; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Keep the hero copy outside the vans in the original artwork. */
@media (min-width: 501px) {
  #MainstageS8 > picture.img-bg img {
    display: block !important;
    left: 0;
    top: 0;
    width: 100%;
    height: auto;
    min-width: 0;
    min-height: 0;
    transform: none;
  }
}
@media (min-width: 1280px) {
  #MainstageS8 .inf {
    width: 35%;
    padding-top: 12vw !important;
    padding-bottom: 5vw !important;
    height: auto !important;
  }
  #MainstageS8Content strong { font-size: clamp(40px, 3.8vw, 73px); }
  #MainstageS8Content em { font-size: clamp(18px, 1.5vw, 29px); }
  #MainstageS8Content p { font-size: clamp(18px, 1.4vw, 27px); }
}
@media (min-width: 501px) and (max-width: 1279px) {
  #MainstageS8 .inf {
    padding-top: calc(24vw + 32px) !important;
    padding-bottom: 40px !important;
    height: auto !important;
  }
}

/* Membership and financing offers use Lifeline's existing palette and typography. */
.lifeline-offers { text-align: left; }
.lifeline-offers > section { padding: clamp(2.5rem, 5vw, 5rem) 0; background: #fff; color: #2d2d2d; }
.lifeline-offers > section:nth-of-type(even) { background: #eee; }
.lifeline-offers > section:first-of-type,
.lifeline-offers > section:last-of-type { background: #0c4ba7; color: #fff; }
.lifeline-offers .offers-container { width: min(90%, 80rem); margin: auto; }
.lifeline-offers h1 { font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.15; margin: 1rem 0; color: inherit; }
.lifeline-offers h2 { font-size: clamp(1.6rem, 3vw, 2.5rem); line-height: 1.25; margin: 1rem 0; color: inherit; }
.lifeline-offers h3 { font-size: 1.4rem; line-height: 1.3; margin: .75rem 0; color: inherit; }
.lifeline-offers p { margin: 1rem 0; line-height: 1.7; }
.lifeline-offers .offers-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: 1.5rem; margin: 2rem 0; }
.lifeline-offers .offers-grid > * { min-width: 0; }
.lifeline-offers .offers-card { padding: 1.5rem; border: 1px solid #ddd; background: #fff; color: #2d2d2d; height: 100%; }
.lifeline-offers .offers-eyebrow { display: block; font-weight: 700; letter-spacing: .06em; font-size: .85rem; }
.lifeline-offers a { color: inherit; text-decoration: underline; overflow-wrap: anywhere; }
.lifeline-offers .offers-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; max-width: 100%; padding: .85rem 1.5rem; margin: .5rem .5rem .5rem 0; background: #f0cc01; color: #2d2d2d; font-weight: 700; text-decoration: none; }
.lifeline-offers .offers-button:hover { background: #ffe455; }
.lifeline-offers ul { list-style: disc; padding-left: 1.3rem; margin: 1rem 0; }
.lifeline-offers ol { list-style: decimal; padding-left: 1.3rem; }
.lifeline-offers li { margin: .6rem 0; line-height: 1.6; }
.lifeline-offers nav ol { display: flex; gap: 1.5rem; list-style: none; padding: 0; flex-wrap: wrap; }
.lifeline-offers dl { margin: 1.5rem 0; padding: 1rem 0; border-block: 1px solid #ddd; }
.lifeline-offers dt { font-weight: 600; margin-top: .75rem; }
.lifeline-offers dd { margin: .3rem 0; font-weight: 700; }
.lifeline-offers details { border-bottom: 1px solid #ccc; padding: .75rem 0; }
.lifeline-offers summary { cursor: pointer; min-height: 44px; font-weight: 700; padding: .5rem 0; }
@media (max-width: 600px) {
  .lifeline-offers .offers-button { display: flex; width: 100%; margin-right: 0; }
  .lifeline-offers .offers-card { padding: 1.25rem; }
}
