/* Final mobile guardrails for the public homepage.
   Desktop layout is intentionally untouched. */
@media (max-width: 767px) {
  html,
  body {
    max-width: 100%;
    overflow-x: clip;
  }

  .v2-home,
  .v2-hero,
  .v2-hero-grid,
  .v2-hero-grid > div,
  .v2-hero-media,
  .mascot-hero,
  .mascot-arrival,
  .mascot-picture {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  .v2-hero.is-signal-enhanced {
    padding-top: 36px !important;
    padding-bottom: 28px !important;
  }

  .v2-hero.is-signal-enhanced .v2-hero-grid {
    width: calc(100% - 28px);
    margin-inline: auto;
    gap: 20px;
    align-items: stretch;
  }

  .v2-hero.is-signal-enhanced .v2-hero-grid > div:first-child {
    width: 100%;
    overflow: visible;
  }

  .v2-hero.is-signal-enhanced h1.v2-hero-health-title {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0 0 8px !important;
    padding: 0 0 8px;
    font-size: clamp(29px, 8.25vw, 34px) !important;
    line-height: 1.18 !important;
    letter-spacing: -.35px;
    white-space: normal !important;
    overflow-wrap: normal;
    word-break: normal;
  }

  .v2-hero.is-signal-enhanced .v2-hero-alert {
    display: flex;
    align-items: center;
    gap: 2ch;
    width: 100%;
    max-width: 100%;
    margin: 0 0 12px;
    padding: 0;
    font-size: clamp(24px, 7vw, 29px) !important;
    line-height: 1.2 !important;
    letter-spacing: -.25px;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
  }

  .v2-hero.is-signal-enhanced .v2-hero-alert .v2-bsod-icon {
    flex: 0 0 1.5em;
    width: 1.5em;
    height: 1.38em;
    color: initial !important;
    -webkit-text-fill-color: initial !important;
  }

  .v2-hero.is-signal-enhanced .v2-bsod-icon,
  .v2-hero.is-signal-enhanced .v2-bsod-icon svg,
  .v2-hero.is-signal-enhanced .v2-bsod-icon svg * {
    -webkit-text-fill-color: initial !important;
  }

  .v2-hero.is-signal-enhanced .v2-bsod-frame {
    fill: #17243a !important;
    stroke: #ff3028 !important;
  }

  .v2-hero.is-signal-enhanced .v2-bsod-screen {
    fill: #1677ff !important;
    stroke: #8ec5ff !important;
    filter: none !important;
    animation: none !important;
  }

  .v2-hero.is-signal-enhanced .v2-bsod-face {
    fill: none !important;
    stroke: #fff !important;
  }

  .v2-hero.is-signal-enhanced .v2-bsod-stand {
    fill: none !important;
    stroke: #17243a !important;
  }

  .v2-hero.is-signal-enhanced .v2-hero-alert .v2-hero-alert-text {
    min-width: 0;
  }

  .v2-hero.is-signal-enhanced .v2-hero-specialist,
  .v2-hero.is-signal-enhanced .v2-hero-copy {
    width: 100%;
    max-width: 100%;
    overflow-wrap: break-word;
  }

  .v2-hero.is-signal-enhanced .v2-hero-media {
    width: 100%;
    margin: 0 !important;
    padding: 0;
    overflow: hidden;
    border-radius: 18px;
    background: transparent;
  }

  .v2-hero.is-signal-enhanced .mascot-hero,
  .v2-hero.is-signal-enhanced .mascot-arrival {
    width: 100%;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    background: transparent;
  }

  .v2-hero.is-signal-enhanced .mascot-picture {
    display: block;
    width: 100%;
    background: transparent;
  }

  .v2-hero.is-signal-enhanced .mascot-rider,
  .v2-hero.is-signal-enhanced .mascot-rider--photo,
  .v2-hero.is-signal-enhanced .v2-hero-media img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    object-fit: contain !important;
    object-position: center !important;
    transform: none !important;
  }

  .premium-search {
    min-width: 0;
  }

  .premium-search input {
    min-width: 0;
    text-overflow: ellipsis;
  }

  .mobile-bottom-actions {
    box-sizing: border-box;
  }

  body.frontend-v2 {
    padding-bottom: calc(74px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 420px) {
  .v2-hero.is-signal-enhanced h1.v2-hero-health-title {
    font-size: clamp(28px, 8.1vw, 32px) !important;
  }

  .v2-hero.is-signal-enhanced .v2-hero-alert {
    font-size: clamp(23px, 6.8vw, 27px) !important;
  }
}

@media (max-width: 340px) {
  .premium-mobile-search {
    width: 54px !important;
    font-size: 13px !important;
  }

  .premium-search {
    width: calc(100% - 124px) !important;
  }
}

/* Tablet guardrail: retain the established two-column/tablet composition,
   but never let the hero artwork extend beyond its grid column. */
@media (min-width: 768px) and (max-width: 1199px) {
  .v2-hero.is-signal-enhanced .v2-hero-grid,
  .v2-hero.is-signal-enhanced .v2-hero-media,
  .v2-hero.is-signal-enhanced .mascot-hero,
  .v2-hero.is-signal-enhanced .mascot-arrival,
  .v2-hero.is-signal-enhanced .mascot-picture {
    min-width: 0;
    max-width: 100%;
  }

  .v2-hero.is-signal-enhanced .mascot-rider,
  .v2-hero.is-signal-enhanced .mascot-rider--photo {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin-inline: auto !important;
    object-fit: contain !important;
    transform: none !important;
  }
}

/* Use the former mobile-search slot for the real navigation drawer toggle. */
@media (max-width: 1050px) {
  .premium-mobile-search {
    display: none !important;
  }

  .premium-main-inner > .hm-toggle.hm-toggle--premium-slot {
    display: grid !important;
    place-items: center;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    margin: 0;
    padding: 0;
    border: 1px solid #46566d;
    border-radius: 12px;
    color: #fff;
    background: #202b3d;
    cursor: pointer;
  }

  .premium-main-inner > .hm-toggle.hm-toggle--premium-slot i {
    display: block;
    width: 25px;
    height: 2px;
    margin: 2px;
    background: currentColor;
  }

  .managed-header > header .hm-mobile:empty {
    display: none !important;
  }
}
