/* Nicole's River Park v91 — mobile responsiveness hardening
   Focus: zero horizontal overlap, especially footer brand + slogan on mobile. */

html,body{max-width:100%;overflow-x:hidden}
img,video,iframe{max-width:100%}

@media (max-width:900px){
  .park-footer{
    padding:38px max(18px,4.5vw) 24px!important;
  }
  .footer-top{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:20px!important;
    width:100%!important;
    padding-bottom:28px!important;
    text-align:center!important;
  }
  .footer-top>*{
    min-width:0!important;
    max-width:100%!important;
  }
  .footer-top .park-brand,
  .footer-brand{
    justify-content:center!important;
    justify-self:center!important;
    align-self:center!important;
    width:auto!important;
    max-width:100%!important;
    margin:0 auto!important;
  }
  .footer-slogan{
    display:block!important;
    width:min(100%,520px)!important;
    max-width:100%!important;
    margin:0 auto!important;
    padding:.12em .15em .2em!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    text-wrap:balance!important;
    text-align:center!important;
    line-height:1.08!important;
    font-size:clamp(24px,7vw,32px)!important;
  }
  .footer-slogan:before{
    width:100%!important;
    max-width:100%!important;
  }
  .footer-top .social-links,
  .footer-top .social-links-compact{
    justify-content:center!important;
    justify-self:center!important;
    align-self:center!important;
    max-width:100%!important;
  }
  .footer-bottom{
    width:100%!important;
    justify-content:center!important;
    align-items:center!important;
    flex-wrap:wrap!important;
    gap:10px 18px!important;
    text-align:center!important;
  }
  .footer-bottom>a,
  .footer-bottom>span{
    margin-left:0!important;
    max-width:100%!important;
  }
}

@media (max-width:560px){
  .park-footer{
    padding:32px 16px 22px!important;
  }
  .footer-top{
    gap:17px!important;
    padding-bottom:22px!important;
  }
  .footer-top .park-brand,
  .footer-brand{
    transform:none!important;
  }
  .footer-top .crest-logo{
    flex:0 0 auto!important;
    width:52px!important;
    height:52px!important;
  }
  .footer-top .park-brand-copy{
    min-width:0!important;
  }
  .footer-top .park-brand-copy strong{
    font-size:18px!important;
  }
  .footer-top .park-brand-copy span{
    font-size:8px!important;
    letter-spacing:.17em!important;
  }
  .footer-slogan{
    width:100%!important;
    font-size:clamp(22px,8.2vw,29px)!important;
    line-height:1.12!important;
    letter-spacing:-.025em!important;
  }
  /* On small screens, stop per-word floating so words can never collide with logo/each other. */
  .footer-slogan .slogan-word,
  .footer-slogan .slogan-accent{
    animation:none!important;
    transform:none!important;
    filter:none!important;
  }
  .footer-slogan:before{
    display:none!important;
  }
  .footer-bottom{
    flex-direction:column!important;
    gap:8px!important;
    padding-top:16px!important;
    letter-spacing:.08em!important;
  }
  .footer-bottom a,
  .footer-bottom span{
    width:100%!important;
    text-align:center!important;
  }

  /* General mobile containment */
  .park-header,.header-shell,.park-hero,.attraction-section,.reviews-section,.ticket-section,
  .booking-section,.group-section,.visit-section-new,.location-section,.gallery-section,.park-footer{
    max-width:100vw!important;
  }
  .ticket-row,.gallery-grid,.attraction-carousel-content{
    min-width:0!important;
  }
  #tiket .ticket-card{
    width:100%!important;
    max-width:100%!important;
  }
  #galeri .gallery-card{
    min-width:0!important;
  }
}

@media (max-width:380px){
  .park-footer{padding-inline:14px!important}
  .footer-slogan{font-size:clamp(21px,8vw,27px)!important}
  .footer-top .crest-logo{width:48px!important;height:48px!important}
  .footer-top .park-brand-copy strong{font-size:17px!important}
}

/* Extra safe area for floating WhatsApp on narrow phones. */
@media (max-width:560px){
  .park-footer{padding-bottom:82px!important}
  .footer-top,.footer-bottom{box-sizing:border-box!important}
}
