/* AtSea.group 0.35.14 — mobile public UI recovery
   Scope: mobile consultation flow + academy native video controls.
   Loaded after public-modern.css so it can safely neutralize legacy/mobile collisions. */

@media (max-width: 900px) {
  html,
  body.site-body {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: hidden !important;
  }

  body.site-body > .atsea-public-main,
  .atsea-public-main {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: clip !important;
  }

  /* Consultation: keep every section inside the real mobile viewport. */
  .consult-ajax-public {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    overflow-x: clip !important;
    box-sizing: border-box !important;
  }

  .consult-ajax-public .consult-shell {
    width: calc(100% - 24px) !important;
    max-width: calc(100% - 24px) !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  .consult-ajax-public .consult-layout-inline {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    gap: 14px !important;
  }

  .consult-ajax-public .consult-info-column,
  .consult-ajax-public .consult-booking-column,
  .consult-ajax-public .consult-detail-card,
  .consult-ajax-public .consult-calendar-card,
  .consult-ajax-public .consult-ajax-time-panel,
  .consult-ajax-public .consult-ajax-checkout {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .consult-ajax-public .consult-info-column,
  .consult-ajax-public .consult-booking-column {
    height: auto !important;
    align-self: stretch !important;
  }

  .consult-ajax-public .consult-detail-card {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  .consult-ajax-public .consult-detail-cover {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .consult-ajax-public .consult-detail-head,
  .consult-ajax-public .consult-detail-summary,
  .consult-ajax-public .consult-detail-summary ul,
  .consult-ajax-public .consult-detail-summary li,
  .consult-ajax-public .consult-detail-summary p {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .consult-ajax-public .consult-detail-summary {
    overflow: visible !important;
    scrollbar-gutter: auto !important;
  }

  /* Three equal booking steps: no clipped step 3 and no off-screen connector. */
  .consult-ajax-public .consult-ajax-progress {
    display: grid !important;
    grid-template-columns: 40px minmax(18px, 1fr) 40px minmax(18px, 1fr) 40px !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    gap: 8px !important;
    padding: 11px 14px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  .consult-ajax-public .consult-ajax-progress > div {
    width: 40px !important;
    min-width: 40px !important;
    display: grid !important;
    place-items: center !important;
    gap: 0 !important;
  }

  .consult-ajax-public .consult-ajax-progress > div > span {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    box-sizing: border-box !important;
  }

  .consult-ajax-public .consult-ajax-progress > div > b {
    display: none !important;
  }

  .consult-ajax-public .consult-ajax-progress > i {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 2px !important;
    margin: 0 !important;
  }

  /* Calendar keeps a strict seven-column grid and never grows beyond its card. */
  .consult-ajax-public .consult-calendar-card {
    padding: 15px 12px 14px !important;
    overflow: hidden !important;
  }

  .consult-ajax-public .consult-calendar-head {
    grid-template-columns: 46px minmax(0, 1fr) 46px !important;
    gap: 8px !important;
    width: 100% !important;
  }

  .consult-ajax-public .consult-calendar-head h2 {
    min-width: 0 !important;
    font-size: clamp(21px, 6.6vw, 28px) !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .consult-ajax-public .consult-calendar-head button {
    width: 42px !important;
    height: 42px !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .consult-ajax-public .consult-weekhead,
  .consult-ajax-public .consult-days {
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    gap: 5px !important;
    box-sizing: border-box !important;
  }

  .consult-ajax-public .consult-weekhead > *,
  .consult-ajax-public .consult-days > * {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .consult-ajax-public .consult-day {
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 1 / 1 !important;
    padding: 0 !important;
  }

  .consult-ajax-public .consult-inline-times {
    width: 100% !important;
    min-width: 0 !important;
  }

  .consult-ajax-public .consult-inline-times button {
    min-width: 0 !important;
    flex: 1 1 calc(33.333% - 7px) !important;
  }

  .consult-ajax-public .consult-ajax-summary {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .consult-ajax-public .checkout-fields-grid,
  .consult-ajax-public .checkout-field,
  .consult-ajax-public .atsea-phone-field,
  .consult-ajax-public .atsea-phone-control,
  .consult-ajax-public .checkout-payment-methods,
  .consult-ajax-public .checkout-payment-options {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Academy player: compact controls that actually fit on phones. */
  .academy-viewer,
  .academy-shell,
  .academy-content,
  .academy-video,
  .academy-native-player,
  .academy-description {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .academy-viewer,
  .academy-shell {
    width: 100% !important;
    overflow-x: clip !important;
  }

  .academy-content {
    width: 100% !important;
    overflow-x: hidden !important;
  }

  .academy-video,
  .academy-native-player {
    width: 100% !important;
    overflow: hidden !important;
  }

  .academy-native-player .academy-player-controls {
    left: 7px !important;
    right: 7px !important;
    bottom: 7px !important;
    width: auto !important;
    max-width: calc(100% - 14px) !important;
    min-width: 0 !important;
    min-height: 44px !important;
    display: grid !important;
    grid-template-columns: 32px minmax(44px, 1fr) auto 32px 34px 32px !important;
    align-items: center !important;
    gap: 5px !important;
    padding: 5px 6px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  .academy-native-player .academy-player-current,
  .academy-native-player .academy-player-volume {
    display: none !important;
  }

  .academy-native-player .academy-player-play,
  .academy-native-player .academy-player-mute,
  .academy-native-player .academy-player-download,
  .academy-native-player .academy-player-fullscreen {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    height: 32px !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  .academy-native-player .academy-player-download {
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
  }

  .academy-native-player .academy-player-download span {
    display: none !important;
  }

  .academy-native-player .academy-player-seek {
    display: block !important;
    width: 100% !important;
    min-width: 44px !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  .academy-native-player .academy-player-duration {
    min-width: 0 !important;
    margin: 0 !important;
    font-size: 9px !important;
    line-height: 1 !important;
  }
}

@media (max-width: 620px) {
  .consult-ajax-public .consult-hero h1 {
    overflow-wrap: anywhere !important;
  }

  .consult-ajax-public .consult-ajax-checkout .checkout-fields-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .consult-ajax-public .consult-ajax-checkout .checkout-field,
  .consult-ajax-public .consult-ajax-checkout .span-2,
  .consult-ajax-public .consult-ajax-checkout .atsea-phone-field {
    grid-column: 1 / -1 !important;
  }

  .consult-ajax-public .consult-ajax-summary {
    gap: 10px !important;
    padding: 11px !important;
  }

  .consult-ajax-public .consult-ajax-summary > strong {
    font-size: 18px !important;
  }
}

@media (max-width: 420px) {
  .consult-ajax-public .consult-shell {
    width: calc(100% - 20px) !important;
    max-width: calc(100% - 20px) !important;
  }

  .consult-ajax-public .consult-ajax-progress {
    grid-template-columns: 36px minmax(12px, 1fr) 36px minmax(12px, 1fr) 36px !important;
    gap: 6px !important;
    padding: 10px 11px !important;
  }

  .consult-ajax-public .consult-ajax-progress > div {
    width: 36px !important;
    min-width: 36px !important;
  }

  .consult-ajax-public .consult-ajax-progress > div > span {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
  }

  .consult-ajax-public .consult-calendar-card {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .consult-ajax-public .consult-weekhead,
  .consult-ajax-public .consult-days {
    gap: 4px !important;
  }

  .consult-ajax-public .consult-inline-times button {
    flex-basis: calc(50% - 6px) !important;
  }

  .academy-native-player .academy-player-controls {
    grid-template-columns: 30px minmax(38px, 1fr) auto 30px 32px 30px !important;
    gap: 4px !important;
    padding-left: 5px !important;
    padding-right: 5px !important;
  }

  .academy-native-player .academy-player-play,
  .academy-native-player .academy-player-mute,
  .academy-native-player .academy-player-fullscreen {
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    height: 30px !important;
  }

  .academy-native-player .academy-player-download {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    height: 30px !important;
  }

  .academy-native-player .academy-player-duration {
    font-size: 8px !important;
  }
}
