:root {
    --ink: #172824;
    --deep: #10231f;
    --gold: #c8a463;
    --gold-light: #e4ca93;
    --sand: #f5f0e7;
    --cream: #fbf9f5;
}

html { scroll-behavior: smooth; }
body {
    color: var(--ink);
    background: var(--cream);
    font-family: "Ubuntu", sans-serif;
    line-height: 1.75;
}
h1, h2, h3, .navbar-brand, .footer-brand {
    font-family: "Ubuntu", sans-serif;
}
h1 { font-size: clamp(3.5rem, 8vw, 7.4rem); line-height: .92; font-weight: 300; letter-spacing: -.045em; }
h2 { font-size: clamp(2.5rem, 5vw, 4.25rem); line-height: 1.05; font-weight: 300; letter-spacing: -.035em; }
.section-pad { padding: 7rem 0; }
.eyebrow {
    color: #8b6b32;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
}
.text-gold { color: var(--gold-light) !important; }
.lead-soft { color: #53635f; font-size: 1.08rem; }

#mainNav {
    padding: 1rem 0;
    background: rgba(8, 24, 20, .82);
    border-bottom: 1px solid rgba(228, 202, 147, .18);
    box-shadow: 0 8px 30px rgba(0, 0, 0, .12);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: .3s ease;
}
#mainNav.scrolled, body:not(:has(.hero, .page-hero)) #mainNav {
    background: rgba(8, 24, 20, .97);
    padding: .75rem 0;
    box-shadow: 0 8px 30px rgba(0,0,0,.08);
}
.navbar-brand, .footer-brand {
    color: var(--gold-light);
    font-size: 1.55rem;
    font-weight: 500;
    letter-spacing: .06em;
    text-decoration: none;
}
.navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
}
.nav-logo {
    width: 48px;
    height: 44px;
    object-fit: contain;
}
.footer-brand {
    display: inline-block;
}
.footer-logo {
    width: 190px;
    height: auto;
    max-height: 205px;
    object-fit: contain;
}
.nav-link { color: rgba(255,255,255,.78); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.nav-link:hover, .nav-link.active { color: var(--gold-light) !important; }
.btn {
    border-radius: 0;
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .1em;
    padding: .9rem 1.7rem;
    text-transform: uppercase;
}
.btn-gold { color: var(--deep); background: var(--gold); border-color: var(--gold); }
.btn-gold:hover { color: var(--deep); background: var(--gold-light); border-color: var(--gold-light); }
.btn-dark-luxe { color: white; background: var(--deep); border-color: var(--deep); }
.btn-dark-luxe:hover { color: var(--deep); background: var(--gold); border-color: var(--gold); }

.hero {
    height: min(900px, 100svh);
    min-height: 680px;
    position: relative;
    color: white;
    background: url("../img/2.jpg") center 30%/cover no-repeat;
}
.hero-shade {
    position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(7,20,17,.74) 0%, rgba(7,20,17,.28) 55%, rgba(7,20,17,.05) 100%), linear-gradient(0deg, rgba(7,20,17,.56), transparent 55%);
}
.hero-copy { max-width: 800px; padding-bottom: 8rem; }
.hero-copy .lead { max-width: 580px; color: rgba(255,255,255,.82); font-size: 1.1rem; margin-top: 1.8rem; }
.scroll-cue {
    position: absolute; right: 4%; bottom: 3.5rem; width: 48px; height: 48px;
    display: grid; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; color: white;
}
.quick-facts { background: var(--deep); color: white; }
.fact { min-height: 120px; display: flex; align-items: center; justify-content: center; gap: .75rem; border-right: 1px solid rgba(255,255,255,.1); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.fact-number, .fact-icon { color: var(--gold-light); font-family: "Ubuntu", sans-serif; font-size: 2.5rem; font-weight: 300; }
.image-stack { position: relative; padding: 0 3rem 5rem 0; }
.img-main { width: 100%; height: 570px; object-fit: cover; }
.img-accent { position: absolute; right: 0; bottom: 0; width: 44%; height: 250px; object-fit: cover; border: 10px solid var(--cream); }
.text-link { color: var(--ink); display: inline-block; margin-top: 1rem; font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid var(--gold); padding-bottom: .4rem; }
.feature-band { background: var(--deep); }
.feature-card { border: 1px solid rgba(255,255,255,.12); padding: 2rem; color: white; }
.feature-card i { color: var(--gold-light); font-size: 2rem; }
.feature-card h3 { font-size: 1.65rem; margin: 1.25rem 0 .7rem; }
.feature-card p { color: rgba(255,255,255,.58); font-size: .88rem; margin: 0; }
.section-heading { max-width: 650px; }
.room-image { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.room-title { font-size: 1.8rem; margin: 1.3rem 0 .5rem; }
.location-section { padding: 0 0 7rem; }
.location-card { background: linear-gradient(rgba(16,35,31,.9), rgba(16,35,31,.9)), url("../img/226898_11864039.webp") center/cover; padding: 4.5rem; }
.location-list { list-style: none; padding: 0; margin: 0; color: rgba(255,255,255,.8); }
.location-list li { padding: .65rem 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.location-list i { color: var(--gold-light); width: 2rem; display: inline-block; }
.cta-section { padding: 6rem 0; background: var(--gold-light); }

.page-hero { min-height: 500px; padding: 12rem 0 5rem; display: flex; align-items: end; color: white; position: relative; background-size: cover; background-position: center; }
.page-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,20,17,.8), rgba(7,20,17,.25)); }
.page-hero h1 { font-size: clamp(3.5rem, 7vw, 6rem); }
.page-hero p:not(.eyebrow) { max-width: 600px; color: rgba(255,255,255,.75); }
.gallery-hero { background-image: url("../img/2.jpg"); }
.contact-hero { background-image: url("../img/1.jpg"); background-position: center 60%; }
.gallery-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 260px; gap: 1rem; }
.gallery-item { position: relative; overflow: hidden; border: 0; padding: 0; grid-column: span 4; background: #ddd; }
.gallery-item.item-1, .gallery-item.item-4, .gallery-item.item-11 { grid-column: span 8; }
.gallery-item.item-1 { grid-row: span 2; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.gallery-item:hover img { transform: scale(1.035); }
.gallery-item span { position: absolute; left: 1rem; bottom: 1rem; padding: .35rem .7rem; color: white; background: rgba(16,35,31,.8); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.modal-backdrop.show { opacity: .92; }

.contact-method { display: flex; gap: 1.2rem; align-items: start; padding: 1.2rem 0; border-bottom: 1px solid #ded9d0; }
.family-story {
    margin-top: 2rem;
    padding: 1.5rem;
    border-left: 2px solid var(--gold);
    background: var(--sand);
    color: #53635f;
    font-size: .9rem;
}
.family-story strong { color: var(--ink); }
.contact-method > i { color: #9c7736; font-size: 1.4rem; }
.contact-method small { display: block; color: #7a8582; font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; }
.contact-method a, .contact-method span { color: var(--ink); text-decoration: none; }
.booking-note { display: flex; gap: 1rem; margin-top: 2rem; padding: 1.5rem; background: var(--sand); font-size: .85rem; }
.booking-note i { color: #9c7736; font-size: 1.4rem; }
.form-card { background: white; padding: 3rem; box-shadow: 0 24px 70px rgba(19,39,34,.09); }
.form-label { font-size: .68rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.form-control, .form-select { border-radius: 0; border: 0; border-bottom: 1px solid #c9c3b9; background: transparent; padding: .75rem .1rem; }
.form-control:focus, .form-select:focus { box-shadow: none; border-color: var(--gold); }
.form-privacy { color: #7a8582; font-size: .72rem; text-align: center; }

.site-footer { background: #091714; color: white; }
.social-link { display: inline-grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.2); color: var(--gold-light); border-radius: 50%; }
@media (max-width: 991.98px) {
    #mainNav { background: rgba(16,35,31,.97); padding: .75rem 0; }
    .navbar-collapse { padding: 1rem 0; }
    .section-pad { padding: 5rem 0; }
    .hero { min-height: 720px; }
    .hero-copy { padding-bottom: 6rem; }
    .img-main { height: 480px; }
    .gallery-item, .gallery-item.item-1, .gallery-item.item-4, .gallery-item.item-11 { grid-column: span 6; grid-row: span 1; }
}
@media (max-width: 575.98px) {
    h1 { font-size: 3.4rem; }
    .hero { min-height: 680px; }
    .fact { min-height: 95px; border-bottom: 1px solid rgba(255,255,255,.1); }
    .fact-number, .fact-icon { font-size: 2rem; }
    .image-stack { padding: 0 1.5rem 3.5rem 0; }
    .img-main { height: 400px; }
    .img-accent { height: 160px; border-width: 6px; }
    .location-card, .form-card { padding: 2rem 1.5rem; }
    .gallery-grid { grid-auto-rows: 230px; }
    .gallery-item, .gallery-item.item-1, .gallery-item.item-4, .gallery-item.item-11 { grid-column: 1 / -1; }
}
