/* ── Reset & 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%; }

/* ── Navigation ────────────────────────────────────────── */
.nav-fixed {
    background: rgba(253, 252, 250, 0.85);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid transparent;
    transition: background 0.4s, border-color 0.4s, box-shadow 0.4s;
}
.nav-fixed.scrolled {
    background: rgba(253, 252, 250, 0.95);
    border-bottom-color: rgba(196, 114, 78, 0.1);
    box-shadow: 0 1px 20px rgba(184, 92, 56, 0.06);
}
.nav-link { position: relative; }
.nav-link::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 1.5px;
    background: #C4724E;
    transition: width 0.3s ease;
}
.nav-link:hover::after { width: 100%; }

/* ── Buttons ───────────────────────────────────────────── */
.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #C4724E;
    color: #FDF6EC;
    border: 2px solid #C4724E;
    border-radius: 100px;
    padding: 0.75rem 2rem;
    font-family: 'Inter', system-ui, sans-serif;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    position: relative;
    overflow: hidden;
}
.btn-primary::before {
    content: '';
    position: absolute;
    inset: 0;
    background: #9A4428;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 0;
}
.btn-primary:hover::before { transform: scaleX(1); transform-origin: left; }
.btn-primary span, .btn-primary svg { position: relative; z-index: 1; }
.btn-primary:hover { border-color: #9A4428; transform: translateY(-2px); box-shadow: 0 8px 25px rgba(154, 68, 40, 0.25); }

.btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: #C4724E;
    border: 2px solid #E08A3A;
    border-radius: 100px;
    padding: 0.75rem 2rem;
    font-family: 'Inter', system-ui, sans-serif;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
}
.btn-outline:hover {
    background: #C4724E;
    border-color: #C4724E;
    color: #FDF6EC;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(184, 92, 56, 0.2);
}

/* ── Hero ──────────────────────────────────────────────── */
.hero {
    position: relative;
    background: linear-gradient(160deg, #FDF6EC 0%, #FAF6EE 50%, #F4ECDA 100%);
    min-height: 100vh;
}
.hero-deco {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}
.hero-deco-1 {
    width: 600px; height: 600px;
    background: radial-gradient(circle, rgba(196,114,78,0.06) 0%, transparent 70%);
    top: -10%; right: -10%;
}
.hero-deco-2 {
    width: 400px; height: 400px;
    background: radial-gradient(circle, rgba(184,92,56,0.05) 0%, transparent 70%);
    bottom: 5%; left: -5%;
}
.hero-deco-3 {
    width: 200px; height: 200px;
    border: 1px solid rgba(196,114,78,0.12);
    top: 20%; left: 8%;
    animation: float 8s ease-in-out infinite;
}
@keyframes float {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-20px) rotate(5deg); }
}
.hero-headline { font-size: clamp(2.75rem, 6vw, 5rem); }
.hero-subtitle { font-size: clamp(1rem, 1.5vw, 1.15rem); }
.hero-eyebrow { letter-spacing: 0.25em; }

.hero-scroll-arrow { animation: bob 2s ease-in-out infinite; }
@keyframes bob {
    0%, 100% { transform: translateY(0); opacity: 0.5; }
    50% { transform: translateY(6px); opacity: 1; }
}

/* Hero entrance animations */
.hero-eyebrow { animation: fadeUp 0.8s ease forwards 0.2s; opacity: 0; }
.hero-headline { animation: fadeUp 0.8s ease forwards 0.4s; opacity: 0; }
.hero-subtitle { animation: fadeUp 0.8s ease forwards 0.6s; opacity: 0; }
.hero-cta { animation: fadeUp 0.8s ease forwards 0.8s; opacity: 0; }
@keyframes fadeUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ── Sections ──────────────────────────────────────────── */
.section { position: relative; }
.section-eyebrow { display: block; }
.section-title {
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.15;
    margin-bottom: 1rem;
}

/* ── Service Cards ─────────────────────────────────────── */
.service-card {
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.service-card:hover {
    background: #FDF6EC !important;
    transform: translateY(-4px);
    box-shadow: 0 20px 50px rgba(184, 92, 56, 0.1);
}

/* ── Gallery ───────────────────────────────────────────── */
.gallery-item {
    overflow: hidden;
    cursor: pointer;
}
.gallery-img {
    transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1), filter 0.5s ease;
    filter: saturate(0.85);
}
.gallery-item:hover .gallery-img {
    transform: scale(1.08);
    filter: saturate(1);
}

/* ── Testimonials ──────────────────────────────────────── */
.testimonial-card {
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.testimonial-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 25px 60px rgba(0,0,0,0.15);
}
.testimonials-deco-2 { animation: float 10s ease-in-out infinite reverse; }

/* ── Contact / Form ────────────────────────────────────── */
.form-input {
    width: 100%;
    padding: 0.875rem 1rem;
    border: 1.5px solid #F0DCC8;
    border-radius: 12px;
    background: #FDF6EC;
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 0.95rem;
    font-weight: 300;
    color: #5E442C;
    transition: all 0.3s ease;
    outline: none;
    appearance: none;
}
.form-input::placeholder { color: #D4B47E; }
.form-input:focus {
    border-color: #C4724E;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(196, 114, 78, 0.08);
}
.form-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23C4724E' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    padding-right: 2.5rem;
    cursor: pointer;
}
.form-textarea { resize: vertical; min-height: 100px; }
.form-label { font-family: 'Inter', system-ui, sans-serif; }
.form-success {
    animation: fadeIn 0.5s ease;
}
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ── Mobile Menu ───────────────────────────────────────── */
.mobile-menu { z-index: 40; }
.mobile-menu.open { opacity: 1 !important; pointer-events: all !important; }
.mobile-menu-link { font-size: clamp(1.75rem, 4vw, 2.5rem) !important; }
.menu-line { transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important; }
.menu-btn-active .menu-line:nth-child(1) { transform: rotate(45deg) translate(4px, 4px); }
.menu-btn-active .menu-line:nth-child(2) { opacity: 0; transform: scaleX(0); }
.menu-btn-active .menu-line:nth-child(3) { transform: rotate(-45deg) translate(3px, -3px); width: 5px !important; }

/* ── Scroll Reveal ─────────────────────────────────────── */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}
.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}
.reveal:nth-child(2) { transition-delay: 0.1s; }
.reveal:nth-child(3) { transition-delay: 0.2s; }

/* ── Responsive ────────────────────────────────────────── */
@media (max-width: 768px) {
    .about-img-accent { display: none !important; }
    .hero-deco-1 { width: 300px; height: 300px; }
    .hero-deco-2 { width: 200px; height: 200px; }
    .section { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
}
@media (min-width: 769px) and (max-width: 1024px) {
    .gallery-grid { grid-template-columns: repeat(3, 1fr) !important; }
    .gallery-grid > :last-child { grid-column: span 3; }
}
