/* ============================================
   Kristy Ludwig Hair LLC — Custom Styles
   ============================================ */

/* --- Custom Properties --- */
:root {
    --terracotta-400: #E06040;
    --terracotta-500: #C84A2E;
    --terracotta-600: #A83A22;
    --sand-100: #FAF0E8;
    --sand-200: #F5E0CC;
    --warm-900: #2D1F1A;
    --warm-800: #3D2B24;
}

/* --- Smooth Scrolling --- */
html {
    scroll-behavior: smooth;
}

/* --- Selection Color --- */
::selection {
    background-color: rgba(200, 74, 46, 0.2);
    color: var(--warm-900);
}

/* --- Navbar Transitions --- */
.nav-text {
    transition: color 0.4s ease;
}

.nav-subtext {
    transition: color 0.4s ease;
}

.nav-link {
    position: relative;
}

.nav-link::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 1.5px;
    background: var(--terracotta-500);
    transition: width 0.3s ease;
}

.nav-link:hover::after {
    width: 100%;
}

/* --- Navbar scroll state --- */
.navbar-scrolled .nav-text,
.navbar-scrolled .nav-subtext {
    color: var(--warm-900);
}

/* --- Hero Animations --- */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.hero-badge {
    animation: fadeInUp 0.8s ease forwards;
    animation-delay: 0.2s;
    opacity: 0;
}

.hero-sub {
    animation: fadeInUp 0.8s ease forwards;
    animation-delay: 0.4s;
    opacity: 0;
}

.hero-cta {
    animation: fadeInUp 0.8s ease forwards;
    animation-delay: 0.6s;
    opacity: 0;
}

.hero-quick {
    animation: fadeInUp 0.8s ease forwards;
    animation-delay: 0.8s;
    opacity: 0;
}

.hero-scroll {
    animation: fadeIn 1s ease forwards;
    animation-delay: 1.2s;
    opacity: 0;
}

/* --- Service Cards --- */
.service-card {
    will-change: transform;
}

/* --- Scroll Reveal (progressive enhancement) --- */
@media (prefers-reduced-motion: no-preference) {
    .section-header {
        opacity: 1;
        transform: translateY(0);
        transition: opacity 0.8s ease, transform 0.8s ease;
    }

    .section-about-img {
        opacity: 1;
        transform: translateX(0);
        transition: opacity 0.8s ease, transform 0.8s ease;
    }

    .section-about-text {
        opacity: 1;
        transform: translateX(0);
        transition: opacity 0.8s ease, transform 0.8s ease;
    }

    .section-gallery {
        opacity: 1;
        transform: translateY(0);
        transition: opacity 0.8s ease, transform 0.8s ease;
    }

    .section-testimonials {
        opacity: 1;
        transform: translateY(0);
        transition: opacity 0.8s ease, transform 0.8s ease;
    }

    .section-contact-info {
        opacity: 1;
        transform: translateX(0);
        transition: opacity 0.8s ease, transform 0.8s ease;
    }

    .section-map {
        opacity: 1;
        transform: translateX(0);
        transition: opacity 0.8s ease, transform 0.8s ease;
    }
}

/* --- Mobile Menu --- */
.mobile-nav-link {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.4s ease, transform 0.4s ease;
}

/* --- Menu Icon Animation --- */
#menuBtn.active #bar1 {
    transform: translateY(4px) rotate(45deg);
}

#menuBtn.active #bar2 {
    opacity: 0;
    transform: scaleX(0);
}

#menuBtn.active #bar3 {
    transform: translateY(-4px) rotate(-45deg);
}

/* --- Image Hover Effects --- */
.group:hover .group-hover\:scale-110 {
    transform: scale(1.1);
}

/* --- Custom Scrollbar --- */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: var(--sand-100);
}

::-webkit-scrollbar-thumb {
    background: var(--terracotta-400);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--terracotta-500);
}

/* --- Focus Styles --- */
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 2px solid var(--terracotta-400);
    outline-offset: 2px;
}

/* --- Print Styles --- */
@media print {
    nav, #contactForm, .hero-scroll, .service-card {
        display: none;
    }
    
    body {
        color: #000;
        background: #fff;
    }
    
    .service-card {
        break-inside: avoid;
    }
}

/* --- Responsive Adjustments --- */
@media (max-width: 767px) {
    .hero-badge {
        animation-delay: 0.1s;
    }
    .hero-sub {
        animation-delay: 0.25s;
    }
    .hero-cta {
        animation-delay: 0.4s;
    }
    .hero-quick {
        animation-delay: 0.55s;
    }
}
