/* Stage 104 responsive 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;
}
.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(152px,16vh,220px)!important;
}
.back-ribbon + main .hero::before,
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(138px,31vw,172px)!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:hidden!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:auto!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;
  }
}
