/* AeroTravel v87.6.1 — global mobile hardening for all public generations */
html,body{max-width:100%;overflow-x:hidden}
*,*::before,*::after{box-sizing:border-box}
img,svg,canvas,video,iframe{max-width:100%}
img,video{height:auto}
input,select,textarea,button{max-width:100%;min-width:0}
pre,code{max-width:100%;overflow-wrap:anywhere;white-space:pre-wrap}
.p80-shell,.v86-shell,.sr862-page,.sr862-header>div,.sr862-footer>div{max-width:100%}
.portalV80 main,.v86-public main,.sr862-page{min-width:0}
.portalV80 article,.portalV80 section,.v86-public article,.v86-public section,.sr862-page article,.sr862-page section{min-width:0}
.tableWrap,.sr862-content table{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.cityPage,.cityLayout,.citySide,.cityTools,.routeGrid,.routeCard,.linkGrid,.stack,.passengerControl,.mainArea,.searchPage,.searchResults{min-width:0;max-width:100%}
.cityTools,.tabs{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}


/* v87 home + dedicated cheap/weekend generations */
.v87-searchZone,.v87-titleRow,.v87-search,.v87-dealBoard,.v87-routeList,.v87-weekend,.v87-budgetBar,
.cheapV65,.cheapShell65,.cheapHeroGrid65,.cheapSearch65,.cheapLayout65,.cheapDealsGrid65,.cheapPeriodGrid65,
.weekendV66,.weekendShell66,.weekendHeroGrid66,.weekendSearch66,.weekendLayout66,.weekendDealsGrid66,.weekendPeriodGrid66{min-width:0;max-width:100%}
.v87-weekend,.cheapCityChips65,.weekendCityChips66,.cheapCrumbs65,.weekendCrumbs66{max-width:100%;-webkit-overflow-scrolling:touch}

/* v87.5 route consolidation */
.sr875-month-trend,.sr875-month-tabs,.sr862-chart,.sr864-variants,.sr864-month-grid{scrollbar-width:thin;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.sr875-month-detail summary>*{min-width:0}
.sr875-month-detail summary strong{max-width:42vw;overflow:hidden;text-overflow:ellipsis}
.sr875-insight-grid article,.sr875-facts-grid article,.sr875-cluster-grid>div,.sr875-airport-columns>div{min-width:0}
.sr875-cluster-grid b,.sr875-airport-columns span{overflow-wrap:anywhere}

/* old portal / route generations */
.routeV60,.routeMainV60,.routeHeroV60,.searchPanelV60,.routeSearchV60,.routeGridV60,.quickGridV60,.infoGridV60,.airportGridV60,.monthIntelV82,.priceAlertV83,.tripPageV83,.tripSectionV83{min-width:0;max-width:100%}
.priceChartV60,.chartMobileV81,.monthLinksV60,.quickDatesV60,.p80-cityPills,.p80-searchTabs{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.ticketCardV60,.tripCompareCardV83,.tripFeatureV83{min-width:0}

@media(max-width:900px){
 .v87-titleRow{grid-template-columns:1fr!important}
 .v87-search{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .v87-search button{grid-column:1/-1!important}
 .v87-dealBoard,.v87-routeList{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .cheapLayout65,.weekendLayout66{grid-template-columns:1fr!important}
 .p80-shell,.v86-shell{width:calc(100% - 20px)!important}
 .p80-header__inner{width:calc(100% - 20px)!important;gap:8px!important}
 .p80-headerCta{display:none!important}
 .p80-menu{left:10px!important;right:10px!important;max-width:none!important;max-height:calc(100vh - 76px)!important;overflow:auto!important}
 .p80-searchCard,.v86-search{min-width:0!important}
 .p80-searchForm,.v86-search form{grid-template-columns:1fr 1fr!important}
 .p80-searchSubmit{grid-column:1/-1!important}
 .v86-heroGrid,.v86-hotelDetail,.v86-routeTravel,.v86-relatedTravel{grid-template-columns:1fr!important}
 .v86-hotelGrid,.v86-tourGrid,.v86-dealGrid,.v86-routeGrid,.v86-budgetGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .tripCompareGridV83,.tripSavedGridV83{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .sr862-page{width:calc(100% - 20px)!important}
 .sr875-month-trend{grid-template-columns:repeat(12,68px)!important;padding-left:8px!important;padding-right:8px!important}
 .sr875-month-trend a{min-width:68px!important}
}

@media(max-width:720px){
 body{font-size:14px}
 .v87-searchZone{padding:16px 0!important}
 .v87-titleRow{grid-template-columns:1fr!important;gap:10px!important}
 .v87-titleRow h1{font-size:clamp(30px,10vw,38px)!important;line-height:1.04!important;overflow-wrap:anywhere}
 .v87-search{grid-template-columns:1fr!important;margin-top:12px!important;border-radius:10px!important;overflow:hidden!important}
 .v87-search label,.v87-search label:first-child{min-height:55px!important;border-right:0!important;border-bottom:1px solid #e3e7ee!important;border-radius:0!important}
 .v87-search button{grid-column:auto!important;min-height:52px!important;border-radius:0!important}
 .v87-searchMeta{gap:8px!important}.v87-searchMeta span{width:100%!important;margin-left:0!important}
 .v87-dealBoard,.v87-routeList,.v87-budgetBar{grid-template-columns:1fr!important}
 .v87-dealBoard a{grid-template-columns:70px minmax(0,1fr) auto!important;gap:9px!important;padding:11px!important}
 .v87-routeList a{grid-template-columns:58px minmax(0,1fr) auto!important;gap:8px!important}
 .v87-weekend{overflow-x:auto!important}.v87-weekend a{flex:0 0 78vw!important;max-width:320px!important}

 .cheapShell65,.weekendShell66{width:calc(100% - 16px)!important}
 .cheapHeroGrid65,.weekendHeroGrid66{grid-template-columns:1fr!important}.cheapHeroStat65,.weekendHeroStat66{display:none!important}
 .cheapHeroText65 h1,.weekendHeroText66 h1{font-size:29px!important;line-height:1.08!important;overflow-wrap:anywhere}
 .cheapSearch65,.weekendSearch66{grid-template-columns:1fr!important;gap:7px!important;padding:10px!important;border-radius:14px!important}
 .cheapField65 input,.cheapField65 select,.weekendField66 input,.weekendField66 select{font-size:16px!important}
 .cheapSubmit65,.weekendSubmit66{width:100%!important;min-height:48px!important}
 .cheapPeriodGrid65,.cheapDealsGrid65,.cheapSide65,.cheapTipsGrid65,.weekendPeriodGrid66,.weekendDealsGrid66,.weekendSide66,.weekendTipsGrid66{grid-template-columns:1fr!important}
 .cheapCityChips65,.weekendCityChips66{flex-wrap:nowrap!important;overflow-x:auto!important;padding-bottom:4px!important}
 .cheapCityChips65 a,.weekendCityChips66 a{flex:0 0 auto!important;white-space:nowrap!important}
 .cheapCard65,.weekendCard66{padding:14px!important;border-radius:14px!important}
 .cheapDealActions65,.weekendDealActions66{grid-template-columns:1fr!important}
 .cheapSectionHead65,.weekendSectionHead66{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;align-items:start!important}
 .p80-shell,.v86-shell{width:calc(100% - 16px)!important}
 .p80-header__inner{width:calc(100% - 16px)!important;min-height:56px!important}
 .p80-brand{min-width:0!important}.p80-brand__copy{min-width:0!important}.p80-brand__copy b{font-size:15px!important}
 .p80-menuButton{flex:0 0 40px!important}
 .p80-hero,.v86-pageHero{padding-left:0!important;padding-right:0!important}
 .p80-hero__inner,.p80-twoCol,.p80-featureGrid,.p80-proofbar,.p80-steps{grid-template-columns:1fr!important}
 .p80-hero h1,.v86-pageHero h1{font-size:clamp(30px,10vw,38px)!important;line-height:1.04!important;overflow-wrap:anywhere}
 .p80-searchCard{padding:10px!important;border-radius:12px!important}
 .p80-searchForm,.v86-search form{grid-template-columns:1fr!important;gap:7px!important}
 .p80-searchField,.v86-search label{width:100%!important;min-height:54px!important}
 .p80-searchSubmit{grid-column:auto!important;width:100%!important;min-height:50px!important}
 .p80-searchHints{display:flex!important;max-width:100%!important;overflow-x:auto!important;white-space:nowrap!important;padding-bottom:4px!important}
 .p80-section,.v86-section{padding-top:30px!important;padding-bottom:30px!important}
 .p80-sectionHead,.v86-heading{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;align-items:start!important}
 .v86-cityGrid,.v86-hotelGrid,.v86-tourGrid,.v86-dealGrid,.v86-routeGrid,.v86-budgetGrid,.v86-tourList{display:grid!important;grid-template-columns:1fr!important}
 .v86-tourList>a{width:100%!important;min-width:0!important}.v86-tourList img{height:auto!important;aspect-ratio:16/9;object-fit:cover}
 .v86-linkPanel,.v86-routeTravel>div{display:grid!important;grid-template-columns:1fr!important}.v86-linkPanel a,.v86-routeTravel a{min-width:0!important;width:100%!important}
 .v86-hotelList article{grid-template-columns:1fr!important}.v86-hotelImage{width:100%!important;height:auto!important;aspect-ratio:16/9;object-fit:cover}
 .v86-facets,.v86-horizontal{display:flex!important;overflow-x:auto!important;max-width:100%!important;-webkit-overflow-scrolling:touch}
 .v86-facets>a,.v86-horizontal>*{flex:0 0 auto!important}
 .v86-copy--wide{padding:15px!important}.v86-copy--wide h2{font-size:22px!important}

 .sr862-header>div{width:calc(100% - 16px)!important;gap:8px!important;min-height:58px!important}
 .sr862-brand{min-width:0!important}.sr862-brand span{min-width:0!important}.sr862-brand b{font-size:15px!important}
 .sr862-menu{margin-left:auto!important;flex:0 0 40px!important}.sr862-head-cta{display:none!important}
 .sr862-open .sr862-header nav{left:8px!important;right:8px!important;top:58px!important;max-height:calc(100vh - 70px)!important;overflow:auto!important}
 .sr862-page{width:calc(100% - 12px)!important;margin:8px auto 44px!important}
 .sr862-breadcrumbs{margin:0 2px 9px!important;padding-bottom:3px!important}
 .sr862-hero-copy{padding:17px!important}.sr862-hero h1{font-size:clamp(29px,9.5vw,36px)!important;overflow-wrap:anywhere}
 .sr862-actions{grid-template-columns:1fr!important}.sr862-actions>*{width:100%!important}
 .sr862-summary{grid-template-columns:1fr!important}.sr862-summary>div{padding:12px!important}
 .sr862-search{padding:0!important}.sr862-search form{grid-template-columns:1fr!important}.sr862-search label{min-height:54px!important;padding:9px 11px!important}.sr862-search button{min-height:50px!important;width:100%!important}
 .sr862-section,.sr862-empty,.sr862-content,.sr862-faq,.sr862-related,.sr864-months,.sr864-month-analysis,.sr875-months,.sr875-insights,.sr875-route-facts,.sr875-route-clusters{padding:14px!important;margin-top:10px!important;border-radius:9px!important}
 .sr862-head{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;margin-bottom:12px!important}.sr862-head h2,.sr862-content>h2,.sr862-faq>h2{font-size:22px!important}
 .sr862-chart{margin-left:-4px!important;margin-right:-4px!important}.sr862-chart a{flex-basis:64px!important;min-width:64px!important}
 .sr862-tickets{grid-template-columns:1fr!important}
 .sr864-variants{margin-left:0!important;margin-right:0!important;padding:5px!important}
 .sr864-month-grid{display:flex!important;overflow-x:auto!important}.sr864-month-grid a{flex:0 0 132px!important}
 .sr864-month-stats,.sr864-service-grid,.sr864-airports>div{grid-template-columns:1fr!important}
 .sr864-link-hub,.sr862-travel,.sr862-related>div:last-child{display:flex!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}
 .sr864-link-hub>a,.sr862-travel>a,.sr862-related>div:last-child>a{flex:0 0 84vw!important;max-width:360px!important}

 .sr875-month-trend{grid-template-columns:repeat(12,64px)!important;min-height:165px!important;margin-top:12px!important;padding:10px 6px 6px!important;gap:5px!important}
 .sr875-month-trend a{grid-template-rows:23px 105px 20px!important;min-width:64px!important}
 .sr875-month-tabs a{flex-basis:132px!important;padding:9px!important}
 .sr875-month-detail summary{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;padding:11px!important;min-height:58px!important}
 .sr875-month-detail summary strong{max-width:38vw!important;font-size:13px!important}
 .sr875-month-detail-body{padding:11px!important}
 .sr875-month-date-list{grid-template-columns:1fr 1fr!important}
 .sr875-insight-grid,.sr875-facts-grid,.sr875-airport-columns,.sr875-cluster-grid{grid-template-columns:1fr!important;gap:7px!important}
 .sr875-insight-grid article,.sr875-facts-grid article,.sr875-cluster-grid>div,.sr875-airport-columns>div{padding:12px!important}
 .sr875-cluster-grid a{grid-template-columns:66px minmax(0,1fr)!important}
 .sr862-footer>div{width:calc(100% - 16px)!important;grid-template-columns:1fr!important;gap:12px!important}

 .routeHeroV60,.routeMainV60,.routeGridV60,.searchPanelV60,.routeSearchV60,.quickGridV60,.infoGridV60,.airportGridV60,.monthIntelV82{grid-template-columns:1fr!important}
 .routeSideV60{position:static!important;width:auto!important;max-width:100%!important}
 .ticketListV60,.tripCompareGridV83,.tripSavedGridV83{grid-template-columns:1fr!important}
 .tripHeroV83,.tripSavedHeaderV83,.tripToolbarV83{display:grid!important;grid-template-columns:1fr!important;gap:9px!important}
 .tripActionV83,.tripPrimaryV83{width:100%!important;justify-content:center!important}

 .cityPage .shell{width:calc(100% - 16px)!important}.cityLayout{grid-template-columns:1fr!important;gap:10px!important}.citySide{position:static!important;width:100%!important}.routeGrid,.linkGrid{grid-template-columns:1fr!important}.routeCard{min-width:0!important;padding:12px!important}.cityTools{display:flex!important;flex-wrap:nowrap!important;padding-bottom:4px!important}.cityTools>a{flex:0 0 auto!important}.passengerControl{width:100%!important}.stack .submitBtn{width:100%!important}

 .p80-footer__top{grid-template-columns:1fr!important;gap:20px!important}.p80-footer__bottom{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
 .p80-cookie{left:8px!important;right:8px!important;bottom:8px!important;width:auto!important;max-width:none!important}.p80-cookie__actions{grid-template-columns:1fr!important}
 input,select,textarea{font-size:16px!important}
 button,a[role="button"],.btn{min-height:42px}
}

@media(max-width:440px){
 .v87-dealBoard a{grid-template-columns:58px minmax(0,1fr)!important}.v87-routePrice{grid-column:2!important;text-align:left!important}
 .cheapShell65,.weekendShell66{width:calc(100% - 12px)!important}
 .cheapDealTop65,.weekendDealTop66{align-items:flex-start!important;flex-direction:column!important}
 .p80-shell,.v86-shell{width:calc(100% - 12px)!important}
 .p80-titleRow h1,.v87-titleRow h1{font-size:31px!important}
 .sr862-page{width:calc(100% - 8px)!important}
 .sr862-hero-copy{padding:14px!important}.sr862-hero h1{font-size:29px!important}
 .sr875-month-date-list{grid-template-columns:1fr!important}
 .sr875-month-detail summary{grid-template-columns:1fr!important}.sr875-month-detail summary strong{max-width:none!important}
 .sr875-month-trend{grid-template-columns:repeat(12,60px)!important}.sr875-month-trend a{min-width:60px!important}
 .sr864-link-hub>a,.sr862-travel>a,.sr862-related>div:last-child>a{flex-basis:88vw!important}
}


/* v87.6.1 final cross-template overflow guard */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body,main,header,footer,.shell,.container,.section,.card{min-width:0;max-width:100%}
figure{max-width:100%;margin-left:0;margin-right:0}
table{max-width:100%}
.tableWrap,[class*="tableWrap"],[class*="TableWrap"]{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}
.sr875-month-trend,.sr875-month-tabs,.sr862-chart,.monthLinksV60,.priceChartV60{overflow-x:auto!important;max-width:100%!important}
@media(max-width:720px){
 [style*="grid-template-columns"]{min-width:0}
 .sr862-content,.sr862-content *,.v86-copy--wide,.p80-section,.cheapCard65,.weekendCard66{overflow-wrap:anywhere}
 .sr862-content table,.card table,.v86-public table,.portalV80 table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
 .sr862-content iframe,.card iframe{width:100%!important;max-width:100%!important}
 .sr862-footer>div,.p80-footer__top,.p80-footer__bottom{padding-left:0!important;padding-right:0!important}
}
