:root{
    --dark:#3e3d3e;
    --cream:#f4efe6;
    --paper:#fbf7ef;
    --gold:#b79b66;
    --muted:#70685e;
    --white:#ffffff;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background:var(--cream);color:var(--dark);overflow-x:hidden}
a{text-decoration:none;color:inherit}

.page-loader{position:fixed;inset:0;background:var(--dark);z-index:99999;display:grid;place-items:center;color:var(--gold);transition:opacity .8s ease,visibility .8s ease}
.page-loader.hide{opacity:0;visibility:hidden}
.loader-mark{font-family:'Cormorant Garamond',serif;font-size:42px;letter-spacing:1px}

.site-header{position:fixed;top:0;left:0;width:100%;height:94px;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;color:#fff;transition:.35s ease;border-bottom:1px solid rgba(255,255,255,.12)}
.site-header.scrolled{height:76px;background:rgba(62,61,62,.94);backdrop-filter:blur(18px);border-bottom:1px solid rgba(183,155,102,.25)}
.brand img{height:62px;max-width:260px;filter:brightness(0) invert(1);transition:.35s}
.text-logo{font-family:'Cormorant Garamond',serif;font-size:34px;color:#fff}
.site-header.scrolled .brand img{height:50px}
.main-nav{display:flex;gap:34px;font-size:11px;letter-spacing:2px;text-transform:uppercase}
.main-nav a{opacity:.78}.main-nav a:hover{opacity:1;color:var(--gold)}
.header-right{display:flex;align-items:center;gap:22px}
.lang-switch{font-size:12px}.lang-switch a{opacity:.5}.lang-switch a.active{color:var(--gold);opacity:1}
.reserve-link{border:1px solid rgba(183,155,102,.55);padding:14px 22px;font-size:11px;text-transform:uppercase;letter-spacing:1.8px}
.reserve-link:hover{background:var(--gold);color:#1a1a1a}
.menu-toggle{display:none;background:none;border:0;width:34px;height:20px;position:relative}
.menu-toggle span{display:block;height:1px;background:#fff;margin:7px 0}

.hero-panel{min-height:108svh;position:relative;display:flex;align-items:center;padding:0 7vw;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.05)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,20,20,.76),rgba(20,20,20,.28)),linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.48))}
.hero-copy{position:relative;z-index:2;max-width:900px}
.eyebrow{display:block;color:var(--gold);font-size:11px;letter-spacing:3.2px;text-transform:uppercase;margin-bottom:24px}
.eyebrow.dark{color:var(--gold)}
.hero-copy h1{font-family:'Cormorant Garamond',serif;font-size:clamp(68px,9.5vw,150px);line-height:.85;font-weight:500;letter-spacing:-2px}
.hero-copy p{max-width:560px;margin-top:28px;font-size:18px;line-height:1.9;color:rgba(255,255,255,.82)}
.hero-actions{display:flex;gap:16px;margin-top:40px;flex-wrap:wrap}
.btn-primary,.btn-ghost{padding:18px 30px;min-width:180px;text-align:center;text-transform:uppercase;letter-spacing:1.8px;font-size:11px}
.btn-primary{background:var(--gold);color:#1b1b1b}.btn-ghost{border:1px solid rgba(255,255,255,.45)}
.hero-meta{position:absolute;z-index:2;bottom:40px;left:7vw;right:7vw;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.72)}
.hero-meta span{border-top:1px solid rgba(183,155,102,.62);padding-top:16px}

.booking-strip{position:relative;z-index:10;margin-top:-70px;padding:0 6vw 70px}
.booking-shell{background:rgba(251,247,239,.94);backdrop-filter:blur(16px);border:1px solid rgba(183,155,102,.32);box-shadow:0 40px 120px rgba(0,0,0,.18);padding:34px;display:grid;grid-template-columns:.7fr 1.3fr;gap:30px;align-items:center}
.booking-text span{color:var(--gold);font-size:11px;letter-spacing:2.6px;text-transform:uppercase}
.booking-text h2{font-family:'Cormorant Garamond',serif;font-size:48px;font-weight:500;margin-top:8px}
.booking-widget{background:#fff;padding:18px;border:1px solid rgba(183,155,102,.24)}
.booking-fallback{display:block;margin-top:12px;background:var(--dark);color:#fff;text-align:center;padding:14px;text-transform:uppercase;font-size:11px;letter-spacing:1.5px}

.signature-section{padding:120px 6vw;background:var(--cream)}
.signature-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:70px;align-items:center}
.signature-text h2,.cinematic-card h2,.section-head h2,.experience-copy h2,.gallery-head h2,.location-copy h2{font-family:'Cormorant Garamond',serif;font-size:clamp(48px,5.8vw,88px);line-height:.95;font-weight:500;letter-spacing:-1px}
.signature-text p{margin-top:28px;max-width:560px;color:var(--muted);line-height:2;font-size:17px}
.signature-image{height:660px;background-size:cover;background-position:center;box-shadow:0 40px 110px rgba(62,61,62,.16)}

.cinematic-panel{position:relative;min-height:92vh;background:var(--dark);display:flex;align-items:flex-end;padding:0 6vw 90px;color:#fff}
.cinematic-image{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.68}
.cinematic-panel:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.68))}
.cinematic-card{position:relative;z-index:2;max-width:760px;background:rgba(62,61,62,.72);backdrop-filter:blur(14px);padding:52px;border:1px solid rgba(183,155,102,.28)}

.suites-section{padding:130px 6vw;background:var(--paper)}
.section-head{max-width:760px;margin-bottom:70px}
.suite-row{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.suite-row article{background:var(--cream);border:1px solid rgba(183,155,102,.22);box-shadow:0 28px 80px rgba(62,61,62,.08);padding-bottom:30px}
.suite-img{height:380px;background-size:cover;background-position:center;margin-bottom:28px}
.suite-row span,.experience-list span{display:block;color:var(--gold);font-size:11px;letter-spacing:2px;margin:0 30px 12px}
.suite-row h3{font-family:'Cormorant Garamond',serif;font-size:38px;font-weight:500;margin:0 30px 12px}
.suite-row p{color:var(--muted);line-height:1.8;margin:0 30px}

.experience-section{background:var(--dark);color:#fff;padding:130px 6vw;display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}
.experience-list{display:grid;gap:0;border-top:1px solid rgba(183,155,102,.28)}
.experience-list div{padding:34px 0;border-bottom:1px solid rgba(183,155,102,.28)}
.experience-list h3{font-family:'Cormorant Garamond',serif;font-size:42px;font-weight:500;margin:0 0 12px}
.experience-list p{color:rgba(255,255,255,.68);line-height:1.8}

.gallery-section{padding:130px 6vw;background:var(--cream)}
.gallery-head{text-align:center;margin-bottom:70px}
.gallery-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr 1.2fr;gap:20px}
.g{height:320px;background-size:cover;background-position:center;border:0;cursor:zoom-in}
.g:nth-child(1),.g:nth-child(4){height:420px}

.location-section{display:grid;grid-template-columns:.8fr 1.2fr;background:var(--paper)}
.location-copy{padding:110px 6vw}
.location-copy p{margin-top:28px;color:var(--muted);line-height:1.9}
.map iframe{width:100%;height:100%;min-height:580px;border:0}

.site-footer{background:var(--dark);color:#fff;text-align:center;padding:70px 20px;border-top:1px solid rgba(183,155,102,.28)}
.site-footer img{height:62px;filter:brightness(0) invert(1);margin-bottom:20px}

.mobile-call{position:fixed;right:18px;bottom:18px;z-index:1000;background:var(--gold);color:#1b1b1b;padding:16px 22px;text-transform:uppercase;letter-spacing:1.4px;font-size:12px;display:none}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:9999;display:none;align-items:center;justify-content:center;padding:30px}
.lightbox.active{display:flex}
.lightbox img{max-width:94vw;max-height:88vh}
.lightbox button{position:absolute;top:20px;right:24px;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;width:48px;height:48px;font-size:32px}

.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s ease,transform .9s ease}
.reveal.in-view{opacity:1;transform:none}

@media(max-width:1100px){
    .main-nav{display:none}
    .menu-toggle{display:block}
    .main-nav.open{display:flex;position:fixed;top:86px;left:18px;right:18px;background:rgba(62,61,62,.96);padding:28px;flex-direction:column;z-index:1200}
    .booking-shell,.signature-grid,.experience-section,.location-section{grid-template-columns:1fr}
    .suite-row{grid-template-columns:1fr 1fr}
    .gallery-grid{grid-template-columns:1fr 1fr}
    .map iframe{min-height:420px}
}
@media(max-width:680px){
    .site-header{height:78px;padding:0 18px}
    .brand img{height:42px;max-width:180px}
    .reserve-link{display:none}
    .hero-panel{padding:0 22px;min-height:100svh}
    .hero-copy h1{font-size:clamp(58px,17vw,82px)}
    .hero-meta{grid-template-columns:1fr;position:relative;left:auto;right:auto;bottom:auto;margin-top:50px}
    .booking-strip{margin-top:0;padding:28px 18px 50px}
    .booking-shell{padding:24px}
    .booking-text h2{font-size:38px}
    .signature-section,.suites-section,.experience-section,.gallery-section{padding:84px 20px}
    .signature-image{height:420px}
    .cinematic-panel{min-height:80vh;padding:0 20px 50px}
    .cinematic-card{padding:30px}
    .suite-row,.gallery-grid{grid-template-columns:1fr}
    .g,.g:nth-child(1),.g:nth-child(4){height:320px}
    .location-copy{padding:84px 20px}
    .mobile-call{display:block}
}


/* V2 PRO Step 2 - Logo Loader + Hero Video */
.page-loader{
    background:#3e3d3e;
}

.loader-logo-wrap{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:28px;
    animation:loaderEntrance 1.25s ease forwards;
}

.loader-logo{
    width:min(280px,62vw);
    height:auto;
    filter:brightness(0) invert(1);
    opacity:0;
    transform:translateY(18px) scale(.96);
    animation:logoReveal 1.4s ease .15s forwards;
}

.loader-line{
    width:0;
    height:1px;
    background:#b79b66;
    display:block;
    animation:lineReveal 1.2s ease .55s forwards;
}

@keyframes logoReveal{
    to{
        opacity:1;
        transform:translateY(0) scale(1);
    }
}

@keyframes lineReveal{
    to{width:180px;}
}

@keyframes loaderEntrance{
    from{filter:blur(4px);}
    to{filter:blur(0);}
}

.hero-video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    transform:scale(1.02);
}

.hero-bg{
    z-index:0;
}

.hero-video{
    z-index:0;
}

.hero-shade,
.hero-copy,
.hero-meta{
    position:relative;
}

.hero-shade{
    position:absolute;
    z-index:1;
}

.hero-copy,
.hero-meta{
    z-index:2;
}

@media(max-width:680px){
    .loader-logo{
        width:min(220px,68vw);
    }
    @keyframes lineReveal{
        to{width:130px;}
    }
}


/* V2 PRO CMS Step 3 - Rezervasyon alanı yükseklik düzenlemesi */
.booking-strip{
    margin-top:-82px;
    padding:0 6vw 88px;
}

.booking-shell{
    min-height:210px;
    padding:46px 44px;
    align-items:center;
}

.booking-text h2{
    font-size:56px;
    line-height:1;
}

.booking-widget{
    min-height:128px;
    padding:26px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

#hr_search_widget{
    min-height:72px;
}

.booking-fallback{
    margin-top:18px;
    padding:16px;
}

@media(max-width:1100px){
    .booking-shell{
        min-height:240px;
        padding:38px 32px;
    }
}

@media(max-width:680px){
    .booking-strip{
        margin-top:0;
        padding:34px 18px 58px;
    }

    .booking-shell{
        min-height:300px;
        padding:32px 24px;
    }

    .booking-text h2{
        font-size:42px;
    }

    .booking-widget{
        min-height:160px;
        padding:22px;
    }

    #hr_search_widget{
        min-height:96px;
    }
}


/* V2 PRO CMS Step 4 - Galeri eşit ölçülü kart düzeni */
.gallery-grid{
    display:grid !important;
    grid-template-columns:repeat(4, 1fr) !important;
    gap:22px !important;
    align-items:stretch;
}

.gallery-grid .g,
.gallery-grid .g:nth-child(1),
.gallery-grid .g:nth-child(4){
    width:100% !important;
    height:360px !important;
    min-height:360px !important;
    aspect-ratio:1 / 1 !important;
    background-size:cover !important;
    background-position:center center !important;
    background-repeat:no-repeat !important;
    border:1px solid rgba(183,155,102,.22);
    box-shadow:0 24px 70px rgba(62,61,62,.08);
}

.gallery-grid .g:hover{
    transform:translateY(-4px);
    transition:.35s ease;
}

@media(max-width:1100px){
    .gallery-grid{
        grid-template-columns:repeat(2, 1fr) !important;
    }

    .gallery-grid .g,
    .gallery-grid .g:nth-child(1),
    .gallery-grid .g:nth-child(4){
        height:340px !important;
        min-height:340px !important;
    }
}

@media(max-width:680px){
    .gallery-grid{
        grid-template-columns:1fr !important;
    }

    .gallery-grid .g,
    .gallery-grid .g:nth-child(1),
    .gallery-grid .g:nth-child(4){
        height:320px !important;
        min-height:320px !important;
    }
}


/* =========================================================
   FINAL STABLE FIX - Gallery alignment + freeze prevention
   ========================================================= */

/* Sayfa genel kayma koruması */
html, body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}

/* Galeri alanını eski yükseklik/transform kurallarından izole eder */
.gallery-section{
    overflow:hidden;
}

.gallery-grid{
    display:grid !important;
    grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
    grid-auto-rows:auto !important;
    gap:22px !important;
    align-items:stretch !important;
    width:100% !important;
}

.gallery-grid .g,
.gallery-grid .g:nth-child(1),
.gallery-grid .g:nth-child(2),
.gallery-grid .g:nth-child(3),
.gallery-grid .g:nth-child(4),
.gallery-grid .g:nth-child(odd),
.gallery-grid .g:nth-child(even){
    display:block !important;
    width:100% !important;
    height:360px !important;
    min-height:360px !important;
    max-height:360px !important;
    aspect-ratio:auto !important;
    padding:0 !important;
    margin:0 !important;
    border:1px solid rgba(183,155,102,.22) !important;
    outline:0 !important;
    appearance:none !important;
    -webkit-appearance:none !important;
    background-size:cover !important;
    background-position:center center !important;
    background-repeat:no-repeat !important;
    cursor:zoom-in !important;
    box-shadow:0 24px 70px rgba(62,61,62,.08);
    transform:none !important;
}

.gallery-grid .g:hover{
    transform:translateY(-4px) !important;
    transition:transform .35s ease, box-shadow .35s ease;
    box-shadow:0 32px 84px rgba(62,61,62,.13);
}

/* Loader donma koruması: JS gecikirse CSS de güvenli davranır */
.page-loader{
    pointer-events:none;
}

.page-loader.force-hide{
    opacity:0 !important;
    visibility:hidden !important;
}

/* Lightbox kapalıyken kesinlikle görünmez */
.lightbox{
    visibility:hidden;
    opacity:0;
    pointer-events:none;
}

.lightbox.active{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
}

/* Rezervasyon alanı ferah görünüm */
.booking-shell{
    min-height:220px;
}

.booking-widget{
    min-height:140px;
}

/* Video / hero performans */
.hero-video,
.hero-bg{
    will-change:transform;
}

@media(max-width:1100px){
    .gallery-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    }

    .gallery-grid .g,
    .gallery-grid .g:nth-child(1),
    .gallery-grid .g:nth-child(2),
    .gallery-grid .g:nth-child(3),
    .gallery-grid .g:nth-child(4),
    .gallery-grid .g:nth-child(odd),
    .gallery-grid .g:nth-child(even){
        height:340px !important;
        min-height:340px !important;
        max-height:340px !important;
    }
}

@media(max-width:680px){
    .gallery-grid{
        grid-template-columns:1fr !important;
        gap:18px !important;
    }

    .gallery-grid .g,
    .gallery-grid .g:nth-child(1),
    .gallery-grid .g:nth-child(2),
    .gallery-grid .g:nth-child(3),
    .gallery-grid .g:nth-child(4),
    .gallery-grid .g:nth-child(odd),
    .gallery-grid .g:nth-child(even){
        height:320px !important;
        min-height:320px !important;
        max-height:320px !important;
    }

    .booking-shell{
        min-height:300px;
    }
}
