/* AERIS ZIP 3 — responsive refinement layer
   Purpose: normalize phone/tablet/laptop behavior without altering desktop design intent. */

html{overflow-x:hidden;-webkit-text-size-adjust:100%}
body{overflow-x:hidden;min-width:0}
img,svg,video,canvas{max-width:100%;height:auto}
button,input,select,textarea,a{touch-action:manipulation}
button,.btn,a.btn{min-height:44px}
input,select,textarea{font-size:16px}
.container{max-width:1180px}

/* Keep long content from forcing horizontal overflow. */
:is(.card,.panel,.module,.detail-panel,.manage-summary-card,.itinerary-card,.ticket-document,.payment-card,.status-result-v23,.account7-card,.flight-card-pro,.destination-book-card-v20){min-width:0}
:is(h1,h2,h3,h4,p,span,strong,small,dd,dt,a,button,label){overflow-wrap:break-word}
pre,code{white-space:pre-wrap;word-break:break-word}
.table-wrap,table{max-width:100%}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Tablet navigation: prevent cramped header rows before mobile menu kicks in. */
@media (max-width:1060px){
  .nav-inner{gap:12px}
  .nav-links{gap:5px!important}
  .nav-links a{padding-inline:9px!important;font-size:.82rem!important}
  .nav-actions{gap:7px}
  .nav-actions .btn{padding-inline:12px}
}

/* Shared tablet layout improvements. */
@media (max-width:900px){
  .section{padding-top:54px;padding-bottom:54px}
  .page-hero{padding-top:74px!important;padding-bottom:36px!important}
  .page-hero h1{max-width:14ch;font-size:clamp(2.45rem,8vw,4.5rem)!important;line-height:.98!important}
  .premium-subtitle{max-width:62ch}
  .content-grid,.booking-layout,.passenger-layout,.payment-layout,.confirmation-layout{grid-template-columns:1fr!important}
  .sidebar,.booking-summary,.seat-summary,.destination-book-card{position:static!important;top:auto!important}
  .cards,.destination-grid{gap:16px}
  .form-grid{gap:14px}
  .form-actions{gap:10px}

  /* Account pages */
  .account4-shell{grid-template-columns:1fr!important}
  .account4-sidebar{position:static!important}
  .account4-profile{display:grid;grid-template-columns:auto 1fr;align-items:center}
  .account4-tabs{display:flex!important;overflow-x:auto!important;scroll-snap-type:x proximity;padding-bottom:8px;gap:8px;scrollbar-width:none}
  .account4-tabs::-webkit-scrollbar{display:none}
  .account4-tabs .account7-nav-link{flex:0 0 auto;min-width:150px;scroll-snap-align:start}
  .account7-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}

  /* Route map */
  .route-explorer{grid-template-columns:1fr!important}
  .route-map-shell,.route-detail{min-width:0}
  .map-toolbar{align-items:flex-start;gap:14px}
  .map-tabs{overflow-x:auto;max-width:100%;scrollbar-width:none;padding-bottom:4px}
  .map-tabs::-webkit-scrollbar{display:none}
  .map-tabs button{flex:0 0 auto;white-space:nowrap}
  .map-stage{min-height:500px}
  .network-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}

  /* Manage booking */
  .manage-grid,.manage-details-grid{grid-template-columns:1fr!important}
  .manage-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .manage-search-head{align-items:flex-start}

  /* Booking results */
  .results-layout{grid-template-columns:1fr!important}
  .flight-main{grid-template-columns:150px minmax(0,1fr) 130px!important}

  /* Status */
  .status-hero-grid{grid-template-columns:1fr!important}
  .status-ops-card{max-width:none!important}
}

/* Mobile layout: 44px controls, stacked cards, no accidental horizontal page scrolling. */
@media (max-width:720px){
  :root{--mobile-gutter:14px}
  .container{width:calc(100% - (var(--mobile-gutter) * 2))!important}
  .nav-inner{height:68px!important}
  .brand{min-width:0}
  .brand-mark{flex:0 0 auto}
  .nav-links{left:var(--mobile-gutter)!important;right:var(--mobile-gutter)!important;top:72px!important;max-height:calc(100svh - 88px);overflow-y:auto;overscroll-behavior:contain}
  .nav-links a{width:100%;min-height:44px;display:flex;align-items:center}
  .mobile-toggle{min-width:48px;min-height:44px}
  .nav-actions .btn-secondary:not(.mobile-toggle){display:none!important}

  .section{padding:46px 0}
  .page-hero{padding-top:48px!important;padding-bottom:28px!important}
  .page-hero h1{font-size:clamp(2.35rem,13vw,3.7rem)!important;max-width:11ch}
  .premium-kicker{font-size:.68rem}
  .premium-subtitle{font-size:.98rem;line-height:1.65}

  .btn,.search-button,.status-search-button{width:100%}
  .section-head{gap:14px}
  .section-head .btn{width:100%}
  .form-grid,.payment-options,.cards,.destination-grid,.admin-grid{grid-template-columns:1fr!important}
  .input.full{grid-column:auto!important}

  /* Booking progress stays readable on narrow phones. */
  .booking-progress-wrap{overflow:hidden}
  .booking-progress,.booking-progress-five{display:flex!important;justify-content:space-between!important;gap:3px!important;padding:12px 8px!important}
  .booking-progress li,.booking-progress-five li{flex:1;min-width:0!important}
  .booking-progress li>span,.booking-progress-five li>span{width:38px;height:38px;margin-inline:auto}
  .booking-progress li div,.booking-progress-five li div{display:none!important}
  .booking-progress li:not(:last-child)::after,.booking-progress-five li:not(:last-child)::after{left:calc(50% + 20px)!important;width:calc(100% - 40px)!important}

  /* Flight results */
  .results-toolbar{gap:10px}
  .sort-tabs{max-width:100%;overflow-x:auto;scroll-snap-type:x proximity}
  .sort-tab{scroll-snap-align:start;min-width:132px}
  .flight-main{grid-template-columns:1fr!important;padding:17px!important}
  .flight-card-pro .times{grid-template-columns:1fr auto 1fr!important;gap:8px}
  .flight-card-pro .price{display:grid!important;grid-template-columns:1fr auto!important;width:100%;align-items:end}
  .flight-actions{flex-wrap:wrap;gap:8px}
  .flight-actions .btn{flex:1 1 150px}

  /* Seat map: allow horizontal cabin scroll inside its card, never the page. */
  .seat-layout{display:block!important}
  .aircraft-cabin{overflow-x:auto!important;-webkit-overflow-scrolling:touch;padding-left:12px!important;padding-right:12px!important}
  .seat-map{min-width:480px}
  .seat-summary{margin-top:18px!important}

  /* Payment / passenger */
  .payment-option{grid-template-columns:42px minmax(0,1fr) 24px!important}
  .payment-option>*{min-width:0}
  .crypto-grid{grid-template-columns:1fr!important}
  .form-actions{flex-direction:column-reverse!important}
  .form-actions .btn{width:100%}

  /* Manage booking */
  .manage-actions-grid{grid-template-columns:1fr!important}
  .manage-search-actions{display:grid!important;grid-template-columns:1fr!important}
  .manage-search-actions .btn{width:100%}
  .itinerary-route{grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr)!important;gap:8px!important}
  .route-point strong{font-size:1.45rem!important}
  .itinerary-meta,.detail-list{grid-template-columns:1fr!important}
  .manage-status-bar{gap:10px;align-items:flex-start!important}
  .manage-reference{max-width:48%;text-align:right}

  /* Account sub-pages */
  .account4-hero{padding-top:42px!important;padding-bottom:24px!important}
  .account4-hero h1{font-size:clamp(2.45rem,13vw,3.8rem)!important}
  .account4-profile{grid-template-columns:auto minmax(0,1fr)}
  .account4-tabs .account7-nav-link{min-width:138px!important;justify-content:center}
  .account7-grid{grid-template-columns:1fr!important}
  .account7-card{min-height:auto!important}
  .account4-panel-head{align-items:flex-start!important;flex-direction:column!important}
  .account4-panel-head .btn{width:100%}

  /* Flight status */
  .status-hero-v23{padding-top:86px!important}
  .status-search-tabs{display:flex;overflow-x:auto;scrollbar-width:none}
  .status-search-tabs::-webkit-scrollbar{display:none}
  .status-search-tabs button{flex:0 0 auto!important;min-width:128px}
  .status-route-fields{grid-template-columns:1fr!important}
  .status-swap{justify-self:center;transform:rotate(90deg)}
  .status-operational-grid,.status-advisory-grid{grid-template-columns:1fr!important}
  .status-result-head{gap:14px}

  /* Route map */
  .network-summary{grid-template-columns:1fr 1fr!important;gap:10px}
  .network-metric{padding:16px!important}
  .map-toolbar{display:block!important}
  .map-toolbar-copy{margin-bottom:12px}
  .map-tabs{display:flex!important;gap:7px!important}
  .map-stage{height:470px!important;min-height:470px!important;overflow:hidden}
  .world-base,.network-layer{width:150%!important;max-width:none!important;left:-25%!important;position:relative}
  .route-detail{padding:20px!important}
  .route-card-grid{grid-template-columns:1fr!important}

  /* Home map + booking search */
  .ah-booking-card{border-radius:20px!important}
  .ah-search-grid{grid-template-columns:1fr!important}
  .ah-field{min-width:0}
  .ah-network-search{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important}
  .ah-network-search label{min-width:0}
  .ah-network-search strong,.ah-network-search select{max-width:100%}
  .ah-region-tabs{overflow-x:auto!important;justify-content:flex-start!important;scrollbar-width:none}
  .ah-region-tabs::-webkit-scrollbar{display:none}
  .ah-region-tabs button{flex:0 0 auto}

  /* Discover / destination cards */
  .discover-grid,.destination-grid-v20,.attraction-grid-v20{grid-template-columns:1fr!important}
  .discover-card,.destination-card{min-height:280px}
  .destination-hero-v20{min-height:64svh!important}
  .destination-actions{display:grid!important;grid-template-columns:1fr!important;gap:9px}

  /* Ticket / boarding / itinerary */
  .ticket-shell{padding-inline:12px!important}
  .ticket-head,.ticket-route{padding:20px 16px!important}
  .ticket-route{grid-template-columns:1fr 1fr!important}
  .ticket-flightline{grid-column:1/-1!important}
  .ticket-grid{grid-template-columns:1fr 1fr!important}
  .ticket-bottom{grid-template-columns:1fr!important}

  /* Footer */
  .footer .container,.footer-grid{grid-template-columns:1fr!important}
  .footer nav{flex-wrap:wrap}
}

@media (max-width:480px){
  .container{width:calc(100% - 24px)!important}
  .page-hero h1{font-size:clamp(2.2rem,14vw,3.25rem)!important}
  .network-summary{grid-template-columns:1fr!important}
  .map-stage{height:420px!important;min-height:420px!important}
  .world-base,.network-layer{width:180%!important;left:-40%!important}
  .ticket-grid{grid-template-columns:1fr!important}
  .ticket-route{grid-template-columns:1fr!important}
  .flight-card-pro .times{grid-template-columns:1fr!important;text-align:left!important}
  .flight-card-pro .duration{grid-column:auto!important;order:2}
  .manage-reference{max-width:none;text-align:left;width:100%}
  .manage-status-bar{flex-direction:column!important}
  .account4-tabs .account7-nav-link{min-width:128px!important}
}

@media (hover:none) and (pointer:coarse){
  .btn,.nav-links a,.account7-nav-link,.map-tabs button,.status-search-tabs button,.ah-region-tabs button{min-height:46px}
  .destination-link,.discover-card .btn{opacity:1!important;transform:none!important}
}
