/* TULIP S1 - Event/Activity detail gallery V49
   Single-column fixed viewer + compact thumbnails + smooth image switching. */

.tt-v48-album-detail .v48-event-collection{
    padding:48px 0 70px;
    background:linear-gradient(180deg,#f8faf9 0%,#f3f6f5 100%);
}

.tt-v48-album-detail .v48-gallery-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:28px;
    margin-bottom:24px;
}
.tt-v48-album-detail .v48-gallery-head__copy span{
    display:inline-block;
    margin-bottom:7px;
    color:#869991;
    font-size:11px;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.tt-v48-album-detail .v48-gallery-head__copy h2{
    margin:0;
    color:#17384a;
    font-size:clamp(34px,3.5vw,52px);
    line-height:1.05;
    letter-spacing:-.03em;
}
.tt-v48-album-detail .v48-gallery-head>p{
    max-width:440px;
    margin:0;
    color:#748992;
    font-size:15px;
    line-height:1.7;
    text-align:right;
}

/* One-column viewer: never changes size with portrait/landscape images. */
.tt-v48-album-detail .v48-gallery-viewer{
    display:block!important;
    margin-bottom:18px;
}
.tt-v48-album-detail .v48-gallery-viewer__stage{
    position:relative;
    box-sizing:border-box;
    width:100%;
    height:620px!important;
    min-height:620px!important;
    padding:14px;
    overflow:hidden;
    border:1px solid rgba(17,52,66,.10);
    border-radius:26px;
    background:#0c1b24;
    box-shadow:0 18px 44px rgba(11,39,52,.08);
}
.tt-v48-album-detail .v48-gallery-stage__button{
    display:block;
    width:100%;
    height:100%!important;
    min-height:0!important;
    padding:0;
    overflow:hidden;
    border:0;
    border-radius:19px;
    background:#0c1b24;
    cursor:zoom-in;
}
.tt-v48-album-detail .v48-gallery-stage__button img{
    display:block;
    width:100%;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center!important;
    background:#0c1b24;
    opacity:1;
    transform:scale(1);
    transition:opacity .26s ease,transform .34s cubic-bezier(.22,.61,.36,1);
    will-change:opacity,transform;
}
.tt-v48-album-detail .v48-gallery-stage__button img.is-switching{
    opacity:.18;
    transform:scale(.992);
}

.tt-v48-album-detail .v48-gallery-nav{
    position:absolute;
    top:50%;
    z-index:5;
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    transform:translateY(-50%);
    border:1px solid rgba(255,255,255,.20);
    border-radius:50%;
    background:rgba(7,27,38,.64);
    color:#fff;
    font-size:31px;
    line-height:1;
    cursor:pointer;
    backdrop-filter:blur(9px);
    transition:transform .2s ease,background .2s ease;
}
.tt-v48-album-detail .v48-gallery-nav:hover{
    background:rgba(7,27,38,.88);
}
.tt-v48-album-detail .v48-gallery-nav.is-prev{left:28px}
.tt-v48-album-detail .v48-gallery-nav.is-next{right:28px}

.tt-v48-album-detail .v48-gallery-stage__meta{
    position:absolute;
    z-index:4;
    left:30px;
    right:30px;
    bottom:28px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
    padding:15px 18px;
    border-radius:17px;
    background:rgba(6,24,35,.68);
    color:#fff;
    backdrop-filter:blur(10px);
}
.tt-v48-album-detail .v48-gallery-stage__meta strong{
    display:block;
    margin-bottom:3px;
    font-size:17px;
    font-weight:650;
    line-height:1.25;
}
.tt-v48-album-detail .v48-gallery-stage__meta p{
    margin:0;
    max-width:820px;
    overflow:hidden;
    color:rgba(255,255,255,.72);
    font-size:13px;
    line-height:1.55;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.tt-v48-album-detail .v48-gallery-stage__meta>span{
    flex:0 0 auto;
    padding:7px 11px;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    font-size:12px;
    font-weight:700;
}

/* Compact horizontal thumbnails, replacing the former right column. */
.tt-v48-album-detail .v48-gallery-viewer__rail{
    display:flex!important;
    flex-direction:row!important;
    gap:8px!important;
    width:100%;
    max-height:none!important;
    margin-top:10px;
    padding:9px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    border:1px solid rgba(17,52,66,.08);
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 26px rgba(11,39,52,.04);
    scrollbar-width:thin;
    scroll-behavior:smooth;
    scroll-snap-type:x proximity;
}
.tt-v48-album-detail .v48-gallery-thumb{
    position:relative;
    flex:0 0 96px!important;
    display:block!important;
    width:96px!important;
    height:70px!important;
    min-height:70px!important;
    padding:0!important;
    overflow:hidden;
    border:2px solid transparent!important;
    border-radius:12px!important;
    background:#eaf0ef!important;
    cursor:pointer;
    opacity:.72;
    scroll-snap-align:center;
    transform:none!important;
    transition:opacity .2s ease,border-color .2s ease,box-shadow .2s ease!important;
}
.tt-v48-album-detail .v48-gallery-thumb::before{display:none!important}
.tt-v48-album-detail .v48-gallery-thumb img{
    width:100%!important;
    height:100%!important;
    border-radius:10px!important;
    object-fit:cover!important;
    display:block;
}
.tt-v48-album-detail .v48-gallery-thumb>span{
    position:absolute;
    right:5px;
    bottom:5px;
    width:20px!important;
    height:20px!important;
    display:grid!important;
    place-items:center;
    border-radius:50%;
    background:rgba(5,26,38,.72)!important;
    color:#fff;
    font-size:10px!important;
    font-weight:700;
}
.tt-v48-album-detail .v48-gallery-thumb:hover,
.tt-v48-album-detail .v48-gallery-thumb.is-active{
    opacity:1;
    border-color:#bd965d!important;
    background:#fff!important;
    box-shadow:0 5px 14px rgba(13,47,61,.14)!important;
}

/* Smaller supporting gallery below the main viewer. */
.tt-v48-album-detail .v48-gallery-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:10px;
    margin-top:20px;
}
.tt-v48-album-detail .v48-grid-card,
.tt-v48-album-detail .v48-grid-card.is-featured{
    grid-column:auto!important;
    grid-row:auto!important;
    padding:0;
    overflow:hidden;
    border:1px solid rgba(17,52,66,.08);
    border-radius:14px;
    background:#fff;
    box-shadow:0 8px 20px rgba(12,42,54,.04);
    text-align:left;
    cursor:pointer;
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.tt-v48-album-detail .v48-grid-card:hover{
    transform:translateY(-2px);
    border-color:rgba(15,61,82,.18);
    box-shadow:0 12px 24px rgba(12,42,54,.08);
}
.tt-v48-album-detail .v48-grid-card img,
.tt-v48-album-detail .v48-grid-card.is-featured img{
    display:block;
    width:100%;
    aspect-ratio:4 / 3!important;
    object-fit:cover!important;
}
.tt-v48-album-detail .v48-grid-card span{
    display:block;
    padding:8px 10px 10px;
    color:#31505e;
    font-size:12px;
    font-weight:600;
}

/* Fixed professional lightbox frame. */
.tt-v48-album-detail #galleryLightbox.v49-lightbox.open{
    display:flex!important;
    align-items:center;
    justify-content:center;
    padding:24px 72px;
    background:rgba(3,13,20,.94);
    backdrop-filter:blur(8px);
}
.tt-v48-album-detail #galleryLightbox.v49-lightbox figure{
    width:min(1180px,calc(100vw - 180px))!important;
    height:min(760px,calc(100vh - 100px))!important;
    margin:0!important;
    display:grid;
    grid-template-rows:minmax(0,1fr) auto;
    gap:10px;
}
.tt-v48-album-detail #galleryLightbox.v49-lightbox figure>img{
    display:block;
    width:100%!important;
    height:100%!important;
    min-height:0;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center;
    border-radius:18px;
    background:#071720;
    opacity:1;
    transform:scale(1);
    transition:opacity .24s ease,transform .3s ease;
}
.tt-v48-album-detail #galleryLightbox.v49-lightbox figure>img.is-switching{
    opacity:.18;
    transform:scale(.994);
}
.tt-v48-album-detail #galleryLightbox.v49-lightbox figcaption{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    min-height:34px;
    color:#fff;
}
.tt-v48-album-detail #galleryLightbox.v49-lightbox figcaption span{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

@media(max-width:1100px){
    .tt-v48-album-detail .v48-gallery-viewer__stage{height:520px!important;min-height:520px!important}
    .tt-v48-album-detail .v48-gallery-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(max-width:900px){
    .tt-v48-album-detail .v48-gallery-head{display:block}
    .tt-v48-album-detail .v48-gallery-head>p{max-width:none;margin-top:10px;text-align:left}
    .tt-v48-album-detail .v48-gallery-viewer__stage{height:460px!important;min-height:460px!important}
    .tt-v48-album-detail .v48-gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
    .tt-v48-album-detail #galleryLightbox.v49-lightbox.open{padding:18px 54px}
    .tt-v48-album-detail #galleryLightbox.v49-lightbox figure{width:calc(100vw - 120px)!important;height:calc(100vh - 90px)!important}
}
@media(max-width:640px){
    .tt-v48-album-detail .v48-event-collection{padding:34px 0 48px}
    .tt-v48-album-detail .v48-gallery-head__copy h2{font-size:36px}
    .tt-v48-album-detail .v48-gallery-viewer__stage{height:340px!important;min-height:340px!important;padding:8px;border-radius:18px}
    .tt-v48-album-detail .v48-gallery-stage__button{border-radius:13px}
    .tt-v48-album-detail .v48-gallery-stage__meta{left:16px;right:16px;bottom:14px;padding:10px 12px;border-radius:13px}
    .tt-v48-album-detail .v48-gallery-stage__meta p{display:none}
    .tt-v48-album-detail .v48-gallery-stage__meta strong{font-size:14px}
    .tt-v48-album-detail .v48-gallery-nav{width:38px;height:38px;font-size:25px}
    .tt-v48-album-detail .v48-gallery-nav.is-prev{left:14px}
    .tt-v48-album-detail .v48-gallery-nav.is-next{right:14px}
    .tt-v48-album-detail .v48-gallery-thumb{flex-basis:74px!important;width:74px!important;height:56px!important;min-height:56px!important}
    .tt-v48-album-detail .v48-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
    .tt-v48-album-detail .v48-grid-card span{padding:7px 8px 8px;font-size:11px}
    .tt-v48-album-detail #galleryLightbox.v49-lightbox.open{padding:12px 44px}
    .tt-v48-album-detail #galleryLightbox.v49-lightbox figure{width:calc(100vw - 88px)!important;height:calc(100vh - 70px)!important}
}

/* V50: remove duplicate thumbnail rail. The compact gallery below is now the
   only secondary navigation for the fixed viewer. */
.tt-v48-album-detail .v48-gallery-viewer__rail{display:none!important}
.tt-v48-album-detail .v48-gallery-viewer{margin-bottom:16px!important}
.tt-v48-album-detail .v48-gallery-grid{
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:9px;
    margin-top:14px;
}
.tt-v48-album-detail .v48-grid-card{
    border-radius:12px;
    box-shadow:0 6px 15px rgba(12,42,54,.035);
}
.tt-v48-album-detail .v48-grid-card img{
    aspect-ratio:4 / 3!important;
}
.tt-v48-album-detail .v48-grid-card span{
    padding:7px 9px 9px;
    font-size:11px;
    font-weight:600;
}
.tt-v48-album-detail .v48-grid-card.is-active{
    border-color:#bd965d!important;
    box-shadow:0 0 0 2px rgba(189,150,93,.14),0 9px 18px rgba(12,42,54,.06);
}
@media(max-width:1200px){.tt-v48-album-detail .v48-gallery-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:992px){.tt-v48-album-detail .v48-gallery-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:760px){.tt-v48-album-detail .v48-gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}}
@media(max-width:520px){.tt-v48-album-detail .v48-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
