/* =========================================================
   SVATEBNÍ GALERIE
   ========================================================= */

body.gallery-page{
    background:#fffdf8;
}

.gallery-hero{
    position:relative;
    min-height:78vh;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
    background:#211d19;
}

.gallery-hero-image{
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    opacity:1;
    object-fit:cover;
    object-position:center 42%;
    transform:scale(1.025);
    animation:galleryHeroZoom 12s ease-out forwards;
}

.gallery-hero::after{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg, rgba(18,15,13,.18) 0%, rgba(18,15,13,.18) 35%, rgba(18,15,13,.76) 100%),
        linear-gradient(90deg, rgba(18,15,13,.28), transparent 62%);
}

.gallery-hero-content{
    position:relative;
    z-index:2;
    width:min(1280px, calc(100% - 80px));
    margin:0 auto;
    padding:190px 0 86px;
    color:#fff;
}

.gallery-eyebrow,
.gallery-section-eyebrow{
    display:block;
    margin-bottom:22px;
    font-size:.72rem;
    font-weight:500;
    letter-spacing:6px;
    text-transform:uppercase;
    color:#e7c983;
}

.gallery-hero h1{
    max-width:850px;
    font-family:'Cormorant Garamond',serif;
    font-weight:300;
    font-size:clamp(3.7rem, 7.2vw, 7rem);
    line-height:.88;
    letter-spacing:-2px;
}

.gallery-hero h1 em{
    display:block;
    font-weight:300;
    color:#eadcc6;
}

.gallery-hero p{
    max-width:600px;
    margin-top:28px;
    font-family:'Cormorant Garamond',serif;
    font-size:1.35rem;
    line-height:1.55;
    color:rgba(255,255,255,.82);
}

.gallery-scroll-note{
    position:absolute;
    right:0;
    bottom:88px;
    display:flex;
    align-items:center;
    gap:14px;
    font-size:.62rem;
    letter-spacing:4px;
    text-transform:uppercase;
    color:rgba(255,255,255,.65);
}

.gallery-scroll-note::before{
    content:"";
    width:70px;
    height:1px;
    background:rgba(255,255,255,.45);
}

@keyframes galleryHeroZoom{
    to{ transform:scale(1.09); }
}

.gallery-intro{
    padding:130px 30px 115px;
    background:#f7f2e9;
}

.gallery-intro-inner{
    width:min(1050px, 100%);
    margin:0 auto;
    display:grid;
    grid-template-columns:.72fr 1.28fr;
    gap:110px;
    align-items:start;
}

.gallery-intro-number{
    padding-top:10px;
    font-family:'Cormorant Garamond',serif;
    font-size:1rem;
    letter-spacing:4px;
    color:#a7823f;
}

.gallery-intro-copy h2,
.gallery-section-heading h2,
.gallery-film-copy h2{
    font-family:'Cormorant Garamond',serif;
    font-weight:300;
    line-height:1.04;
    color:#2b2520;
}

.gallery-intro-copy h2{
    max-width:760px;
    font-size:clamp(2.9rem, 5vw, 5rem);
}

.gallery-intro-copy h2 em,
.gallery-section-heading h2 em,
.gallery-film-copy h2 em{
    font-weight:300;
    color:#a7823f;
}

.gallery-intro-copy p{
    max-width:700px;
    margin-top:32px;
    color:#70665d;
    font-size:1rem;
    line-height:1.9;
}

.gallery-photos{
    padding:130px 32px 145px;
}

.gallery-section-heading{
    width:min(1260px, 100%);
    margin:0 auto 72px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:50px;
}

.gallery-section-heading h2{
    font-size:clamp(3.1rem, 5.7vw, 5.8rem);
}

.gallery-section-heading p{
    max-width:430px;
    padding-bottom:8px;
    color:#7d7165;
    line-height:1.8;
}

.gallery-grid{
    width:min(1380px, 100%);
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(12, 1fr);
    grid-auto-rows:58px;
    grid-auto-flow:dense;
    gap:18px;
}

/* Velká galerie nesmí zůstat skrytá kvůli reveal animaci.
   U dlouhého gridu se dříve nesplnil 12% IntersectionObserver threshold. */
.gallery-grid.gallery-reveal{
    opacity:1;
    transform:none;
}

.gallery-item{
    position:relative;
    overflow:hidden;
    border:0;
    padding:0;
    background:#e8dfd3;
    cursor:zoom-in;
}

.gallery-item::after{
    content:"PROHLÉDNOUT";
    position:absolute;
    left:24px;
    bottom:22px;
    z-index:2;
    color:#fff;
    font-size:.58rem;
    letter-spacing:3px;
    opacity:0;
    transform:translateY(8px);
    transition:.38s ease;
}

.gallery-item::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg, transparent 45%, rgba(20,16,13,.65));
    opacity:0;
    transition:.38s ease;
}

.gallery-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .9s cubic-bezier(.2,.7,.2,1), filter .5s ease;
}

.gallery-item:hover img{
    transform:scale(1.045);
}

.gallery-item:hover::before,
.gallery-item:hover::after{
    opacity:1;
    transform:translateY(0);
}

.gallery-item:nth-child(1){ grid-column:1 / span 5; grid-row:span 10; }
.gallery-item:nth-child(2){ grid-column:6 / span 7; grid-row:span 7; }
.gallery-item:nth-child(3){ grid-column:6 / span 4; grid-row:span 6; }
.gallery-item:nth-child(4){ grid-column:10 / span 3; grid-row:span 6; }
.gallery-item:nth-child(5){ grid-column:1 / span 7; grid-row:span 7; }
.gallery-item:nth-child(6){ grid-column:8 / span 5; grid-row:span 10; }
.gallery-item:nth-child(7){ grid-column:1 / span 4; grid-row:span 7; }
.gallery-item:nth-child(8){ grid-column:5 / span 3; grid-row:span 7; }
.gallery-item:nth-child(9){ grid-column:1 / span 6; grid-row:span 7; }
.gallery-item:nth-child(10){ grid-column:7 / span 6; grid-row:span 7; }
.gallery-item:nth-child(11){ grid-column:3 / span 8; grid-row:span 7; }

/* Opakující se mozaika pro další fotografie v rozšířené galerii */
.gallery-item:nth-child(10n + 12){ grid-column:span 5; grid-row:span 8; }
.gallery-item:nth-child(10n + 13){ grid-column:span 7; grid-row:span 8; }
.gallery-item:nth-child(10n + 14),
.gallery-item:nth-child(10n + 15),
.gallery-item:nth-child(10n + 16){ grid-column:span 4; grid-row:span 7; }
.gallery-item:nth-child(10n + 17){ grid-column:span 7; grid-row:span 8; }
.gallery-item:nth-child(10n + 18){ grid-column:span 5; grid-row:span 8; }
.gallery-item:nth-child(10n + 19),
.gallery-item:nth-child(10n + 20){ grid-column:span 6; grid-row:span 7; }
.gallery-item:nth-child(10n + 21){ grid-column:span 12; grid-row:span 8; }
.gallery-item.gallery-item--portrait{ grid-column:span 4; grid-row:span 10; }

.gallery-film-section{
    padding:140px 32px;
    background:#26211d;
    color:#fff;
}

.gallery-film-inner{
    width:min(1260px, 100%);
    margin:0 auto;
}

.gallery-film-copy{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:100px;
    align-items:end;
    margin-bottom:66px;
}

.gallery-film-copy h2{
    color:#fff;
    font-size:clamp(3.2rem, 5.5vw, 5.6rem);
}

.gallery-film-copy p{
    max-width:480px;
    line-height:1.9;
    color:rgba(255,255,255,.62);
}

.gallery-featured-film{
    display:grid;
    grid-template-columns:minmax(0, 1.6fr) minmax(260px, .55fr);
    background:#1b1815;
}

.gallery-featured-video{
    position:relative;
    aspect-ratio:16 / 9;
    background:#000;
}

.gallery-featured-video iframe{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border:0;
}

.gallery-featured-info{
    padding:52px 46px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-left:1px solid rgba(234,220,198,.13);
}

.gallery-featured-info span,
.gallery-video-card-content span{
    font-size:.6rem;
    letter-spacing:4px;
    text-transform:uppercase;
    color:#d2aa5d;
}

.gallery-featured-info h3{
    margin:22px 0 20px;
    font-family:'Cormorant Garamond',serif;
    font-size:2.45rem;
    font-weight:300;
    line-height:1.05;
}

.gallery-featured-info p{
    color:rgba(255,255,255,.58);
    line-height:1.75;
    font-size:.88rem;
}

.gallery-youtube-link{
    align-self:flex-start;
    margin-top:32px;
    padding-bottom:8px;
    border-bottom:1px solid #c9a45c;
    font-size:.67rem;
    letter-spacing:3px;
    text-transform:uppercase;
    color:#fff;
    transition:.3s ease;
}

.gallery-youtube-link:hover{
    color:#d2aa5d;
}

.gallery-video-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:24px;
    margin-top:24px;
}

.gallery-video-card{
    display:grid;
    grid-template-columns:1.08fr .92fr;
    min-height:290px;
    background:#302a25;
    transition:transform .35s ease, background .35s ease;
}

.gallery-video-card:hover{
    transform:translateY(-5px);
    background:#36302a;
}

.gallery-video-thumb{
    position:relative;
    min-height:240px;
    overflow:hidden;
}

.gallery-video-thumb::after{
    content:"▶";
    position:absolute;
    left:50%;
    top:50%;
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    transform:translate(-50%, -50%);
    border:1px solid rgba(255,255,255,.65);
    border-radius:50%;
    color:#fff;
    font-size:.9rem;
    padding-left:3px;
    background:rgba(25,20,17,.28);
    backdrop-filter:blur(5px);
    transition:.3s ease;
}

.gallery-video-card:hover .gallery-video-thumb::after{
    transform:translate(-50%, -50%) scale(1.08);
    background:#c9a45c;
    border-color:#c9a45c;
}

.gallery-video-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .7s ease;
}

.gallery-video-card:hover .gallery-video-thumb img{
    transform:scale(1.045);
}

.gallery-video-card-content{
    padding:38px 34px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.gallery-video-card-content h3{
    margin:18px 0;
    font-family:'Cormorant Garamond',serif;
    font-size:2rem;
    font-weight:300;
    line-height:1.1;
}

.gallery-video-card-content p{
    font-size:.82rem;
    line-height:1.7;
    color:rgba(255,255,255,.55);
}

.gallery-video-card-content strong{
    margin-top:25px;
    font-size:.62rem;
    letter-spacing:3px;
    font-weight:500;
    color:#d2aa5d;
}

.gallery-cta{
    position:relative;
    min-height:590px;
    display:grid;
    place-items:center;
    padding:90px 30px;
    overflow:hidden;
    text-align:center;
    color:#fff;
}

.gallery-cta::before{
    content:"";
    position:absolute;
    inset:0;
    background:url('../img/slide3.jpg') center 42% / cover no-repeat;
    transform:scale(1.03);
}

.gallery-cta::after{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(24,20,17,.58);
}

.gallery-cta-inner{
    position:relative;
    z-index:1;
    max-width:870px;
}

.gallery-cta h2{
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(3.1rem, 6vw, 6.3rem);
    font-weight:300;
    line-height:.96;
}

.gallery-cta p{
    max-width:560px;
    margin:28px auto 38px;
    color:rgba(255,255,255,.75);
    line-height:1.8;
}

.gallery-cta a{
    display:inline-block;
    padding:17px 38px;
    background:#c9a45c;
    color:#fff;
    font-size:.68rem;
    letter-spacing:4px;
    text-transform:uppercase;
    transition:.3s ease;
}

.gallery-cta a:hover{
    background:#fff;
    color:#2b2520;
    transform:translateY(-3px);
}

/* LIGHTBOX */
.gallery-lightbox{
    position:fixed;
    inset:0;
    z-index:200000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:72px 90px;
    background:rgba(13,11,10,.96);
}

.gallery-lightbox.open{
    display:flex;
}

.gallery-lightbox-image{
    max-width:100%;
    max-height:calc(100vh - 120px);
    object-fit:contain;
    box-shadow:0 20px 80px rgba(0,0,0,.28);
}

.gallery-lightbox-close,
.gallery-lightbox-nav{
    position:absolute;
    border:0;
    background:transparent;
    color:#fff;
    cursor:pointer;
}

.gallery-lightbox-close{
    right:32px;
    top:25px;
    font-size:2.2rem;
    font-weight:200;
}

.gallery-lightbox-nav{
    top:50%;
    transform:translateY(-50%);
    width:55px;
    height:55px;
    border:1px solid rgba(255,255,255,.25);
    border-radius:50%;
    font-size:1.35rem;
    transition:.3s ease;
}

.gallery-lightbox-nav:hover{
    background:#c9a45c;
    border-color:#c9a45c;
}

.gallery-lightbox-prev{ left:25px; }
.gallery-lightbox-next{ right:25px; }

.gallery-lightbox-count{
    position:absolute;
    left:50%;
    bottom:24px;
    transform:translateX(-50%);
    font-size:.62rem;
    letter-spacing:4px;
    color:rgba(255,255,255,.65);
}

body.lightbox-open{
    overflow:hidden;
}

/* reveal */
.gallery-reveal{
    opacity:0;
    transform:translateY(35px);
    transition:opacity .9s ease, transform .9s ease;
}

.gallery-reveal.visible{
    opacity:1;
    transform:translateY(0);
}

@media(max-width:1050px){
    .gallery-hero-content{ width:min(100% - 48px, 900px); }
    .gallery-scroll-note{ display:none; }
    .gallery-intro-inner{ gap:55px; }
    .gallery-section-heading{ align-items:flex-start; flex-direction:column; gap:24px; }
    .gallery-featured-film{ grid-template-columns:1fr; }
    .gallery-featured-info{ border-left:0; border-top:1px solid rgba(234,220,198,.13); }
    .gallery-video-card{ grid-template-columns:1fr; }
    .gallery-video-thumb{ min-height:260px; }
}

@media(max-width:800px){
    .gallery-hero{ min-height:74vh; }
    .gallery-hero-content{ width:calc(100% - 44px); padding:155px 0 62px; }
    .gallery-hero h1{ font-size:clamp(3.3rem, 15vw, 5.2rem); }
    .gallery-hero p{ font-size:1.15rem; }
    .gallery-intro{ padding:90px 24px; }
    .gallery-intro-inner{ grid-template-columns:1fr; gap:22px; }
    .gallery-intro-copy h2{ font-size:3.2rem; }
    .gallery-photos{ padding:92px 18px 105px; }
    .gallery-section-heading{ margin-bottom:45px; padding:0 7px; }
    .gallery-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); grid-auto-rows:auto; gap:10px; }
    .gallery-item,
    .gallery-item:nth-child(n){ grid-column:auto; grid-row:auto; aspect-ratio:4 / 5; }
    .gallery-item:nth-child(2),
    .gallery-item:nth-child(5),
    .gallery-item:nth-child(9),
    .gallery-item:nth-child(10){ aspect-ratio:1 / 1; }
    .gallery-item:nth-child(11){ grid-column:1 / -1; aspect-ratio:16 / 10; }
    .gallery-item:nth-child(n + 12){ aspect-ratio:4 / 3; }
    .gallery-item.gallery-item--portrait{ aspect-ratio:4 / 5; }
    .gallery-film-section{ padding:100px 20px; }
    .gallery-film-copy{ grid-template-columns:1fr; gap:25px; margin-bottom:45px; }
    .gallery-video-grid{ grid-template-columns:1fr; }
    .gallery-featured-info{ padding:42px 30px; }
    .gallery-video-card-content{ padding:35px 30px 40px; }
    .gallery-lightbox{ padding:70px 18px; }
    .gallery-lightbox-nav{ width:44px; height:44px; top:auto; bottom:20px; transform:none; }
    .gallery-lightbox-prev{ left:20px; }
    .gallery-lightbox-next{ right:20px; }
    .gallery-lightbox-count{ bottom:35px; }
}

@media(max-width:520px){
    .gallery-hero-image{ object-position:center; }
    .gallery-eyebrow,
    .gallery-section-eyebrow{ letter-spacing:4px; }
    .gallery-intro-copy h2{ font-size:2.8rem; }
    .gallery-section-heading h2,
    .gallery-film-copy h2{ font-size:3rem; }
    .gallery-grid{ grid-template-columns:1fr; }
    .gallery-item,
    .gallery-item:nth-child(n){ grid-column:auto; aspect-ratio:4 / 5; }
    .gallery-item:nth-child(2),
    .gallery-item:nth-child(5),
    .gallery-item:nth-child(9),
    .gallery-item:nth-child(10),
    .gallery-item:nth-child(11){ aspect-ratio:4 / 3; }
    .gallery-item:nth-child(n + 12){ aspect-ratio:4 / 3; }
    .gallery-item.gallery-item--portrait{ aspect-ratio:4 / 5; }
    .gallery-video-thumb{ min-height:210px; }
    .gallery-featured-info h3{ font-size:2.15rem; }
    .gallery-cta{ min-height:520px; }
}

@media(prefers-reduced-motion:reduce){
    .gallery-hero-image,
    .gallery-item img,
    .gallery-reveal{
        animation:none !important;
        transition:none !important;
    }
}

/* VIDEO LIGHTBOX */
.gallery-video-thumb{
    position:relative;
}

.gallery-video-play{
    position:absolute;
    left:50%;
    top:50%;
    z-index:2;
    display:grid;
    width:68px;
    height:68px;
    place-items:center;
    transform:translate(-50%,-50%);
    border:1px solid rgba(255,255,255,.72);
    border-radius:50%;
    background:rgba(22,18,15,.48);
    color:#fff;
    font-size:1rem;
    line-height:1;
    padding-left:4px;
    backdrop-filter:blur(6px);
    transition:transform .3s ease, background .3s ease, border-color .3s ease;
    pointer-events:none;
}

.gallery-video-card:hover .gallery-video-play{
    transform:translate(-50%,-50%) scale(1.08);
    background:#c9a45c;
    border-color:#c9a45c;
}

.gallery-video-lightbox{
    position:fixed;
    inset:0;
    z-index:210000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:72px 70px 48px;
    background:rgba(10,8,7,.96);
}

.gallery-video-lightbox.open{
    display:flex;
}

.gallery-video-lightbox-inner{
    width:min(1180px, 100%);
}

.gallery-video-lightbox-frame{
    position:relative;
    width:100%;
    aspect-ratio:16 / 9;
    overflow:hidden;
    background:#000;
    box-shadow:0 28px 100px rgba(0,0,0,.5);
}

.gallery-video-lightbox-frame iframe{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border:0;
}

.gallery-video-lightbox-close{
    position:absolute;
    right:30px;
    top:22px;
    z-index:2;
    width:48px;
    height:48px;
    border:1px solid rgba(255,255,255,.3);
    border-radius:50%;
    background:rgba(255,255,255,.04);
    color:#fff;
    cursor:pointer;
    font-size:2rem;
    font-weight:200;
    line-height:1;
    transition:background .25s ease, border-color .25s ease;
}

.gallery-video-lightbox-close:hover{
    background:#c9a45c;
    border-color:#c9a45c;
}

.gallery-video-lightbox-title{
    margin:18px 0 0;
    color:rgba(255,255,255,.76);
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(1.25rem, 2vw, 1.75rem);
    text-align:center;
}

@media(max-width:800px){
    .gallery-video-lightbox{
        padding:76px 14px 28px;
    }

    .gallery-video-lightbox-close{
        right:14px;
        top:15px;
        width:44px;
        height:44px;
    }

    .gallery-video-play{
        width:58px;
        height:58px;
    }
}
