/* ── Base & Utilities ── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { margin: 0; -webkit-font-smoothing: antialiased; }

.sr-only {
    position: absolute; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.skip-link {
    position: absolute; z-index: 9999;
    background: #A85E42; color: #fff;
    padding: .75rem 1.5rem; border-radius: .75rem;
    font-weight: 500; text-decoration: none;
}

/* ── Nav ── */
.nav-link { position: relative; }
.nav-link::after {
    content: ''; position: absolute; bottom: -4px; left: 0;
    width: 0; height: 2px; background: #C67B5C;
    transition: width .25s ease;
}
.nav-link:hover::after { width: 100%; }

/* ── Mobile Menu ── */
.mobile-link { display: block; padding: .5rem 0; }
#mobile-menu.open { display: block; animation: slideDown .3s ease; }
@keyframes slideDown {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ── Service Cards ── */
.service-card { position: relative; overflow: hidden; }
.service-card::before {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(198,123,92,.03) 0%, rgba(212,168,98,.03) 100%);
    opacity: 0; transition: opacity .3s ease;
}
.service-card:hover::before { opacity: 1; }

/* ── Gallery ── */
.gallery-item { cursor: pointer; }

/* ── Scroll Reveal (progressive enhancement) ── */
@media (prefers-reduced-motion: no-preference) {
    .reveal {
        opacity: 0;
        transform: translateY(24px);
        transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);
    }
    .reveal.revealed {
        opacity: 1;
        transform: translateY(0);
    }
    .reveal-delay-1 { transition-delay: .1s; }
    .reveal-delay-2 { transition-delay: .2s; }
    .reveal-delay-3 { transition-delay: .3s; }
    .reveal-delay-4 { transition-delay: .4s; }
    .reveal-delay-5 { transition-delay: .5s; }
}

/* Fallback: always visible if JS is disabled */
.no-js .reveal,
html:not(.js-enabled) .reveal {
    opacity: 1;
    transform: none;
}

/* ── Testimonial Cards ── */
.testimonial-card { position: relative; }
.testimonial-card::after {
    content: '"'; position: absolute; top: 16px; right: 24px;
    font-family: 'Cormorant Garamond', serif; font-size: 6rem;
    color: rgba(198,123,92,.08); line-height: 1; pointer-events: none;
}

/* ── Form ── */
select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B4F3A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}

/* ── Header Shadow on Scroll ── */
header.scrolled {
    box-shadow: 0 1px 20px rgba(0,0,0,.06);
}

/* ── Custom Scrollbar ── */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #FAF5EC; }
::-webkit-scrollbar-thumb { background: #E49566; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #C67B5C; }
