/* Homepage mobile layout. Desktop chapters retain their existing composition. */
.home-menu {
    position: fixed; inset: 0 0 0 auto; margin: 0; width: min(390px, calc(100% - 24px));
    height: 100dvh; max-height: 100dvh; max-width: none; padding: 0; border: 0;
    background: #f7f5f0; color: #153f46; overflow: auto; overscroll-behavior: contain;
    font-family: 'Poppins', sans-serif; box-shadow: -12px 0 60px #07252b30;
}
.home-menu::backdrop { background: #08282db3; backdrop-filter: blur(3px); }
.home-menu[open] { animation: home-menu-enter .24s ease-out; }
.home-menu__top { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: max(16px, env(safe-area-inset-top)) 22px 16px; background: #fff; border-bottom: 1px solid #dfe3db; }
.home-menu__top img { display: block; width: 166px; height: auto; }
.home-menu__close { flex-shrink: 0; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #d7ded8; border-radius: 50%; background: transparent; color: #153f46; font: 30px/1 sans-serif; cursor: pointer; }
.home-menu__body { padding: 24px 24px max(24px, env(safe-area-inset-bottom)); }
.home-menu .home-menu__title { margin: 0 0 18px; color: #7d693e; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.home-menu a { color: #153f46; text-decoration: none; }
.home-menu summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 56px; padding: 12px 0; list-style: none; cursor: pointer; font-size: 17px; font-weight: 600; line-height: 1.45; }
.home-menu summary::-webkit-details-marker { display: none; }
.home-menu summary::after { content: ''; flex: 0 0 8px; height: 8px; border-right: 1.5px solid; border-bottom: 1.5px solid; transform: rotate(45deg); transition: transform .2s; margin: -4px 4px 0 0; }
.home-menu details[open] > summary::after { transform: rotate(225deg); margin-top: 4px; }
.home-menu__group { border-bottom: 1px solid #d7ded8; }
.home-menu__sub { padding: 0 0 14px 14px; border-left: 2px solid #d6a743; margin: 0 0 16px; }
.home-menu__sub a { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; padding: 10px 0; font-size: 14px; line-height: 1.55; }
.home-menu .home-menu__all { color: #766038; font-weight: 500; }
.home-menu__category > summary { min-height: 46px; font-size: 14px; font-weight: 500; }
.home-menu__destinations { padding: 0 0 8px 12px; }
.home-menu__destinations a { color: #53686b; }
.home-menu__links { display: grid; grid-template-columns: 1fr 1fr; column-gap: 18px; padding: 18px 0; }
.home-menu__links a { display: flex; align-items: center; min-height: 44px; padding: 8px 0; font-size: 14px; font-weight: 500; }
.home-menu .home-menu__plan { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 52px; padding: 14px 20px; background: #153f46; color: white; border-radius: 28px; font-size: 15px; font-weight: 500; }
.home-menu__plan span { font-size: 22px; }
.home-menu__languages { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px; margin-top: 22px; }
.home-menu__languages a { display: grid; place-items: center; min-height: 44px; padding: 8px; font-size: 13px; color: #657579; border-bottom: 2px solid transparent; }
.home-menu__languages a[aria-current] { color: #153f46; border-color: #b18a43; font-weight: 600; }
.home-menu a:focus-visible, .home-menu button:focus-visible, .home-menu summary:focus-visible { outline: 2px solid #a67a27; outline-offset: 3px; }
.home-menu-open .fab-dock { visibility: hidden; }
@keyframes home-menu-enter { from { transform: translateX(100%); opacity: .5; } to { transform: none; opacity: 1; } }

@media (max-width: 991.98px) {
    body.hero-cinematic #header { position: sticky; top: 0; z-index: 24; }
    body.hero-cinematic #header > #container > .container { width: 100%; max-width: none; padding: 0 22px; }
    body.hero-cinematic .header-row { min-height: 76px; }
    body.hero-cinematic #logo { width: 100%; margin: 0; justify-content: space-between; }
    body.hero-cinematic #logo img { width: 176px; height: auto; }
    body.hero-cinematic #logo .navbar { background: transparent !important; margin-left: auto; }
    body.hero-cinematic .primary-menu { display: none; }
    body.hero-cinematic .navbar-toggler { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border-radius: 12px; background: #153f46; }
    body.hero-cinematic .navbar-toggler .togglers { color: #fff; font-size: 20px; }
    body.hero-cinematic .navbar-toggler:focus-visible { outline: 3px solid #b18a43; outline-offset: 3px; }
    body.hero-cinematic #sidebarOnDown { display: none !important; }
    body.hero-cinematic .hero-slider .swiper-slide { min-height: 0 !important; }
    body.hero-cinematic [id] { scroll-margin-top: 92px; }
    body.hero-cinematic .fab-dock { width: 52px; right: 14px; bottom: max(14px, env(safe-area-inset-bottom)); }
    body.hero-cinematic .fab-dock__ta, body.hero-cinematic .fab-dock__wa-copy { display: none; }
    body.hero-cinematic .fab-dock__wa { width: 52px; height: 52px; min-height: 52px; padding: 0; justify-content: center; border: 2px solid #fff; border-radius: 50%; background: #128c7e; }
    body.hero-cinematic .fab-dock__wa-icon { background: none; }
    body.hero-cinematic .fab-dock__wa-icon svg { width: 25px; height: 25px; }
}
@media (max-width: 767.98px) {
    body.hero-cinematic .hero-slider { height: clamp(480px, calc(100svh - var(--hero-chrome, 76px) - 28px), 640px); min-height: 0; }
    .hero-slider .hero-caption { left: 22px; right: 22px; top: auto; bottom: 130px; max-width: none; }
    .hero-slider .hero-eyebrow { font-size: clamp(25px, 6.6vw, 31px); line-height: 1.2; margin-bottom: 10px; }
    .hero-slider h2.hero-title { font-size: clamp(34px, 9.5vw, 44px); line-height: 1.08; margin-bottom: 12px; }
    .hero-slider .hero-kicker { max-width: 28em; margin-bottom: 20px; font-size: 16px; line-height: 1.5; padding: 0; }
    .hero-slider .swiper-slide::after { background: linear-gradient(180deg, #09262c0d 15%, #09262c1a 32%, #09262c80 68%, #09262c55 100%); }
    .hero-slider .hero-rail { top: 18px; left: 20px; right: auto; width: 138px; }
    .hero-slider .hero-ta { padding: 10px 12px; gap: 6px; border-radius: 12px; box-shadow: 0 4px 18px #102a3020; }
    .hero-slider .hero-ta__lockup { width: 112px; height: 22px; }
    .hero-slider .hero-ta__score b { font-size: 20px; }
    .hero-slider .hero-ta small { font-size: 11px; }
    .hero-slider .hero-listed { top: 20px; right: 18px; bottom: auto; }
    .hero-slider .hero-listed__row { flex-direction: row; gap: 8px; }
    .hero-slider .hero-listed__badge, .hero-slider .hero-listed__seal { width: 46px; }
    .hero-slider .hero-listed__seal { height: 46px; }
    .hero-slider .hero-listed__name { display: none; }
    .hero-slider .hero-location { left: 22px; right: 22px; bottom: 83px; max-width: none; font-size: 12px; line-height: 1.5; }
    .hero-slider .swiper-pagination { bottom: 38px !important; display: flex; align-items: center; }
    .hero-slider .swiper-pagination-bullet { position: relative; width: 28px; height: 28px; margin: 0 2px !important; background: transparent !important; box-shadow: none; transform: none; }
    .hero-slider .swiper-pagination-bullet::after { content: ''; position: absolute; inset: 10px; border-radius: 50%; background: #ffffff80; }
    .hero-slider .swiper-pagination-bullet-active::after { background: #e8bd63; }
    body.hero-cinematic .memories { padding: 8px 0 48px; }
    body.hero-cinematic .memories__frame { margin: 0 12px; padding: 26px 0 28px; border-radius: 20px; }
    .memories__frame > .container { padding: 0; }
    .memories__compass { display: none; }
    .memories__head { gap: 20px; }
    body.hero-cinematic .memories__ctas { width: 100%; }
    body.hero-cinematic .memories__ctas .hero-cta { flex: 1; min-height: 44px; padding: 10px 14px; letter-spacing: .06em; }
    .memories-polaroid, .memories-polaroid:nth-child(n) { flex-basis: 76%; }
    .memories-gallery { scroll-padding-inline: 20px; }
    .memories-route__card, .memories-route__track { flex: 0 0 auto; }
    .hl-tour-rail { scroll-padding-inline: 2px; }
    .hl-tour__title { flex-wrap: wrap; gap: 8px; }
    .hl-tour__title h3 { flex-basis: 100%; }
    .hl-tour__price { max-width: none; }
    .hl-rail-controls button { width: 46px; height: 46px; }
    .home-intro .home-intro__cta, .home-lower .hl-contact .hl-button { width: 100%; }
    .hl-reviews .reviews-jotform { width: calc(100% - 44px); }
    .hl-reviews .jf-reviews-card-content { padding: 20px; }
    .home-footer nav a, .home-footer__contact > a { min-height: 44px; margin-bottom: 0; padding-block: 10px; }
    .home-footer__social a { width: 44px; height: 44px; }
    body.hero-cinematic footer.home-footer { padding-bottom: 84px; }
}
@media (max-width: 600px) {
    .hl-services__grid { grid-template-columns: 1fr; }
    .home-lower .hl-service { padding: 20px 0; }
    .hl-service > i { float: left; width: 26px; margin: 3px 14px 0 0; font-size: 18px; }
    .hl-service h3, .home-lower .hl-service p { margin-left: 40px !important; }
    .home-lower .hl-service h3 { font-size: 18px; }
    .home-lower .hl-service p { font-size: 16px; max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
    .home-menu[open] { animation: none; }
    .home-menu summary::after { transition: none; }
}
@media (max-width: 991.98px) and (max-height: 500px) and (orientation: landscape) {
    body.hero-cinematic .header-row { min-height: 64px; }
    body.hero-cinematic #logo img { width: 150px; }
    body.hero-cinematic .hero-slider { height: max(320px, calc(100svh - var(--hero-chrome, 64px))); min-height: 0; }
    .hero-slider .hero-caption { left: 22px; right: 210px; top: auto; bottom: 94px; max-width: none; }
    .hero-slider .hero-eyebrow { font-size: 24px; margin-bottom: 6px; }
    .hero-slider h2.hero-title { font-size: 32px; line-height: 1.1; margin-bottom: 8px; }
    .hero-slider .hero-kicker { font-size: 14px; line-height: 1.4; margin-bottom: 14px; }
    .hero-slider .hero-body, .hero-slider .hero-listed { display: none; }
    .hero-slider .hero-rail { left: auto; right: 18px; top: 14px; width: 148px; }
    .hero-slider .hero-location { bottom: 57px; font-size: 12px; }
    .hero-slider .swiper-pagination { bottom: 32px !important; }
}
