/* Shared detail-page layer. Module-specific data and booking rules stay in their views. */
.site-detail-hero--travel {
    border-color:#dbe7ef;
    background:#fff;
    box-shadow:0 16px 40px rgba(18,49,77,.075);
}

.site-detail-hero--travel.site-detail-hero__grid,
.site-detail-hero--travel .site-detail-hero__grid {
    grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);
    gap:clamp(18px,2.2vw,30px);
    align-items:start;
}

.site-detail-hero--travel .site-detail-hero__media,
.site-detail-hero--travel .site-detail-hero__summary,
.site-detail-hero--travel .site-detail-hero__booking {
    min-width:0;
}

.site-detail-hero--travel .site-detail-hero__title {
    margin-bottom:14px;
    font-size:clamp(25px,2.25vw,34px);
    line-height:1.2;
    letter-spacing:-.015em;
    overflow-wrap:anywhere;
}

.site-detail-hero--travel .site-detail-hero__gallery-main {
    max-width:100%;
}

.site-detail-hero--travel .site-detail-hero__actions {
    gap:10px;
}

.site-detail-hero--travel .site-detail-hero__action {
    min-height:48px;
}

.site-detail-hero--travel .site-detail-hero__related {
    margin-top:24px;
}

.site-editorial-hero {
    min-width:0;
}

.site-editorial-hero .site-content-title,
.site-editorial-hero .news-detail__title {
    line-height:1.22;
    overflow-wrap:anywhere;
}

.site-media-page--gallery-detail .site-media-grid--feature > li:first-child {
    grid-column:span 2;
    grid-row:span 2;
}

.site-media-page--gallery-detail .site-media-grid--feature > li:first-child .site-media-card__link {
    aspect-ratio:16 / 10;
    height:100%;
}

.site-media-page--gallery-detail .site-media-grid--feature > li:first-child .site-media-card {
    height:100%;
    display:flex;
    flex-direction:column;
}

.site-media-page--gallery-detail .site-media-grid--feature > li:first-child .site-media-card__link {
    flex:1 1 auto;
}

.site-media-video--poster {
    position:relative;
    overflow:hidden;
    aspect-ratio:16 / 9;
    border-radius:24px;
    background:#102a42;
    box-shadow:0 14px 32px rgba(16,42,66,.18);
}

.site-media-video--poster .site-media-video__play,
.site-media-video--poster iframe {
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    border:0;
    border-radius:inherit;
}

.site-media-video--poster .site-media-video__play {
    padding:0;
    cursor:pointer;
    background:#102a42;
    color:#fff;
}

.site-media-video__play img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:.88;
}

.site-media-video__play::after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(6,22,39,.06),rgba(6,22,39,.38));
    pointer-events:none;
}

.site-media-video__play-icon {
    position:absolute;
    z-index:1;
    top:50%;
    left:50%;
    display:grid;
    place-items:center;
    width:72px;
    height:72px;
    border:2px solid rgba(255,255,255,.9);
    border-radius:50%;
    background:rgba(9,49,79,.87);
    color:#fff;
    font-size:25px;
    transform:translate(-50%,-50%);
    box-shadow:0 8px 24px rgba(0,0,0,.25);
}

.site-media-video__play:focus-visible {
    outline:3px solid #1399d0;
    outline-offset:-5px;
}

.site-media-video__empty {
    display:grid;
    place-items:center;
    height:100%;
    padding:24px;
    color:#fff;
    text-align:center;
}

.site-media-card__link--video {
    position:relative;
}

.site-media-card__video-icon {
    position:absolute;
    top:50%;
    left:50%;
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    border:1px solid rgba(255,255,255,.9);
    border-radius:50%;
    background:rgba(9,49,79,.83);
    color:#fff;
    transform:translate(-50%,-50%);
    box-shadow:0 5px 15px rgba(0,0,0,.2);
    pointer-events:none;
}

@media (max-width:1199px) {
    .site-detail-hero--travel.site-detail-hero__grid,
    .site-detail-hero--travel .site-detail-hero__grid {
        grid-template-columns:minmax(0,1fr);
    }
}

@media (max-width:767px) {
    .site-detail-hero--travel {
        padding:14px;
        border-radius:20px;
    }

    .site-detail-hero--travel.site-detail-hero__grid,
    .site-detail-hero--travel .site-detail-hero__grid {
        gap:18px;
    }

    .site-detail-hero--travel .site-detail-hero__title {
        font-size:clamp(23px,6vw,28px);
    }

    .site-detail-hero--travel .site-detail-hero__actions {
        grid-template-columns:minmax(0,1fr);
    }

    .site-detail-hero--travel .site-detail-hero__action {
        min-height:48px;
    }

    .site-media-page--gallery-detail .site-media-grid--feature {
        grid-template-columns:minmax(0,1fr);
    }

    .site-media-page--gallery-detail .site-media-grid--feature > li {
        min-width:0;
    }

    .site-media-page--gallery-detail .site-media-grid--feature > li:first-child {
        grid-column:auto;
        grid-row:auto;
    }

    .site-media-page--gallery-detail .site-media-grid--feature > li:first-child .site-media-card {
        height:auto;
    }

    .site-media-page--gallery-detail .site-media-grid--feature > li:first-child .site-media-card__link {
        flex:none;
        width:100%;
        height:auto;
    }

    .site-media-video__play-icon {
        width:60px;
        height:60px;
        font-size:21px;
    }
}

@media (max-width:575px) {
    .site-sidebar__stack,
    .site-sidebar__stack > .site-sidebar__section,
    .site-sidebar__stack .site-sidebar__list,
    .site-sidebar__stack .site-sidebar__item {
        min-width:0;
        max-width:100%;
    }

    .site-sidebar__stack > .site-sidebar__section,
    .site-sidebar__stack .site-sidebar__list,
    .site-sidebar__stack .site-sidebar__item {
        width:100%;
        box-sizing:border-box;
    }

    .site-sidebar__stack .site-sidebar__body,
    .site-sidebar__stack .site-sidebar__price,
    .site-sidebar__stack .site-price__main {
        min-width:0;
        max-width:100%;
    }

    .site-sidebar__stack .site-price__main {
        flex-wrap:wrap;
        white-space:normal;
    }

    .site-sidebar__stack .site-price__unit {
        white-space:normal;
    }
}

/* Secondary hero actions stay visually quieter than the main booking action. */
body:not(.admin-layout) .site-detail-hero--travel .site-detail-hero__utilities {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    width:100%;
    margin-top:12px;
}

body:not(.admin-layout) .site-detail-hero--travel .site-detail-hero__utilities .site-detail-hero__utility {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    flex:0 1 auto;
    width:auto;
    max-width:100%;
    height:auto;
    min-height:42px;
    margin:0;
    padding:8px 13px;
    border:1px solid #cfe1ef;
    border-radius:999px;
    background:#f5faff;
    box-shadow:none;
    color:#175276;
    font-family:inherit;
    font-size:13px;
    font-weight:700;
    line-height:1.3;
    text-align:center;
    text-decoration:none;
    white-space:normal;
    cursor:pointer;
    transition:background .18s ease,border-color .18s ease,color .18s ease;
}

body:not(.admin-layout) .site-detail-hero--travel .site-detail-hero__utilities .site-detail-hero__utility:hover,
body:not(.admin-layout) .site-detail-hero--travel .site-detail-hero__utilities .site-detail-hero__utility:focus-visible {
    border-color:#176fa8;
    background:#e9f4fb;
    color:#0c5d8d;
    text-decoration:none;
}

body:not(.admin-layout) .site-detail-hero--travel .site-detail-hero__utilities .site-detail-hero__utility:focus-visible {
    outline:2px solid #176fa8;
    outline-offset:2px;
}

body:not(.admin-layout) .site-detail-hero--travel .site-detail-hero__utilities .sale-contact-booking--action {
    margin:0;
    padding:0;
    border:0;
    background:transparent;
}

/* Hotel-style gallery shared by Tour, Bus, Cruise, Ticket and Car detail heroes. */
.site-detail-gallery,
.site-detail-gallery__frame {
    min-width:0;
    max-width:100%;
}

.site-detail-gallery__frame {
    position:relative;
    display:block;
    overflow:hidden;
    padding:7px;
    border:1px solid #d8e8f4;
    border-radius:24px;
    background:#f4f9fc;
    box-shadow:0 18px 42px rgba(18,55,88,.11);
    box-sizing:border-box;
}

.site-detail-gallery__stage {
    position:relative;
    display:block;
    overflow:hidden;
    border-radius:17px;
    background:#e9f1f6;
    color:#fff;
}

.site-detail-gallery__stage::after {
    content:"";
    position:absolute;
    inset:14px;
    border:1px solid rgba(255,255,255,.8);
    border-radius:18px;
    pointer-events:none;
}

.site-detail-gallery__stage:focus-visible {
    outline:3px solid #1687b8;
    outline-offset:-3px;
}

.site-detail-gallery__stage .site-detail-gallery__image {
    display:block;
    width:100%;
    height:auto;
    max-height:460px;
    min-height:0;
    aspect-ratio:4 / 3;
    border-radius:17px;
    object-fit:cover;
}

.site-detail-gallery__count,
.site-detail-gallery__view,
.site-detail-gallery__fallback {
    position:absolute;
    z-index:2;
    display:inline-flex;
    align-items:center;
    gap:6px;
    max-width:calc(100% - 36px);
    padding:8px 13px;
    border-radius:999px;
    background:rgba(14,27,40,.76);
    color:#fff;
    font-size:12px;
    font-weight:700;
    line-height:1.3;
    text-decoration:none;
    box-shadow:0 5px 16px rgba(0,0,0,.13);
}

.site-detail-gallery__count { top:18px; left:18px; }
.site-detail-gallery__view { right:18px; bottom:18px; }
.site-detail-gallery__fallback { left:18px; bottom:18px; }

.site-detail-gallery__nav {
    position:absolute;
    top:50%;
    z-index:3;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    padding:0;
    border:1px solid rgba(255,255,255,.72);
    border-radius:50%;
    background:rgba(14,27,40,.7);
    color:#fff;
    font-size:24px;
    line-height:1;
    opacity:0;
    cursor:pointer;
    transform:translateY(-50%);
    transition:opacity .18s ease,background .18s ease;
}

.site-detail-gallery__nav--prev { left:18px; }
.site-detail-gallery__nav--next { right:18px; }
.site-detail-gallery:hover .site-detail-gallery__nav,
.site-detail-gallery:focus-within .site-detail-gallery__nav { opacity:1; }
.site-detail-gallery__nav:hover,
.site-detail-gallery__nav:focus-visible { background:#17324d; opacity:1; }
.site-detail-gallery__nav:focus-visible { outline:3px solid #8fd3f0; outline-offset:2px; }

.site-detail-gallery__thumbs-wrap {
    display:flex;
    align-items:center;
    width:100%;
    max-width:none;
    margin-top:12px;
    padding:10px 12px;
    overflow:hidden;
    border:1px solid #dceaf4;
    border-radius:20px;
    background:linear-gradient(180deg,rgba(247,251,254,.98),rgba(238,246,251,.9));
    box-shadow:0 10px 26px rgba(23,59,99,.07);
    box-sizing:border-box;
}

.site-detail-gallery__thumbs {
    display:flex;
    flex:1 1 auto;
    min-width:0;
    gap:8px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scrollbar-width:thin;
    scroll-snap-type:x proximity;
}

.site-detail-gallery__thumb {
    position:relative;
    flex:0 0 94px;
    overflow:hidden;
    width:94px;
    height:72px;
    aspect-ratio:auto;
    padding:3px;
    border:1px solid transparent;
    border-radius:12px !important;
    background:#fff;
    opacity:.75;
    box-shadow:0 5px 14px rgba(23,59,99,.08);
    scroll-snap-align:start;
    cursor:pointer;
    transition:opacity .2s ease,transform .2s ease,border-color .2s ease;
}

.site-detail-gallery__thumb:hover { opacity:1; transform:translateY(-2px); border-color:#8fc4df; }
.site-detail-gallery__thumb.is-active { opacity:1; border-color:#1687b8; box-shadow:0 0 0 3px rgba(22,135,184,.14),0 9px 20px rgba(23,59,99,.13); }
.site-detail-gallery__thumb.is-active::after { content:""; position:absolute; top:7px; right:7px; width:9px; height:9px; border:2px solid #fff; border-radius:50%; background:#1687b8; box-shadow:0 2px 7px rgba(13,61,91,.3); }
.site-detail-gallery__thumb:focus-visible { outline:3px solid rgba(22,135,184,.35); outline-offset:2px; }

.site-detail-gallery__thumb img {
    display:block;
    width:100%;
    height:100%;
    border-radius:9px !important;
    object-fit:cover;
    box-shadow:none !important;
}

.site-detail-gallery-lightbox {
    position:fixed;
    inset:0;
    z-index:2147483000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:56px 64px;
    background:rgba(5,18,30,.91);
}

.site-detail-gallery-lightbox.is-open { display:flex; }
.site-detail-gallery-lightbox [hidden] { display:none; }
.site-detail-gallery-lightbox__image { display:block; max-width:100%; max-height:calc(100vh - 112px); object-fit:contain; }
.site-detail-gallery-lightbox__close,
.site-detail-gallery-lightbox__prev,
.site-detail-gallery-lightbox__next {
    position:absolute;
    z-index:2;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    padding:0;
    border:1px solid rgba(255,255,255,.45);
    border-radius:50%;
    background:rgba(14,27,40,.7);
    color:#fff;
    font-size:25px;
    cursor:pointer;
}
.site-detail-gallery-lightbox__close { top:14px; right:14px; }
.site-detail-gallery-lightbox__prev { top:50%; left:12px; transform:translateY(-50%); }
.site-detail-gallery-lightbox__next { top:50%; right:12px; transform:translateY(-50%); }
.site-detail-gallery-lightbox__close:focus-visible,
.site-detail-gallery-lightbox__prev:focus-visible,
.site-detail-gallery-lightbox__next:focus-visible { outline:3px solid #8fd3f0; outline-offset:2px; }
.site-detail-gallery-lightbox__count { position:absolute; bottom:16px; left:50%; color:#fff; font-size:13px; font-weight:700; transform:translateX(-50%); }

@media (hover:none), (pointer:coarse) {
    .site-detail-gallery__nav { opacity:1; }
}

@media (max-width:767px) {
    .site-detail-gallery__frame { padding:6px; border-radius:20px; }
    .site-detail-gallery__stage,
    .site-detail-gallery__stage .site-detail-gallery__image { border-radius:15px; }
    .site-detail-gallery__stage .site-detail-gallery__image { max-height:none; aspect-ratio:4 / 3; }
    .site-detail-gallery__stage::after { inset:9px; border-radius:13px; }
    .site-detail-gallery__count { top:14px; left:14px; }
    .site-detail-gallery__view { right:14px; bottom:14px; }
    .site-detail-gallery__thumb { flex-basis:68px; width:68px; height:54px; border-radius:10px !important; }
    .site-detail-gallery__thumb img { border-radius:7px !important; }
    .site-detail-gallery__nav { width:34px; height:34px; font-size:20px; }
    .site-detail-gallery__nav--prev { left:12px; }
    .site-detail-gallery__nav--next { right:12px; }
    .site-detail-gallery-lightbox { padding:46px 12px; }
    .site-detail-gallery-lightbox__image { max-height:calc(100vh - 92px); }
}
