/* Shared responsive protection for all dynamic/public pages */
html,body{max-width:100%;overflow-x:clip}
body img,body video,body iframe,body svg{max-width:100%}
main{min-width:0}
.container,.container-fluid,.large-container{min-width:0}
p,h1,h2,h3,h4,h5,h6,a,li,span{overflow-wrap:break-word}

/* Dynamic rich content: user-pasted content must never force horizontal overflow */
.site-page-richtext img,
.site-page-richtext video,
.site-page-richtext iframe{
  max-width:100%!important;
  height:auto;
}
.site-page-richtext table{
  width:100%;
  max-width:100%;
}
.site-page-richtext pre,
.site-page-richtext code{
  max-width:100%;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.site-page-richtext pre{
  overflow-x:auto;
}
.site-page-richtext .table-responsive{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

/* Main navigation must always remain at the top after the social/contact bar scrolls away.
   Do not place it inside an overflow:hidden scroll container; that breaks position:sticky. */
#main-navbar{
  position:sticky!important;
  top:0!important;
  width:100%;
  z-index:1030!important;
}

@media(max-width:1199.98px){
  #main-navbar{
    width:100%;
    max-width:100%;
  }
  #main-navbar .index-header-container{
    width:100%;
    max-width:100%;
    min-width:0;
  }
}

@media(max-width:767.98px){
  body{
    width:100%;
    max-width:100%;
    overflow-x:clip!important;
  }

  main,
  main>section{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  main .container,
  main .container-fluid,
  main .large-container{
    width:100%;
    max-width:100%!important;
    min-width:0;
    margin-right:auto;
    margin-left:auto;
  }

  .site-page-hero h1,
  .service-detail-hero-content h1,
  .contact-hero h1{
    max-width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
  }

  .breadcrumb,
  .service-breadcrumb{
    max-width:100%;
    overflow-x:auto;
    scrollbar-width:none;
  }
  .breadcrumb::-webkit-scrollbar,
  .service-breadcrumb::-webkit-scrollbar{
    display:none;
  }

  .btn{
    max-width:100%;
  }
}

/* Header position tuning
   Desktop: move only the menu group clearly to the left.
   Mobile/tablet: move only the logo slightly to the right. */
@media(min-width:1200px){
  #main-navbar .index-header-nav{
    position:relative!important;
    left:-64px!important;
    transform:none!important;
  }
}

@media(max-width:1199.98px){
  #main-navbar .index-header-logo .logo{
    margin-left:-22px!important;
  }
}

@media(max-width:420px){
  #main-navbar .index-header-logo .logo{
    margin-left:-19px!important;
  }
}

/* Mobile header social links
   Replaces the former phone-number area.
   URLs come from hotel_settings.instagram_url / facebook_url. */
@media(max-width:1199.98px){
  #main-navbar .index-header-mobile-social{
    position:absolute!important;
    left:54.2%!important;
    top:50%!important;
    z-index:3!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    transform:translate(-50%,-50%)!important;
    margin:0!important;
    padding:0!important;
    white-space:nowrap;
  }

  #main-navbar .index-header-mobile-social-link{
    display:flex!important;
    width:32px!important;
    height:32px!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 32px!important;
    border:1px solid rgba(0,50,70,.18)!important;
    border-radius:50%!important;
    background:rgba(255,255,255,.88)!important;
    text-decoration:none!important;
    box-shadow:0 2px 8px rgba(0,0,0,.06);
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
  }

  #main-navbar .index-header-mobile-social-link i{
    font-size:15px!important;
    line-height:1!important;
  }

  #main-navbar .index-header-mobile-social-link.is-instagram i{
    color:#c13584!important;
  }

  #main-navbar .index-header-mobile-social-link.is-facebook i{
    color:#1877f2!important;
  }

  #main-navbar .index-header-mobile-social-link:active{
    transform:scale(.94);
  }

  #main-navbar .index-header-logo .logo{
    margin-left:-10px!important;
  }
}

@media(max-width:420px){
  #main-navbar .index-header-mobile-social{
    left:54.7%!important;
    gap:6px!important;
  }

  #main-navbar .index-header-mobile-social-link{
    width:30px!important;
    height:30px!important;
    flex-basis:30px!important;
  }

  #main-navbar .index-header-mobile-social-link i{
    font-size:14px!important;
  }

  #main-navbar .index-header-logo .logo{
    margin-left:-8px!important;
  }
}

/* Footer copyright bar is white; it must never inherit the dark footer's white text.
   Do not create a stacking context here: custom footer fixed widgets must remain above it. */
#site-footer-bottom,
#site-footer-bottom small,
#site-footer-bottom span,
#site-footer-bottom a{
  color:var(--theme-text,#1a1b1b)!important;
}
#site-footer-bottom{
  background:#fff!important;
}
