/* ================================================================
   v6.8 — global mobile hardening
   Loaded after every page stylesheet and style.css.
   ================================================================ */

html,body{max-width:100%;overflow-x:hidden}
body *{min-width:0}
img,video,iframe,embed,object{max-width:100%}

/* A single reliable responsive header/menu on Home + every child page. */
@media(max-width:1080px){
  nav#nav,nav{position:sticky!important;top:0!important;z-index:9900!important;padding:0 22px!important;height:76px!important;gap:12px!important}
  .nav-brand{min-width:0!important;flex:1 1 auto!important}
  .nav-brand>div:last-child{min-width:0!important}
  .nav-name{font-size:18px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .nav-est{font-size:8px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .menu-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 44px!important;width:44px!important;height:44px!important;padding:0!important;border-radius:10px!important;background:#fff!important;position:relative!important;z-index:3!important}
  .nav-links,#navLinks{
    display:none!important;position:absolute!important;top:76px!important;left:0!important;right:0!important;
    width:100%!important;max-height:calc(100vh - 76px)!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;
    padding:14px 18px calc(22px + env(safe-area-inset-bottom))!important;background:#fff!important;
    border-bottom:1px solid var(--border)!important;box-shadow:0 18px 38px rgba(30,42,58,.16)!important;
    flex-direction:column!important;align-items:stretch!important;gap:5px!important
  }
  .nav-links.open,#navLinks.open{display:flex!important}
  .nav-links>li{display:block!important;width:100%!important}
  .nav-link,.nav-links>li>a,.nav-cta,.nav-links a.nav-cta,.nav-links li>a{
    display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-height:44px!important;
    margin:0!important;padding:10px 14px!important;border-radius:9px!important;white-space:normal!important;text-align:center!important;
    font-size:16px!important;line-height:1.25!important
  }
  .nav-links a.nav-cta,.nav-links li.nav-cta-item>a,.nav-links li.nav-cta-secondary-item>a{
    margin-top:3px!important;border:1.5px solid var(--gold)!important;background:var(--gold-pale)!important;color:var(--gold-dark)!important
  }
  body.kallol-menu-open{overflow:hidden!important}
}

@media(max-width:760px){
  .container{width:100%!important;max-width:100%!important;padding-left:18px!important;padding-right:18px!important}
  .announce-bar{padding:7px 12px!important;font-size:9px!important;line-height:1.45!important;letter-spacing:.025em!important}
  nav#nav,nav{height:68px!important;padding:0 14px!important}
  .nav-links,#navLinks{top:68px!important;max-height:calc(100vh - 68px)!important;padding-left:14px!important;padding-right:14px!important}
  .nav-logo{width:40px!important;height:40px!important}
  .nav-name{font-size:16px!important}
  .nav-est{font-size:7px!important;letter-spacing:.1em!important}
  .menu-btn{width:42px!important;height:42px!important;flex-basis:42px!important}

  /* Consistent typography and touch targets. */
  h1,h2,h3,.sh2,.page-intro h1,.dp-hero h1,.program-hero h1,.sports-hero h1,.registration-hero h1{overflow-wrap:anywhere;word-break:normal}
  a,button,input,select,textarea{touch-action:manipulation}
  .hero-btn,.ds-btn,.program-btn,.dp-btn,.registration-btn,.mini-map-link,.location-link,.contact-btn,.donate-btn{max-width:100%!important;white-space:normal!important;text-align:center!important;line-height:1.25!important}
  table{max-width:none}
  .table-wrap,.price-table-wrap,.registration-table-wrap,.responsive-table{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}

  /* Footer becomes deliberate, not compressed. */
  footer,footer#contact{padding-bottom:30px!important}
  footer .footer-grid,footer#contact .footer-grid{grid-template-columns:1fr!important;gap:30px!important;align-items:start!important}
  footer .footer-links{justify-content:flex-start!important;gap:12px 18px!important}
  .footer-bottom{display:block!important;line-height:1.8!important}
  .footer-copy a{margin-left:0!important}
  .footer-stripe{margin-bottom:38px!important}
}

/* HOME: preserve the collage and place content in a clean mobile block instead
   of trying to squeeze desktop overlay copy into a panoramic image. */
@media(max-width:760px){
  body.home #intro-overlay{display:none!important}
  body.home #home{background:#10231d!important;overflow:visible!important}
  body.home .hero-img-wrap{display:flex!important;flex-direction:column!important;background:#10231d!important}
  body.home .hero-img{position:relative!important;order:1!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;object-fit:contain!important;object-position:center!important;background:#10231d!important}
  body.home .hero-overlay{display:none!important}
  body.home .hero-stripe{order:0!important;position:relative!important;inset:auto!important;height:4px!important}
  body.home .hero-content{
    order:2!important;position:relative!important;inset:auto!important;width:100%!important;max-width:none!important;margin:0!important;
    padding:28px 18px 30px!important;justify-content:flex-start!important;
    background:linear-gradient(145deg,#10231d 0%,#18372b 58%,#1e2a3a 100%)!important
  }
  body.home #hero-black-fade,body.home #hero-particles,body.home .scroll-hint{display:none!important}
  body.home .hero-eyebrow{margin-bottom:12px!important;flex-wrap:wrap!important}
  body.home .hero-pill{font-size:9px!important;padding:5px 10px!important}
  body.home .hero-eyebrow-txt{font-size:9px!important;line-height:1.5!important}
  body.home .hero-h1{font-size:clamp(38px,12vw,50px)!important;line-height:.96!important;max-width:100%!important}
  body.home .hero-sub{font-size:13px!important;line-height:1.65!important;max-width:100%!important;margin-top:10px!important}
  body.home .hero-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin-top:18px!important}
  body.home .hero-btn{width:100%!important;justify-content:center!important;padding:12px 10px!important;font-size:12px!important}
  body.home .hero-stats{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;margin-top:22px!important;padding-top:16px!important}
  body.home .hstat{border:0!important;margin:0!important;padding:12px!important;background:rgba(255,255,255,.06)!important;border-radius:10px!important}
  body.home .hstat-num{font-size:28px!important}.hstat-lbl{font-size:8px!important}

  body.home section:not(#home){overflow:hidden}
  body.home .about-grid,body.home .pres-grid,body.home .heritage-grid,body.home .donate-inner,body.home .ds-grid{grid-template-columns:1fr!important;gap:32px!important}
  body.home .hnum-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.home .event-tabs{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;margin-bottom:26px!important}
  body.home .etab{width:100%!important;text-align:center!important;padding:12px!important}
  body.home .carousel-viewport{overflow:hidden!important;border-radius:14px!important}
  body.home .carousel-track{gap:14px!important}
  body.home .carousel-slide{width:100%!important;flex:0 0 100%!important}
  body.home .ev-card{height:auto!important;min-height:360px!important}
  body.home .c-arrows{margin-bottom:12px!important}
  body.home .gallery-slide{width:100%!important;flex:0 0 100%!important}
  body.home .gallery-track{gap:12px!important}
  body.home .gallery-frame{min-height:300px!important}
  body.home .sh2{font-size:clamp(38px,11vw,52px)!important;line-height:.98!important}
  body.home .eyebrow{font-size:9px!important}
  body.home .puja-vendors-head{display:block!important}
  body.home .donate-inner{padding:0!important}
  body.home .donate-card{width:100%!important}
  body.home .donate-methods{grid-template-columns:1fr!important}
  body.home .durga-spotlight{padding:42px 0!important}
  body.home .ds-title{font-size:clamp(42px,11vw,56px)!important;line-height:.94!important}
  body.home .ds-copy{font-size:13px!important;line-height:1.65!important}
  body.home .ds-meta{gap:7px!important}
  body.home .ds-meta span{font-size:8px!important;padding:7px 9px!important}
  body.home .ds-actions{display:grid!important;grid-template-columns:1fr!important;gap:9px!important}
  body.home .ds-actions .ds-btn{width:100%!important;justify-content:center!important;min-height:44px!important}
  body.home .ds-artists-window{margin-top:8px!important}
}

@media(max-width:420px){
  body.home .hero-actions{grid-template-columns:1fr!important}
  body.home .hero-stats{grid-template-columns:1fr 1fr!important}
  body.home .hnum-grid{grid-template-columns:1fr!important}
}

/* CHILD PAGES: consistent mobile rhythm and single-column cards. */
@media(max-width:720px){
  .page-intro,.sports-hero,.registration-hero,.program-hero,.dp-hero,.kch-hero,.volunteer-hero,.contact-hero{padding-top:46px!important;padding-bottom:46px!important}
  .page-intro h1,.sports-hero h1,.registration-hero h1,.program-hero h1,.dp-hero h1{font-size:clamp(42px,13vw,58px)!important;line-height:.95!important}
  .page-intro p,.program-hero-copy>p,.dp-hero-copy,.sports-hero p{font-size:13px!important;line-height:1.7!important}

  .program-hero-grid,.program-intro-grid,.program-join-grid,.program-quiz-showcase,
  .dp-hero-grid,.reg-wrap,.promo-card,.venue-grid,
  .contact-grid,.volunteer-layout,.bb-wrap,.kch-hero-grid,.kch-story-grid,.kch-detail-grid,
  .mission-grid,.location-card{grid-template-columns:1fr!important;gap:24px!important}

  .program-symbol-card{min-height:240px!important;padding:24px!important}
  .program-photo-grid.two-up,.program-stat-grid{grid-template-columns:1fr!important}
  .program-photo-card.tall{min-height:240px!important}
  .program-feature-grid,.artist-grid,.vendor-grid-dp,.sport-grid,.people-grid,.ec-grid,.founder-grid,.album-grid,.preview-photo-grid{grid-template-columns:1fr!important}
  .program-feature-card{min-height:0!important;padding:24px!important}
  .program-join-card,.program-placeholder-card{padding:24px!important}
  .program-contact-person{align-items:flex-start!important;flex-direction:column!important;gap:5px!important}
  .program-cta{align-items:stretch!important;flex-direction:column!important}
  .program-cta .program-btn{width:100%!important}

  .dp-hero-grid{gap:18px!important}
  .dp-hero-meta{gap:6px!important}.dp-hero-meta span{font-size:8px!important;padding:7px 9px!important}
  .dp-hero-actions,.dp-new-venue-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .dp-hero-actions a,.dp-new-venue-actions a{width:100%!important;justify-content:center!important}
  .dp-new-venue-banner{grid-template-columns:1fr!important;margin:18px 0 20px!important;padding:10px!important}
  .dp-new-venue-photos{grid-template-columns:1fr!important;grid-template-rows:none!important;min-height:0!important}
  .venue-photo{min-height:190px!important}.venue-photo img{object-fit:cover!important}
  .hero-vibe-card{display:none!important} /* user requested the large visual panel desktop-only */
  .nightly-flyer-shell{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}
  .nightly-flyer-track{animation:none!important;width:max-content!important}
  .experience-reel{min-height:0!important}

  .sport-card,.event-card,.album-card{width:100%!important}
  .sports-section,.bb-section,.dp-section,.program-features-section,.program-join-section{padding-top:52px!important;padding-bottom:52px!important}

  .registration-native,.registration-existing-content,.volunteer-existing-content{overflow-x:auto!important}
  .registration-native input,.registration-native select,.registration-native textarea,.registration-native button,
  .volunteer-existing-content input,.volunteer-existing-content select,.volunteer-existing-content textarea,.volunteer-existing-content button{width:100%!important;max-width:100%!important}
  iframe{max-width:100%!important}
}

/* Never let long tournament names/contact strings create horizontal scrolling. */
@media(max-width:600px){
  .sport-card h2,.sport-card h3,.ev-name,.program-contact-person strong,.program-contact-person a,.footer-addr,.dp-new-venue-address{overflow-wrap:anywhere!important}
  .price-table{min-width:620px!important}
}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
}
@media(max-width:600px){
  .price-table,.registration-native table,.registration-existing-content table,.volunteer-existing-content table{
    display:block!important;width:100%!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important
  }
  .price-table{min-width:0!important}
  .price-table thead,.price-table tbody{min-width:560px}
}
