/* Shared phone layout for all three landing variants and their forms. */
.calendar-swipe-hint{display:none}
@media (max-width:700px), (max-width:960px) and (max-height:500px) and (pointer:coarse){
  html{scroll-padding-top:80px}
  body:has(dialog[open]){overflow:hidden}
  .wrap{width:calc(100% - 32px)}
  .nav{min-height:64px;gap:12px;padding-block:8px}
  .nav .logo svg{width:140px}
  .nav-actions>.btn{display:none}
  .nav .menu{width:44px;height:44px;min-width:44px}
  .nav-links{top:100%;padding:12px 16px 18px;gap:0;max-height:calc(100dvh - 80px);overflow:auto}
  .nav-links a{display:flex;align-items:center;min-height:48px;width:100%;font-size:1rem}
  .hero{padding:32px 0 36px}
  .hero h1{font-size:clamp(2.25rem,9.5vw,3.25rem);line-height:1.06;overflow-wrap:break-word}
  .hero .eyebrow{font-size:.875rem;line-height:1.5}
  .hero .lead{font-size:1.0625rem;line-height:1.6}
  .hero .hero-actions{gap:8px;margin-top:22px}
  .hero .hero-actions>.btn-primary{width:100%;min-height:52px;font-size:1rem}
  .hero .hero-actions>.btn-link{min-height:44px;justify-content:center;width:100%;font-size:.9375rem}
  .hero-micro{font-size:.875rem;line-height:1.5}
  .section{padding:48px 0}.section h2{font-size:clamp(1.9rem,7.5vw,2.6rem);line-height:1.12}
  .section-head p,.support-card>p,.connection p,.people-lesson p,.people-team-heading .lead{font-size:1rem;line-height:1.6}
  .hero-grid>*,.context-grid>*,.support-grid>*,.parent-grid>*,.start-grid>*{min-width:0}
  .people-hero-label{flex-wrap:wrap;font-size:.875rem}.people-hero-label span{font-size:.75rem}
  .people-mosaic img{height:auto;aspect-ratio:1.04;object-position:center 12%}
  .people-profile-image img{height:auto;aspect-ratio:.88;object-position:center 12%}
  .people-hybrid strong{font-size:1rem}.people-hybrid p,.people-team-note,.people-team-footer p,.people-start p{font-size:.875rem;line-height:1.6}
  .people-team-footer .btn,.ai-module-footer .btn,.launch-card>.btn{width:100%;min-height:52px;white-space:normal;font-size:1rem}
  .steps-people-photos img{width:80px;height:98px}
  .duo-card{padding:20px 14px;min-height:0}.duo-card h3{font-size:1.125rem}.duo-card p,.duo-card small{font-size:.875rem}
  .one-plan strong{font-size:1rem}.one-plan p{font-size:.875rem}
  .tutor-media-badge{max-width:calc(100% - 24px);white-space:normal;font-size:.875rem}
  .tutor-loop-toggle{width:44px;height:44px;right:10px;bottom:10px}
  .report{padding:20px}.report-head{gap:12px;flex-wrap:wrap}.report-chart figcaption{font-size:1rem}.report-chart figcaption small,.report-axis{font-size:.8125rem}
  .report-row p{font-size:1rem}.report-bars,.report-axis{gap:10px;padding-inline:4px}.report-bar strong{font-size:.875rem}
  .accordion summary{min-height:52px;font-size:1rem;line-height:1.45;gap:16px}
  .footer-links{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;width:100%}
  .footer-links a,.footer-legal a{display:flex;align-items:center;min-height:44px;overflow-wrap:anywhere;font-size:.875rem}
  .footer-legal{gap:0 20px}.footer-bottom{flex-direction:column;gap:8px;font-size:.8125rem;line-height:1.5}
  footer{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
  .mobile-cta{display:flex;padding:10px 16px calc(10px + env(safe-area-inset-bottom));gap:0}
  .mobile-cta>span{display:none}.mobile-cta .btn{width:100%;min-height:50px;font-size:1rem;justify-content:center;padding:12px 16px}
  body:has(dialog[open]) .mobile-cta{display:none}

  /* One content pane, with actions above the keyboard and safe-area inset. */
  .booking-dialog{position:fixed;inset:var(--mobile-viewport-top,0px) 0 auto;margin:0;width:100%;height:var(--mobile-viewport-height,100dvh);max-height:var(--mobile-viewport-height,100dvh);border:0;border-radius:0;box-shadow:none}
  .booking-top{min-height:60px;padding:8px 16px;padding-top:max(8px,env(safe-area-inset-top));gap:12px}
  .booking-top .logo svg{width:132px}.booking-top .small{display:none}
  .booking-top .booking-close,.subject-dialog .booking-close,.advisor-dialog .booking-close{width:44px;height:44px;min-width:44px}
  .preview-notice{padding:8px 16px;font-size:.8125rem;line-height:1.4}
  .booking-progress{padding:12px 16px 0}.progress-caption{font-size:.875rem;line-height:1.4;gap:12px}
  .booking-dialog .booking-scroll{padding:18px 16px 24px;overscroll-behavior:contain;scroll-padding:16px;overflow-x:hidden;-webkit-overflow-scrolling:touch}
  .booking-scroll>h2{font-size:clamp(1.5rem,6.5vw,1.85rem);line-height:1.15}
  .booking-help{font-size:.9375rem;line-height:1.5;margin:10px 0 18px}
  .booking-footer{padding:10px 16px max(10px,env(safe-area-inset-bottom));border-top-width:1.5px}
  .booking-nav,.booking-dialog[data-trial-cta=true] .booking-nav{display:flex;gap:12px;align-items:center}
  .booking-back{flex:0 0 auto;min-height:44px;padding:6px 0;font-size:.875rem}
  .booking-footer .btn,.booking-dialog[data-trial-cta=true] #booking-next{flex:1;min-width:0;max-width:none;min-height:52px;font-size:1rem;padding:12px 14px;line-height:1.35;white-space:normal;text-align:center;text-wrap:balance}
  .booking-back[hidden]+.btn{width:100%}
  .booking-advisor{min-height:44px;margin-top:6px;font-size:.875rem;line-height:1.4}
  .booking-error{font-size:.875rem;line-height:1.45;max-height:88px;overflow:auto}
  .booking-dialog .option-content{min-height:56px;padding:12px;font-size:1rem;line-height:1.45}
  .booking-dialog .option-content small{font-size:.875rem;line-height:1.4}
  #level-options{grid-template-columns:1fr}#level-options .option-content{min-height:72px}
  #goal-options{grid-template-columns:1fr}
  #subject-options{grid-template-columns:repeat(2,minmax(0,1fr))}
  .human-lesson-preview{padding:14px;gap:12px;margin-bottom:16px}
  .human-lesson-preview strong{font-size:1rem}.human-lesson-preview p,.human-subject-count{font-size:.875rem;line-height:1.5}
  .tutor-subjects button{min-height:56px;padding:10px;font-size:.9375rem;gap:8px;overflow-wrap:anywhere}
  .tutor-subjects .subject-check{flex-basis:20px;height:20px}.human-lesson-photos img{width:50px;height:70px}

  .support-config,.booking-dialog .support-config{grid-template-columns:minmax(0,1fr);max-width:100%;margin:0;border-radius:16px;box-shadow:3px 4px 0 var(--ink)}
  .config-controls,.config-quote,.booking-dialog .config-controls,.booking-dialog .config-quote{padding:18px 16px;min-width:0}
  .config-quote,.booking-dialog .config-quote{display:block;border-left:0;border-top:1.5px solid var(--ink)}
  .booking-dialog .config-price-live{display:block}
  .offer-choice,.booking-dialog .offer-choice{min-height:72px;padding:10px;border-radius:12px}
  .offer-choice strong,.booking-dialog .offer-choice strong{font-size:1.25rem}
  .offer-choice span,.booking-dialog .offer-choice span{font-size:.875rem;line-height:1.4}
  .config-field,.booking-dialog .config-field{margin-bottom:18px}
  .config-field legend,.booking-dialog .config-field legend{font-size:1rem;line-height:1.4;margin-bottom:10px}
  .config-subject-context{gap:10px}.config-subject-context span,.booking-dialog .config-subject-context span{font-size:.875rem;line-height:1.4}
  .config-subject-context strong,.booking-dialog .config-subject-context strong{font-size:1rem;line-height:1.5;overflow-wrap:anywhere}
  .config-link{display:inline-flex;align-items:center;min-height:44px;font-size:.9375rem;flex-shrink:0}
  .subject-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .subject-chips .config-choice>span{min-height:48px;padding:10px;font-size:.9375rem;justify-content:center}
  .frequency-options,.booking-dialog .frequency-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .frequency-choice>span,.booking-dialog .frequency-choice>span{min-height:100px;padding:12px 10px;gap:6px}
  .frequency-name,.booking-dialog .frequency-name{font-size:.9375rem}.frequency-choice strong,.booking-dialog .frequency-choice strong{font-size:2rem}
  .frequency-hint,.booking-dialog .frequency-hint{display:none}
  .config-help,.booking-dialog .config-help,.config-benefits,.booking-dialog .config-benefits{font-size:.875rem;line-height:1.55}
  .config-billing,.booking-dialog .config-billing{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .config-billing .config-choice>span,.booking-dialog .config-billing .config-choice>span{min-height:68px;padding:10px 8px;flex-direction:column;justify-content:center;gap:5px;font-size:.875rem;text-align:center;line-height:1.35;white-space:normal}
  .config-billing b,.booking-dialog .config-billing b{font-size:.75rem}
  .config-kicker,.booking-dialog .config-kicker{font-size:1rem;line-height:1.45}
  .config-price,.booking-dialog .config-price{margin-top:8px;text-align:left;white-space:normal;flex-wrap:wrap;gap:4px 8px}
  .config-price strong,.booking-dialog .config-price strong{font-size:2.5rem;white-space:nowrap}
  .config-price>span,.booking-dialog .config-price>span{font-size:1rem}
  .config-due,.booking-dialog .config-due{font-size:.875rem;line-height:1.5;margin-top:6px}
  .config-benefits,.booking-dialog .config-benefits{gap:8px;margin-top:14px}
  .config-ai,.booking-dialog .config-ai{margin-top:14px;padding:12px;gap:10px}
  .config-ai p,.booking-dialog .config-ai p{font-size:.9375rem}.config-ai p span,.booking-dialog .config-ai p span{font-size:.875rem}
  .config-breakdown summary,.booking-dialog .config-breakdown summary{font-size:.9375rem;line-height:1.45;min-height:48px;padding-block:12px}
  .config-breakdown dl{font-size:.875rem}.config-cta{font-size:1rem;min-height:52px;white-space:normal}
  .booking-dialog .satisfaction-guarantee{margin-top:12px;padding:12px}.booking-dialog .satisfaction-guarantee strong{font-size:.9375rem}.booking-dialog .satisfaction-guarantee p{font-size:.875rem;line-height:1.5}

  .booking-field label{font-size:.9375rem;margin-bottom:7px}
  .booking-field input,.booking-field select{font-size:1rem;min-height:50px;padding:12px;scroll-margin:16px}
  .booking-contact{grid-template-columns:1fr;gap:16px}.field-help{font-size:.875rem;line-height:1.55}
  .calendar-picker{grid-template-columns:minmax(0,1fr);padding:14px 12px;gap:18px}
  .calendar-picker fieldset{min-inline-size:0;min-width:0;padding:0;border:0}
  .calendar-date-pane,.calendar-time-pane{min-width:0}.calendar-top{gap:8px;margin-bottom:12px}.calendar-top strong{font-size:.9375rem}
  .calendar-navigation button{width:44px;height:44px;min-width:44px}
  .booking-dialog .date-options{grid-template-columns:repeat(7,minmax(44px,1fr));gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:4px 2px 8px;scroll-padding-inline:2px}
  .date-options>.booking-option{scroll-snap-align:start;min-width:0}
  .booking-dialog .date-options .option-content{min-height:72px;padding:8px 2px}
  .booking-dialog .date-options .option-content b{font-size:1.25rem}.booking-dialog .date-options .option-content small{font-size:.8125rem}
  .time-heading{font-size:.9375rem;line-height:1.5;margin-bottom:10px}
  .booking-dialog .time-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .booking-dialog .time-options .option-content{font-size:1rem;min-height:50px;padding:12px}
  .time-options:empty:after,.session-summary{font-size:.875rem;line-height:1.55}
  .first-session-plan{padding:12px;gap:10px}.first-session-plan strong{font-size:1.25rem}.first-session-plan span{font-size:.875rem;line-height:1.45}
  .review-list{grid-template-columns:1fr;gap:14px}
  .review-details .review-row{padding:12px;gap:10px;align-items:center}
  .review-details .review-row>div{display:block}.review-row span{font-size:.875rem;line-height:1.5}.review-row strong{font-size:.9375rem;line-height:1.5;margin-top:3px}
  .review-row button{min-width:44px;min-height:44px;font-size:.875rem;padding:6px 0}
  .review-total strong{font-size:2rem}.review-notices{font-size:.875rem;line-height:1.55;margin-top:16px}
  .form-consents{padding-top:14px;margin-top:16px}.form-consents legend{font-size:1rem}
  .consent-row{font-size:.9375rem;line-height:1.55;padding:10px 0;gap:12px;min-height:48px}
  .consent-row input{width:24px;height:24px;flex-basis:24px;margin-top:1px}
  .consent-row small{display:block;font-size:.8125rem;margin-top:3px}.consent-administrator{font-size:.8125rem;line-height:1.55}
  .trial-success{margin:12px 0;padding:20px;font-size:1rem}.trial-success-note{font-size:.9375rem}.trial-success .field-help{font-size:.875rem}
  #trial-portal-link{width:100%;font-size:1rem;min-height:56px}
  .advisor-dialog,.subject-dialog:has(.tutor-picker){position:fixed;inset:calc(var(--mobile-viewport-top,0px) + 8px) 0 auto;margin:0 auto;width:calc(100% - 24px);max-height:calc(var(--mobile-viewport-height,100dvh) - 16px);padding:20px 16px;border-radius:18px;overscroll-behavior:contain}
  .advisor-heading h2,.subject-dialog h2{font-size:1.5rem;line-height:1.2}.advisor-intro,.subject-dialog-help,.subject-dialog-count{font-size:.9375rem;line-height:1.5}
  .advisor-dialog .btn,.subject-dialog-actions .btn{min-height:52px;font-size:1rem;padding:12px;white-space:normal}
  .subject-dialog-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:14px;padding-top:14px;gap:10px}
  [data-keyboard-open=true] .booking-dialog .preview-notice,[data-keyboard-open=true] .booking-advisor{display:none}
  [data-keyboard-open=true] .booking-top{min-height:52px;padding-block:4px}
}
@media(max-width:400px){.calendar-swipe-hint{display:block;font-size:.8125rem;line-height:1.4;color:var(--muted);margin-top:4px}.footer-links{grid-template-columns:1fr}.booking-dialog[data-trial-cta=true] .booking-nav{gap:10px}.booking-dialog[data-trial-cta=true] #booking-next{font-size:.9375rem}}
@media(max-height:500px) and (max-width:960px){.booking-top{min-height:52px;padding-block:4px}.booking-footer{padding-block:6px}.booking-advisor{min-height:36px;margin-top:2px}.booking-progress{padding-top:8px}.booking-help{margin-bottom:12px}}

/* Keep controls clear of display cutouts, including landscape and keyboard mode. */
@media (max-width:700px), (max-width:960px) and (max-height:500px) and (pointer:coarse){
 .booking-top,.booking-footer,.booking-progress,.booking-dialog .booking-scroll,.mobile-cta{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
 .booking-top,[data-keyboard-open=true] .booking-top{padding-top:max(4px,env(safe-area-inset-top))}
}
