/* Phone-only overrides. No changes to laptop layout. */
.phone-menu, .phone-dock, .phone-scenario-back { display: none; }
@media (max-width: 650px) {
  html { scroll-padding-top: 88px; scroll-behavior: auto; }
  .gateway-header, .gateway-home main, .booking-page main, .manifest-page main,
  .gateway-footer, .diagnostic-page .container { width: calc(100% - 32px); }
  .phone-ready { padding-bottom: calc(80px + env(safe-area-inset-bottom)); }
  .phone-ready .gateway-header {
    position: sticky; top: 0; z-index: 40; background: #f6f7f9;
    box-shadow: 0 8px 12px #182b4808;
  }
  .phone-ready .gateway-header, .phone-ready .nav-wrap {
    height: 72px; min-height: 72px; padding-block: 10px;
    flex-wrap: nowrap; gap: 12px; align-items: center;
  }
  .phone-ready .header { top: 0; z-index: 40; }
  .phone-ready .gateway-header > .header-call, .phone-ready .gateway-menu,
  .phone-ready .nav-wrap > .header-call, .phone-ready .menu-toggle,
  .phone-ready .header #nav, .phone-ready .booking-dock { display: none; }
  .phone-ready .gateway-header .original-logo img, .phone-ready .nav-wrap .brand img {
    width: min(180px, 48vw); height: auto;
  }
  .phone-ready .nav-wrap .brand { padding: 0; border: 0; background: transparent; }
  .phone-menu { display: block; margin-left: auto; }
  .phone-menu summary { display: flex; gap: 10px; align-items: center; cursor: pointer;
    min-height: 44px; padding: 10px 12px; border: 1px solid #cbd6e3;
    border-radius: 6px; font-size: .9375rem; font-weight: 600; list-style: none; }
  .phone-menu summary::-webkit-details-marker { display: none; }
  .phone-menu[open] summary { background: #182b48; color: #fff; }
  .gateway-header .phone-menu nav, .diagnostic-page .header .phone-menu nav {
    display: flex; flex-direction: column; position: absolute; top: 100%;
    left: 0; right: 0; width: auto; gap: 0; padding: 8px;
    max-height: calc(100dvh - 160px); overflow-y: auto; overscroll-behavior: contain;
    background: #fff; border: 1px solid #dbe2eb; border-radius: 8px;
    box-shadow: 0 12px 24px #182b481a;
  }
  .gateway-header .phone-menu:not([open]) nav,
  .diagnostic-page .header .phone-menu:not([open]) nav { display: none; }
  .gateway-header .phone-menu nav a, .diagnostic-page .header .phone-menu nav a {
    display: block; min-height: 48px; padding: 12px; font-size: 1rem;
    line-height: 1.5; color: #182b48; border-bottom: 1px solid #edf2f7;
  }
  .phone-menu nav a[aria-current] { background: #edf2f7; font-weight: 600; }
  .phone-dock { display: grid; grid-template-columns: 1.35fr 1fr; gap: 10px;
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 35;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
    background: #fff; border-top: 1px solid #dbe2eb; }
  .phone-dock a { display: flex; align-items: center; justify-content: center;
    min-height: 48px; padding: 10px 8px; border: 1px solid #cbd6e3;
    border-radius: 6px; font-size: .9375rem; font-weight: 600; text-decoration: none;
    line-height: 1.4; text-align: center; color: #182b48; }
  .phone-dock .phone-main-action { background: #182b48; border-color: #182b48; color: #fff; }
  .phone-ready:has(input:focus, textarea:focus, select:focus) .phone-dock { display: none; }
  .phone-menu a:focus-visible, .phone-dock a:focus-visible, .phone-scenario-back:focus-visible {
    outline: 3px solid #526f97; outline-offset: 3px;
  }
  .gateway-home .platform-hero { padding-top: 24px; }
  .gateway-home .hero-intro { gap: 20px; margin-bottom: 24px; }
  .gateway-home .hero-intro h1 { font-size: clamp(2rem, 8.5vw, 2.75rem); line-height: 1.16; }
  .home-hero-lead { margin-top: 16px; font-size: 1rem; line-height: 1.65; }
  .hero-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; margin-top: 20px; }
  .hero-actions .journey-secondary { border-color: transparent; background: transparent;
    padding: 10px 4px; text-decoration: underline; text-underline-offset: 4px; }
  .gateway-home .hero-intro .journey-note { display: none; }
  .first-meeting { padding: 14px 16px; }
  .first-meeting > :not(.first-meeting-summary) { display: none; }
  .first-meeting .first-meeting-summary { display: block; margin: 0; font-size: .9375rem; line-height: 1.6; }
  .first-meeting-summary strong { font-size: .9375rem; margin-bottom: 4px; }
  .gateway-home .area-grid { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .gateway-home .area-card { display: grid; grid-template-columns: 22px minmax(0, 1fr);
    min-height: 0; padding: 14px; gap: 10px; }
  .gateway-home .area-card > div { margin: 0; padding: 0; }
  .gateway-home .area-card h2 { font-size: 1.125rem; margin-bottom: 4px; }
  .gateway-home .area-card p { font-size: 1rem; line-height: 1.5; }
  .gateway-home .area-arrow { display: none; }
  .gateway-home .section-heading h2, .brand-story-copy h2, .stories-heading h2,
  .standard-lead h2, .home-faq h2 { font-size: 1.75rem; line-height: 1.25; }
  .section-heading { margin-bottom: 22px; }
  .gateway-home .section-heading > .process-reassurance { padding: 14px 16px; font-size: 1rem; }
  .process-reassurance > strong { font-size: 1.125rem; margin-bottom: 4px; }
  .gateway-home .process-list p, .gateway-home .standard-points p { line-height: 1.6; }
  .brand-story { padding: 20px 16px; margin-bottom: 36px; }
  .brand-portrait { max-width: 200px; }
  .brand-story-copy > p:not(.eyebrow) { line-height: 1.65; margin-bottom: 16px; }
  .brand-story-copy h2 { margin-bottom: 18px; }
  .policy-care { padding: 18px 14px; margin-top: 24px; gap: 14px; }
  .policy-care p { line-height: 1.65; }
  .scenario-tiles { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .scenario-tile { display: grid; grid-template-columns: minmax(0, 1fr) auto;
    align-items: center; gap: 10px; padding: 15px; }
  .scenario-tile-number, .scenario-tile-description { display: none; }
  .scenario-tile strong { font-size: 1rem; line-height: 1.5; }
  .scenario-tile-action { margin: 0; padding: 0; font-size: .8125rem; }
  .phone-scenario-back { display: block; width: 100%; min-height: 48px; margin-top: 12px;
    padding: 12px; font: 600 .9375rem/1.5 Montserrat,Arial,sans-serif;
    color: #182b48; background: #fff; border: 1px solid #cbd6e3; border-radius: 6px; cursor: pointer; }
  .case-story-body, .case-goal { padding: 20px 16px; }
  .standard-section { padding: 24px 18px; gap: 24px; }
  .booking-page main { padding-top: 20px; }
  .booking-back, .manifest-back { min-height: 44px; }
  .booking-page h1, .manifest-hero h1 { font-size: 2rem; line-height: 1.2; }
  .booking-layout { margin-top: 22px; gap: 22px; }
  .booking-card { padding: 20px 16px; }
  .booking-form input, .booking-form select, .booking-form textarea { font-size: 16px; }
  .diagnostic-page .diagnostic-intro { padding-top: 20px; padding-bottom: 12px; }
  .diagnostic-page .diagnostic-intro h1 { font-size: 1.75rem; }
  .diagnostic-page .help-section { padding-top: 8px; }
  .diagnostic-page .help-section .section-intro { display: none; }
  .diagnostic-page .diagnostic-top { padding: 14px 16px; gap: 6px; }
  .diagnostic-page #wizard { padding: 20px 16px; }
  .diagnostic-page .wizard-heading { font-size: 1.375rem; line-height: 1.35; }
  .diagnostic-page .category-grid { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .diagnostic-page .category { min-height: 0; padding: 16px; }
  .diagnostic-page .category svg { display: none; }
  .diagnostic-page .category strong { margin-top: 0; padding-right: 20px; }
  .diagnostic-page .category small { line-height: 1.5; }
  .diagnostic-page .choice { padding: 14px; min-height: 52px; line-height: 1.5; }
  .diagnostic-page .wizard-nav { flex-direction: column-reverse; align-items: stretch; gap: 10px; }
  .diagnostic-page .wizard-nav .btn { flex: none; min-height: 48px; }
  .manifest-section { padding-block: 28px; gap: 18px; }
  .manifest-page .manifest-section p { line-height: 1.7; }
  .gateway-home .platform-hero::before, .gateway-home .platform-hero::after { animation: none; }
  .process-animated li:not(:last-child)::after { transform: none; transition: none; }
  .process-animated li > span { background: #182b48; color: #fff; transition: none; }
}
