:root{
     --ink:#17181A;
     --ink-soft:#232427;
     --cream:#F6F2EA;
     --paper:#FBF9F5;
     --brass:#BE9A5C;
     --brass-soft:#E7D6AF;
     --line:#E4DDCD;
     --text-body:#3E3B34;
}
 *{
     box-sizing:border-box;
}
 html{
     scroll-behavior:smooth;
}
 html,body{
     margin:0;
     overflow-x:hidden;
     background:var(--paper);
     color:var(--text-body);
     font-family:'Work Sans',sans-serif;
}
 section{
     scroll-margin-top:78px;
}
 img{
     max-width:100%;
}
 h1,h2,h3{
     font-family:'Fraunces',serif;
     color:var(--ink);
     margin:0;
}
 a{
     text-decoration:none;
}
 .eyebrow{
     display:inline-block;
     font-size:.76rem;
     font-weight:600;
     letter-spacing:.2em;
     text-transform:uppercase;
     color:var(--brass);
     margin-bottom:.7rem;
}
 .section-pad{
     padding:5.5rem 0;
}
 .btn-brass{
     background:var(--brass);
     border:1px solid var(--brass);
     color:#1a1a18;
     font-weight:600;
     letter-spacing:.02em;
     padding:.8rem 1.8rem;
     border-radius:2px;
     transition:.25s;
}
 .btn-brass:hover{
     background:transparent;
     color:var(--ink);
}
 .btn-outline-cream{
     background:transparent;
     border:1px solid rgba(246,242,234,.55);
     color:var(--cream);
     font-weight:600;
     padding:.8rem 1.8rem;
     border-radius:2px;
     transition:.25s;
}
 .btn-outline-cream:hover{
     border-color:var(--brass);
     background:rgba(255,255,255,.06);
}
 .btn-outline-ink{
     background:transparent;
     border:1px solid rgba(23,24,26,.3);
     color:var(--ink);
     font-weight:600;
     padding:.8rem 1.8rem;
     border-radius:2px;
     transition:.25s;
}
 .btn-outline-ink:hover{
     border-color:var(--brass);
     background:rgba(190,154,92,.08);
}
/* ===== NAVBAR ===== */
 .site-nav{
     position:fixed;
     top:0;
     left:0;
     width:100%;
     z-index:1000;
     padding:1.1rem 0;
     transition:background .35s ease, padding .35s ease, box-shadow .35s ease;
}
 .site-nav.scrolled{
     background:rgba(23,24,26,.92);
     backdrop-filter:blur(6px);
     padding:.7rem 0;
     box-shadow:0 6px 24px rgba(0,0,0,.18);
}
 .brand{
     font-family:'Fraunces',serif;
     font-size:1.35rem;
     color:#fff;
     letter-spacing:.01em;
}
 .nav-link-custom{
     color:rgba(246,242,234,.85);
     font-size:.92rem;
     font-weight:500;
     margin:0 .9rem;
     transition:color .2s;
}
 .nav-link-custom:hover{
     color:var(--brass-soft);
}
 .navbar-toggler{
     border:none;
}
 .navbar-toggler:focus{
     box-shadow:none;
}
/* ===== HERO ===== */
 .hero{
     position:relative;
     width:100%;
     height:100vh;
     height:100svh;
     min-height:600px;
     overflow:hidden;
}
 .hero .carousel, .hero .carousel-inner, .hero .carousel-item{
     height:100%;
}
 .hero-bg{
     position:absolute;
     inset:0;
     overflow:hidden;
}
 .hero-bg img{
     width:100%;
     height:100%;
     object-fit:cover;
     transform:scale(1.02);
}
 .carousel-item.active .hero-bg img{
     animation:kenburns 7s ease-out forwards;
}
 @keyframes kenburns{
     from{
        transform:scale(1);
    }
     to{
        transform:scale(1.09);
    }
}
 .hero-overlay{
     position:absolute;
     inset:0;
     background:linear-gradient(180deg, rgba(15,15,14,.25) 0%, rgba(10,10,9,.35) 45%, rgba(10,10,9,.75) 70%);
}
 .hero-slide-inner{
     position:relative;
     z-index:2;
     height:100%;
     display:flex;
     align-items:flex-end;
     padding-bottom:9vh;
}
 .hero-content{
     max-width:640px;
     color:var(--cream);
     padding:0 6vw;
}
 .content-center{
     margin:0 auto;
     text-align:center;
}
 .content-right{
     margin-left:auto;
     text-align:right;
}
 .content-left{
     text-align:left;
}
 .hero-content .eyebrow{
     color:var(--brass-soft);
     opacity:0;
}
 .hotel-name{
     font-weight:500;
     font-size:clamp(2.1rem,5vw,3.6rem);
     line-height:1.05;
     margin:0 0 .6rem;
     color:#fff;
     opacity:0;
}
 .headline{
     font-style:italic;
     font-weight:400;
     font-size:clamp(1.2rem,2.3vw,1.75rem);
     line-height:1.3;
     color:var(--brass-soft);
     margin:0 0 1rem;
     opacity:0;
}
 .hero-content .desc{
     font-size:1rem;
     line-height:1.65;
     color:rgba(246,242,234,.88);
     max-width:520px;
     margin:0 0 1.9rem;
     opacity:0;
}
 .content-center .desc{
     margin-left:auto;
     margin-right:auto;
}
 .content-right .desc{
     margin-left:auto;
}
 .hero-ctas{
     display:flex;
     gap:1rem;
     flex-wrap:wrap;
     opacity:0;
}
 .content-center .hero-ctas{
     justify-content:center;
}
 .content-right .hero-ctas{
     justify-content:flex-end;
}
 .carousel-item.active .eyebrow, .carousel-item.active .hotel-name, .carousel-item.active .headline, .carousel-item.active .desc, .carousel-item.active .hero-ctas{
     animation:riseIn .8s ease forwards;
}
 .carousel-item.active .eyebrow{
     animation-delay:.15s;
}
 .carousel-item.active .hotel-name{
     animation-delay:.3s;
}
 .carousel-item.active .headline{
     animation-delay:.45s;
}
 .carousel-item.active .desc{
     animation-delay:.6s;
}
 .carousel-item.active .hero-ctas{
     animation-delay:.75s;
}
 @keyframes riseIn{
     from{
        opacity:0;
         transform:translateY(22px);
    }
     to{
        opacity:1;
         transform:translateY(0);
    }
}
 @media (prefers-reduced-motion: reduce){
     .carousel-item.active .hero-bg img{
         animation:none;
    }
     .carousel-item.active .eyebrow, .carousel-item.active .hotel-name, .carousel-item.active .headline, .carousel-item.active .desc, .carousel-item.active .hero-ctas{
         animation:none;
         opacity:1;
         transform:none;
    }
}
 .hero-arrow{
     width:46px;
     height:46px;
     border-radius:50%;
     background:rgba(23,24,26,.35);
     border:1px solid rgba(246,242,234,.35);
     display:flex;
     align-items:center;
     justify-content:center;
     transition:.25s;
}
 .hero-arrow:hover{
     background:rgba(190,154,92,.85);
     border-color:var(--brass);
}
 .carousel-control-prev, .carousel-control-next{
     width:auto;
     top:auto;
     bottom:9vh;
     height:46px;
     z-index:3;
}
 .carousel-control-prev{
     left:6vw;
     justify-content:flex-start;
}
 .carousel-control-next{
     right:6vw;
     justify-content:flex-end;
}
 .carousel-indicators{
     z-index:3;
     margin-bottom:2.2rem;
     gap:.4rem;
}
 .carousel-indicators [data-bs-target]{
     width:32px;
     height:3px;
     border-radius:2px;
     background-color:rgba(246,242,234,.4);
     border:none;
     opacity:1;
     transition:.3s;
}
 .carousel-indicators .active{
     background-color:var(--brass);
     width:50px;
}
 .scroll-cue{
     position:absolute;
     left:50%;
     bottom:2.2rem;
     transform:translateX(-50%);
     z-index:3;
     color:rgba(246,242,234,.75);
     font-size:.72rem;
     letter-spacing:.18em;
     text-transform:uppercase;
     display:flex;
     flex-direction:column;
     align-items:center;
     gap:.5rem;
}
 .scroll-cue .line{
     width:1px;
     height:34px;
     background:rgba(246,242,234,.5);
     animation:pulseLine 2s ease-in-out infinite;
}
 @keyframes pulseLine{
     0%,100%{
        opacity:.3;
    }
     50%{
        opacity:1;
    }
}
/* ===== ABOUT ===== */
 .about-img{
     position:relative;
}
 .about-img img{
     width:100%;
     height:100%;
     object-fit:cover;
     border-radius:2px;
}
 .stat-badge{
     position:absolute;
     bottom:-1.6rem;
     right:-1.2rem;
     background:var(--ink);
     color:var(--cream);
     padding:1.4rem 1.7rem;
     border:1px solid var(--brass);
}
 .stat-badge .num{
     font-family:'Fraunces',serif;
     font-size:2.1rem;
     color:var(--brass-soft);
     line-height:1;
}
 .stat-badge .lbl{
     font-size:.72rem;
     letter-spacing:.12em;
     text-transform:uppercase;
     margin-top:.3rem;
}
/* ===== ROW LISTS (amenities / facilities) ===== */
 .feature-row{
     display:flex;
     align-items:flex-start;
     gap:1rem;
     padding:1.1rem 0;
     border-bottom:1px solid var(--line);
}
 .feature-row:first-child{
     border-top:1px solid var(--line);
}
 .feature-ico{
     flex:0 0 auto;
     width:26px;
     height:26px;
     margin-top:.15rem;
     color:var(--brass);
}
 .feature-ico svg{
     width:100%;
     height:100%;
}
 .feature-text .t{
     font-weight:600;
     color:var(--ink);
     font-size:1rem;
}
 .feature-text .d{
     font-size:.9rem;
     color:#6c675c;
     margin-top:.15rem;
}
 .dark-section{
     background:var(--ink);
     color:var(--cream);
}
 .dark-section .feature-row{
     border-bottom-color:rgba(246,242,234,.15);
}
 .dark-section .feature-row:first-child{
     border-top-color:rgba(246,242,234,.15);
}
 .dark-section .feature-text .t{
     color:#fff;
}
 .dark-section .feature-text .d{
     color:rgba(246,242,234,.65);
}
 .dark-section h2{
     color:#fff;
}
/* ===== MEDICAL BANNER ===== */
 .medical-banner{
     position:relative;
     background:linear-gradient(140deg, var(--ink) 0%, #2b2418 100%);
     overflow:hidden;
}
 .medical-banner::after{
     content:"";
     position:absolute;
     right:-8%;
     top:-30%;
     width:60%;
     height:180%;
     background:radial-gradient(circle, rgba(190,154,92,.18) 0%, transparent 65%);
}
 .hospital-card{
     border:1px solid rgba(246,242,234,.2);
     padding:1.4rem 1.6rem;
     position:relative;
     z-index:1;
}
 .hospital-card .h{
     font-family:'Fraunces',serif;
     font-size:1.15rem;
     color:#fff;
     margin-bottom:.3rem;
}
 .hospital-card .p{
     font-size:.88rem;
     color:rgba(246,242,234,.7);
     margin:0;
}
/* ===== LOCATION ===== */
 .dist-list{
     list-style:none;
     padding:0;
     margin:0;
}
 .dist-list li{
     display:flex;
     justify-content:space-between;
     gap:1rem;
     padding:.75rem 0;
     border-bottom:1px dashed var(--line);
     font-size:.94rem;
}
 .dist-list li span:last-child{
     color:var(--brass);
     font-weight:600;
     white-space:nowrap;
}
 .map-frame{
     border:0;
     width:100%;
     height:100%;
     min-height:340px;
     filter:grayscale(.15) contrast(1.05);
}
/* ===== ROOM TYPE CARDS ===== */
 .room-card{
     background:var(--paper);
     border:1px solid var(--line);
     height:100%;
     display:flex;
     flex-direction:column;
     transition:transform .3s ease, box-shadow .3s ease;
}
 .room-card:hover{
     transform:translateY(-4px);
     box-shadow:0 18px 40px rgba(23,24,26,.1);
}
 .room-card .room-img{
     height:380px;
     overflow:hidden;
}
 .room-card .room-img img{
     width:100%;
     height:100%;
     object-fit:cover;
     transition:transform .6s ease;
}
 .room-card:hover .room-img img{
     transform:scale(1.06);
}
 .room-card .room-body{
     padding:1.7rem;
     display:flex;
     flex-direction:column;
     flex:1;
}
 .room-card .room-title{
     font-size:1.35rem;
     margin-bottom:.5rem;
}
 .room-card .room-tags{
     display:flex;
     flex-wrap:wrap;
     gap:.5rem;
     margin:.9rem 0 1.3rem;
}
 .room-card .room-tags span{
     font-size:.76rem;
     letter-spacing:.04em;
     color:var(--ink);
     border:1px solid var(--line);
     padding:.3rem .7rem;
}
 .room-card .room-foot{
     margin-top:auto;
     display:flex;
     align-items:center;
     justify-content:space-between;
     padding-top:1.1rem;
     border-top:1px solid var(--line);
}
/* ===== ATTRACTIONS ===== */
 .attraction-item{
     overflow:hidden;
     position:relative;
     border-radius:2px;
}
 .attraction-item img{
     width:100%;
     height:100%;
     object-fit:cover;
     transition:transform .6s ease;
}
 .attraction-item:hover img{
     transform:scale(1.07);
}
 .attraction-item .cap{
     position:absolute;
     left:0;
     bottom:0;
     right:0;
     padding:1.1rem;
     background:linear-gradient(0deg, rgba(0,0,0,.72), transparent 70%);
     color:#fff;
}
 .attraction-item .cap .t{
     font-family:'Fraunces',serif;
     font-size:1.1rem;
}
 .attraction-item .cap .d{
     font-size:.78rem;
     color:rgba(246,242,234,.75);
     margin-top:.15rem;
}
/* ===== TESTIMONIALS ===== */
 .testimonial-card{
     background:var(--paper);
     border:1px solid var(--line);
     padding:2rem 1.8rem;
     height:100%;
}
 .testimonial-card .quote-mark{
     font-family:'Fraunces',serif;
     font-size:2.6rem;
     color:var(--brass-soft);
     line-height:1;
     margin-bottom:.4rem;
}
 .testimonial-card .stars{
     color:var(--brass);
     font-size:.85rem;
     letter-spacing:.15em;
     margin-bottom:.9rem;
}
 .testimonial-card p.quote{
     font-family:'Fraunces',serif;
     font-style:italic;
     font-size:1.05rem;
     line-height:1.6;
     color:var(--ink);
     margin-bottom:1.3rem;
}
 .testimonial-card .guest{
     font-weight:600;
     font-size:.92rem;
     color:var(--ink);
}
 .testimonial-card .stay-type{
     font-size:.78rem;
     letter-spacing:.1em;
     text-transform:uppercase;
     color:var(--brass);
     margin-top:.15rem;
}
/* ===== GALLERY ===== */
 .gallery-item{
     overflow:hidden;
     position:relative;
}
 .gallery-item img{
     width:100%;
     height:100%;
     object-fit:cover;
     transition:transform .6s ease;
}
 .gallery-item:hover img{
     transform:scale(1.07);
}
 .gallery-item .cap{
     position:absolute;
     left:0;
     bottom:0;
     right:0;
     padding:.9rem 1rem;
     background:linear-gradient(0deg, rgba(0,0,0,.65), transparent);
     color:#fff;
     font-size:.82rem;
     letter-spacing:.05em;
}
/* ===== CONTACT ===== */
 .contact-card{
     border:1px solid var(--line);
     padding:1.6rem;
     height:100%;
     background:var(--paper);
     transition:border-color .25s ease;
}
 .contact-card:hover{
     border-color:var(--brass);
}
 .contact-card .ico{
     width:28px;
     height:28px;
     color:var(--brass);
     margin-bottom:.9rem;
}
 .contact-card .l{
     font-size:.72rem;
     letter-spacing:.14em;
     text-transform:uppercase;
     color:#8a8474;
     margin-bottom:.35rem;
}
 .contact-card .v{
     font-family:'Fraunces',serif;
     font-size:1.1rem;
     color:var(--ink);
}
 .contact-card a.v{
     color:var(--ink);
}
 .contact-card a.v:hover{
     color:var(--brass);
}
/* ===== FOOTER ===== */
 footer{
     background:var(--ink);
     color:rgba(246,242,234,.7);
     padding:3rem 0 1.6rem;
}
 footer .fbrand{
     font-family:'Fraunces',serif;
     color:#fff;
     font-size:1.3rem;
}
 footer a{
     color:rgba(246,242,234,.7);
}
 footer a:hover{
     color:var(--brass-soft);
}
 footer hr{
     border-color:rgba(246,242,234,.15);
     margin:2rem 0 1.2rem;
}
 @media (max-width: 991.98px){
     .hero-slide-inner{
         padding-bottom:12vh;
    }
     .content-right, .content-center{
         text-align:left;
         margin:0;
    }
     .content-right .desc, .content-center .desc{
         margin:0 0 1.9rem 0;
    }
     .content-right .hero-ctas, .content-center .hero-ctas{
         justify-content:flex-start;
    }
     .hero-content{
         max-width:100%;
         padding:0 7vw;
    }
     .carousel-control-prev, .carousel-control-next{
         bottom:auto;
         top:44%;
    }
     .stat-badge{
         right:1rem;
         bottom:-1.4rem;
    }
     .section-pad{
         padding:3.8rem 0;
    }
}
 @media (max-width: 575.98px){
     .hero{
         min-height:660px;
    }
     .hero-slide-inner{
         padding-bottom:14vh;
    }
     .hero-content .desc{
         font-size:.92rem;
    }
     .hero-arrow{
         width:38px;
         height:38px;
    }
     .scroll-cue{
         display:none;
    }
}
 