/* Stage 105 emergency repair: loaded after the main stylesheet so it wins over older stage blocks. */
.back-ribbon{
  position:fixed!important;
  top:clamp(118px,8vw,146px)!important;
  left:clamp(18px,3vw,42px)!important;
  z-index:980!important;
  margin:0!important;
  max-width:min(520px,calc(100vw - 36px))!important;
  white-space:normal!important;
}

/* Stage 106 emergency repair: keep Leaflet logo markers readable and bounded. */
.leaflet-marker-icon .aava-marker.logo{
  width:54px!important;
  height:54px!important;
  padding:5px!important;
  overflow:hidden!important;
  border:2px solid #fff!important;
  border-radius:999px!important;
  box-sizing:border-box!important;
  box-shadow:0 12px 28px rgba(0,105,118,.28),0 0 0 3px rgba(82,227,211,.16)!important;
}
.leaflet-marker-icon .aava-marker.logo img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  border-radius:50%!important;
}
.premium-map-marker-aavameri,
.aava-marker.datahub-marker.aavameri-logo-marker{
  width:48px!important;
  height:48px!important;
  padding:4px!important;
  overflow:hidden!important;
  border:2px solid #fff!important;
  border-radius:999px!important;
  box-sizing:border-box!important;
  box-shadow:0 14px 30px rgba(0,105,118,.30),0 0 0 3px rgba(82,227,211,.18)!important;
}
.premium-map-marker-aavameri img,
.aava-marker.datahub-marker.aavameri-logo-marker img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  border-radius:999px!important;
}
.aw-nav .brand-logo{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.back-ribbon + main,
body:has(.back-ribbon) main{
  margin-top:0!important;
  padding-top:0!important;
}
.back-ribbon + main .hero,
body:has(.back-ribbon) main .hero:first-child{
  margin-top:0!important;
  min-height:100svh!important;
  padding-top:clamp(176px,17vh,232px)!important;
}
body:has(.back-ribbon) main .hero:first-child::before{
  top:0!important;
  inset:0!important;
}
.more-ways,
.more-products-grid,
.more-product-card,
.product-showcase,
.sustainability-impact,
.sustainability-impact-grid{
  content-visibility:visible!important;
  contain-intrinsic-size:auto!important;
}
.map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card,
.booking-card:has(.aava-booking-widget),
.booking-card.has-live-booking-widget,
.product-conversion .booking-card:has(.booking-widget-shell),
.hidden-gems-booking,
.self-guided-booking-main,
#booking-widget,
#self-guided-booking,
#rental .aava-booking-widget{
  box-sizing:border-box!important;
  max-width:100%!important;
}
.self-guided-booking-main,
.self-guided-booking-main *,
.booking-card,
.booking-card *,
.product-facts-grid,
.product-facts-grid *,
.detail-grid,
.detail-grid *{
  min-width:0!important;
}
.self-guided-booking-main .quick-summary-list strong,
.self-guided-booking-main .quick-summary-list li,
.product-facts-grid span,
.detail strong,
.detail span,
.aava-booking-widget__head p,
.aava-booking-widget__note,
.aava-minimum-price-note{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}

@media(max-width:760px){
  .back-ribbon{
    top:96px!important;
    left:10px!important;
    max-width:calc(100vw - 20px)!important;
    padding:10px 13px!important;
    font-size:.82rem!important;
  }
  .back-ribbon + main .hero,
body:has(.back-ribbon) main .hero:first-child{
    min-height:100svh!important;
    padding-top:clamp(154px,34vw,188px)!important;
  }
  .section.more-ways,
.more-ways.section{
    padding-top:48px!important;
    padding-bottom:56px!important;
  }
  .more-ways .more-products-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:18px!important;
  }
  .map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    transform:none!important;
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    padding:0!important;
    border-left:0!important;
    border-right:0!important;
    border-radius:22px!important;
    overflow:hidden!important;
    box-shadow:0 14px 34px rgba(7,23,29,.14)!important;
  }
  .leaflet-map,
.datahub-map,
.leaflet-container{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:420px!important;
    height:min(70vh,540px)!important;
    border-radius:22px!important;
  }
  .leaflet-left{left:8px!important}
  .leaflet-right{right:8px!important}
  .leaflet-top{top:8px!important}
  .leaflet-bottom{bottom:8px!important}
  .map-caption,
.leaflet-map-caption{
    display:none!important;
  }
  .product-conversion.section,
.satava-rental-section.section,
.self-guided-page .section:has(.self-guided-booking-main),
.localized-page .section:has(#self-guided-booking){
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .product-intent-grid,
.product-conversion .product-intent-grid,
.self-guided-sales .product-layout--self-guided-main{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    max-width:100%!important;
    gap:18px!important;
  }
  .booking-card:has(.aava-booking-widget),
.booking-card.has-live-booking-widget,
.product-conversion .booking-card:has(.booking-widget-shell),
.hidden-gems-booking,
.self-guided-booking-main,
#booking-widget,
#self-guided-booking,
#rental .aava-booking-widget{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    transform:none!important;
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    border-left:0!important;
    border-right:0!important;
    border-radius:20px!important;
    padding:10px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }
  .booking-widget-shell,
.booking-widget-shell--active,
.aava-booking-widget,
.aava-booking-widget__embed,
.aava-booking-widget__embed--johku,
.aava-booking-widget__embed .bokunWidget,
.aava-booking-widget__embed johku-widget,
.bokunWidget,
johku-widget{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    contain:none!important;
  }
  .aava-booking-widget,
.booking-widget-shell,
.booking-widget-shell--active{
    padding:8px!important;
    border-radius:18px!important;
    overflow:visible!important;
  }
  .aava-booking-widget__embed,
.aava-booking-widget__embed--johku,
.aava-booking-widget__embed .bokunWidget,
.aava-booking-widget__embed johku-widget,
.bokunWidget,
johku-widget{
    overflow-x:auto!important;
    overflow-y:visible!important;
    -webkit-overflow-scrolling:touch;
  }
  .aava-booking-widget__embed,
.aava-booking-widget__embed .bokunWidget,
.aava-booking-widget__embed johku-widget,
.bokunWidget{
    min-height:max(720px,82vh)!important;
    border-radius:14px!important;
  }
  .self-guided-booking-main .quick-summary-list,
.product-facts-grid,
.detail-grid{
    grid-template-columns:1fr!important;
  }
  .self-guided-booking-main .quick-summary-list li,
.product-facts-grid div,
.detail{
    padding:12px!important;
  }
  .self-guided-booking-main .quick-summary-list strong,
.product-facts-grid span,
.detail strong{
    font-size:clamp(.9rem,4vw,1.02rem)!important;
    line-height:1.35!important;
  }
  .aava-booking-widget__head h2,
.self-guided-booking-main .self-guided-booking-summary h2{
    font-size:clamp(1.55rem,8vw,2.35rem)!important;
    line-height:1.02!important;
  }
  .sustainability-impact{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    padding:24px 16px!important;
    border-radius:24px!important;
    overflow:hidden!important;
  }
  .sustainability-impact .title{
    max-width:100%!important;
    font-size:clamp(2.05rem,10.5vw,3.4rem)!important;
    line-height:.98!important;
    overflow-wrap:anywhere!important;
  }
  .sustainability-impact .kicker,
.sustainability-impact p{
    max-width:100%!important;
    overflow-wrap:anywhere!important;
  }
  .sustainability-impact-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .sustainability-impact-grid article{
    padding:16px!important;
    min-width:0!important;
  }
}

/* Stage 105: remove the last common causes of click blocking,
clipped widgets and empty-looking cards. */
.display,
.hero .display,
.hero h1{
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:auto;
}
body:has(.back-ribbon) main .hero:first-child .display{
  font-size:clamp(2.6rem,7vw,6.8rem)!important;
}
.home-page .choice-grid.product-grid-six .choice-card .pill,
.localized-page .choice-strip.product-showcase .choice-card .pill,
.localized-page #details .choice-grid.product-grid-six .choice-card .pill,
.card-body .pill,
.hero-meta .pill{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:flex-start!important;
  gap:.55rem!important;
  min-width:0!important;
}
.choice-card .pill .dot,
.card-body .pill .dot,
.hero-meta .pill .dot{
  flex:0 0 auto!important;
  margin-top:.32em!important;
}
.choice-card{
  background-image:linear-gradient(180deg,rgba(6,22,31,.05),rgba(6,22,31,.68)),var(--img)!important;
  background-size:cover!important;
  background-position:center!important;
}
.card-media{
  background-image:var(--img)!important;
  background-size:cover!important;
  background-position:center!important;
}
.choice-card::before,
.card-media::before,
.home-edge-band::before,
.home-wide-band::before,
.home-edge-band::after,
.home-wide-band::after{
  pointer-events:none!important;
}
.home-fixed-hero .aava-wave-edge--bottom,
.home-fixed-hero::after{
  opacity:.18!important;
  pointer-events:none!important;
}
.voyage-menu:not(.is-open),
.menu-scrim:not(.is-open),
.external-site-overlay:not(.is-open),
.aava-external-overlay:not(.is-open),
.contact-overlay:not(.is-open),
.aava-contact-modal:not(.is-open),
.aava-booking-modal:not(.is-open),
.meteogram-overlay:not(.is-open),
.weather-resource-overlay:not(.is-open),
.gallery-lightbox:not(.is-open),
.customer-album-lightbox:not(.is-open),
.aava-lightbox:not(.is-open){
  visibility:hidden!important;
  pointer-events:none!important;
}
.aava-wave-edge{
  pointer-events:none!important;
}
.aw-nav,
.aw-nav *,
.menu-trigger,
.nav-links,
.nav-actions,
.brand,
.menu-panel,
.menu-panel *,
.aava-booking-widget,
.aava-booking-widget *,
.booking-widget-shell,
.booking-widget-shell *,
johku-widget,
.bokunWidget,
.faq-accordion details,
.faq-accordion summary{
  pointer-events:auto;
}
.satava-rental-section .aava-booking-widget,
#rental .aava-booking-widget{
  position:relative!important;
  z-index:3!important;
  overflow:visible!important;
}
.satava-rental-section .aava-booking-widget__embed--johku,
#rental .aava-booking-widget__embed--johku{
  min-height:640px!important;
  overflow:auto!important;
  -webkit-overflow-scrolling:touch;
  background:#fff!important;
}
.satava-rental-section .aava-booking-widget__embed--johku johku-widget,
#rental .aava-booking-widget__embed--johku johku-widget{
  display:block!important;
  width:100%!important;
  min-height:620px!important;
  contain:none!important;
  pointer-events:auto!important;
}
.booking-card:has(.aava-booking-widget),
.booking-card.has-live-booking-widget,
.product-conversion .booking-card:has(.booking-widget-shell),
.hidden-gems-booking,
.self-guided-booking-main,
#booking-widget,
#self-guided-booking,
#rental .aava-booking-widget{
  overflow:visible!important;
}
.aava-booking-widget__embed,
.aava-booking-widget__embed--johku,
.aava-booking-widget__embed .bokunWidget,
.aava-booking-widget__embed johku-widget,
.bokunWidget,
johku-widget{
  max-width:100%!important;
  min-width:0!important;
  contain:none!important;
}
.map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{
  box-sizing:border-box!important;
  min-width:0!important;
}
.leaflet-map,
.datahub-map,
.leaflet-container{
  box-sizing:border-box!important;
  max-width:100%!important;
}

@media(max-width:760px){
  .back-ribbon{
    top:102px!important;
  }
  body:has(.back-ribbon) main .hero:first-child .display{
    font-size:clamp(2.35rem,13vw,4.55rem)!important;
  }
  .home-page .choice-grid.product-grid-six .choice-card h2,
.home-page .choice-grid.product-grid-six .choice-card h3,
.localized-page .choice-strip.product-showcase .choice-card h2,
.localized-page .choice-strip.product-showcase .choice-card h3{
    font-size:clamp(2rem,10vw,3rem)!important;
    line-height:.96!important;
    text-align:left!important;
  }
  .home-page .choice-grid.product-grid-six .choice-card .pill,
.localized-page .choice-strip.product-showcase .choice-card .pill,
.localized-page #details .choice-grid.product-grid-six .choice-card .pill,
.card-body .pill,
.hero-meta .pill{
    max-width:calc(100% - 16px)!important;
    white-space:normal!important;
  }
  .product-conversion.section,
.satava-rental-section.section,
.section:has(.aava-booking-widget){
    padding-left:8px!important;
    padding-right:8px!important;
  }
  .booking-card:has(.aava-booking-widget),
.booking-card.has-live-booking-widget,
.product-conversion .booking-card:has(.booking-widget-shell),
.hidden-gems-booking,
.self-guided-booking-main,
#booking-widget,
#self-guided-booking,
#rental .aava-booking-widget{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    border-radius:18px!important;
    padding:8px!important;
    overflow:visible!important;
  }
  .aava-booking-widget,
.booking-widget-shell,
.booking-widget-shell--active{
    padding:6px!important;
    overflow:visible!important;
  }
  .aava-booking-widget__embed,
.aava-booking-widget__embed--johku,
.aava-booking-widget__embed .bokunWidget,
.aava-booking-widget__embed johku-widget,
.bokunWidget,
johku-widget{
    width:100%!important;
    min-height:max(740px,86vh)!important;
    border-radius:12px!important;
    overflow-x:auto!important;
    overflow-y:visible!important;
  }
  .satava-rental-section .aava-booking-widget__embed--johku,
#rental .aava-booking-widget__embed--johku,
.self-guided-page .aava-booking-widget__embed--johku{
    min-height:max(780px,88vh)!important;
  }
  .map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    border-radius:20px!important;
    overflow:hidden!important;
  }
  .leaflet-map,
.datahub-map,
.leaflet-container{
    width:100%!important;
    min-height:430px!important;
    height:min(72vh,560px)!important;
    border-radius:20px!important;
  }
  .leaflet-control-container{
    position:absolute!important;
    inset:0!important;
    pointer-events:none!important;
  }
  .leaflet-control{
    pointer-events:auto!important;
  }
  .map-caption,
.leaflet-map-caption{
    display:none!important;
  }
}


/* Stage 107 emergency display repair: prevent decorative layers from blocking clicks and ensure SVG/menu icon sizing. */
.nav-home-icon img{display:block;width:32px;height:32px;object-fit:contain}
.hero::after,
.choice-card::before,
.choice-card::after,
.menu-card::before,
.card-media::before{pointer-events:none!important}
.voyage-menu:not(.is-open),
.external-site-overlay:not(.is-open),
.aava-external-overlay:not(.is-open),
.contact-overlay:not(.is-open),
.aava-contact-modal:not(.is-open),
.aava-booking-modal:not(.is-open),
.gallery-lightbox:not(.is-open){visibility:hidden!important;pointer-events:none!important}
.voyage-menu.is-open,
.voyage-menu.is-open *,
.aava-booking-widget,
.aava-booking-widget *,
johku-widget,
.bokunWidget{pointer-events:auto!important}





/* Stage 115 responsive rules remain focused on interaction and available width. */
.map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{box-sizing:border-box;max-width:100%;}
.aava-booking-widget,
.booking-widget-shell,
johku-widget,
.bokunWidget{box-sizing:border-box;max-width:100%;pointer-events:auto;}
@media(max-width:760px){
  .map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{width:calc(100vw - 28px);margin-inline:calc(50% - 50vw + 14px);overflow:hidden;border-radius:24px;}
  .leaflet-map,
.datahub-map,
.leaflet-container{width:100%;max-width:100%;min-width:0;}
  .booking-card:has(.aava-booking-widget),
.booking-card.has-live-booking-widget,
.self-guided-booking-main,
#booking-widget,
#self-guided-booking,
#rental .aava-booking-widget{width:calc(100vw - 20px);max-width:calc(100vw - 20px);margin-inline:calc(50% - 50vw + 10px);padding:10px;}
  .aava-booking-widget,
.booking-widget-shell,
.aava-booking-widget__embed,
.bokunWidget,
johku-widget{width:100%;max-width:100%;min-width:0;overflow:visible;}
}


/* Stage 115 responsive rules remain focused on interaction and available width. */
.map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{box-sizing:border-box;max-width:100%;}
.aava-booking-widget,
.booking-widget-shell,
johku-widget,
.bokunWidget{box-sizing:border-box;max-width:100%;pointer-events:auto;}
@media(max-width:760px){
  .map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{width:calc(100vw - 28px);margin-inline:calc(50% - 50vw + 14px);overflow:hidden;border-radius:24px;}
  .leaflet-map,
.datahub-map,
.leaflet-container{width:100%;max-width:100%;min-width:0;}
  .booking-card:has(.aava-booking-widget),
.booking-card.has-live-booking-widget,
.self-guided-booking-main,
#booking-widget,
#self-guided-booking,
#rental .aava-booking-widget{width:calc(100vw - 20px);max-width:calc(100vw - 20px);margin-inline:calc(50% - 50vw + 10px);padding:10px;}
  .aava-booking-widget,
.booking-widget-shell,
.aava-booking-widget__embed,
.bokunWidget,
johku-widget{width:100%;max-width:100%;min-width:0;overflow:visible;}
}


/* Stage 115 responsive rules remain focused on interaction and available width. */
.map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{box-sizing:border-box;max-width:100%;}
.aava-booking-widget,
.booking-widget-shell,
johku-widget,
.bokunWidget{box-sizing:border-box;max-width:100%;pointer-events:auto;}
@media(max-width:760px){
  .map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{width:calc(100vw - 28px);margin-inline:calc(50% - 50vw + 14px);overflow:hidden;border-radius:24px;}
  .leaflet-map,
.datahub-map,
.leaflet-container{width:100%;max-width:100%;min-width:0;}
  .booking-card:has(.aava-booking-widget),
.booking-card.has-live-booking-widget,
.self-guided-booking-main,
#booking-widget,
#self-guided-booking,
#rental .aava-booking-widget{width:calc(100vw - 20px);max-width:calc(100vw - 20px);margin-inline:calc(50% - 50vw + 10px);padding:10px;}
  .aava-booking-widget,
.booking-widget-shell,
.aava-booking-widget__embed,
.bokunWidget,
johku-widget{width:100%;max-width:100%;min-width:0;overflow:visible;}
}


/* Stage 115 responsive rules remain focused on interaction and available width. */
.map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{box-sizing:border-box;max-width:100%;}
.aava-booking-widget,
.booking-widget-shell,
johku-widget,
.bokunWidget{box-sizing:border-box;max-width:100%;pointer-events:auto;}
@media(max-width:760px){
  .map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{width:calc(100vw - 28px);margin-inline:calc(50% - 50vw + 14px);overflow:hidden;border-radius:24px;}
  .leaflet-map,
.datahub-map,
.leaflet-container{width:100%;max-width:100%;min-width:0;}
  .booking-card:has(.aava-booking-widget),
.booking-card.has-live-booking-widget,
.self-guided-booking-main,
#booking-widget,
#self-guided-booking,
#rental .aava-booking-widget{width:calc(100vw - 20px);max-width:calc(100vw - 20px);margin-inline:calc(50% - 50vw + 10px);padding:10px;}
  .aava-booking-widget,
.booking-widget-shell,
.aava-booking-widget__embed,
.bokunWidget,
johku-widget{width:100%;max-width:100%;min-width:0;overflow:visible;}
}


/* Stage 115 responsive rules remain focused on interaction and available width. */
.map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{box-sizing:border-box;max-width:100%;}
.aava-booking-widget,
.booking-widget-shell,
johku-widget,
.bokunWidget{box-sizing:border-box;max-width:100%;pointer-events:auto;}
@media(max-width:760px){
  .map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{width:calc(100vw - 28px);margin-inline:calc(50% - 50vw + 14px);overflow:hidden;border-radius:24px;}
  .leaflet-map,
.datahub-map,
.leaflet-container{width:100%;max-width:100%;min-width:0;}
  .booking-card:has(.aava-booking-widget),
.booking-card.has-live-booking-widget,
.self-guided-booking-main,
#booking-widget,
#self-guided-booking,
#rental .aava-booking-widget{width:calc(100vw - 20px);max-width:calc(100vw - 20px);margin-inline:calc(50% - 50vw + 10px);padding:10px;}
  .aava-booking-widget,
.booking-widget-shell,
.aava-booking-widget__embed,
.bokunWidget,
johku-widget{width:100%;max-width:100%;min-width:0;overflow:visible;}
}


/* Stage 115 responsive rules remain focused on interaction and available width. */
.map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{box-sizing:border-box;max-width:100%;}
.aava-booking-widget,
.booking-widget-shell,
johku-widget,
.bokunWidget{box-sizing:border-box;max-width:100%;pointer-events:auto;}
@media(max-width:760px){
  .map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{width:calc(100vw - 28px);margin-inline:calc(50% - 50vw + 14px);overflow:hidden;border-radius:24px;}
  .leaflet-map,
.datahub-map,
.leaflet-container{width:100%;max-width:100%;min-width:0;}
  .booking-card:has(.aava-booking-widget),
.booking-card.has-live-booking-widget,
.self-guided-booking-main,
#booking-widget,
#self-guided-booking,
#rental .aava-booking-widget{width:calc(100vw - 20px);max-width:calc(100vw - 20px);margin-inline:calc(50% - 50vw + 10px);padding:10px;}
  .aava-booking-widget,
.booking-widget-shell,
.aava-booking-widget__embed,
.bokunWidget,
johku-widget{width:100%;max-width:100%;min-width:0;overflow:visible;}
}


/* Stage 115 responsive rules remain focused on interaction and available width. */
.map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{box-sizing:border-box;max-width:100%;}
.aava-booking-widget,
.booking-widget-shell,
johku-widget,
.bokunWidget{box-sizing:border-box;max-width:100%;pointer-events:auto;}
@media(max-width:760px){
  .map-shell,
.leaflet-shell,
.leaflet-map-shell,
.datahub-map-shell,
.orientation-map,
.map-card{width:calc(100vw - 28px);margin-inline:calc(50% - 50vw + 14px);overflow:hidden;border-radius:24px;}
  .leaflet-map,
.datahub-map,
.leaflet-container{width:100%;max-width:100%;min-width:0;}
  .booking-card:has(.aava-booking-widget),
.booking-card.has-live-booking-widget,
.self-guided-booking-main,
#booking-widget,
#self-guided-booking,
#rental .aava-booking-widget{width:calc(100vw - 20px);max-width:calc(100vw - 20px);margin-inline:calc(50% - 50vw + 10px);padding:10px;}
  .aava-booking-widget,
.booking-widget-shell,
.aava-booking-widget__embed,
.bokunWidget,
johku-widget{width:100%;max-width:100%;min-width:0;overflow:visible;}
}


/* Stage 115 responsive rules remain focused on interaction and available width. */
.map-shell,.leaflet-shell,.leaflet-map-shell,.datahub-map-shell,.orientation-map,.map-card{box-sizing:border-box;max-width:100%;}
.aava-booking-widget,.booking-widget-shell,johku-widget,.bokunWidget{box-sizing:border-box;max-width:100%;pointer-events:auto;}
@media(max-width:760px){
  .map-shell,.leaflet-shell,.leaflet-map-shell,.datahub-map-shell,.orientation-map,.map-card{width:calc(100vw - 28px);margin-inline:calc(50% - 50vw + 14px);overflow:hidden;border-radius:24px;}
  .leaflet-map,.datahub-map,.leaflet-container{width:100%;max-width:100%;min-width:0;}
  .booking-card:has(.aava-booking-widget),.booking-card.has-live-booking-widget,.self-guided-booking-main,#booking-widget,#self-guided-booking,#rental .aava-booking-widget{width:calc(100vw - 20px);max-width:calc(100vw - 20px);margin-inline:calc(50% - 50vw + 10px);padding:10px;}
  .aava-booking-widget,.booking-widget-shell,.aava-booking-widget__embed,.bokunWidget,johku-widget{width:100%;max-width:100%;min-width:0;overflow:visible;}
}

/* Stage 120: the back control floats over the first hero instead of
   creating an empty band above the hero image. */
body:not(.private-page) > .aw-nav{
  position:fixed!important;
}
body:not(.private-page) > .back-ribbon{
  position:absolute!important;
  top:clamp(92px,8vw,122px)!important;
  left:var(--gutter,28px)!important;
  margin:0!important;
  z-index:1001!important;
}
body:not(.private-page) > main{
  margin-top:0!important;
  padding-top:0!important;
}
body:not(.private-page) > main > .hero:first-child,
body:not(.private-page) > .back-ribbon + main > .hero:first-child{
  margin-top:0!important;
  top:0!important;
  min-height:100svh!important;
}
@media(max-width:760px){
  body:not(.private-page) > .back-ribbon{
    top:82px!important;
    left:12px!important;
    max-width:calc(100vw - 24px)!important;
    margin:0!important;
  }
}

/* Stage 143: keep the self-guided Johku widget compact after this responsive
   stylesheet's broad mobile booking-widget rules have run. */
#self-guided-johku-widget,
#self-guided-johku-widget .aava-booking-widget,
#self-guided-johku-widget .aava-booking-widget__embed,
#self-guided-johku-widget .aava-booking-widget__embed--johku,
#self-guided-johku-widget johku-widget{
  min-height:0!important;
  height:auto!important;
  max-width:100%!important;
  contain:none!important;
  overflow:visible!important;
}
#self-guided-johku-widget .aava-booking-widget__embed--johku{
  padding:0!important;
  background:#fff!important;
  border-radius:22px!important;
}
#self-guided-johku-widget johku-widget{
  display:block!important;
  width:100%!important;
}
#self-guided-johku-widget johku-widget[data-booking-state="loading"]{
  min-height:320px!important;
}
@media(max-width:760px){
  #self-guided-johku-widget,
  #self-guided-johku-widget .aava-booking-widget,
  #self-guided-johku-widget .aava-booking-widget__embed,
  #self-guided-johku-widget .aava-booking-widget__embed--johku,
  #self-guided-johku-widget johku-widget{
    min-height:0!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
  }
  #self-guided-johku-widget johku-widget[data-booking-state="loading"]{
    min-height:300px!important;
  }
}
