/* ── Base ── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { margin: 0; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img { display: block; max-width: 100%; }

/* ── Hero Gradient ── */
.hero-gradient {
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 35%, #334155 65%, #0f172a 100%);
}

/* ── Hero Animations ── */
@keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}
.hero-eyebrow { animation: heroFadeUp 0.8s ease forwards; animation-delay: 0.2s; opacity: 0; }
.hero-title { animation: heroFadeUp 0.8s ease forwards; animation-delay: 0.4s; opacity: 0; }
.hero-subtitle { animation: heroFadeUp 0.8s ease forwards; animation-delay: 0.6s; opacity: 0; }
.hero-ctas { animation: heroFadeUp 0.8s ease forwards; animation-delay: 0.8s; opacity: 0; }
.hero-scroll { animation: heroFadeUp 0.8s ease forwards; animation-delay: 1.2s; opacity: 0; }

/* ── Scroll Reveal ── */
.reveal-up, .reveal-left, .reveal-right {
    opacity: 1;
    transform: none;
    transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal-up { transition-delay: 0.1s; }
.reveal-left { transition-delay: 0.1s; }
.reveal-right { transition-delay: 0.1s; }

/* Reduced motion: keep everything visible */
@media (prefers-reduced-motion: reduce) {
    .reveal-up, .reveal-left, .reveal-right {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .hero-eyebrow, .hero-title, .hero-subtitle, .hero-ctas, .hero-scroll {
        opacity: 1;
        animation: none;
    }
}

/* ── Navbar ── */
#navbar { background: transparent; }
#navbar.scrolled {
    background: rgba(255,255,255,0.97);
    backdrop-filter: blur(12px);
    box-shadow: 0 1px 0 rgba(15,23,42,0.06);
}
.nav-logo { color: #0f172a; }
#navbar:not(.scrolled) .nav-logo { color: #fff; }
#navbar:not(.scrolled) .nav-link { color: rgba(255,255,255,0.7); }
#navbar:not(.scrolled) .nav-link:hover { color: #fff; }
#navbar:not(.scrolled) .nav-btn span { background: #fff; }
#navbar:not(.scrolled) .hero-btn-primary { background: #c8a45a; }
#navbar:not(.scrolled) .hero-btn-primary:hover { background: #d4af5a; }

/* ── Mobile Menu ── */
#mobile-menu.open { opacity: 1; pointer-events: all; }
#mobile-menu.closed { opacity: 0; pointer-events: none; }

/* ── Specialty Cards ── */
.specialty-card { border: 1px solid rgba(15,23,42,0.06); }

/* ── Gallery ── */
.gallery-item { height: 280px; }
@media (min-width: 768px) { .gallery-item { height: 360px; } }

/* ── Contact Form ── */
.contact-input:focus ~ .contact-label-input,
.contact-input:not(:placeholder-shown) ~ .contact-label-input {
    top: -8px;
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #c8a45a;
}
.contact-label-input {
    transition: top 0.25s ease, font-size 0.25s ease, color 0.25s ease;
}
.contact-submit { position: relative; overflow: hidden; }
.contact-submit::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(200,164,90,0.2), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
}
.contact-submit:hover::after { opacity: 1; }
