/* MSB stability, accessibility, and component polish patch */
:root{--msb-focus:#f0d889;--msb-wa:#17a765;--msb-danger:#b24b39}
.skip-link{position:absolute;left:-999px;top:10px;z-index:9999;background:#fff;color:#081f17;padding:10px 14px;border-radius:12px;font-weight:900;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.skip-link:focus{left:12px}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--msb-focus);outline-offset:3px}
.brand-mark img,.hero-logo-badge img{width:100%;height:100%;object-fit:contain}
img{max-width:100%;height:auto}.gallery img,.media-card img,.product-card img{object-fit:cover}.admin-table-wrap,.table-scroll{overflow:auto;-webkit-overflow-scrolling:touch}
.nav-menu a{min-height:34px}.btn,.float-btn{touch-action:manipulation}.float-wa{background:linear-gradient(135deg,var(--msb-wa),#0d6b47)!important;color:#fff!important}
.form-status,.sync-status,.booking-status{min-height:22px;font-weight:800}.is-hidden{display:none!important}.text-danger{color:var(--msb-danger)!important}.text-success{color:#16784f!important}
.msb-safe-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadowSoft);padding:22px}
@media(max-width:980px){.site-header{top:0}.navbar{grid-template-columns:1fr auto;min-height:68px}.navbar nav{grid-column:1/-1;width:100%}.nav-menu{display:none;max-height:72vh;overflow:auto;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadowSoft);margin-bottom:12px}.nav-menu.show,.nav-menu.open,.nav-menu.active{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.nav-menu a{justify-content:flex-start;padding:12px 13px;background:var(--soft)}.mobile-toggle{display:inline-flex;align-items:center;justify-content:center}.hero-grid,.grid-2,.grid-3,.footer-grid{grid-template-columns:1fr!important}.btn-row{gap:10px}.btn{width:auto;min-width:0;white-space:normal;text-align:center}.floating{left:10px;right:10px;bottom:10px;justify-content:center;flex-wrap:wrap}.float-btn{min-height:42px}}
@media(max-width:520px){.container{width:min(100% - 22px,var(--max))}.nav-menu.show,.nav-menu.open,.nav-menu.active{grid-template-columns:1fr}.brand span{display:none}.brand-mark{width:44px!important;height:44px!important}.hero{min-height:auto}.hero-grid{padding:64px 0 86px}.hero-mini{grid-template-columns:1fr 1fr!important}.section{padding:56px 0}.btn-row .btn{width:100%}table{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* MSB OFFICIAL DOMAIN + MOBILE HORIZONTAL MENU PATCH
   Version: 20260617-domain-mobile-scroll
   Domain: https://wisatamsbsiak.id
   Tujuan: menu mobile selalu tampil satu baris dan bisa digeser kiri-kanan. */
:root{--msb-official-domain:"https://wisatamsbsiak.id";}
@media (max-width: 980px){
  html, body{
    width:100%!important;
    max-width:100%!important;
  }
  body{
    overflow-x:hidden!important;
  }
  .site-header{
    overflow:visible!important;
  }
  .site-header .container.navbar,
  .navbar{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:6px!important;
    width:min(100% - 10px, var(--max, 1180px))!important;
    min-width:0!important;
    max-width:100%!important;
  }
  .site-header .navbar nav,
  .navbar nav,
  .main-nav,
  .nav-wrap{
    order:3!important;
    flex:0 0 100%!important;
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    touch-action:pan-x pan-y!important;
    scroll-snap-type:x proximity!important;
    scrollbar-width:none!important;
    padding:4px 0 7px!important;
    margin:0!important;
    mask-image:linear-gradient(90deg, transparent 0, #000 16px, #000 calc(100% - 16px), transparent 100%);
    -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 16px, #000 calc(100% - 16px), transparent 100%);
  }
  .site-header .navbar nav::-webkit-scrollbar,
  .navbar nav::-webkit-scrollbar,
  .main-nav::-webkit-scrollbar,
  .nav-wrap::-webkit-scrollbar{
    display:none!important;
  }
  .site-header .nav-menu,
  .nav-menu,
  .site-header .nav-menu.show,
  .nav-menu.show,
  .nav-list{
    position:static!important;
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:max-content!important;
    min-width:max-content!important;
    max-width:none!important;
    max-height:none!important;
    overflow:visible!important;
    gap:6px!important;
    padding:0 12px!important;
    margin:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .site-header .nav-menu li,
  .nav-menu li,
  .nav-list li{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:auto!important;
    display:block!important;
    scroll-snap-align:start!important;
  }
  .site-header .nav-menu a,
  .nav-menu a,
  .nav-list a{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:4px!important;
    width:auto!important;
    min-width:max-content!important;
    min-height:34px!important;
    white-space:nowrap!important;
    padding:7px 10px!important;
    border-radius:999px!important;
    font-size:9.8px!important;
    line-height:1!important;
    background:rgba(255,255,255,.55)!important;
    border:1px solid rgba(6,59,42,.10)!important;
  }
  .site-header .mobile-toggle,
  .mobile-toggle,
  button.mobile-toggle{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
}
@media (max-width: 420px){
  .site-header .nav-menu a,
  .nav-menu a,
  .nav-list a{
    min-height:31px!important;
    padding:6px 8px!important;
    font-size:8.8px!important;
  }
}
/* END MSB OFFICIAL DOMAIN + MOBILE HORIZONTAL MENU PATCH */
