/* Bid2Stay 29.0.9.2.4 — Final Mobile Responsive UI & Layout Integrity Lock */
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:clip}
img,svg,video,canvas{max-width:100%;height:auto}
input,select,textarea,button{max-width:100%;font:inherit}

.b2s-mobile-menu-toggle{display:none}

@media (max-width: 820px){
  :root{--b2s-mobile-gutter:16px}
  html,body{width:100%;min-width:0;overflow-x:hidden}
  body{font-size:16px;-webkit-text-size-adjust:100%}
  main,section,article,aside,form,header,footer,nav,div{min-width:0}

  /* Public header: deterministic compact mobile navigation */
  .b2s-global-header{position:relative;z-index:1000}
  .b2s-global-header-inner{position:relative;display:flex!important;align-items:center;justify-content:space-between;gap:10px;width:100%!important;max-width:none!important;padding:10px var(--b2s-mobile-gutter)!important;min-height:64px}
  .b2s-global-brand{flex:0 1 auto;min-width:0}
  .b2s-global-brand img{display:block;width:auto!important;max-width:148px!important;max-height:42px!important}
  .b2s-mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 46px;width:46px;height:46px;min-width:46px;min-height:46px;padding:0;border:1px solid #dce3e9;border-radius:14px;background:#fff;color:#102238;box-shadow:0 6px 18px rgba(10,31,48,.08);cursor:pointer}
  .b2s-mobile-menu-toggle svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
  .b2s-global-nav,.b2s-global-actions{display:none!important}
  .b2s-global-header.b2s-mobile-menu-open .b2s-global-nav,
  .b2s-global-header.b2s-mobile-menu-open .b2s-global-actions{display:flex!important;position:absolute;left:12px;right:12px;z-index:1001;background:#fff;border:1px solid #dfe6ec;box-shadow:0 18px 44px rgba(8,28,45,.16)}
  .b2s-global-header.b2s-mobile-menu-open .b2s-global-nav{top:calc(100% + 6px);flex-direction:column;gap:4px;padding:10px;border-radius:18px 18px 10px 10px}
  .b2s-global-header.b2s-mobile-menu-open .b2s-global-actions{top:calc(100% + 210px);flex-direction:column;padding:8px 10px 12px;border-top:0;border-radius:10px 10px 18px 18px}
  .b2s-global-header.b2s-mobile-menu-open .b2s-global-nav a,
  .b2s-global-header.b2s-mobile-menu-open .b2s-global-actions a{display:flex!important;align-items:center;width:100%;min-height:46px;padding:10px 12px;border-radius:10px;color:#102238!important;text-decoration:none;white-space:normal}
  .b2s-global-header.b2s-mobile-menu-open .b2s-global-nav a[aria-current="page"]{background:#f7f2e7}
  .b2s-global-header.b2s-mobile-menu-open .b2s-public-action-set:not([hidden]){display:flex!important;flex-direction:column;width:100%;gap:4px}

  /* Global shells / page gutters */
  .b2s-home-shell,.b2s30-shell,.shell,.container,.page-shell,.b2s-contact-shell,.b2s-login-shell,.b2s-auth-shell{width:100%!important;max-width:100%!important;margin-left:auto!important;margin-right:auto!important;padding-left:var(--b2s-mobile-gutter)!important;padding-right:var(--b2s-mobile-gutter)!important}

  /* Forms: one column, full width */
  form{max-width:100%!important}
  .b2s2039-search,.b2s-login-form-grid,.b2s-auth-grid,.b2s-contact-grid,.form-grid,.search-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px!important;width:100%!important;max-width:100%!important}
  .b2s2039-search>*,.b2s-contact-grid>*,.b2s-auth-grid>*,.b2s-login-form-grid>*{grid-column:1/-1!important;width:100%!important;max-width:100%!important;min-width:0!important}
  .b2s2039-search label,.b2s2039-search input,.b2s2039-search select,.b2s2039-search button,
  .b2s-contact-field,.b2s-contact-field input,.b2s-contact-field select,.b2s-contact-field textarea,
  .b2s-auth-field,.b2s-auth-field input,.b2s-auth-field select,
  .b2s-login-field,.b2s-login-field input,.b2s-login-field select{width:100%!important;max-width:100%!important;min-width:0!important}
  input,select,textarea{font-size:16px!important}
  button,.btn,.b2s-btn,a.btn,.b2s-find-search-submit,.b2s-contact-submit,.b2s-login-submit{min-height:46px}

  /* Find a Stay / map */
  .b2s30-search-hero{padding-left:0!important;padding-right:0!important}
  .b2s-find-destination-control{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important;width:100%!important}
  .b2s-find-destination-control>*{width:100%!important;max-width:100%!important}
  .b2s-find-map-stage,.b2s2057-map-panel,.b2s2057-map-tools,.b2s2057-map-heading{width:100%!important;max-width:100%!important;min-width:0!important}
  .b2s2057-map-tools{display:flex!important;flex-wrap:wrap!important;gap:8px!important}
  .b2s2057-map-tools input,.b2s2057-map-tools select{flex:1 1 100%!important;width:100%!important;max-width:100%!important}
  .b2s2057-map-tools button{flex:1 1 auto;min-height:44px!important}
  .b2s2057-map{width:100%!important;max-width:100%!important;min-width:0!important}
  .leaflet-container{max-width:100%!important}

  /* Homepage */
  .b2s-home-hero-inner,.b2s-journey-panel,.b2s-section-heading-row{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:18px!important}
  .b2s-home-hero-actions{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important;width:100%!important}
  .b2s-home-hero-actions a{width:100%!important;justify-content:center;text-align:center}
  .b2s-how-grid,.b2s30-destination-grid,.b2s-home-featured-destinations{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:16px!important;width:100%!important}
  .b2s30-destination-card{width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;min-height:0!important}

  /* Discover Botswana */
  .hero-search{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important;width:100%!important;max-width:100%!important}
  .hero-search>*{width:100%!important;max-width:100%!important}
  .hero-links,.category-strip,.category-strip>*,.category-strip nav{max-width:100%!important}
  .category-strip nav,.category-strip .categories,.category-strip .category-buttons,.hero-links{display:flex!important;flex-wrap:wrap!important;gap:8px!important;overflow:visible!important;white-space:normal!important}
  .category-strip a,.category-strip button,.hero-links a{flex:0 1 auto;min-height:44px}
  .destination-grid,.season-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:16px!important;width:100%!important}
  .destination-grid>*{width:100%!important;max-width:100%!important}

  /* Auth/register/login */
  .b2s-register-shell,.b2s-auth-layout,.b2s-login-shell{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;max-width:100%!important;min-height:0!important}
  .b2s-auth-visual,.b2s-register-visual,.b2s-login-intro{min-height:0!important;width:100%!important;max-width:100%!important}
  .b2s-auth-card,.b2s-login-card{width:100%!important;max-width:100%!important;margin:0!important}
  .b2s-auth-visual,.b2s-register-visual{display:none!important}

  /* Contact */
  .b2s-contact-card,.b2s-contact-intro{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important}
  .b2s-contact-grid{grid-template-columns:minmax(0,1fr)!important}

  /* Generic cards / grids / tables */
  [class*="grid"]{max-width:100%}
  .card,.panel,article{max-width:100%}
  table{max-width:100%}
  .table-wrap,.table-responsive,[class*="table-wrap"]{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

  /* Type and long strings */
  h1{font-size:clamp(2rem,10vw,3.15rem)!important;line-height:1.03!important;overflow-wrap:anywhere}
  h2{font-size:clamp(1.55rem,7vw,2.25rem)!important;line-height:1.08!important;overflow-wrap:anywhere}
  h3,p,small,label,a,button{overflow-wrap:anywhere}
  .b2s30-card-description,.b2s30-gateway{white-space:normal!important}

  /* Protect final content from edge collisions */
  footer{max-width:100%;overflow:hidden}
  .b2s30-footer-grid,.b2s-footer-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:18px!important}
}

@media (max-width: 430px){
  :root{--b2s-mobile-gutter:14px}
  .b2s-global-brand img{max-width:136px!important}
  .b2s-home-hero,.hero,.b2s30-search-hero{padding-top:28px!important;padding-bottom:28px!important}
  .b2s2039-search,.b2s-auth-card,.b2s-login-card,.b2s-contact-card{border-radius:18px!important}
  .b2s30-destination-card,.card,.panel{border-radius:18px!important}
  .b2s2057-map-tools button{width:100%!important;flex-basis:100%!important}
}
