/* =========================================================
   layout.css — header / nav, hero, footer (the page frame)
   ========================================================= */

/* --- Header & nav --- */
/* No backdrop-filter here on purpose: the mobile menu (.nav-links) is a fixed
   descendant of the header, and a filter would make the header its containing
   block and break the full-screen overlay. A near-opaque cream reads the same. */
.main-header {
    position: fixed; top: 0; left: 0; width: 100%; z-index: 1000;
    background: rgba(242,237,228,0.92);
    padding: 1.1rem 0;
    border-bottom: 1px solid var(--rule);
    transition: background .3s ease;
}
.navbar { display: flex; justify-content: space-between; align-items: center; width: 100%; }
.nav-logo {
    font-family: var(--font-heading); font-size: 1.6rem; font-weight: 700;
    color: var(--ink); text-decoration: none; letter-spacing: -0.01em;
}
.nav-links { list-style: none; display: flex; gap: 0.4rem; }
.nav-links a {
    color: var(--ink-70); text-decoration: none;
    font-size: 0.82rem; font-weight: 500; letter-spacing: 0.02em;
    padding: 0.5rem 1rem; border-radius: 2px; border: 1px solid transparent;
    transition: all .25s ease;
}
.nav-links a:hover { color: var(--ink); border-color: var(--rule); }

.hamburger { display: none; cursor: pointer; }
.hamburger .line { width: 25px; height: 2px; background-color: var(--ink); margin: 5px 0; transition: all .3s ease; }
.hamburger.toggle .line1 { transform: translateY(7px) rotate(45deg); }
.hamburger.toggle .line2 { opacity: 0; }
.hamburger.toggle .line3 { transform: translateY(-7px) rotate(-45deg); }

/* --- Hero (editorial dark-photo) --- */
.hero {
    min-height: 100vh;
    background-image: linear-gradient(180deg, rgba(20,17,14,0.35) 0%, rgba(20,17,14,0.78) 100%),
                      url('https://images.unsplash.com/photo-1622021133319-a9a8f4c28f3a?q=80&w=2070&auto=format&fit=crop');
    background-size: cover; background-position: center;
    display: flex; align-items: flex-end;
    padding: 0 0 5rem;
}
.hero-content { max-width: 1120px; width: 100%; margin: 0 auto; padding: 0 2rem; }
.hero-overline {
    font-size: 0.75rem; letter-spacing: 0.28em; text-transform: uppercase;
    color: var(--gold-soft); font-weight: 600; margin-bottom: 1rem;
    opacity: 0; animation: fadeInUp 1s ease-out forwards;
}
.hero-content h1 {
    font-size: clamp(2.8rem, 7vw, 5rem);
    color: var(--paper); margin-bottom: 1.2rem; max-width: 12ch;
    opacity: 0; animation: fadeInUp 1s ease-out 0.15s forwards;
}
.hero-content p {
    font-size: 1.1rem; font-weight: 300; color: rgba(250,247,241,0.86);
    max-width: 42ch; margin-bottom: 2rem;
    opacity: 0; animation: fadeInUp 1s ease-out 0.5s forwards;
}
.hero-content .btn { opacity: 0; animation: fadeInUp 1s ease-out 0.9s forwards; }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

/* --- Footer (charcoal block) --- */
.footer { background: var(--charcoal); color: var(--paper); text-align: center; padding: 3.5rem 0; }
.footer .nav-logo { color: var(--paper); }
.social-links a { color: rgba(250,247,241,0.75); margin: 0 0.9rem; display: inline-flex; transition: color .3s ease; }
.social-links a:hover { color: var(--gold-soft); }
.footer p { margin-top: 1.5rem; font-size: 0.85rem; color: rgba(250,247,241,0.55); letter-spacing: 0.02em; }

/* --- Floating booking CTA (mobile only — full styling in responsive.css) --- */
.mobile-book { display: none; }
