/* OhMyVisa public/client responsive hardening. Screen only: print/PDF layouts remain untouched. */
@media screen {
  html,body{max-width:100%;}
  body{overflow-x:hidden;}
  *,*::before,*::after{box-sizing:border-box;}
  img,svg,video,canvas,iframe{max-width:100%;}
  img,video{height:auto;}
  input,select,textarea,button{max-width:100%;}
  table{max-width:100%;}
  .tb-responsive-scroll{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;}
  .tb-responsive-scroll>table{margin-bottom:0;}
  .tb-responsive-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;}
  .tb-responsive-tabs{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;}
  .tb-responsive-break{overflow-wrap:anywhere;word-break:break-word;}
  .tb-responsive-media{max-width:100%;height:auto;}
  .tb-responsive-grid{min-width:0;}
  .tb-responsive-grid>*{min-width:0;}
  .tb-responsive-modal{max-width:min(100% - 24px,960px);max-height:calc(100vh - 24px);}
}
@media screen and (max-width:1024px){
  .tb-responsive-toolbar>*{min-width:0;}
  .tb-responsive-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:100%;}
}
@media screen and (max-width:767px){
  .tb-responsive-stack-mobile{display:flex!important;flex-direction:column!important;align-items:stretch!important;}
  .tb-responsive-grid{grid-template-columns:minmax(0,1fr)!important;}
  .tb-responsive-touch,button,a.btn,input,select,textarea{min-height:40px;}
  input,select,textarea{font-size:16px;}
}

/* Shared public shell */
@media screen and (max-width:1024px){
  .tb-unified-public-header{min-width:0;gap:12px;padding-left:20px!important;padding-right:20px!important;}
  .tb-public-header-brand,.tb-header-actions{min-width:0;}
  .tb-header-service-nav{max-width:100%;overflow-x:auto;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
  .tb-header-service-nav::-webkit-scrollbar{display:none;}
  .tb-header-country-search{min-width:0;max-width:min(320px,42vw);}
  .tb-public-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .tb-public-footer-bottom-row{gap:14px;flex-wrap:wrap;}
}
@media screen and (max-width:767px){
  .tb-unified-public-header{padding-left:14px!important;padding-right:14px!important;gap:8px;}
  .tb-header-service-nav,.tb-header-actions>.tb-header-chat-link,.tb-header-actions>.tb-header-phone-link{display:none!important;}
  .tb-public-header-logo{flex:0 0 auto;}
  .tb-header-country-search{flex:1 1 auto;max-width:none;}
  .tb-public-footer-grid{grid-template-columns:minmax(0,1fr)!important;gap:24px!important;}
  .tb-public-footer-bottom-row{align-items:flex-start!important;flex-direction:column;}
  .tb-public-footer a,.tb-public-footer p{overflow-wrap:anywhere;}
}

/* Phase 2: public content families */
@media screen and (max-width:1024px){
  .tb-home-package-card,.tb-home-destination-card,.tb-service-page-card,.tb-blog-card,.tb-content-card,.tb-detail-card,.tb-sidebar-card{min-width:0;}
  .tb-home-benefits-grid,.tb-process-layout,.tb-visa-faq-grid,.tb-public-requirements-grid,.tb-contact-page-grid,.tb-insurance-hero-grid,.tb-insurance-quote-grid,.tb-insurance-how-grid,.tb-otb-product-grid-public,.tb-otb-how-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .tb-detail-layout,.tb-contact-page-grid{gap:22px!important;}
  .tb-detail-layout>*{min-width:0;}
  .tb-home-hero-inner,.tb-page-hero .container,.tb-section>.container{min-width:0;}
  .tb-service-card,.tb-blog-card,.tb-home-package-card{overflow-wrap:anywhere;}
}
@media screen and (max-width:600px){
  .tb-home-benefits-grid,.tb-process-layout,.tb-visa-faq-grid,.tb-public-requirements-grid,.tb-contact-page-grid,.tb-insurance-hero-grid,.tb-insurance-quote-grid,.tb-insurance-how-grid,.tb-otb-product-grid-public,.tb-otb-how-grid,.tb-detail-layout{grid-template-columns:minmax(0,1fr)!important;}
  .tb-home-hero-inner h1,.tb-page-hero h1,.tb-service-page-card h1,.tb-blog-card h1{font-size:clamp(1.75rem,8vw,2.4rem);line-height:1.12;}
  .tb-section{padding-left:0!important;padding-right:0!important;}
  .tb-section>.container,.tb-page-hero>.container{padding-left:14px!important;padding-right:14px!important;}
  .tb-home-package-card,.tb-home-destination-card,.tb-service-page-card,.tb-blog-card{width:100%;}
  .tb-public-requirements-head,.tb-public-requirements-cta{align-items:stretch!important;flex-direction:column!important;}
}
/* family tokens deliberately scoped to existing modules */
@media screen and (max-width:1024px){
  .tb-home-package-card,.tb-home-benefits-grid{max-width:100%;}
  .tb-service-page-card,.tb-service-card{max-width:100%;}
  .tb-blog-card,.tb-list-blog-card{max-width:100%;}
  .tb-public-footer{max-width:100%;}
}

/* Visa public/detail/checklist */
@media screen and (max-width:1024px){
  .tb-visa-page,.tb-country-hero-inner,.tb-visa-checklist-card,.tb-visa-profile-docs,.tb-visa-faqs{min-width:0;max-width:100%;}
  .tb-country-hero-inner,.tb-country-title-row,.tb-visa-checklist-head,.tb-visa-checklist-meta,.tb-visa-expert-call-row{flex-wrap:wrap;}
  .tb-country-hero-copy{min-width:0;}
  .tb-visa-option-grid,.tb-visa-faq-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media screen and (max-width:820px){
  .tb-visa-doc-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .tb-visa-checklist-head{align-items:flex-start!important;gap:14px;}
  .tb-visa-change-type-btn{margin-left:0;}
  .tb-visa-pricing-row,.tb-visa-action-row,.tb-visa-option-actions{flex-wrap:wrap!important;}
}
@media screen and (max-width:600px){
  .tb-visa-option-grid,.tb-visa-faq-grid,.tb-visa-doc-grid{grid-template-columns:minmax(0,1fr)!important;}
  .tb-visa-doc-card,.tb-visa-doc-card-main,.tb-visa-doc-copy{min-width:0;}
  .tb-visa-doc-card{align-items:flex-start!important;gap:12px;}
  .tb-visa-doc-card-main{flex:1 1 auto;}
  .tb-visa-doc-card em{flex:0 0 auto;}
  .tb-visa-checklist-head{display:flex!important;flex-direction:column!important;}
  .tb-visa-change-type-btn{width:100%;justify-content:center;}
  .tb-country-title-row{align-items:flex-start!important;}
  .tb-country-title-row h1{font-size:clamp(1.8rem,9vw,2.5rem)!important;}
  .tb-visa-profile-docs details p{grid-template-columns:auto minmax(0,1fr)!important;}
  .tb-visa-profile-docs details p em{grid-column:2;justify-self:start;}
}

/* Application and service forms */
@media screen{
  .tb-responsive-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
  .tb-responsive-form-grid>*{min-width:0;}
  .tb-application,.tb-service-application,.tb-service-form-wrap,.tb-service-card,.tb-tp-application-stage{min-width:0;max-width:100%;}
  .tb-service-grid>*{min-width:0;}
  input[type="file"]{width:100%;max-width:100%;}
  .tb-inline-identity-grid>*{min-width:0;}
}
@media screen and (max-width:1024px){
  .tb-responsive-form-grid,.tb-service-grid,.tb-insurance-quote-grid,.tb-passport-review-layout,.tb-app-pay-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .tb-service-grid.three,.tb-service-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .tb-inline-identity-grid,.tb-ins-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .tb-tp-app-stepper,.tb-ins-app-stepper{max-width:100%;overflow-x:auto;scrollbar-width:thin;}
  .tb-tp-step-button,.tb-ins-step-button{white-space:nowrap;}
}
@media screen and (max-width:600px){
  .tb-responsive-form-grid,.tb-service-grid,.tb-service-grid.two,.tb-service-grid.three,.tb-service-grid.four,.tb-inline-identity-grid,.tb-ins-plan-grid,.tb-passport-review-layout,.tb-app-pay-grid{grid-template-columns:minmax(0,1fr)!important;}
  .tb-service-grid .span2,.tb-service-grid .span3,.tb-service-grid .span4{grid-column:auto!important;}
  .tb-application-actions,.tb-service-application-actions,.tb-service-actions,.tb-app-pay-actions{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important;}
  .tb-application-actions>*,.tb-service-application-actions>*,.tb-service-actions>*,.tb-app-pay-actions>*{width:100%!important;}
  .tb-service-card{padding-left:14px!important;padding-right:14px!important;}
  .tb-service-card-title,.tb-inline-identity-head,.tb-ins-traveller-head{align-items:flex-start!important;flex-wrap:wrap;}
  .tb-upload,.tb-inline-upload{min-width:0;}
  .tb-tp-app-stepper,.tb-ins-app-stepper{padding-bottom:6px;}
}

/* Package, hotel, flight and booking families */
@media screen and (max-width:1024px){
  .tb-package-layout,.tb-flight-results-layout,.tb-flight-booking-layout,.tb-hotel-booking-layout{grid-template-columns:minmax(0,1fr)!important;}
  .tb-package-filter-panel{position:static!important;width:100%!important;max-width:none!important;}
  .tb-package-results-panel,.tb-flight-booking-main,.tb-hotel-booking-main{min-width:0;}
  .tb-departure-grid,.tb-hotel-grid,.tb-flight-results,.tb-package-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .tb-booking-search,.tb-booking-filters,.tb-unified-row,.tb-hotel-quickbar,.tb-flight-results-topbar,.tb-hotel-results-topbar{display:flex;flex-wrap:wrap;gap:10px;min-width:0;}
  .tb-live-field,.tb-search-panel>*{min-width:0;}
  .tb-booking-search-card,.tb-unified-search-card,.tb-flight-result-search-card,.tb-hotel-result-search-card{max-width:100%;}
  .tb-reservation-shell,.tb-reservation-panel,.tb-booking-panel,.tb-booking-fare-card{min-width:0;max-width:100%;}
  .tb-reservation-grid,.tb-reservation-airport-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media screen and (max-width:600px){
  .tb-departure-grid,.tb-hotel-grid,.tb-flight-results,.tb-package-grid,.tb-reservation-grid,.tb-reservation-airport-grid{grid-template-columns:minmax(0,1fr)!important;}
  .tb-package-layout,.tb-flight-results-layout,.tb-flight-booking-layout,.tb-hotel-booking-layout{display:block!important;}
  .tb-package-filter-panel{margin-bottom:16px;}
  .tb-booking-summary,.tb-booking-actions,.tb-reservation-actions,.tb-booking-fare-card{width:100%!important;}
  .tb-booking-actions,.tb-reservation-actions{display:flex!important;flex-direction:column!important;gap:10px!important;align-items:stretch!important;}
  .tb-booking-actions>*,.tb-reservation-actions>*{width:100%!important;}
  .tb-unified-row,.tb-live-search-form,.tb-flight-search-form,.tb-hotel-search-form{display:flex!important;flex-direction:column!important;align-items:stretch!important;}
  .tb-live-field,.tb-unified-row>*{width:100%!important;max-width:100%!important;}
  .tb-flight-results-topbar,.tb-hotel-results-topbar{align-items:stretch!important;}
  .tb-flight-results-topbar>*,.tb-hotel-results-topbar>*{max-width:100%;}
  .tb-booking-panel,.tb-reservation-panel{padding-left:14px!important;padding-right:14px!important;}
}
/* family selectors for contract and safe targeted application */
@media screen and (max-width:1024px){
  .tb-package-listing-page,.tb-package-detail-page{max-width:100%;}
  .tb-hotel-results-page,.tb-hotel-booking-page{max-width:100%;}
  .tb-flight-results-page,.tb-flight-booking-page{max-width:100%;}
  .tb-booking-search-section,.tb-booking-panel{max-width:100%;}
}

/* Client portal and partner access */
@media screen and (max-width:1024px){
  .tb-client-account-shell{grid-template-columns:minmax(220px,280px) minmax(0,1fr)!important;gap:18px!important;}
  .tb-client-account-content,.tb-client-account-panel,.tb-myapps,.tb-myapp-card,.tb-myapp-detail{min-width:0;max-width:100%;}
  .tb-profile-grid,.tb-detail-grid,.tb-partner-grid,.tb-partner-type-grid,.tb-partner-hero-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .tb-client-account-nav{max-width:100%;}
  .tb-myapps-nav{max-width:100%;overflow-x:auto;white-space:nowrap;scrollbar-width:thin;}
  .tb-doc-row,.tb-history-row,.tb-myapp-card{min-width:0;}
  .tb-partner-shell,.tb-partner-form,.tb-direct-login-shell{max-width:100%;}
}
@media screen and (max-width:767px){
  .tb-client-account-shell{grid-template-columns:minmax(0,1fr)!important;}
  .tb-client-account-sidebar{position:static!important;width:100%!important;}
  .tb-client-account-nav{display:flex!important;overflow-x:auto;white-space:nowrap;gap:8px;padding-bottom:4px;}
  .tb-client-account-nav a{flex:0 0 auto;}
  .tb-profile-grid,.tb-detail-grid,.tb-partner-grid,.tb-partner-type-grid,.tb-partner-hero-grid{grid-template-columns:minmax(0,1fr)!important;}
  .tb-myapps-head,.tb-client-account-panel-head,.tb-partner-form-head,.tb-partner-success-actions{align-items:flex-start!important;flex-wrap:wrap!important;gap:10px;}
  .tb-myapp-btn,.tb-partner-success-actions .tb-btn{width:100%;justify-content:center;}
  .tb-doc-row,.tb-history-row{grid-template-columns:minmax(0,1fr)!important;gap:6px!important;}
  .tb-partner-form,.tb-direct-login-inner{padding-left:14px!important;padding-right:14px!important;}
}
@media screen and (max-width:600px){
  .tb-client-account-hero,.tb-partner-hero{padding-left:14px!important;padding-right:14px!important;}
  .tb-partner-type-grid label,.tb-partner-grid>*{min-width:0;}
  .tb-direct-login-copy h1,.tb-partner-hero h1{font-size:clamp(1.75rem,8vw,2.4rem)!important;}
}

/* Mobile public header: keep service navigation reachable instead of clipping/hiding it. */
@media screen and (max-width:767px){
  .tb-unified-public-header{height:auto!important;min-height:64px;display:flex!important;flex-wrap:wrap!important;align-items:center!important;row-gap:8px!important;padding-top:8px!important;padding-bottom:8px!important;}
  .tb-public-header-brand{order:1;flex:1 1 210px!important;max-width:calc(100% - 72px);gap:8px!important;}
  .tb-public-header-logo{width:88px!important;min-width:88px!important;height:38px!important;}
  .tb-header-country-search{min-width:0!important;flex:1 1 110px!important;}
  .tb-header-country-toggle{width:100%;min-width:0;}
  .tb-header-country-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .tb-header-actions{order:2;flex:0 0 auto!important;gap:6px!important;}
  .tb-header-insure-wrap,.tb-header-actions>.tb-header-chat-link,.tb-header-actions>.tb-header-phone-link{display:none!important;}
  .tb-client-header{gap:6px!important;}
  .tb-client-header .primary-button{min-height:38px!important;padding:8px 12px!important;}
  .tb-header-service-nav{order:3;display:flex!important;flex:1 1 100%!important;width:100%!important;max-width:100%!important;overflow-x:auto!important;white-space:nowrap!important;gap:6px!important;padding:0 0 2px!important;}
  .tb-header-service-link{flex:0 0 auto;min-height:36px;display:inline-flex;align-items:center;padding:7px 12px!important;border-radius:8px;}
}
@media screen and (max-width:390px){
  .tb-public-header-brand{flex-basis:190px!important;max-width:calc(100% - 62px);}
  .tb-public-header-logo{width:76px!important;min-width:76px!important;}
  .tb-client-header .primary-button{padding-left:10px!important;padding-right:10px!important;}
  .tb-header-country-toggle{padding-left:8px!important;padding-right:8px!important;}
}

/* Public modal/dropdown/table safety */
@media screen and (max-width:767px){
  .tb-lead-popup-dialog,.tb-client-login-dialog,.tb-visa-flow-card,.modalCard,.modal-dialog{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px)!important;margin-left:auto!important;margin-right:auto!important;overflow-y:auto;}
  .tb-header-country-menu{left:auto!important;right:0!important;width:min(360px,calc(100vw - 28px))!important;max-width:calc(100vw - 28px)!important;}
  .tb-header-country-input input{min-width:0;width:100%;}
  .table-responsive,.tb-table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .tb-otp-row,.otp-row,[class*="otp"]{max-width:100%;}
}

/* Client auth modal state integrity: hidden OTP/registration steps must never be forced visible by grid/form rules. */
@media screen {
  .tb-client-auth-dialog [hidden]{display:none!important;}
  .tb-client-auth-pane[hidden]{display:none!important;}
  .tb-client-auth-pane:not(.active){display:none!important;}
}
