:root {
  --rs-navy: #0b2b5c;
  --rs-deep: #07204a;
  --rs-red: #c8102e;
  --rs-red-bright: #e01528;
  --rs-gold: #d6a93a;
  --rs-ink: #16253b;
  --rs-muted: #5b6878;
  --rs-soft: #f4f7fb;
  --rs-line: #dfe6ef;
  --rs-white: #ffffff;
  --rs-radius: 14px;
  --rs-shadow: 0 12px 30px rgba(7, 32, 74, .10);
}

/* Option 4 is intentionally a mobile-only redesign. Desktop remains the original Field Ready build. */
.rs-mobile-header,
.rs-mobile-menu,
.rs-mobile-sticky,
.rs-mobile-course-dock,
.rs-step-picker,
.rs-faq-modal {
  display: none;
}

@media (max-width: 820px) {
  html { scroll-behavior: smooth; }
  body {
    margin: 0 !important;
    background: #fff !important;
    color: var(--rs-ink) !important;
    padding-bottom: 70px !important;
    overflow-x: hidden;
  }
  body.rs-menu-open { overflow: hidden !important; }
  *, *::before, *::after { box-sizing: border-box; }
  img { max-width: 100%; }

  /* Hide desktop shared header only at mobile sizes. */
  .sc-host[data-sc-name="SiteHeader"] { display: none !important; }

  /* -------- Mobile header -------- */
  .rs-mobile-header {
    position: sticky;
    top: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 66px;
    padding: 9px 14px;
    background: var(--rs-deep);
    border-bottom: 3px solid var(--rs-gold);
    box-shadow: 0 7px 24px rgba(0,0,0,.18);
    font-family: 'IBM Plex Sans', Arial, sans-serif;
  }
  .rs-mobile-brand {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 10px;
    color: #fff !important;
    text-decoration: none !important;
  }
  .rs-mobile-brand img {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    object-fit: contain;
    background: #fff;
    border-radius: 50%;
  }
  .rs-mobile-brand-copy { min-width: 0; }
  .rs-mobile-brand-name {
    display: block;
    font-family: 'Oswald', Arial, sans-serif;
    font-size: 18px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: .045em;
    text-transform: uppercase;
    color: #fff;
    white-space: nowrap;
  }
  .rs-mobile-brand-sub {
    display: block;
    margin-top: 4px;
    font-size: 9px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--rs-gold);
    white-space: nowrap;
  }
  .rs-mobile-menu-button {
    width: 46px;
    height: 46px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 12px;
    background: rgba(255,255,255,.07);
    display: grid;
    place-items: center;
    cursor: pointer;
  }
  .rs-mobile-menu-button span,
  .rs-mobile-menu-button span::before,
  .rs-mobile-menu-button span::after {
    width: 22px;
    height: 2px;
    display: block;
    background: #fff;
    position: relative;
    content: '';
  }
  .rs-mobile-menu-button span::before { position:absolute; top:-7px; left:0; }
  .rs-mobile-menu-button span::after { position:absolute; top:7px; left:0; }

  /* -------- Full-screen mobile menu -------- */
  .rs-mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 20000;
    display: block;
    transform: translateX(104%);
    transition: transform .26s ease;
    background: linear-gradient(180deg, #061b3e 0%, #0b2b5c 100%);
    color: #fff;
    padding: 20px 18px 96px;
    overflow-y: auto;
    font-family: 'IBM Plex Sans', Arial, sans-serif;
  }
  .rs-mobile-menu.is-open { transform: translateX(0); }
  .rs-mobile-menu-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(255,255,255,.15);
  }
  .rs-mobile-menu-title {
    font-family: 'Oswald', Arial, sans-serif;
    font-size: 24px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
  }
  .rs-mobile-menu-close {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.22);
    background: rgba(255,255,255,.06);
    color: #fff;
    font-size: 27px;
    line-height: 1;
  }
  .rs-mobile-menu-eyebrow {
    margin: 24px 0 9px;
    color: var(--rs-gold);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
  }
  .rs-mobile-menu nav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 56px;
    padding: 0 2px;
    color: #fff !important;
    border-bottom: 1px solid rgba(255,255,255,.13);
    font-family: 'Oswald', Arial, sans-serif;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: .025em;
    text-transform: uppercase;
  }
  .rs-mobile-menu nav a::after { content: '›'; color: var(--rs-gold); font-size: 28px; }
  .rs-mobile-menu-contact {
    margin-top: 22px;
    padding: 18px;
    border: 1px solid rgba(214,169,58,.55);
    border-radius: var(--rs-radius);
    background: rgba(0,0,0,.13);
  }
  .rs-mobile-menu-contact a {
    display: block;
    color: #fff !important;
    font-weight: 600;
    padding: 6px 0;
  }

  /* -------- Persistent mobile CTA -------- */
  .rs-mobile-sticky {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 15000;
    display: grid;
    grid-template-columns: 1.22fr .78fr;
    height: 66px;
    background: var(--rs-deep);
    box-shadow: 0 -8px 24px rgba(7,32,74,.22);
    font-family: 'Oswald', Arial, sans-serif;
  }
  .rs-mobile-sticky a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #fff !important;
    text-decoration: none !important;
    text-transform: uppercase;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: .04em;
  }
  .rs-mobile-sticky .rs-book { background: var(--rs-red); }
  .rs-mobile-sticky .rs-call { background: var(--rs-deep); border-left: 1px solid rgba(255,255,255,.14); }
  .rs-mobile-sticky svg { width: 20px; height: 20px; }

  /* -------- Universal page treatment -------- */
  #dc-root, #dc-root > .sc-host { height: auto !important; min-height: 0 !important; }
  #dc-root > .sc-host > div { width: 100% !important; }

  [data-screen-label] {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  [data-screen-label] h1,
  [data-screen-label] h2,
  [data-screen-label] h3 {
    text-wrap: balance;
  }
  [data-screen-label] h1 { font-size: clamp(42px, 12vw, 56px) !important; line-height: .98 !important; }
  [data-screen-label] h2 { font-size: clamp(32px, 9vw, 40px) !important; line-height: 1.02 !important; }
  [data-screen-label] h3 { font-size: 27px !important; }
  [data-screen-label] p { font-size: 16.5px !important; line-height: 1.58 !important; }

  /* Prevent desktop grids from becoming tiny columns. */
  [data-screen-label] [style*="display:grid"] {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
  }
  [data-screen-label] [style*="display:flex"] {
    max-width: 100%;
  }
  [data-screen-label] img[style*="height:"] {
    height: auto !important;
    max-height: 360px;
  }

  /* Generic section spacing — compact but breathable. */
  [data-screen-label]:not([data-screen-label*="hero"]):not([data-screen-label="Hero"]) {
    padding: 50px 18px !important;
  }

  /* -------- Hero system -------- */
  [data-screen-label="Hero"],
  [data-screen-label$="hero"],
  [data-screen-label$="Hero"] {
    min-height: auto !important;
    padding: 54px 18px 28px !important;
    background-position: 62% center !important;
  }
  [data-screen-label="Hero"] > div,
  [data-screen-label$="hero"] > div,
  [data-screen-label$="Hero"] > div {
    display: block !important;
    max-width: 100% !important;
  }
  [data-screen-label="Hero"] > div > div,
  [data-screen-label$="hero"] > div > div,
  [data-screen-label$="Hero"] > div > div {
    max-width: 100% !important;
  }
  [data-screen-label="Hero"] h1,
  [data-screen-label$="hero"] h1,
  [data-screen-label$="Hero"] h1 {
    max-width: 340px;
    margin-bottom: 12px !important;
  }
  [data-screen-label="Hero"] p,
  [data-screen-label$="hero"] p,
  [data-screen-label$="Hero"] p {
    max-width: 350px !important;
    color: #edf3fb !important;
  }
  [data-screen-label="Hero"] a,
  [data-screen-label$="hero"] a,
  [data-screen-label$="Hero"] a {
    min-height: 50px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 14px 18px !important;
    text-align: center;
  }
  [data-screen-label="Hero"] [style*="display:flex"][style*="gap:14px"],
  [data-screen-label$="hero"] [style*="display:flex"][style*="gap:14px"],
  [data-screen-label$="Hero"] [style*="display:flex"][style*="gap:14px"] {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100%;
  }
  /* White summary card on two-column heroes */
  [data-screen-label$="hero"] > div > div:last-child[style*="background:#fff"],
  [data-screen-label$="Hero"] > div > div:last-child[style*="background:#fff"] {
    margin-top: 26px !important;
    padding: 22px !important;
    border-radius: var(--rs-radius) !important;
    box-shadow: var(--rs-shadow);
  }

  /* Homepage hero gets the strongest conversion treatment. */
  body.rs-page-home [data-screen-label="Hero"] {
    min-height: 580px !important;
    display: flex !important;
    align-items: flex-end !important;
    padding: 72px 18px 30px !important;
    background-position: 60% center !important;
  }
  body.rs-page-home [data-screen-label="Hero"] > div { margin: 0 !important; }
  body.rs-page-home [data-screen-label="Hero"] h1 { font-size: 52px !important; max-width: 350px; }

  /* -------- Top "jump to" bars become swipeable tabs -------- */
  #dc-root > .sc-host > div > div:not([data-screen-label])[style*="background:#f4f7fb"][style*="border-bottom"] {
    padding: 11px 14px !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  #dc-root > .sc-host > div > div:not([data-screen-label])[style*="background:#f4f7fb"][style*="border-bottom"]::-webkit-scrollbar { display:none; }
  #dc-root > .sc-host > div > div:not([data-screen-label])[style*="background:#f4f7fb"][style*="border-bottom"] > span { display:none !important; }
  #dc-root > .sc-host > div > div:not([data-screen-label])[style*="background:#f4f7fb"][style*="border-bottom"] > div {
    flex-wrap: nowrap !important;
    min-width: max-content;
  }
  #dc-root > .sc-host > div > div:not([data-screen-label])[style*="background:#f4f7fb"][style*="border-bottom"] a {
    border-radius: 999px !important;
    padding: 9px 14px !important;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(7,32,74,.05);
  }

  /* FAQ jump links: label above a balanced 3-by-3 button grid. */
  body.rs-page-faq #dc-root > .sc-host > div > div:not([data-screen-label])[style*="border-bottom"] {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
    padding: 16px 14px !important;
    overflow: visible !important;
  }
  body.rs-page-faq #dc-root > .sc-host > div > div:not([data-screen-label])[style*="border-bottom"] > span {
    display: block !important;
    width: 100%;
    text-align: center;
  }
  body.rs-page-faq #dc-root > .sc-host > div > div:not([data-screen-label])[style*="border-bottom"] > div {
    width: 100%;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  body.rs-page-faq #dc-root > .sc-host > div > div:not([data-screen-label])[style*="border-bottom"] a {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    padding: 9px 4px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: normal;
    font-size: 12px !important;
    line-height: 1.15;
    border-radius: 7px !important;
  }

  /* Yellow/gold notices */
  #dc-root > .sc-host > div > div:not([data-screen-label])[style*="background:#fff8e6"] {
    margin: 20px 14px 0 !important;
    padding: 20px !important;
    display: block !important;
    border-radius: 10px;
  }
  #dc-root > .sc-host > div > div:not([data-screen-label])[style*="background:#fff8e6"] a {
    margin-top: 14px !important;
    display: flex !important;
    width: 100%;
    justify-content: center;
  }

  /* -------- Cards / section redesign -------- */
  [data-screen-label] > div[style*="display:grid"] > div,
  [data-screen-label] > div > div[style*="display:grid"] > div {
    border-radius: var(--rs-radius) !important;
    overflow: hidden;
  }
  [data-screen-label] div[style*="border:1px solid #dfe6ef"] {
    border-color: #e2e8f0 !important;
  }
  [data-screen-label] div[style*="background:#fff"][style*="border"] {
    box-shadow: 0 5px 18px rgba(7,32,74,.055);
  }
  [data-screen-label] a[style*="background:#c8102e"] {
    border-radius: 8px !important;
    min-height: 48px;
    display: flex !important;
    align-items: center;
    justify-content: center;
  }
  [data-screen-label] a[style*="background:#0b2b5c"],
  [data-screen-label] a[style*="background:#07204a"] {
    border-radius: 8px !important;
  }

  /* Homepage trust strip below hero becomes 2x2 tiles. */
  body.rs-page-home [data-screen-label="Hero"] + div {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    border-bottom-width: 1px !important;
  }
  body.rs-page-home [data-screen-label="Hero"] + div > div {
    padding: 16px 14px !important;
    border-right: 1px solid var(--rs-line) !important;
    border-bottom: 1px solid var(--rs-line) !important;
    gap: 10px !important;
  }
  body.rs-page-home [data-screen-label="Hero"] + div img { width: 32px !important; height: 32px !important; }
  body.rs-page-home [data-screen-label="Hero"] + div div { font-size: 13.5px !important; }

  /* Course listing becomes compact conversion cards. */
  body.rs-page-home [data-screen-label="Courses"] > div:last-child,
  body.rs-page-classes [data-screen-label="BLS"] > div:last-child,
  body.rs-page-classes [data-screen-label="ACLS"] > div:last-child,
  body.rs-page-classes [data-screen-label="PALS"] > div:last-child,
  body.rs-page-classes [data-screen-label="Combos"] > div:last-child,
  body.rs-page-classes [data-screen-label="Triples"] > div:last-child,
  body.rs-page-classes [data-screen-label="Heartsaver"] > div:last-child {
    grid-template-columns: 1fr !important;
  }
  body.rs-page-home [data-screen-label="Courses"] [style*="grid-column:span 2"] { grid-column: auto !important; }

  /* Classes: headers tighter, pricing prominent. */
  body.rs-page-classes [data-screen-label="BLS"],
  body.rs-page-classes [data-screen-label="ACLS"],
  body.rs-page-classes [data-screen-label="PALS"],
  body.rs-page-classes [data-screen-label="Combos"],
  body.rs-page-classes [data-screen-label="Triples"],
  body.rs-page-classes [data-screen-label="Heartsaver"] {
    padding-top: 42px !important;
    padding-bottom: 8px !important;
  }
  body.rs-page-classes [data-screen-label] [style*="font-size:42px"] { font-size: 38px !important; }
  body.rs-page-classes [data-screen-label] [style*="font-size:40px"] { font-size: 34px !important; }
  body.rs-page-classes [data-screen-label] [style*="font-size:28px"] { font-size: 25px !important; }

  /* Course chooser: 2-column touch tiles rather than five tiny columns. */
  body.rs-page-services [data-screen-label="Course chooser"] > div:last-child {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body.rs-page-services [data-screen-label="Course chooser"] a {
    padding: 18px !important;
    min-height: 150px;
  }
  body.rs-page-services [data-screen-label="Course chooser"] a:last-child { grid-column: 1 / -1; min-height: 120px; }

  /* Service detail image/text alternating desktop layout -> content-first stack. */
  body.rs-page-services [data-screen-label$="detail"] { display: flex !important; flex-direction: column !important; }
  body.rs-page-services [data-screen-label$="detail"] > img { order: 2; border-radius: var(--rs-radius); margin-top: 8px; }
  body.rs-page-services [data-screen-label$="detail"] > div { order: 1; }

  /* Group training audience icons: swipe row. */
  body.rs-page-groups [data-screen-label="Who we train"] > div[style*="grid-template-columns:repeat(6"] {
    display: flex !important;
    gap: 12px !important;
    overflow-x: auto;
    padding-bottom: 6px;
    scrollbar-width: none;
  }
  body.rs-page-groups [data-screen-label="Who we train"] > div[style*="grid-template-columns:repeat(6"]::-webkit-scrollbar { display:none; }
  body.rs-page-groups [data-screen-label="Who we train"] > div[style*="grid-template-columns:repeat(6"] img {
    min-width: 145px;
    width: 145px !important;
    border-radius: 12px;
  }

  /* Forms: every control gets full-width finger-friendly sizing. */
  [data-screen-label] input,
  [data-screen-label] select,
  [data-screen-label] textarea,
  [data-screen-label] button {
    max-width: 100%;
    min-height: 48px;
    font-size: 16px !important;
  }
  [data-screen-label] input,
  [data-screen-label] select,
  [data-screen-label] textarea { width: 100% !important; }

  /* FAQ accordion behavior applied by JS */
  .rs-accordion-card {
    background: #fff !important;
    border: 1px solid var(--rs-line) !important;
    border-left: 1px solid var(--rs-line) !important;
    border-radius: 11px !important;
    padding: 0 !important;
    overflow: hidden;
    box-shadow: 0 3px 12px rgba(7,32,74,.055);
  }
  .rs-accordion-card > :first-child {
    position: relative;
    margin: 0 !important;
    padding: 17px 46px 17px 17px !important;
    min-height: 56px;
    display: flex !important;
    align-items: center;
    cursor: pointer;
    font-family: 'IBM Plex Sans', Arial, sans-serif !important;
    font-size: 15.5px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    text-transform: none !important;
    overflow-wrap: anywhere;
  }
  .rs-accordion-card > :first-child::after {
    content: '+';
    position: absolute;
    right: 17px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rs-navy);
    font-size: 25px;
    font-weight: 400;
  }
  .rs-accordion-card.is-open > :first-child::after { content: '−'; }
  .rs-accordion-card > p,
  .rs-accordion-card > div:not(:first-child) {
    display: none !important;
    padding: 0 17px 17px !important;
    margin: 0 !important;
    color: var(--rs-muted) !important;
  }
  .rs-accordion-card.is-open > p,
  .rs-accordion-card.is-open > div:not(:first-child) { display: block !important; }

  /* FAQ page answers open in an in-page foreground dialog. */
  body.rs-faq-modal-open { overflow: hidden !important; }
  body.rs-page-faq .rs-accordion-card.is-open > p,
  body.rs-page-faq .rs-accordion-card.is-open > div:not(:first-child) {
    display: none !important;
  }
  .rs-faq-modal {
    position: fixed;
    inset: 0;
    z-index: 30000;
    padding: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    visibility: hidden;
    opacity: 0;
    background: rgba(3, 18, 43, .72);
    backdrop-filter: blur(5px);
    transition: opacity .2s ease, visibility .2s ease;
  }
  .rs-faq-modal.is-open {
    visibility: visible;
    opacity: 1;
  }
  .rs-faq-dialog {
    position: relative;
    width: min(100%, 520px);
    max-height: min(78vh, 680px);
    padding: 30px 22px 24px;
    overflow-y: auto;
    background: #fff;
    border-top: 5px solid var(--rs-red);
    border-radius: 16px;
    box-shadow: 0 24px 70px rgba(0,0,0,.38);
    opacity: 0;
    transform: scale(.78) translateY(24px);
    transition: transform .24s cubic-bezier(.2,.8,.2,1), opacity .18s ease;
  }
  .rs-faq-modal.is-open .rs-faq-dialog {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
  .rs-faq-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 42px;
    height: 42px;
    min-height: 42px !important;
    padding: 0 !important;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: var(--rs-deep);
    color: #fff;
    font-size: 27px !important;
    line-height: 1;
    cursor: pointer;
  }
  .rs-faq-dialog h2 {
    margin: 0;
    padding: 0 48px 18px 0;
    color: var(--rs-navy) !important;
    font-family: 'Oswald', sans-serif;
    font-size: 27px !important;
    line-height: 1.15 !important;
    text-transform: none;
  }
  .rs-faq-answer {
    padding-top: 18px;
    border-top: 1px solid var(--rs-line);
    color: var(--rs-muted);
  }
  .rs-faq-answer > * {
    display: block !important;
    margin-top: 0 !important;
    color: var(--rs-muted) !important;
    font-size: 16px !important;
    line-height: 1.65 !important;
  }
  .rs-faq-answer a { color: var(--rs-red) !important; }

  /* FAQ question grids must not retain narrow desktop columns on phones. */
  body.rs-page-faq [data-screen-label="FAQ hero"] {
    background: linear-gradient(90deg, rgba(7,32,74,.96), rgba(7,32,74,.72)), url('uploads/class image.png') center/cover no-repeat !important;
  }
  body.rs-page-faq [data-screen-label="FAQ hero"] > div {
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }
  body.rs-page-faq [data-screen-label="FAQ hero"] h1 {
    color: #fff !important;
  }
  body.rs-page-faq [data-screen-label] [style*="grid-template-columns"] {
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    gap: 12px !important;
  }
  body.rs-page-faq .rs-accordion-card {
    width: 100% !important;
    min-width: 0 !important;
  }
  body.rs-page-faq .rs-accordion-card > :first-child {
    width: 100%;
    min-height: 60px;
    padding: 17px 58px 17px 18px !important;
  }
  body.rs-page-faq .rs-accordion-card > :first-child::after {
    right: 19px;
    width: 28px;
    text-align: center;
  }

  /* Policies should not accordion unless explicitly marked by JS. */
  body.rs-page-policies .rs-accordion-card { padding: 0 !important; }

  /* Contact action cards: 2x2 with shorter text. */
  body.rs-page-contact [data-screen-label="Get in touch"] > div:last-child {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
  body.rs-page-contact [data-screen-label="Get in touch"] > div:last-child > div { padding: 18px !important; }
  body.rs-page-contact [data-screen-label="Get in touch"] > div:last-child p { font-size: 14px !important; }

  /* Long direction columns become separate cards. */
  body.rs-page-contact [data-screen-label="Directions"] > div:last-child > div { padding: 24px 20px !important; }

  /* New grad fast-track cards: highlight the middle card but keep one column. */
  body.rs-page-newgrads [data-screen-label="Fast track options"] > div:last-child,
  body.rs-page-newgrads [data-screen-label="All three"] > div:last-child {
    grid-template-columns: 1fr !important;
  }

  /* Four-step sections: dice-style selector with one full-width detail card. */
  .rs-step-picker {
    width: min(230px, 72vw);
    aspect-ratio: 1;
    margin: 4px auto 24px;
    padding: 22px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    place-items: center;
    gap: 26px;
    background: #fff;
    border: 2px solid var(--rs-line);
    border-radius: 24px;
    box-shadow: var(--rs-shadow);
  }
  .rs-step-button {
    width: 62px;
    height: 62px;
    min-height: 62px !important;
    padding: 0 !important;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: var(--rs-red);
    color: #fff;
    font-family: 'Oswald', sans-serif;
    font-size: 27px !important;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 7px 15px rgba(200,16,46,.24);
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
  }
  .rs-step-button[aria-selected="true"] {
    background: var(--rs-deep);
    outline: 4px solid var(--rs-gold);
    outline-offset: 3px;
    transform: scale(1.06);
    box-shadow: 0 9px 20px rgba(7,32,74,.25);
  }
  .rs-step-button:focus-visible {
    outline: 4px solid var(--rs-gold);
    outline-offset: 3px;
  }
  .rs-step-cards {
    display: block !important;
    width: 100% !important;
  }
  .rs-step-card {
    display: none !important;
    width: 100% !important;
    min-height: 250px;
    padding: 28px 24px !important;
    border-top: 5px solid var(--rs-red) !important;
    border-radius: var(--rs-radius) !important;
    box-shadow: var(--rs-shadow);
  }
  .rs-step-card.is-active {
    display: flex !important;
    animation: rs-step-in .2s ease both;
  }
  .rs-step-card > img:first-child { display: none !important; }
  .rs-step-card > div {
    font-size: 29px !important;
    line-height: 1.1 !important;
  }
  .rs-step-card > p {
    font-size: 17px !important;
    line-height: 1.65 !important;
  }
  @keyframes rs-step-in {
    from { opacity: 0; transform: translateY(7px); }
    to { opacity: 1; transform: translateY(0); }
  }

  /* Team benefits: centered horizontal Rolodex carousel. */
  body.rs-page-groups [data-screen-label="Why teams choose us"] > h2 {
    color: var(--rs-navy) !important;
  }
  .rs-rolodex {
    width: calc(100% + 36px) !important;
    max-width: none !important;
    margin-inline: -18px;
    padding: 8px 11% 24px;
    display: flex !important;
    gap: 14px !important;
    overflow-x: auto;
    overflow-y: visible;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 11%;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    perspective: 900px;
    background: transparent !important;
  }
  .rs-rolodex::-webkit-scrollbar { display: none; }
  .rs-rolodex-card {
    flex: 0 0 78%;
    width: 78%;
    min-height: 310px;
    padding: 28px 24px !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
    scroll-snap-align: center;
    border: 1px solid var(--rs-line);
    border-top: 5px solid var(--rs-gold);
    border-radius: 16px;
    box-shadow: 0 14px 34px rgba(7,32,74,.16);
    opacity: var(--rs-card-opacity, .55);
    transform: scale(var(--rs-card-scale, .78)) rotateY(var(--rs-card-rotate, 0deg));
    transform-origin: center;
    transition: transform .18s ease-out, opacity .18s ease-out, box-shadow .18s ease-out;
  }
  .rs-rolodex-card.is-centered {
    box-shadow: 0 18px 40px rgba(7,32,74,.24);
  }
  .rs-rolodex-card > div {
    font-size: 27px !important;
    line-height: 1.15 !important;
  }
  .rs-rolodex-card > p {
    font-size: 17px !important;
    line-height: 1.65 !important;
  }

  /* SAMA audience and program grids */
  body.rs-page-sama [data-screen-label="Who it's for"] > div[style*="display:grid"],
  body.rs-page-sama [data-screen-label="Programs"] > div[style*="display:grid"] {
    grid-template-columns: 1fr !important;
  }
  body.rs-page-sama [data-screen-label="Who it's for"] > div[style*="display:flex"][style*="background:#dfe6ef"] {
    overflow-x: auto;
    display: flex !important;
    gap: 1px !important;
    scrollbar-width: none;
  }
  body.rs-page-sama [data-screen-label="Who it's for"] > div[style*="display:flex"][style*="background:#dfe6ef"] > div {
    min-width: 210px;
  }

  /* Footer mobile hierarchy */
  .sc-host[data-sc-name="SiteFooter"] > div {
    padding: 38px 18px 92px !important;
  }
  .sc-host[data-sc-name="SiteFooter"] > div > div:first-child {
    grid-template-columns: 1fr 1fr !important;
    gap: 28px 18px !important;
  }
  .sc-host[data-sc-name="SiteFooter"] > div > div:first-child > div:first-child,
  .sc-host[data-sc-name="SiteFooter"] > div > div:first-child > div:last-child {
    grid-column: 1 / -1;
  }
  .sc-host[data-sc-name="SiteFooter"] > div > div:last-child {
    flex-direction: column !important;
    gap: 7px !important;
  }

  /* Conversion-first local trust / content contrast */
  [data-screen-label="Trust"],
  [data-screen-label="Confidence"],
  [data-screen-label="Why teams choose us"] {
    background: var(--rs-soft) !important;
  }

  /* Avoid horizontal overflow from desktop fixed widths. */
  [style*="width:1440px"], [style*="width:1200px"], [style*="min-width:"] { max-width:100% !important; }
}

@media (max-width: 430px) {
  body { padding-bottom: 58px !important; }
  .rs-mobile-header {
    min-height: 58px;
    padding: 7px 12px;
  }
  .rs-mobile-brand { gap: 8px; }
  .rs-mobile-brand img {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }
  .rs-mobile-brand-name { font-size: 15.5px; }
  .rs-mobile-brand-sub {
    margin-top: 3px;
    font-size: 7.5px;
    letter-spacing: .13em;
  }
  .rs-mobile-menu-button {
    width: 40px;
    height: 40px;
    border-radius: 10px;
  }
  .rs-mobile-menu-button span,
  .rs-mobile-menu-button span::before,
  .rs-mobile-menu-button span::after { width: 19px; }
  .rs-mobile-sticky { height: 58px; }
  .rs-mobile-sticky a {
    gap: 6px;
    font-size: 15px;
  }
  .rs-mobile-sticky svg { width: 18px; height: 18px; }

  [data-screen-label]:not([data-screen-label*="hero"]):not([data-screen-label="Hero"]) {
    padding: 42px 16px !important;
  }
  [data-screen-label] h1 { font-size: 40px !important; }
  [data-screen-label] h2 { font-size: 30px !important; }
  [data-screen-label] h3 { font-size: 24px !important; }
  [data-screen-label] p {
    font-size: 15.5px !important;
    line-height: 1.55 !important;
  }
  [data-screen-label="Hero"] h1,
  [data-screen-label$="hero"] h1,
  [data-screen-label$="Hero"] h1 { font-size: 39px !important; }
  [data-screen-label="Hero"],
  [data-screen-label$="hero"],
  [data-screen-label$="Hero"] {
    padding: 42px 16px 24px !important;
  }
  body.rs-page-home [data-screen-label="Hero"] {
    min-height: 500px !important;
    padding: 46px 16px 24px !important;
  }
  body.rs-page-home [data-screen-label="Hero"] h1 {
    max-width: 310px;
    font-size: 41px !important;
  }
  body.rs-page-home [data-screen-label="Hero"] p {
    max-width: 330px !important;
    font-size: 15.5px !important;
  }
  [data-screen-label] a[style*="padding:"] {
    min-height: 44px;
    padding-top: 11px !important;
    padding-bottom: 11px !important;
  }
  body.rs-page-contact [data-screen-label="Get in touch"] > div:last-child { grid-template-columns: 1fr !important; }
}
