:root{

    --navy:#071224;

    --navy2:#101a3d;

    --gold:#d4bf00;

    --gold2:#bca900;

    --ink:#11152d;

    --muted:#6f7890;

    --soft:#f6f7fb;

    --line:#e5e8ef;

    --white:#fff;

    --shadow:0 20px 55px rgba(9,20,48,.10);

    --radius:22px;

}

/* =========================================================

   GLOBAL

   ========================================================= */

*{

    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    margin:0;

    background:#fff;

    color:var(--ink);

    font-family:Arial,"Noto Sans Ethiopic",sans-serif;

    line-height:1.6;

}

img{

    display:block;

    max-width:100%;

}

a{

    color:inherit;

    text-decoration:none;

}

button,

input,

select,

textarea{

    font:inherit;

}

main{

    overflow:hidden;

}

.container{

    width:min(1180px,calc(100% - 48px));

    margin:auto;

}

.section{

    padding:90px 0;

}

.section.soft{

    background:var(--soft);

}

h1,h2,h3,h4,p{

    margin-top:0;

}

h1,h2{

    font-family:Georgia,"Times New Roman",serif;

}

h2{

    font-size:clamp(32px,4vw,52px);

    line-height:1.08;

    margin-bottom:20px;

}

.eyebrow{

    display:inline-block;

    color:#f0df38;

    font-size:11px;

    font-weight:800;

    letter-spacing:4px;

    margin-bottom:18px;

}

.eyebrow\\\\.dark{

    color:#8c7e00;

}

.btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-height:52px;

    padding:0 24px;

    border:0;

    border-radius:5px;

    background:var(--gold);

    color:#fff;

    font-weight:800;

    transition:.25s;

}

.btn:hover{

    transform:translateY(-3px);

    box-shadow:0 12px 28px rgba(188,169,0,.24);

}

.btn.gold{

    background:var(--gold);

}

.btn.navy{

    background:var(--navy);

}

.btn.glass{

    background:rgba(7,18,36,.28);

    border:1px solid rgba(255,255,255,.4);

    backdrop-filter:blur(8px);

}

.btn.small{

    min-height:44px;

    padding:0 18px;

}

.text-link{

    font-weight:800;

    color:var(--navy);

}

/* =========================================================

   HERO

   ========================================================= */

.hero-slider{

    position:relative;

    height:min(850px,100vh);

    min-height:650px;

    background:#16243a;

    overflow:hidden;

}

.hero-slide{

    position:absolute;

    inset:0;

    opacity:0;

    visibility:hidden;

    background-size:cover;

    background-position:center;

    transition:

        opacity .9s ease,

        visibility .9s;

}

.hero-slide.active{

    opacity:1;

    visibility:visible;

}

.hero-slide.fallback{

    background:linear-gradient(135deg,#10233f,#071224);

}

.hero-shade{

    position:absolute;

    inset:0;

    background:

        linear-gradient(

            90deg,

            rgba(3,13,27,.78) 0%,

            rgba(3,13,27,.38) 45%,

            rgba(3,13,27,.16) 100%

        ),

        linear-gradient(

            0deg,

            rgba(3,13,27,.35),

            transparent 45%

        );

}

.hero-copy,

.page-slider-copy{

    position:absolute;

    z-index:5;

    left:max(8vw,90px);

    top:50%;

    transform:translateY(-42%);

    max-width:760px;

    color:#fff;

}

.hero-copy h1,

.page-slider-copy h1{

    font:500 clamp(54px,7vw,104px)/.96 Georgia,serif;

    margin:0 0 24px;

}

.hero-copy p,

.page-slider-copy p{

    font-size:18px;

    margin-bottom:30px;

}

.hero-actions{

    display:flex;

    gap:12px;

    flex-wrap:wrap;

}

.hero-prev,

.hero-next{

    position:absolute;

    z-index:8;

    top:53%;

    width:52px;

    height:52px;

    border:1px solid rgba(255,255,255,.28);

    background:rgba(7,18,36,.16);

    color:#fff;

    font-size:34px;

    cursor:pointer;

}

.hero-prev{

    left:28px;

}

.hero-next{

    right:28px;

}

.hero-dots{

    position:absolute;

    z-index:8;

    left:max(8vw,90px);

    bottom:58px;

    display:flex;

    gap:10px;

}

.hero-dots button{

    width:42px;

    height:3px;

    padding:0;

    border:0;

    background:rgba(255,255,255,.35);

}

.hero-dots button.active{

    background:var(--gold);

}

.scroll-cue{

    position:absolute;

    z-index:8;

    bottom:30px;

    left:50%;

    color:#fff;

    font-size:10px;

    letter-spacing:3px;

}

/* =========================================================

   PAGE HERO

   ========================================================= */

.page-slider{

    height:540px;

    min-height:540px;

    border-radius:0 0 28px 28px;

}

.page-slider .page-slider-copy{

    top:auto;

    bottom:62px;

    transform:none;

}

.page-slider .page-slider-copy h1{

    font-size:clamp(50px,5.5vw,82px);

    margin-bottom:10px;

}

.page-slider .page-slider-copy p{

    margin:0;

}

.page-slider .hero-prev,

.page-slider .hero-next{

    top:58%;

}

/* =========================================================

   QUICK BOOK

   ========================================================= */

.quick-book{

    position:relative;

    z-index:20;

    width:min(1120px,calc(100% - 48px));

    margin:-36px auto 0;

    background:#fff;

    border-radius:18px;

    box-shadow:var(--shadow);

    padding:24px;

    display:flex;

    align-items:end;

    gap:18px;

}

.quick-book > *{

    flex:1;

}

.quick-book label,

.field label{

    display:block;

    font-size:11px;

    font-weight:800;

    letter-spacing:1px;

    margin-bottom:8px;

}

.quick-book input,

.quick-book select,

.field input,

.field select,

.field textarea,

.form input,

.form select,

.form textarea{

    width:100%;

    min-height:50px;

    border:1px solid #dfe4ed;

    border-radius:10px;

    padding:11px 14px;

    background:#fff;

    color:var(--ink);

    outline:none;

}

.field textarea,

.form textarea{

    min-height:130px;

    resize:vertical;

}

/* =========================================================

   HOME CONTENT

   ========================================================= */

.story,

.restaurant-feature{

    display:grid;

    grid-template-columns:1fr 1fr;

    align-items:center;

    gap:70px;

}

.story-media,

.restaurant-media,

.visual{

    min-height:480px;

    border-radius:var(--radius);

    overflow:hidden;

    background:#eef0f4;

}

.story-media img,

.restaurant-media img,

.visual img{

    width:100%;

    height:100%;

    object-fit:cover;

}

.image-placeholder,

.placeholder{

    height:100%;

    min-height:280px;

    display:grid;

    place-items:center;

    background:linear-gradient(135deg,#eef1f5,#e0e5ec);

    color:#8c95a4;

}

.feature-row{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:12px;

    margin:30px 0;

}

.feature-row > *{

    padding:18px;

    border-top:2px solid var(--gold);

}

.section-head,

.section-heading{

    display:flex;

    align-items:end;

    justify-content:space-between;

    gap:30px;

    margin-bottom:38px;

}

/* =========================================================

   CARDS

   ========================================================= */

.room-grid,

.grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:26px;

}

.room-card,

.card,

.service-card,

.gallery-item,

.availability-box,

.menu-card,

.faq-item,

.form,

.hotel-map-card{

    background:#fff;

    border:1px solid var(--line);

    border-radius:var(--radius);

    overflow:hidden;

    box-shadow:0 10px 35px rgba(12,25,55,.06);

    transition:

        transform .35s ease,

        box-shadow .35s ease,

        border-color .35s ease;

}

.room-card:hover,

.card:hover,

.service-card:hover,

.gallery-item:hover,

.menu-card:hover{

    transform:translateY(-8px);

    box-shadow:var(--shadow);

    border-color:#d9d49b;

}

.room-photo{

    height:280px;

    overflow:hidden;

}

.room-photo img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:transform .5s ease;

}

.room-card:hover .room-photo img{

    transform:scale(1.04);

}

.room-body,

.card-body{

    padding:26px;

}

.price{

    font-weight:900;

    color:#8a7b00;

    margin:18px 0;

}

/* =========================================================

   EXPERIENCE

   ========================================================= */

.experience{

    padding:100px max(6vw,50px);

    background:var(--navy);

    color:#fff;

}

.experience-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.experience-grid > *{

    padding:30px;

    border:1px solid rgba(255,255,255,.12);

    border-radius:18px;

    transition:

        transform .3s ease,

        background .3s ease;

}

.experience-grid > *:hover{

    transform:translateY(-6px);

    background:rgba(255,255,255,.04);

}

/* =========================================================

   ROOM LISTING

   ========================================================= */

.room-gallery{

    height:290px;

    display:flex;

    overflow:auto;

    scroll-snap-type:x mandatory;

}

.room-gallery img{

    min-width:100%;

    height:100%;

    object-fit:cover;

    scroll-snap-align:start;

}

/* =========================================================

   SERVICES

   ========================================================= */

.service-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:24px;

}

.service-card{

    padding:34px;

    min-height:220px;

}

.service-card:before{

    content:"✦";

    display:grid;

    place-items:center;

    width:46px;

    height:46px;

    border-radius:50%;

    background:#f5f1c9;

    color:#8c7e00;

    margin-bottom:24px;

}

/* =========================================================

   GALLERY

   ========================================================= */

.gallery-grid{

    columns:3 300px;

    column-gap:24px;

}

.gallery-item{

    position:relative;

    margin:0 0 24px;

    break-inside:avoid;

}

.gallery-item img{

    width:100%;

    transition:transform .5s ease;

}

.gallery-item:hover img{

    transform:scale(1.025);

}

.gallery-item > div{

    position:absolute;

    left:16px;

    right:16px;

    bottom:16px;

    padding:10px 14px;

    border-radius:10px;

    background:rgba(7,18,36,.72);

    color:#fff;

    backdrop-filter:blur(6px);

}

/* =========================================================

   CONTENT SPLIT

   ========================================================= */

.split{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:70px;

    align-items:center;

}

.content-prose{

    color:#555e70;

}

/* =========================================================

   RESTAURANT

   ========================================================= */

.restaurant-menu-section{

    background:var(--soft);

}

.menu-category{

    margin-top:48px;

}

.menu-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:22px;

}

.menu-card img{

    width:100%;

    height:210px;

    object-fit:cover;

    transition:transform .5s ease;

}

.menu-card:hover img{

    transform:scale(1.04);

}

.menu-card-body{

    padding:22px;

}

.menu-title-row{

    display:flex;

    justify-content:space-between;

    gap:16px;

}

.menu-title-row strong{

    color:#8a7b00;

}

.empty-state{

    padding:55px;

    border:1px dashed #cfd5df;

    border-radius:var(--radius);

    text-align:center;

    color:var(--muted);

    background:#fafbfc;

}

/* =========================================================

   FAQ

   ========================================================= */

.faq-intro{

    text-align:center;

    max-width:760px;

    margin:0 auto 45px;

}

.faq-list{

    max-width:900px;

    margin:auto;

}

.faq-item{

    margin-bottom:14px;

}

.faq-question{

    width:100%;

    padding:22px 26px;

    display:flex;

    align-items:center;

    gap:18px;

    border:0;

    background:#fff;

    text-align:left;

    cursor:pointer;

}

.faq-number{

    color:#9b8b00;

    font-weight:800;

}

.faq-question-text{

    flex:1;

    font-weight:800;

}

.faq-icon{

    font-size:24px;

}

.faq-answer{

    display:none;

}

.faq-item.open .faq-answer{

    display:block;

}

.faq-answer-inner{

    padding:0 26px 26px 70px;

    color:#5f687a;

}

.faq-contact{

    text-align:center;

    margin-top:55px;

    padding:50px;

    border-radius:var(--radius);

    background:var(--navy);

    color:#fff;

}

/* =========================================================

   CONTACT / FORM

   ========================================================= */

.contact-list p{

    padding:13px 0;

    border-bottom:1px solid var(--line);

}

.form{

    padding:32px;

}

.form-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:18px;

}

.field.full{

    grid-column:1/-1;

}

.alert{

    padding:14px 18px;

    border-radius:10px;

    margin-bottom:18px;

}

.alert.success{

    background:#eaf8ee;

    color:#216333;

}

.alert.error{

    background:#fff0f0;

    color:#9d2828;

}

/* =========================================================

   MAP

   ========================================================= */

.hotel-location-section{

    padding-top:0;

}

.location-heading,

.map-bottom{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:24px;

}

.location-actions{

    display:flex;

    gap:10px;

}

.hotel-map-card{

    margin-top:30px;

}

.hotel-map-info{

    padding:24px;

    display:flex;

    gap:15px;

}

.hotel-map-frame iframe{

    width:100%;

    height:420px;

    border:0;

}

.map-bottom{

    padding:18px 24px;

}

/* =========================================================

   AVAILABILITY

   ========================================================= */

.availability-box{

    padding:28px;

    margin-bottom:30px;

}

.availability-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:14px;

}

.availability-grid > *{

    padding:18px;

    border-radius:12px;

    background:var(--soft);

}

.available{

    border-left:4px solid #36a269;

}

.unavailable{

    border-left:4px solid #c84a4a;

}

/* =========================================================

   BOOKING STRIP

   ========================================================= */

.booking-strip{

    padding:58px max(7vw,50px);

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:30px;

    background:linear-gradient(110deg,#c4ba00,#e0d800);

    color:#fff;

}

.booking-strip span{

    font-size:11px;

    font-weight:800;

    letter-spacing:3px;

}

.booking-strip h2{

    margin:8px 0 0;

}

.booking-strip .btn{

    background:#fff;

    color:var(--navy);

}

/* =========================================================

   FOOTER BASELINE

   Detailed visual footer remains controlled by footer.php

   ========================================================= */

.footer{

    background:var(--navy);

    color:#cbd3df;

}

.footer a{

    color:inherit;

}

.footer-logo-box{

    width:70px !important;

    height:70px !important;

    min-width:70px !important;

    max-width:70px !important;

    min-height:70px !important;

    max-height:70px !important;

    flex:0 0 70px !important;

    display:flex !important;

    align-items:center !important;

    justify-content:center !important;

    overflow:hidden !important;

    padding:6px !important;

    border-radius:14px !important;

    background:#fff !important;

    box-sizing:border-box !important;

}

.footer-logo-box img.footer-logo,

.footer-logo-box > img{

    position:static !important;

    display:block !important;

    width:58px !important;

    height:58px !important;

    min-width:0 !important;

    min-height:0 !important;

    max-width:58px !important;

    max-height:58px !important;

    object-fit:contain !important;

    margin:0 !important;

    padding:0 !important;

    transform:none !important;

}

/* =========================================================

   FLOATING BUTTONS

   ========================================================= */

.float-book,

.float-chat{

    position:fixed;

    z-index:950;

    bottom:16px;

    min-height:48px;

    padding:0 20px;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:12px;

    font-weight:900;

    border-radius:5px;

    box-shadow:0 10px 30px rgba(0,0,0,.16);

}

.float-book{

    right:16px;

    background:var(--gold);

    color:#fff;

    opacity:0;

    transform:translateY(20px);

    pointer-events:none;

    transition:.25s;

}

.float-book.show{

    opacity:1;

    transform:none;

    pointer-events:auto;

}

.float-chat{

    right:132px;

    background:#25d366;

    color:#fff;

}

/* =========================================================

   ANIMATIONS

   ========================================================= */

.reveal{

    opacity:0;

    transform:translateY(24px);

    transition:

        opacity .7s,

        transform .7s;

}

.reveal.visible{

    opacity:1;

    transform:none;

}

.stagger-item{

    transition:

        opacity .6s,

        transform .35s,

        box-shadow .35s;

}

/* =========================================================

   TABLET

   ========================================================= */

@media(max-width:1180px){

    .topbar{

        width:calc(100% - 30px);

    }

    .nav{

        gap:15px;

        font-size:12px;

    }

    .brand{

        min-width:auto;

    }

    .hero-copy,

    .page-slider-copy{

        left:7vw;

    }

    .hero-dots{

        left:7vw;

    }

    .room-grid,

    .grid,

    .service-grid,

    .menu-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

/* =========================================================

   MOBILE NAV / TABLET

   ========================================================= */

@media(max-width:900px){

    .topbar{

        top:10px;

        min-height:64px;

    }

    .nav-toggle{

        display:block;

    }

    .nav{

        display:none;

        position:absolute;

        top:70px;

        left:0;

        right:0;

        padding:18px;

        flex-direction:column;

        align-items:stretch;

        background:#fff;

        color:var(--ink);

        box-shadow:var(--shadow);

        border-radius:0 0 16px 16px;

    }

    .nav.open{

        display:flex;

    }

    .nav-book{

        justify-content:center;

    }

    .hero-slider{

        min-height:650px;

    }

    .page-slider{

        height:500px;

        min-height:500px;

    }

    .story,

    .restaurant-feature,

    .split{

        grid-template-columns:1fr;

        gap:35px;

    }

    .quick-book{

        display:grid;

        grid-template-columns:1fr 1fr;

    }

    .experience-grid{

        grid-template-columns:1fr;

    }

    .section{

        padding:70px 0;

    }

    .footer-shell{

        grid-template-columns:1fr !important;

    }

    .footer-photo{

        min-height:420px !important;

    }

}

/* =========================================================

   SMALL MOBILE

   ========================================================= */

@media(max-width:650px){

    .container{

        width:min(calc(100% - 30px),1180px);

    }

    .topbar{

        width:calc(100% - 20px);

        padding:8px 12px;

    }

    .topbar .brand{

        font-size:15px;

        min-width:0;

        max-width:220px;

    }

    html body header.topbar a.brand span.brand-logo-wrap,

    html body .topbar .brand .brand-logo-wrap{

        width:42px !important;

        height:42px !important;

        min-width:42px !important;

        max-width:42px !important;

        min-height:42px !important;

        max-height:42px !important;

        flex-basis:42px !important;

    }

    html body header.topbar a.brand span.brand-logo-wrap > img,

    html body header.topbar a.brand span.brand-logo-wrap > img.brand-logo,

    html body .topbar .brand .brand-logo-wrap > img,

    html body .topbar .brand .brand-logo-wrap > img.brand-logo{

        width:34px !important;

        height:34px !important;

        max-width:34px !important;

        max-height:34px !important;

    }

    .hero-slider{

        height:720px;

        min-height:620px;

    }

    .hero-copy,

    .page-slider-copy{

        left:28px;

        right:28px;

    }

    .hero-copy h1{

        font-size:52px;

    }

    .page-slider{

        height:450px;

        min-height:450px;

    }

    .page-slider .page-slider-copy{

        bottom:50px;

    }

    .page-slider .page-slider-copy h1{

        font-size:48px;

    }

    .hero-prev,

    .hero-next{

        width:42px;

        height:42px;

    }

    .hero-prev{

        left:10px;

    }

    .hero-next{

        right:10px;

    }

    .hero-dots{

        left:28px;

    }

    .quick-book{

        grid-template-columns:1fr;

        margin-top:-20px;

    }

    .room-grid,

    .grid,

    .service-grid,

    .menu-grid{

        grid-template-columns:1fr;

    }

    .section-head,

    .section-heading,

    .location-heading,

    .map-bottom,

    .booking-strip{

        align-items:flex-start;

        flex-direction:column;

    }

    .form-grid,

    .availability-grid{

        grid-template-columns:1fr;

    }

    .field.full{

        grid-column:auto;

    }

    .story-media,

    .restaurant-media,

    .visual{

        min-height:330px;

    }

    .feature-row{

        grid-template-columns:1fr;

    }

    .booking-strip{

        padding:45px 25px;

    }

    .footer-logo-box{

        width:58px !important;

        height:58px !important;

        min-width:58px !important;

        max-width:58px !important;

        min-height:58px !important;

        max-height:58px !important;

        flex-basis:58px !important;

    }

    .footer-logo-box img.footer-logo,

    .footer-logo-box > img{

        width:48px !important;

        height:48px !important;

        max-width:48px !important;

        max-height:48px !important;

    }

    .float-chat{

        right:16px;

        bottom:74px;

    }

    .gallery-grid{

        columns:1;

    }

    .footer-photo-content{

        left:25px !important;

        right:25px !important;

    }

}

/* =========================================================

   REDUCED MOTION

   ========================================================= */

@media(prefers-reduced-motion:reduce){

    *{

        scroll-behavior:auto !important;

        transition:none !important;

        animation:none !important;

    }

    .reveal{

        opacity:1;

        transform:none;

    }

}


/* Footer styles moved from footer.php to keep presentation in one stylesheet. */
/* ============================================================
   GK MY HALABA HOTEL
   FINAL PREMIUM FOOTER
============================================================ */

.footer-visual {

    padding: 0;

    background:
        linear-gradient(
            145deg,
            #071224 0%,
            #09152b 100%
        );

    color: #cbd3df;

    border-top: 0;

    overflow: hidden;
}


.footer-visual::before {
    display: none;
}


/* ============================================================
   MAIN GRID
============================================================ */

.footer-shell {

    display: grid;

    grid-template-columns:
        minmax(420px, .92fr)
        minmax(520px, 1.08fr);

    min-height: 520px;
}



/* ============================================================
   LEFT CONTENT
============================================================ */

.footer-info {

    padding:
        72px
        clamp(38px, 6vw, 100px);

    display: flex;

    flex-direction: column;

    justify-content: center;
}



/* ============================================================
   FOOTER BRAND
============================================================ */

.footer-branding {

    display: flex;

    align-items: center;

    gap: 16px;

    margin-bottom: 24px;
}


/*
|--------------------------------------------------------------------------
| IMPORTANT
| The wrapper controls the logo size.
|--------------------------------------------------------------------------
*/

.footer-logo-box {

    width: 70px !important;

    height: 70px !important;

    min-width: 70px !important;

    max-width: 70px !important;

    min-height: 70px !important;

    max-height: 70px !important;

    flex:
        0 0 70px;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;

    background: #ffffff;

    border-radius: 14px;

    padding: 6px;

    box-shadow:
        0 12px 35px
        rgba(0,0,0,.18);
}


.footer-logo-box .footer-logo {

    display: block !important;

    width: 100% !important;

    height: 100% !important;

    max-width: 58px !important;

    max-height: 58px !important;

    object-fit: contain !important;

    object-position: center !important;

    margin: 0 !important;

    padding: 0 !important;
}


.footer-logo-fallback {

    width: 62px;

    height: 62px;

    flex: 0 0 62px;

    border:
        1px solid
        rgba(255,255,255,.28);

    display: grid;

    place-items: center;

    font:
        700 24px
        Georgia,
        serif;

    color: #ffffff;

    border-radius: 12px;
}


.footer-brand {

    font-size: 25px;

    color: #ffffff;

    font-weight: 800;

    line-height: 1.1;
}


.footer-brand b {
    color: var(--gold);
}


.footer-branding small {

    display: block;

    margin-top: 7px;

    font-size: 9px;

    letter-spacing: 2.5px;

    color: #aeb8c8;
}



/* ============================================================
   ABOUT
============================================================ */

.footer-about-text {

    max-width: 600px;

    font-size: 16px;

    line-height: 1.8;

    margin:
        0
        0
        24px;

    color: #cbd3df;
}



/* ============================================================
   CONTACT
============================================================ */

.footer-contact-list p {

    display: flex;

    align-items: center;

    gap: 11px;

    margin:
        9px
        0;

    line-height: 1.5;
}


.footer-contact-icon {

    color: var(--gold);

    width: 18px;

    flex:
        0 0 18px;
}


.footer-contact-list a {

    display: inline;

    margin: 0;

    color: inherit;
}


.footer-contact-list a:hover {

    color: var(--gold);

    transform: none;
}



/* ============================================================
   NAVIGATION
============================================================ */

.footer-links {

    display: flex;

    flex-wrap: wrap;

    gap:
        8px
        22px;

    margin-top: 24px;
}


.footer-links a {

    margin: 0;

    font-size: 13px;

    color: #d7dde6;

    position: relative;
}


.footer-links a:hover {

    color: var(--gold);

    transform:
        translateY(-2px);
}



/* ============================================================
   SOCIAL MEDIA
============================================================ */

.footer-social {

    margin-top: 26px;
}


.footer .social-icon {

    width: 46px;

    height: 46px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    border:
        1px solid
        rgba(255,255,255,.20);

    border-radius: 50%;

    color: #ffffff;

    margin: 0;

    background:
        rgba(255,255,255,.035);

    transition:
        transform .25s ease,
        color .25s ease,
        border-color .25s ease,
        background .25s ease;
}


.footer .social-icon:hover {

    transform:
        translateY(-4px);

    color: var(--gold);

    border-color: var(--gold);

    background:
        rgba(255,255,255,.07);
}


.footer .social-icon svg {

    width: 22px !important;

    height: 22px !important;

    fill: currentColor;
}



/* ============================================================
   RIGHT HOTEL IMAGE
============================================================ */

.footer-photo {

    position: relative;

    min-height: 520px;

    background-size: cover;

    background-position: center;

    background-repeat: no-repeat;

    background-color: #14233a;

    overflow: hidden;
}


.footer-photo-shade {

    position: absolute;

    inset: 0;

    background:

        linear-gradient(
            90deg,
            rgba(7,18,36,.42),
            rgba(7,18,36,.05) 48%,
            rgba(7,18,36,.30)
        ),

        linear-gradient(
            0deg,
            rgba(7,18,36,.68),
            transparent 60%
        );
}



/* ============================================================
   FOOTER PHOTO TEXT
============================================================ */

.footer-photo-content {

    position: absolute;

    left: 54px;

    right: 54px;

    bottom: 52px;

    color: #ffffff;

    z-index: 2;
}


.footer-photo-content > span {

    font-size: 11px;

    font-weight: 800;

    letter-spacing: 3px;

    color: #f2dc66;
}


.footer-photo-content h3 {

    font:
        500
        clamp(30px,3vw,48px)/1.05
        Georgia,
        serif;

    margin:
        10px
        0
        24px;
}



/* ============================================================
   FOOTER CTA
============================================================ */

.footer-cta {

    display: inline-flex !important;

    align-items: center;

    justify-content: center;

    margin: 0 !important;

    padding:
        15px
        20px;

    background: var(--gold);

    color: #ffffff !important;

    font-size: 12px;

    font-weight: 800;

    letter-spacing: .4px;

    border-radius: 5px;

    box-shadow:
        0 12px 30px
        rgba(0,0,0,.16);

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}


.footer-cta:hover {

    transform:
        translateY(-3px) !important;

    box-shadow:
        0 17px 35px
        rgba(0,0,0,.22);
}



/* ============================================================
   NO FOOTER IMAGE PLACEHOLDER
============================================================ */

.footer-photo-placeholder {

    position: absolute;

    inset: 0;

    display: grid;

    place-content: center;

    text-align: center;

    gap: 8px;

    padding: 30px;

    color: #8d9aad;

    background:
        linear-gradient(
            135deg,
            #101f36,
            #1b3150
        );
}


.footer-photo-placeholder strong {

    color: #ffffff;

    letter-spacing: 3px;
}



/* ============================================================
   BOTTOM COPYRIGHT
============================================================ */

.footer-bottom {

    min-height: 70px;

    padding:
        0
        clamp(30px,6vw,100px);

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    border-top:
        1px solid
        rgba(255,255,255,.09);

    background:
        #071224;

    font-size: 12px;

    color: #aeb8c8;
}



/* ============================================================
   BOOKING STRIP
============================================================ */

.booking-strip .btn {

    background: #ffffff;

    color: var(--navy);
}



/* ============================================================
   TABLET
============================================================ */

@media (max-width: 1000px) {

    .footer-shell {

        grid-template-columns:
            1fr;
    }


    .footer-photo {

        min-height:
            420px;
    }


    .footer-info {

        padding:
            55px
            7vw;
    }

}



/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 600px) {

    .footer-photo {

        min-height:
            360px;
    }


    .footer-photo-content {

        left:
            25px;

        right:
            25px;

        bottom:
            30px;
    }


    .footer-info {

        padding:
            45px
            24px;
    }


    .footer-bottom {

        padding:
            20px
            24px;

        flex-direction:
            column;

        align-items:
            flex-start;
    }


    .footer-logo-box {

        width:
            58px !important;

        height:
            58px !important;

        min-width:
            58px !important;

        max-width:
            58px !important;

        min-height:
            58px !important;

        max-height:
            58px !important;

        flex-basis:
            58px;
    }


    .footer-logo-box .footer-logo {

        max-width:
            48px !important;

        max-height:
            48px !important;
    }

}


/* =========================================================
   FINAL UI CONSOLIDATION — HEADER, MOTION, CARDS
   One authoritative override layer for the public website.
   ========================================================= */

.topbar{
    position:absolute;
    z-index:1000;
    top:20px;
    left:clamp(18px,5vw,86px);
    right:clamp(18px,5vw,86px);
    width:auto;
    min-height:78px;
    padding:8px 18px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    color:#fff;
    background:rgba(7,18,36,.52);
    border:1px solid rgba(255,255,255,.16);
    border-radius:2px;
    -webkit-backdrop-filter:blur(12px) saturate(120%);
    backdrop-filter:blur(12px) saturate(120%);
    box-shadow:0 14px 36px rgba(0,0,0,.10);
    transition:.3s ease;
}

.topbar .brand{
    display:flex;
    align-items:center;
    flex:0 0 auto;
    min-width:0;
    margin:0;
    padding:0;
    text-decoration:none;
}

.topbar .brand .header-hotel-logo,
.topbar .header-hotel-logo{
    position:static !important;
    display:block !important;
    width:auto !important;
    height:62px !important;
    max-width:118px !important;
    max-height:62px !important;
    margin:0 !important;
    padding:0 !important;
    object-fit:contain !important;
    object-position:left center !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    filter:drop-shadow(0 2px 4px rgba(255,255,255,.10)) drop-shadow(0 5px 10px rgba(0,0,0,.16));
    transition:height .25s ease,transform .25s ease !important;
}

.topbar .brand:hover .header-hotel-logo{transform:translateY(-1px) !important}

.header-logo-fallback{width:50px;height:50px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.65);color:#fff;font:700 18px Georgia,serif}
.header-brand-fallback{display:flex;flex-direction:column;margin-left:10px;line-height:1.15}
.header-brand-fallback strong{font-size:14px;color:#fff}.header-brand-fallback small{margin-top:4px;font-size:8px;letter-spacing:1.5px;color:rgba(255,255,255,.7)}

.topbar .nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(13px,1.3vw,23px);margin-left:auto;font-size:13px;font-weight:700}
.topbar .nav>a{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0;color:#fff;text-decoration:none;white-space:nowrap;transition:color .22s ease,opacity .22s ease}
.topbar .nav>a:not(.nav-book)::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:2px;background:var(--gold);transition:right .22s ease}
.topbar .nav>a:not(.nav-book):hover::after,.topbar .nav>a:not(.nav-book).active::after{right:0}
.topbar .nav .lang{padding-left:15px;border-left:1px solid rgba(255,255,255,.20)}
.topbar .nav .nav-book{min-height:50px;padding:0 22px;margin-left:2px;background:var(--gold);color:#fff !important;border-radius:2px;font-weight:800;box-shadow:0 8px 20px rgba(0,0,0,.10)}
.topbar .nav .nav-book::after{display:none}.topbar .nav .nav-book:hover{background:var(--gold2);transform:translateY(-2px)}

.nav-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;flex:0 0 44px;padding:0;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);border-radius:3px;font-size:22px;cursor:pointer}

.topbar.scrolled{position:fixed;top:0;left:0;right:0;width:100%;min-height:68px;padding:5px clamp(18px,5vw,86px);background:rgba(7,18,36,.96);border:0;border-bottom:1px solid rgba(255,255,255,.09);box-shadow:0 10px 30px rgba(0,0,0,.20)}
.topbar.scrolled .brand .header-hotel-logo,.topbar.scrolled .header-hotel-logo{height:54px !important;max-height:54px !important;max-width:105px !important}

/* Hero refinement */
.hero-slider{isolation:isolate}
.hero-slide{transform:scale(1.025);transition:opacity .8s ease,visibility .8s ease,transform 6.5s ease}
.hero-slide.active{transform:scale(1)}
.hero-shade{background:linear-gradient(90deg,rgba(5,12,27,.78) 0%,rgba(5,12,27,.50) 42%,rgba(5,12,27,.18) 72%,rgba(5,12,27,.30) 100%)}
.hero-copy,.page-slider-copy{z-index:4}
.hero-copy h1,.page-slider-copy h1{text-wrap:balance;text-shadow:0 8px 30px rgba(0,0,0,.22)}

/* Premium cards without excessive motion */
.room-card,.card,.service-card,.menu-card,.availability-box,.faq-item{border-radius:18px;overflow:hidden;transition:transform .32s ease,box-shadow .32s ease,border-color .32s ease}
.room-card:hover,.card:hover,.service-card:hover,.menu-card:hover{transform:translateY(-6px);box-shadow:0 24px 55px rgba(9,20,48,.14)}
.room-card img,.card img,.gallery-item img,.menu-card img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.room-card:hover img,.card:hover img,.gallery-item:hover img,.menu-card:hover img{transform:scale(1.045)}
.stagger-item{transition-delay:var(--stagger,0ms)}

/* Gallery polish */
.gallery-item{position:relative;border-radius:18px;overflow:hidden;box-shadow:0 14px 34px rgba(9,20,48,.10)}
.gallery-item::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,rgba(7,18,36,.28),transparent 45%);opacity:.35;transition:opacity .3s ease}
.gallery-item:hover::after{opacity:.12}

/* Forms */
.form,.availability-box,.hotel-map-card{border-radius:20px;box-shadow:0 18px 50px rgba(9,20,48,.08)}
input,select,textarea{transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(212,191,0,.85);box-shadow:0 0 0 4px rgba(212,191,0,.12)}

@media(max-width:1180px){
    .topbar{left:24px;right:24px;gap:16px;padding-left:14px;padding-right:14px}
    .topbar .brand .header-hotel-logo,.topbar .header-hotel-logo{height:56px !important;max-height:56px !important;max-width:105px !important}
    .topbar .nav{gap:12px;font-size:12px}.topbar .nav .nav-book{padding:0 16px}
}

@media(max-width:980px){
    .topbar,.topbar.scrolled{top:10px;left:14px;right:14px;width:auto;min-height:66px;padding:5px 12px}
    .topbar.scrolled{position:fixed;background:rgba(7,18,36,.98)}
    .topbar .brand .header-hotel-logo,.topbar .header-hotel-logo,.topbar.scrolled .brand .header-hotel-logo,.topbar.scrolled .header-hotel-logo{height:52px !important;max-height:52px !important;max-width:98px !important}
    .nav-toggle{display:flex;margin-left:auto}
    .topbar .nav{display:none;position:absolute;top:calc(100% + 7px);left:0;right:0;height:auto;margin:0;padding:12px;flex-direction:column;align-items:stretch;gap:0;background:rgba(7,18,36,.985);border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 50px rgba(0,0,0,.30);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
    .topbar .nav.open{display:flex}
    .topbar .nav>a{width:100%;min-height:0;padding:13px 12px;justify-content:flex-start;border-bottom:1px solid rgba(255,255,255,.08)}
    .topbar .nav>a:not(.nav-book)::after{display:none}.topbar .nav>a:not(.nav-book):hover,.topbar .nav>a:not(.nav-book).active{color:var(--gold)}
    .topbar .nav .lang{padding-left:12px;border-left:0}.topbar .nav .nav-book{min-height:50px;margin:10px 0 0;justify-content:center;border-bottom:0}
}

@media(max-width:650px){
    .topbar,.topbar.scrolled{left:9px;right:9px;top:8px;min-height:62px;padding:4px 10px}
    .topbar .brand .header-hotel-logo,.topbar .header-hotel-logo,.topbar.scrolled .brand .header-hotel-logo,.topbar.scrolled .header-hotel-logo{height:48px !important;max-height:48px !important;max-width:90px !important}
    .hero-copy{left:28px;right:28px}.hero-copy h1{font-size:clamp(44px,14vw,68px)}
    .page-slider-copy{left:28px;right:28px}
}

@media(prefers-reduced-motion:reduce){
    .hero-slide,.room-card,.card,.service-card,.menu-card,.gallery-item,.room-card img,.card img,.gallery-item img,.menu-card img{transition:none !important;transform:none !important}
}


/* =========================================================
   GK MY HOME / HEADER FINAL PASS — 2026-09-30
   ========================================================= */

/* Transparent navigation over hero; white sticky navigation after scroll. */
.topbar{
    position:absolute !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    min-height:94px !important;
    padding:12px clamp(24px,6vw,116px) !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
}
.topbar .brand .header-hotel-logo,.topbar .header-hotel-logo{
    width:auto !important;height:70px !important;max-width:154px !important;max-height:70px !important;
    filter:drop-shadow(0 5px 12px rgba(0,0,0,.22)) !important;
}
.topbar.scrolled{
    position:fixed !important;top:0 !important;left:0 !important;right:0 !important;width:100% !important;
    min-height:76px !important;padding:6px clamp(24px,6vw,116px) !important;
    background:rgba(255,255,255,.97) !important;border:0 !important;border-bottom:1px solid rgba(7,18,36,.08) !important;
    box-shadow:0 12px 34px rgba(7,18,36,.10) !important;
    -webkit-backdrop-filter:blur(14px) !important;backdrop-filter:blur(14px) !important;
}
.topbar.scrolled .nav>a:not(.nav-book){color:var(--navy) !important}
.topbar.scrolled .nav .lang{border-left-color:rgba(7,18,36,.15) !important}
.topbar.scrolled .nav-toggle{color:var(--navy) !important;border-color:rgba(7,18,36,.15) !important;background:rgba(7,18,36,.04) !important}
.topbar.scrolled .brand .header-hotel-logo,.topbar.scrolled .header-hotel-logo{height:58px !important;max-height:58px !important;max-width:132px !important}

/* Hero: automatic slider only. No arrows and no dots. */
.hero-prev,.hero-next,.hero-dots{display:none !important}
.hero-slider{min-height:100svh}
.hero-shade{background:linear-gradient(90deg,rgba(5,12,27,.76) 0%,rgba(5,12,27,.47) 42%,rgba(5,12,27,.12) 74%,rgba(5,12,27,.22) 100%) !important}

/* Animated real scroll control. */
.scroll-cue{
    position:absolute !important;z-index:12;left:50% !important;bottom:26px !important;transform:translateX(-50%) !important;
    appearance:none;border:0;background:transparent;padding:8px 14px;color:#fff;cursor:pointer;
    display:flex !important;flex-direction:column;align-items:center;gap:5px;opacity:.92;
}
.scroll-cue span{font-size:10px;font-weight:800;letter-spacing:3px}
.scroll-cue i{font-style:normal;font-size:25px;line-height:1;animation:gkScrollBounce 1.25s ease-in-out infinite}
@keyframes gkScrollBounce{0%,100%{transform:translateY(0);opacity:.45}50%{transform:translateY(10px);opacity:1}}

/* Home no longer contains the large booking form, reviews, wedding/event promo, room cards or dining preview. */
.quick-book,.home-reviews,.guest-reviews,.reviews-section,.wedding-section,.weddings-section,.events-promo{display:none !important}

.home-intro{
    width:min(1180px,calc(100% - 48px));margin:0 auto;padding:100px 0 86px;
    display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.8fr);gap:clamp(48px,8vw,120px);align-items:end;
}
.home-intro h2{margin:12px 0 0;font:700 clamp(42px,5vw,72px)/.98 Georgia,serif;color:var(--ink);letter-spacing:-1.8px}
.home-intro-text p{margin:0 0 26px;color:var(--muted);font-size:18px;line-height:1.8}

.experience{margin:0 !important;padding:88px max(24px,calc((100% - 1180px)/2)) !important;background:var(--navy) !important;color:#fff}
.experience-title{max-width:720px;margin-bottom:50px}
.experience-title h2{margin:10px 0 0;font:700 clamp(38px,4.5vw,64px)/1.03 Georgia,serif;color:#fff}
.experience-grid{gap:0 !important;border-top:1px solid rgba(255,255,255,.18)}
.experience-grid article{padding:34px 34px 18px 0 !important;background:transparent !important;border:0 !important;border-right:1px solid rgba(255,255,255,.14) !important;border-radius:0 !important;box-shadow:none !important}
.experience-grid article+article{padding-left:34px !important}
.experience-grid article:last-child{border-right:0 !important}
.experience-grid article:hover{transform:translateY(-4px) !important}
.experience-grid b{color:var(--gold)}
.experience-grid h3{color:#fff;font-size:24px}
.experience-grid p{color:rgba(255,255,255,.68);line-height:1.7}

.home-paths{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:84px 0;display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}
.home-paths a{min-height:150px;padding:26px 24px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;gap:18px;color:var(--ink);text-decoration:none;border-left:1px solid var(--line);transition:background .25s ease,transform .25s ease}
.home-paths a:last-child{border-right:1px solid var(--line)}
.home-paths a:hover{background:var(--soft);transform:translateY(-5px)}
.home-paths span{grid-column:1/-1;color:var(--muted);font-size:12px;letter-spacing:2px}
.home-paths strong{align-self:end;font:700 22px/1.15 Georgia,serif}
.home-paths i{align-self:end;font-style:normal;font-size:24px;color:var(--gold2)}

.home-reserve{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:94px 0 105px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:60px;align-items:end}
.home-reserve h2{margin:10px 0 18px;font:700 clamp(40px,5vw,66px)/1 Georgia,serif;color:var(--ink)}
.home-reserve p{max-width:760px;margin:0;color:var(--muted);font-size:17px;line-height:1.75}
.home-reserve-actions{display:flex;flex-direction:column;align-items:flex-start;gap:20px;min-width:220px}

@media(max-width:980px){
    .topbar,.topbar.scrolled{left:0 !important;right:0 !important;top:0 !important;width:100% !important;padding:7px 18px !important}
    .topbar .nav{top:100% !important;border:0 !important;border-radius:0 !important}
    .topbar:not(.scrolled) .nav{background:rgba(7,18,36,.98) !important}
    .topbar.scrolled .nav{background:rgba(255,255,255,.99) !important;box-shadow:0 18px 40px rgba(7,18,36,.12) !important}
    .topbar.scrolled .nav>a{color:var(--navy) !important;border-bottom-color:rgba(7,18,36,.08) !important}
    .home-intro{grid-template-columns:1fr;padding:78px 0 68px;gap:30px}
    .home-paths{grid-template-columns:1fr 1fr}
    .home-paths a:nth-child(3){border-top:1px solid var(--line)}
    .home-paths a:nth-child(4){border-top:1px solid var(--line);border-right:1px solid var(--line)}
    .home-reserve{grid-template-columns:1fr;gap:34px;padding:74px 0 82px}
}
@media(max-width:650px){
    .topbar,.topbar.scrolled{min-height:66px !important;padding:5px 12px !important}
    .topbar .brand .header-hotel-logo,.topbar .header-hotel-logo,.topbar.scrolled .brand .header-hotel-logo,.topbar.scrolled .header-hotel-logo{height:52px !important;max-height:52px !important;max-width:116px !important}
    .hero-copy{left:24px !important;right:24px !important}
    .scroll-cue{bottom:18px !important}
    .home-intro,.home-paths,.home-reserve{width:calc(100% - 36px)}
    .home-intro{padding:62px 0 56px}.home-intro h2{font-size:42px}.home-intro-text p{font-size:16px}
    .experience{padding:64px 20px !important}.experience-grid{grid-template-columns:1fr !important}.experience-grid article,.experience-grid article+article{padding:26px 0 !important;border-right:0 !important;border-bottom:1px solid rgba(255,255,255,.14) !important}.experience-grid article:last-child{border-bottom:0 !important}
    .home-paths{grid-template-columns:1fr;padding:54px 0}.home-paths a,.home-paths a:nth-child(3),.home-paths a:nth-child(4){border:0;border-top:1px solid var(--line)}.home-paths a:last-child{border-bottom:1px solid var(--line)}
    .home-reserve{padding:58px 0 72px}.home-reserve h2{font-size:42px}.home-reserve-actions{width:100%}.home-reserve-actions .btn{width:100%;text-align:center}
}
@media(prefers-reduced-motion:reduce){.scroll-cue i{animation:none}}

/* =========================================================
   V16 — INNER PAGE FINISHING PASS
   Home-approved navy / lime / white visual system
========================================================= */
:root{--lime:#d7e600;--lime2:#c8d900}
.page-reservation .float-book,.page-manage-booking .float-book{display:none!important}
.page-reservation .float-chat,.page-manage-booking .float-chat{right:18px;bottom:18px}

.reservation-section{background:#f7f8fb;padding:88px 0 105px}
.reservation-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);gap:34px;align-items:start}
.reservation-main{background:#fff;border:1px solid var(--line);padding:42px;border-radius:22px;box-shadow:0 24px 60px rgba(7,18,36,.08)}
.reservation-main>h2,.payment-panel h2,.manage-booking-copy h2{font:700 clamp(34px,4vw,54px)/1.04 Georgia,serif;color:var(--ink);margin:10px 0 16px}
.reservation-lead{color:var(--muted);line-height:1.75;max-width:720px;margin:0 0 28px}
.reservation-form{box-shadow:none!important;border:0!important;padding:0!important;background:transparent!important}
.reservation-form .form-grid{gap:20px}
.reservation-form .field label{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.reservation-form input,.reservation-form select,.reservation-form textarea,.booking-lookup-card input{border:1px solid #dfe3ea!important;border-radius:10px!important;background:#fff!important;min-height:52px;padding:13px 15px;font:inherit;color:var(--ink);width:100%}
.reservation-form textarea{min-height:112px;resize:vertical}
.reservation-form input:focus,.reservation-form select:focus,.reservation-form textarea:focus,.booking-lookup-card input:focus{outline:3px solid rgba(215,230,0,.22);border-color:#aeb900!important}
.availability-box.compact{margin:0 0 28px;padding:20px;border-radius:14px;background:#f8f9f2;border:1px solid #e3e8b9;box-shadow:none}
.availability-box.compact>.availability-grid{margin-top:14px}
.payment-panel{position:sticky;top:105px;background:var(--navy);color:#fff;padding:38px;border-radius:22px;box-shadow:0 26px 60px rgba(7,18,36,.18)}
.payment-panel .payment-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--lime);color:var(--navy);font-size:26px;margin-bottom:22px}
.payment-panel .eyebrow{color:var(--lime)}.payment-panel h2{color:#fff;font-size:34px}.payment-panel>p{color:rgba(255,255,255,.68);line-height:1.7}
.sample-badge{display:inline-flex;margin:8px 0 18px;padding:7px 10px;border:1px solid rgba(215,230,0,.45);border-radius:999px;color:var(--lime);font-size:10px;font-weight:900;letter-spacing:.12em}
.bank-card{padding:20px;margin:0 0 14px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);border-radius:14px;display:grid;gap:7px}.bank-card small{color:var(--lime);font-weight:800}.bank-card strong{font-size:16px}.bank-card span{font-family:ui-monospace,monospace;letter-spacing:.08em;color:rgba(255,255,255,.76)}
.payment-reference,.payment-deadline,.payment-note{margin-top:18px;padding:18px;border-radius:14px;background:rgba(215,230,0,.1);border:1px solid rgba(215,230,0,.28)}.payment-reference{display:grid;gap:6px}.payment-reference small,.payment-deadline small{color:rgba(255,255,255,.64)}.payment-reference strong{font-size:22px;color:var(--lime);letter-spacing:.05em}.payment-reference p{margin:0;color:rgba(255,255,255,.72)}.payment-deadline{display:grid;gap:7px}.payment-deadline span{color:var(--lime);font-weight:800}.payment-note{color:rgba(255,255,255,.72);line-height:1.6}.secure-note{margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.62);font-size:13px}

.about-story{background:#fff}.about-principles{padding:92px 0 105px;background:var(--navy);color:#fff}.about-principles .eyebrow{color:var(--lime)}.about-principles .section-heading h2{color:#fff;font:700 clamp(38px,4.5vw,62px)/1 Georgia,serif}.principle-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:48px;border-top:1px solid rgba(255,255,255,.18)}.principle-grid article{padding:34px 34px 12px 0;border-right:1px solid rgba(255,255,255,.14)}.principle-grid article+article{padding-left:34px}.principle-grid article:last-child{border-right:0}.principle-grid b{color:var(--lime)}.principle-grid h3{font:700 26px Georgia,serif;color:#fff;margin:12px 0 18px}.principle-grid p,.principle-grid li{color:rgba(255,255,255,.7);line-height:1.75}.principle-grid ul{padding-left:18px;margin:0}

.restaurant-menu-section{background:#f8f8f5!important}.restaurant-menu-section .section-heading p{color:var(--muted)}.menu-tools{position:sticky;top:86px;z-index:30;background:rgba(248,248,245,.96);backdrop-filter:blur(12px);padding:14px 0 20px;margin-bottom:34px;border-bottom:1px solid var(--line)}.menu-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:8px}.menu-tabs button{white-space:nowrap;border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 15px;border-radius:999px;font-weight:800;cursor:pointer}.menu-tabs button.active,.menu-tabs button:hover{background:var(--navy);border-color:var(--navy);color:#fff}.menu-tools input{width:100%;min-height:50px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 16px;font:inherit}.menu-category{margin:0 0 52px!important}.menu-category h3{font:700 30px Georgia,serif;color:var(--ink);margin-bottom:22px}.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px!important}.menu-card{display:grid!important;grid-template-columns:132px 1fr;min-height:150px;background:#fff!important;border:1px solid var(--line)!important;box-shadow:0 12px 30px rgba(7,18,36,.05)!important}.menu-card img,.menu-image-placeholder{width:132px!important;height:100%!important;min-height:150px;object-fit:cover;border-radius:0!important}.menu-image-placeholder{display:grid;place-items:center;background:#f2f3e5;color:#aeba00;font-size:28px}.menu-card-body{padding:22px!important}.menu-title-row strong{color:var(--navy)!important;background:var(--lime);padding:7px 10px;border-radius:8px;font-size:13px}.menu-card[hidden],.menu-category[hidden]{display:none!important}

.manage-booking-section{background:#f7f8fb;padding:90px 0 110px}.manage-booking-shell{display:grid;grid-template-columns:.72fr 1.28fr;gap:80px;align-items:start;max-width:1100px}.manage-booking-copy{padding-top:22px}.manage-booking-copy p{color:var(--muted);line-height:1.75}.booking-lookup-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:38px;box-shadow:0 24px 60px rgba(7,18,36,.08)}.booking-result{margin-top:30px;padding-top:28px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:22px}.booking-result>div{display:grid;gap:5px}.booking-result small{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.status-pill{display:inline-flex;width:max-content;padding:6px 10px;border-radius:999px;background:#f0f4c7;color:#536000;font-size:12px}.cancel-booking{grid-column:1/-1}.text-danger{border:0;background:transparent;color:#a32626;font-weight:800;padding:0;cursor:pointer}

@media(max-width:980px){.reservation-layout,.manage-booking-shell{grid-template-columns:1fr}.payment-panel{position:relative;top:auto}.principle-grid{grid-template-columns:1fr}.principle-grid article,.principle-grid article+article{padding:26px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}.principle-grid article:last-child{border-bottom:0}.menu-grid{grid-template-columns:1fr!important}.menu-tools{top:66px}}
@media(max-width:650px){.reservation-section,.manage-booking-section,.about-principles{padding:58px 0 72px}.reservation-main,.payment-panel,.booking-lookup-card{padding:24px;border-radius:16px}.reservation-main>h2,.payment-panel h2,.manage-booking-copy h2{font-size:36px}.menu-card{grid-template-columns:96px 1fr}.menu-card img,.menu-image-placeholder{width:96px!important;min-height:132px}.menu-card-body{padding:16px!important}.booking-result{grid-template-columns:1fr}.float-chat{display:none!important}}

/* FINAL COMPLETION PASS — unified premium public UI */
:root{--premium:#071224;--premium2:#10284b;--accent:#c9a227;--lime:#66cf16;--paper:#fff;--soft:#f5f7fb}
.section{padding:86px 0}.container{width:min(1180px,calc(100% - 40px));margin-inline:auto}.section.soft{background:linear-gradient(135deg,#eef8ff 0%,#f4efff 52%,#effaf3 100%)}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.service-card{min-height:210px;padding:30px;border:1px solid rgba(7,18,36,.08);border-radius:22px;background:#fff;box-shadow:0 18px 44px rgba(7,18,36,.08);transition:.3s transform,.3s box-shadow}.service-card:hover{transform:translateY(-7px);box-shadow:0 26px 54px rgba(7,18,36,.13)}
.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.gallery-item{grid-column:span 4;min-height:290px;border-radius:20px;overflow:hidden;position:relative;background:#e8edf4}.gallery-item:nth-child(5n+1),.gallery-item:nth-child(5n+2){grid-column:span 6}.gallery-item img{width:100%;height:100%;min-height:290px;object-fit:cover;transition:transform .55s ease}.gallery-item:hover img{transform:scale(1.045)}.gallery-item>div{position:absolute;inset:auto 0 0;padding:45px 20px 18px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;font-weight:700}
.about-story .split,.page-contact .split{align-items:center;gap:56px}.about-story .visual img{min-height:440px;object-fit:cover;border-radius:24px}.principle-grid{gap:0}.principle-grid article{min-height:310px}
.page-contact .section.soft .split{display:grid;grid-template-columns:.85fr 1.15fr}.page-contact .contact-list{display:grid;gap:12px;margin-top:28px}.page-contact .contact-list>div{padding:18px 20px;border-radius:16px;background:rgba(255,255,255,.72);border:1px solid rgba(7,18,36,.08)}.page-contact form{background:#fff;padding:30px;border-radius:22px;box-shadow:0 24px 60px rgba(7,18,36,.1)}
.restaurant-menu-section{background:#fffaf0}.menu-tools{border-radius:18px}.menu-card{border-radius:20px!important;box-shadow:0 15px 38px rgba(7,18,36,.08)!important;transition:.28s transform,.28s box-shadow}.menu-card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(7,18,36,.13)!important}
.page-rooms .grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.page-rooms .card{border-radius:22px;overflow:hidden;box-shadow:0 18px 48px rgba(7,18,36,.09);transition:.3s transform,.3s box-shadow}.page-rooms .card:hover{transform:translateY(-7px);box-shadow:0 26px 58px rgba(7,18,36,.15)}
.bank-selector{display:grid;gap:14px;margin-top:22px}.bank-card{appearance:none;width:100%;display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:18px;text-align:left;padding:18px;border:1px solid rgba(255,255,255,.15);border-radius:18px;background:rgba(255,255,255,.07);color:#fff;cursor:pointer;transition:transform .3s ease,background .3s,border-color .3s,box-shadow .3s}.bank-card:hover{transform:translateY(-3px);background:rgba(255,255,255,.11)}.bank-card.active{transform:translateY(-4px) scale(1.012);border-color:var(--lime);background:rgba(102,207,22,.12);box-shadow:0 16px 38px rgba(0,0,0,.22),0 0 0 2px rgba(102,207,22,.12)}.bank-logo-wrap{width:90px;height:64px;display:grid;place-items:center;background:#fff;border-radius:12px;overflow:hidden;padding:5px}.bank-logo-wrap img{width:100%;height:100%;object-fit:contain}.bank-card-copy{display:grid;gap:5px}.bank-card-copy small{font-weight:800;font-size:15px}.bank-card-copy strong{font-size:14px}.bank-card-copy>span{color:rgba(255,255,255,.74)}.bank-actions{display:grid;justify-items:end;gap:8px}.bank-selected{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--lime);opacity:0}.bank-card.active .bank-selected{opacity:1}.copy-account{padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.1);font-size:12px;font-weight:800}.copy-account:hover{background:#fff;color:var(--premium)}
.float-book,.float-chat{z-index:80}.float-book{right:24px;bottom:22px}.float-chat{right:155px;bottom:22px}.concierge-launch{position:fixed;right:155px;bottom:22px;z-index:82;border:0;border-radius:12px;padding:13px 18px;background:#00b98b;color:#fff;font-weight:800;box-shadow:0 12px 30px rgba(0,0,0,.18);cursor:pointer}.concierge-modal{position:fixed;inset:0;z-index:200;display:none;align-items:flex-end;justify-content:flex-end;padding:24px;background:rgba(7,18,36,.3);backdrop-filter:blur(4px)}.concierge-modal.open{display:flex}.concierge-panel{width:min(410px,100%);max-height:min(690px,calc(100vh - 48px));overflow:auto;background:#fff;border-radius:22px;box-shadow:0 30px 80px rgba(7,18,36,.3)}.concierge-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:20px 22px;background:var(--premium);color:#fff}.concierge-head button{border:0;background:rgba(255,255,255,.12);color:#fff;width:34px;height:34px;border-radius:50%;font-size:20px;cursor:pointer}.concierge-body{padding:22px}.concierge-body p{color:#5f6876;line-height:1.6}.concierge-form{display:grid;gap:12px}.concierge-form input,.concierge-form textarea{width:100%;padding:13px 14px;border:1px solid #dce2eb;border-radius:12px;font:inherit}.concierge-form textarea{min-height:110px;resize:vertical}.concierge-form button{padding:14px;border:0;border-radius:12px;background:var(--premium);color:#fff;font-weight:800;cursor:pointer}.concierge-file{padding:12px;border:1px dashed #cbd3df;border-radius:12px;background:#f8fafc}
@media(max-width:980px){.service-grid,.page-rooms .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-item,.gallery-item:nth-child(n){grid-column:span 6}.page-contact .section.soft .split{grid-template-columns:1fr}.concierge-launch{right:140px}}
@media(max-width:650px){.section{padding:60px 0}.container{width:min(100% - 26px,1180px)}.service-grid,.page-rooms .grid{grid-template-columns:1fr}.gallery-grid{gap:12px}.gallery-item,.gallery-item:nth-child(n){grid-column:1/-1;min-height:240px}.bank-card{grid-template-columns:72px 1fr;padding:14px}.bank-logo-wrap{width:72px;height:54px}.bank-actions{grid-column:1/-1;display:flex;justify-content:flex-end}.float-book{right:12px;bottom:12px}.float-chat{display:none!important}.concierge-launch{right:auto;left:12px;bottom:12px;padding:12px 14px}.concierge-modal{padding:0;align-items:stretch}.concierge-panel{width:100%;max-height:none;height:100%;border-radius:0}.page-contact form{padding:20px}}
.booking-modify-form{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding-top:18px;border-top:1px solid #e5e9f0}.booking-modify-form label{display:grid;gap:6px;font-size:12px;font-weight:800}.booking-modify-form input{padding:11px;border:1px solid #dbe1ea;border-radius:10px}.booking-modify-form button{grid-column:1/-1;justify-self:start}.cancel-booking{grid-column:1/-1}
@media(max-width:650px){.booking-modify-form{grid-template-columns:1fr 1fr}}
.booking-modify-form{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding-top:18px;border-top:1px solid #e5e9f0}.booking-modify-form label{display:grid;gap:6px;font-size:12px;font-weight:800}.booking-modify-form input{padding:11px;border:1px solid #dbe1ea;border-radius:10px}.booking-modify-form button{grid-column:1/-1;justify-self:start}.cancel-booking{grid-column:1/-1}@media(max-width:650px){.booking-modify-form{grid-template-columns:1fr 1fr}}


/* =========================================================
   FINAL MOTION + CONTACT BALANCE PASS
   Elegant page-entry and scroll reveal on every public page.
========================================================= */
.motion-ready .motion-item{
    opacity:0;
    transform:translate3d(0,30px,0);
    filter:blur(3px);
    transition:opacity .72s ease,transform .82s cubic-bezier(.22,1,.36,1),filter .72s ease;
    transition-delay:var(--motion-delay,0ms);
    will-change:opacity,transform;
}
.motion-ready .motion-item.motion-left{transform:translate3d(-34px,0,0)}
.motion-ready .motion-item.motion-right{transform:translate3d(34px,0,0)}
.motion-ready .motion-item.motion-scale{transform:translate3d(0,18px,0) scale(.975)}
.motion-ready .motion-item.motion-visible{
    opacity:1;
    transform:translate3d(0,0,0) scale(1);
    filter:blur(0);
}
/* Hero copy is sequenced every time a page opens. */
.motion-ready .page-slider-copy .eyebrow,
.motion-ready .page-slider-copy h1,
.motion-ready .page-slider-copy p,
.motion-ready .hero-copy .eyebrow,
.motion-ready .hero-copy h1,
.motion-ready .hero-copy p,
.motion-ready .hero-copy .hero-actions{
    opacity:0;
    transform:translateY(26px);
    filter:blur(3px);
    animation:premiumTextIn .78s cubic-bezier(.22,1,.36,1) forwards;
}
.motion-ready .page-slider-copy h1,.motion-ready .hero-copy h1{animation-delay:.12s}
.motion-ready .page-slider-copy p,.motion-ready .hero-copy p{animation-delay:.24s}
.motion-ready .hero-copy .hero-actions{animation-delay:.34s}
@keyframes premiumTextIn{to{opacity:1;transform:translateY(0);filter:blur(0)}}

/* Contact page: balanced information + form, then a full-width map below. */
.page-contact .section.soft{padding:82px 0 92px}
.page-contact .section.soft .split{grid-template-columns:minmax(300px,.82fr) minmax(520px,1.18fr);gap:34px;align-items:stretch}
.page-contact .section.soft .split>div:first-child,
.page-contact .section.soft form{
    height:100%;
    border-radius:24px;
    border:1px solid rgba(7,18,36,.08);
    box-shadow:0 22px 55px rgba(7,18,36,.08);
}
.page-contact .section.soft .split>div:first-child{background:rgba(255,255,255,.88);padding:34px}
.page-contact .section.soft form{padding:34px}
.page-contact .contact-list>div{background:#f8fafc}
.page-contact .form-grid{gap:18px}
.page-contact .field input,.page-contact .field textarea,.page-contact .field select{border-radius:11px}
.page-contact .field .btn{width:100%;min-height:50px}
.page-contact .hotel-location-section{padding-top:76px}
.page-contact .hotel-map-frame iframe{display:block;min-height:420px}

/* Prevent fixed actions from covering page content. */
body{padding-bottom:0}
.float-book,.float-chat,.concierge-launch{max-width:calc(100vw - 24px)}

@media(max-width:980px){
  .page-contact .section.soft .split{grid-template-columns:1fr;gap:24px}
  .page-contact .section.soft .split>div:first-child,.page-contact .section.soft form{padding:28px}
}
@media(max-width:650px){
  .motion-ready .motion-item{transform:translate3d(0,20px,0);filter:none;transition-duration:.58s}
  .page-contact .section.soft{padding:56px 0 66px}
  .page-contact .section.soft .split>div:first-child,.page-contact .section.soft form{padding:20px;border-radius:18px}
  .page-contact .hotel-map-frame iframe{min-height:340px;height:340px}
  .location-heading{align-items:flex-start}
}
@media(prefers-reduced-motion:reduce){
  .motion-ready .motion-item,
  .motion-ready .page-slider-copy .eyebrow,.motion-ready .page-slider-copy h1,.motion-ready .page-slider-copy p,
  .motion-ready .hero-copy .eyebrow,.motion-ready .hero-copy h1,.motion-ready .hero-copy p,.motion-ready .hero-copy .hero-actions{
      opacity:1!important;transform:none!important;filter:none!important;animation:none!important;transition:none!important;
  }
}

/* FINAL ROOMS FILTER + CENTERED PUBLIC HERO + CONCIERGE LABEL */
.page-slider .page-slider-copy{left:50%!important;right:auto!important;top:50%!important;bottom:auto!important;transform:translate(-50%,-42%)!important;width:min(1180px,calc(100% - 48px));max-width:1180px;text-align:center!important;margin:0 auto}
.page-slider .page-slider-copy p{max-width:900px;margin:0 auto!important}
.concierge-launch{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:190px;line-height:1.1}
.concierge-launch-title{font-size:13px;font-weight:900}.concierge-launch-sub{font-size:11px;font-weight:700;opacity:.9;text-transform:none;letter-spacing:.02em}
.room-filter-bar{position:relative;display:grid;grid-template-columns:1.15fr .72fr 1.08fr .85fr auto;gap:18px;align-items:end;padding:24px 28px;margin:0 0 30px;background:#fff;border-radius:20px;box-shadow:0 18px 50px rgba(7,18,36,.09)}
.room-filter-group{position:relative;display:grid;gap:9px}.room-filter-group>label{font-size:13px;font-weight:800;color:#5b5d65}.room-filter-group input,.room-filter-group select,.date-filter-btn{width:100%;height:50px;border:1px solid #dce1e8;border-radius:9px;background:#fff;padding:0 14px;font:inherit;color:#30323a}.price-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.date-filter-btn{border:2px solid #7287ff;color:#7186ff;font-weight:800;cursor:pointer}.compare-filter-btn{height:50px;border:0;border-radius:9px;padding:0 22px;background:#58bb91;color:#fff;font-weight:900;font-size:15px;cursor:pointer}.date-popover{position:absolute;z-index:25;top:calc(100% + 10px);right:0;width:300px;padding:16px;background:#fff;border:1px solid #e0e4ea;border-radius:14px;box-shadow:0 18px 45px rgba(7,18,36,.18)}.date-popover label{display:grid;gap:5px;margin-bottom:10px;font-size:12px;font-weight:800}.date-popover input{height:42px}.room-card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.compare-check{white-space:nowrap;font-size:12px;font-weight:800;color:#566}.compare-check input{accent-color:var(--gold)}.room-filter-empty{padding:22px;margin-bottom:25px;border-radius:14px;background:#fff7db;text-align:center;font-weight:800}.room-compare-panel{margin:0 0 28px;padding:22px;background:#fff;border-radius:18px;box-shadow:0 18px 50px rgba(7,18,36,.1)}.room-compare-head{display:flex;align-items:center;justify-content:space-between}.room-compare-head button{border:0;background:#eef1f6;width:36px;height:36px;border-radius:50%;font-size:22px;cursor:pointer}.room-compare-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}.compare-mini{padding:18px;border:1px solid #e3e7ee;border-radius:14px}.compare-mini h3{margin:0 0 8px}.compare-mini strong{display:block;margin-top:10px;color:var(--gold)}
@media(max-width:1050px){.room-filter-bar{grid-template-columns:1fr 1fr}.compare-filter-btn{width:100%}.date-popover{left:0;right:auto}.page-slider .page-slider-copy{width:min(900px,calc(100% - 36px))}}
@media(max-width:650px){.page-slider .page-slider-copy{width:calc(100% - 28px);transform:translate(-50%,-38%)!important}.room-filter-bar{grid-template-columns:1fr;padding:18px;gap:14px}.room-compare-grid{grid-template-columns:1fr}.concierge-launch{min-width:145px;left:12px!important;padding:10px 12px!important}.concierge-launch-title{font-size:11px}.concierge-launch-sub{font-size:10px}}


/* =========================================================
   FINAL HOME / FLOATING ACTION ALIGNMENT PASS
========================================================= */
/* Home hero follows the centered presentation used by inner pages. */
.page-home .hero-copy,
body.home .hero-copy,
.hero-slider .hero-copy{
    left:50% !important;
    right:auto !important;
    top:50% !important;
    width:min(1040px,calc(100% - 48px)) !important;
    max-width:1040px !important;
    transform:translate(-50%,-46%) !important;
    text-align:center !important;
}
.hero-slider .hero-copy p{max-width:780px;margin-left:auto;margin-right:auto}
.hero-slider .hero-actions{justify-content:center}

/* Keep the two primary floating actions compact and safely inset. */
.concierge-launch, .float-book{bottom:18px !important}
.float-book{right:18px !important;min-height:48px;padding:0 22px}
.concierge-launch{
    left:auto !important;
    right:150px !important;
    min-width:176px !important;
    min-height:48px;
    padding:9px 16px !important;
    border-radius:12px !important;
}
/* Avoid a third floating control competing with the concierge/book group. */
.float-chat{display:none !important}
/* Reserve breathing room at the end of pages so fixed actions never hide final content. */
.site-footer{padding-bottom:78px}

@media(max-width:650px){
    .hero-slider .hero-copy{
        left:50% !important;right:auto !important;top:48% !important;
        width:calc(100% - 30px) !important;
        transform:translate(-50%,-46%) !important;
        text-align:center !important;
    }
    .hero-slider .hero-copy h1{font-size:clamp(40px,12vw,62px) !important}
    .hero-slider .hero-copy p{font-size:15px !important;margin-bottom:20px !important}
    .hero-slider .hero-actions{justify-content:center;gap:8px}
    .hero-slider .hero-actions .btn{padding:12px 15px;font-size:11px}
    .float-book{right:10px !important;bottom:10px !important;min-height:42px;padding:0 14px;font-size:10px}
    .concierge-launch{left:auto !important;right:112px !important;bottom:10px !important;min-width:138px !important;min-height:42px;padding:7px 10px !important}
    .concierge-launch-title{font-size:10px !important}
    .concierge-launch-sub{font-size:9px !important}
    .site-footer{padding-bottom:68px}
}
@media(max-width:390px){
    .float-book{right:8px !important;padding:0 11px}
    .concierge-launch{right:99px !important;min-width:128px !important}
}


/* =========================================================
   FINAL COMPACT FOOTER + SAFE FLOATING ACTIONS
========================================================= */
.footer-shell{min-height:360px;grid-template-columns:minmax(360px,.95fr) minmax(440px,1.05fr)}
.footer-info{padding:46px clamp(30px,5vw,72px)}
.footer-branding{margin-bottom:16px}
.footer-about-text{font-size:14px;line-height:1.65;margin-bottom:16px}
.footer-links{margin-top:16px}
.footer-photo{min-height:360px}
.footer-photo-content{bottom:42px}
.footer-photo-content h3{font-size:clamp(32px,3.5vw,52px)}
.footer-bottom{min-height:56px}
.site-footer{padding-bottom:74px}

/* Keep fixed actions above the viewport edge and clear of footer copy. */
.concierge-launch,.float-book{bottom:16px!important;z-index:120!important}
.float-book{right:16px!important}
.concierge-launch{right:146px!important;left:auto!important}

@media(max-width:900px){
  .footer-shell{grid-template-columns:1fr;min-height:0}
  .footer-info{padding:42px 28px}
  .footer-photo{min-height:300px}
  .footer-photo-content{bottom:34px}
}
@media(max-width:650px){
  .site-footer{padding-bottom:112px}
  .footer-info{padding:36px 22px}
  .footer-photo{min-height:260px}
  .footer-bottom{padding:16px 20px;min-height:0;flex-direction:column;align-items:flex-start;gap:5px}
  .concierge-launch{right:10px!important;left:auto!important;bottom:58px!important;min-width:132px!important}
  .float-book{right:10px!important;bottom:10px!important;min-width:132px;text-align:center}
}

/* =========================================================
   V16 — REFERENCE-STYLE COMPACT DIAGONAL FOOTER
   Image side + clean information panel; no oversized CTA strip.
========================================================= */
.booking-strip{display:none!important}
.footer.footer-visual{position:relative;background:#080b28!important;overflow:hidden;padding:0!important;margin:0!important}
.footer.footer-visual .footer-shell{position:relative;display:grid!important;grid-template-columns:minmax(390px,.92fr) minmax(520px,1.08fr)!important;min-height:390px!important;max-height:none!important;background:#080b28!important;overflow:hidden}
.footer.footer-visual .footer-photo{grid-column:2;grid-row:1;position:relative!important;min-height:390px!important;background-size:cover!important;background-position:center!important;z-index:1}
.footer.footer-visual .footer-photo-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,11,40,.18),rgba(8,11,40,.02))!important}
.footer.footer-visual .footer-info{grid-column:1;grid-row:1;position:relative;z-index:3;padding:46px 72px 34px!important;background:#080b28!important;color:#fff!important;display:flex;flex-direction:column;justify-content:center}
.footer.footer-visual .footer-info::after{content:"";position:absolute;z-index:-1;top:0;bottom:0;right:-145px;width:220px;background:#080b28;clip-path:polygon(0 0,34% 0,100% 100%,0 100%)}
.footer.footer-visual .footer-branding{margin:0 0 18px!important}
.footer.footer-visual .footer-logo-box{width:68px!important;height:68px!important;min-width:68px!important;border-radius:14px!important;background:#fff!important;padding:8px!important}
.footer.footer-visual .footer-logo-box .footer-logo{width:100%!important;height:100%!important;object-fit:contain!important}
.footer.footer-visual .footer-brand{font-size:25px!important;letter-spacing:.5px!important}
.footer.footer-visual .footer-branding small{font-size:10px!important;letter-spacing:3px!important}
.footer.footer-visual .footer-about-text{max-width:540px!important;margin:0 0 14px!important;font-size:14px!important;line-height:1.65!important;color:rgba(255,255,255,.86)!important}
.footer.footer-visual .footer-contact-list{display:flex!important;flex-wrap:wrap!important;gap:8px 22px!important;margin:0 0 14px!important}
.footer.footer-visual .footer-contact-list p{margin:0!important;font-size:13px!important;color:rgba(255,255,255,.84)!important}
.footer.footer-visual .footer-contact-icon{color:#d9e500!important;margin-right:8px!important}
.footer.footer-visual .footer-links{display:flex!important;flex-wrap:wrap!important;gap:9px 20px!important;margin:4px 0 14px!important}
.footer.footer-visual .footer-links a{font-size:13px!important;color:#fff!important;opacity:.9}
.footer.footer-visual .footer-social{margin:0 0 12px!important}
.footer.footer-visual .social-icon{width:40px!important;height:40px!important}
.footer.footer-visual .footer-bottom{position:static!important;min-height:0!important;padding:15px 0 0!important;margin-top:4px!important;border-top:1px solid rgba(255,255,255,.12)!important;background:transparent!important;color:rgba(255,255,255,.68)!important;font-size:12px!important;display:block!important}
.footer.footer-visual .footer-photo-placeholder{min-height:390px!important}
.site-footer{padding-bottom:74px!important}

/* All public page hero copy remains centered and balanced. */
.page-slider .page-slider-copy,.hero-slider .hero-copy{left:50%!important;right:auto!important;text-align:center!important;width:min(1180px,calc(100% - 48px))!important;max-width:1180px!important;transform:translate(-50%,-42%)!important}
.hero-slider .hero-copy p,.page-slider .page-slider-copy p{margin-left:auto!important;margin-right:auto!important;max-width:900px!important}
.hero-slider .hero-actions{justify-content:center!important}

/* Tighter content transition below page heroes. */
.page-slider + .section{padding-top:72px!important}

@media(max-width:900px){
 .footer.footer-visual .footer-shell{grid-template-columns:1fr!important;min-height:0!important}
 .footer.footer-visual .footer-photo{grid-column:1;grid-row:1;min-height:280px!important}
 .footer.footer-visual .footer-info{grid-column:1;grid-row:2;padding:34px 28px 28px!important}
 .footer.footer-visual .footer-info::after{display:none}
 .footer.footer-visual .footer-photo-placeholder{min-height:280px!important}
 .page-slider + .section{padding-top:54px!important}
}
@media(max-width:650px){
 .footer.footer-visual .footer-photo{min-height:220px!important}
 .footer.footer-visual .footer-info{padding:28px 20px 24px!important}
 .footer.footer-visual .footer-brand{font-size:21px!important}
 .footer.footer-visual .footer-contact-list{display:block!important}
 .footer.footer-visual .footer-contact-list p{margin:0 0 7px!important}
 .footer.footer-visual .footer-links{gap:8px 15px!important}
 .site-footer{padding-bottom:112px!important}
 .page-slider + .section{padding-top:42px!important}
}


/* ===== Privacy Policy ===== */
.privacy-section{padding:86px 0 100px}.privacy-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:34px;align-items:start}.privacy-nav{position:sticky;top:110px;background:var(--navy);color:#fff;border-radius:24px;padding:32px;box-shadow:0 24px 60px rgba(7,18,36,.13)}.privacy-nav .eyebrow{color:var(--lime)}.privacy-nav h2{font:700 38px/1.05 Georgia,serif;margin:12px 0;color:#fff}.privacy-nav>p{color:rgba(255,255,255,.65);font-size:14px}.privacy-nav nav{display:grid;margin-top:25px;border-top:1px solid rgba(255,255,255,.13)}.privacy-nav nav a{color:rgba(255,255,255,.78);padding:13px 0;border-bottom:1px solid rgba(255,255,255,.1);font-weight:700;font-size:14px}.privacy-nav nav a:hover{color:var(--lime);padding-left:5px}.privacy-content{display:grid;gap:18px}.privacy-card{scroll-margin-top:110px;background:#fff;border:1px solid rgba(7,18,36,.07);border-radius:22px;padding:30px 34px;box-shadow:0 16px 45px rgba(7,18,36,.055)}.privacy-card>span{display:inline-block;color:#aeba00;font-weight:900;letter-spacing:.16em;font-size:12px}.privacy-card h3{font:700 29px/1.15 Georgia,serif;color:var(--ink);margin:7px 0 15px}.privacy-card p,.privacy-card li{color:var(--muted);line-height:1.75}.privacy-card ul{padding-left:21px;margin:16px 0 0}.privacy-card li+li{margin-top:8px}.privacy-note{margin-top:22px;padding:17px 19px;border-radius:14px;background:#f5f7e8;border-left:4px solid var(--lime);line-height:1.65;color:var(--ink)}.privacy-contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}.privacy-contact-grid div{padding:17px;border-radius:14px;background:#f6f7fa}.privacy-contact-grid small{display:block;color:var(--muted);font-weight:800;letter-spacing:.12em;margin-bottom:6px}.privacy-contact-grid a{color:inherit}.privacy-disclaimer{font-size:13px;line-height:1.65;color:var(--muted);padding:5px 8px 0}
@media(max-width:900px){.privacy-layout{grid-template-columns:1fr}.privacy-nav{position:static}.privacy-nav nav{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}.privacy-contact-grid{grid-template-columns:1fr}}
@media(max-width:600px){.privacy-section{padding:58px 0 74px}.privacy-nav,.privacy-card{padding:23px 20px;border-radius:18px}.privacy-nav nav{grid-template-columns:1fr}.privacy-nav h2{font-size:32px}.privacy-card h3{font-size:25px}}

/* V18: database-backed room availability calendar */
.availability-modal[hidden]{display:none!important}.availability-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:24px}.availability-backdrop{position:absolute;inset:0;background:rgba(3,8,20,.68);backdrop-filter:blur(3px)}.availability-dialog{position:relative;width:min(980px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:24px;box-shadow:0 35px 90px rgba(0,0,0,.28);padding:0 28px 26px}.availability-dialog>header{display:flex;align-items:center;justify-content:space-between;padding:24px 0 18px;border-bottom:1px solid #e6e9f0}.availability-dialog h2{margin:0;color:#667cff;font:700 30px/1.1 Georgia,serif}.availability-dialog>header button{border:0;background:none;font-size:42px;line-height:1;color:#777;cursor:pointer}.availability-controls{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:22px 0}.availability-controls label{font-weight:800;color:var(--ink)}.availability-controls select,.availability-controls input{display:block;width:100%;margin-top:9px;border:1px solid #dce1ea;border-radius:12px;padding:14px 16px;font:inherit;background:#fff}.availability-legend{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:14px;font-size:12px;font-weight:800}.availability-legend span:before{content:'';display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.availability-legend .is-available:before{background:#25a244}.availability-legend .is-limited:before{background:#d9a400}.availability-legend .is-unavailable:before{background:#c84a4a}.availability-weekdays,.availability-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.availability-weekdays b{text-align:center;padding:8px;color:#242b3c}.availability-day{min-height:72px;border:1px solid transparent;border-radius:10px;font:700 17px/1 sans-serif;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}.availability-day small{font-size:10px;font-weight:700;opacity:.72}.availability-day.available{background:#e4f7e8;color:#14852d;border-color:#c8ead0}.availability-day.limited{background:#fff6d9;color:#8b6900;border-color:#f0dfa2}.availability-day.unavailable,.availability-day.past{background:#f2f3f6;color:#9aa0aa;cursor:not-allowed}.availability-day.selected{outline:3px solid #687cff;outline-offset:1px}.availability-day.in-range{box-shadow:inset 0 0 0 2px rgba(104,124,255,.35)}.availability-blank{min-height:72px}.availability-help{color:var(--muted);margin:18px 0 8px}.availability-dialog>footer{display:flex;justify-content:space-between;align-items:center;gap:15px;padding-top:15px;border-top:1px solid #edf0f4}.availability-dialog>footer .btn:disabled{opacity:.45;cursor:not-allowed}@media(max-width:700px){.availability-modal{padding:10px}.availability-dialog{padding:0 14px 18px;border-radius:18px}.availability-dialog h2{font-size:23px}.availability-controls{grid-template-columns:1fr}.availability-weekdays,.availability-calendar{gap:3px}.availability-weekdays b{font-size:11px}.availability-day,.availability-blank{min-height:54px}.availability-day{font-size:14px}.availability-day small{display:none}.availability-dialog>footer{align-items:stretch;flex-direction:column}.availability-dialog>footer .btn{width:100%}}

/* Privacy hero uses the same photographic treatment as the rest of the public site. */
.page-privacy-policy .page-slider{min-height:clamp(520px,78vh,780px)}

/* Final footer developer credit */
.footer.footer-visual .footer-bottom{display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:space-between!important;gap:8px 18px!important}
.footer-developer{white-space:normal}.footer-developer strong{color:#fff}.footer-developer a{color:#d9e500!important;text-decoration:none;font-weight:800}.footer-developer a:hover{text-decoration:underline}
@media(max-width:650px){.footer.footer-visual .footer-bottom{align-items:flex-start!important;flex-direction:column!important}.footer-developer{line-height:1.6}}

/* Concierge personal-assistant refinement */
.concierge-panel{width:min(540px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 36px));overflow:hidden;border:1px solid #e4e7ec;border-radius:20px;background:#fff}
.concierge-head-light{position:relative;top:auto;padding:24px 28px;background:#f8f8f8;color:#10162f;border-bottom:1px solid #e3e5e9;align-items:flex-start;overflow:visible}
.concierge-identity{display:flex;flex-direction:column;align-items:flex-start;gap:10px;max-width:340px}.concierge-identity strong{font-size:24px;line-height:1.3;font-weight:500}.concierge-online{display:inline-flex;padding:7px 16px;border-radius:999px;background:#00df78;color:#fff;font-size:16px;font-weight:700}
.concierge-head-actions{display:flex;gap:8px;align-items:center}.concierge-head-light .concierge-more,.concierge-head-light .concierge-close{display:grid;place-items:center;background:#fff;color:#11162e;border:1px solid #dfe2e8}.concierge-head-light .concierge-more{width:52px;height:52px;font-size:32px;line-height:1}.concierge-head-light .concierge-close{width:36px;height:36px;background:transparent;border:0;color:#98a1bd;font-size:30px}
.concierge-menu{position:absolute;right:70px;top:92px;z-index:8;width:290px;padding:8px 0;border-radius:18px;background:#fff;box-shadow:0 18px 50px rgba(18,24,48,.16);border:1px solid #eceef2;overflow:hidden}.concierge-menu button{display:block;width:100%;padding:18px 24px;border:0;border-bottom:1px solid #f0f1f4;background:#fff;text-align:left;color:#11162e;font:inherit;font-weight:700;cursor:pointer}.concierge-menu button:last-child{border-bottom:0}.concierge-menu button:disabled{color:#999dab;cursor:not-allowed}.concierge-menu button:not(:disabled):hover{background:#f7f8fa}
.concierge-body{max-height:calc(min(760px,100vh - 36px) - 145px);overflow-y:auto;padding:24px 28px 28px}.concierge-welcome{max-width:410px;margin-bottom:28px;padding:22px 26px;border:1px solid #dfe2e8;border-radius:18px;background:#fff;box-shadow:0 3px 8px rgba(18,24,48,.08)}.concierge-welcome strong{display:block;font-size:20px;line-height:1.35}.concierge-welcome p{margin:12px 0 18px;color:#11162e;font-size:19px;line-height:1.45}.concierge-feedback{display:flex;gap:22px}.concierge-feedback button{border:0;background:transparent;color:#8793b8;font-size:22px;cursor:pointer}
.concierge-form{gap:12px}.concierge-form input,.concierge-form textarea{padding:18px 20px;border-color:#d7dbe3;border-radius:14px;font-size:17px}.concierge-form textarea{min-height:110px}.concierge-form input:focus,.concierge-form textarea:focus{outline:2px solid #637cff;outline-offset:-1px;border-color:#637cff}
@media(max-width:650px){.concierge-modal{padding:12px;align-items:flex-end}.concierge-panel{height:auto;max-height:calc(100vh - 24px);border-radius:18px}.concierge-head-light{padding:20px}.concierge-identity strong{font-size:20px}.concierge-body{max-height:calc(100vh - 170px);padding:18px}.concierge-menu{right:54px;top:86px;width:min(280px,calc(100vw - 60px))}.concierge-welcome{padding:18px}.concierge-welcome p{font-size:17px}}
