/* ============================================
   Quiet Corner Cafe — Custom Styles
   ============================================ */

/* --- Base & Typography --- */
html {
    scroll-behavior: smooth;
}

body {
    font-family: 'DM Sans', sans-serif;
}

.font-serif {
    font-family: 'Playfair Display', serif;
}

/* --- Custom Scrollbar --- */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: #fff8f6;
}
::-webkit-scrollbar-thumb {
    background: #a11536;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #821532;
}

/* --- Marquee Animation --- */
@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.animate-marquee {
    animation: marquee 30s linear infinite;
}

/* --- Hero Animations --- */
.hero-subtitle {
    animation: slideUp 0.8s ease forwards;
    animation-delay: 0.2s;
}

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

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

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

.hero-image-wrapper {
    animation: scaleIn 1s ease forwards;
    animation-delay: 0.3s;
    opacity: 0;
    transform: scale(0.95);
}

.hero-float-card {
    animation: floatUp 0.8s ease forwards;
    animation-delay: 1s;
    opacity: 0;
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.95);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes floatUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- Scroll Reveal --- */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.reveal.revealed {
    opacity: 1;
    transform: translateY(0);
}

.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }

/* --- Section Styles --- */
.section-label {
    display: block;
}

.section-title {
    /* applied via classes */
}

.section-desc {
    /* applied via classes */
}

/* --- Menu Item Hover --- */
.menu-item {
    padding: 12px 0;
    border-bottom: 1px solid rgba(130, 21, 50, 0.08);
    transition: padding-left 0.2s ease;
}

.menu-item:last-child {
    border-bottom: none;
}

.menu-item:hover {
    padding-left: 8px;
}

/* --- Navbar --- */
.nav-scrolled {
    background: rgba(255, 248, 246, 0.95) !important;
    backdrop-filter: blur(12px);
    box-shadow: 0 1px 0 rgba(130, 21, 50, 0.08);
}

.nav-scrolled .nav-link {
    color: #821532 !important;
}

.nav-scrolled .font-serif.text-lg {
    color: #821532 !important;
}

/* --- Mobile Menu --- */
.mobile-menu-open {
    opacity: 1 !important;
    pointer-events: all !important;
}

body.menu-open {
    overflow: hidden;
}

/* --- Image Hover Effects --- */
.story-image-wrapper {
    transition: transform 0.6s ease;
}

.story-image-wrapper:hover {
    transform: scale(1.01);
}

/* --- Selection Color --- */
::selection {
    background: #a11536;
    color: white;
}

/* --- Focus Visible --- */
:focus-visible {
    outline: 2px solid #821532;
    outline-offset: 2px;
}

/* --- Responsive Tweaks --- */
@media (max-width: 768px) {
    .hero-float-card {
        display: none;
    }
}

@media (min-width: 769px) {
    .nav-link {
        position: relative;
    }
    
    .nav-link::after {
        content: '';
        position: absolute;
        bottom: -4px;
        left: 0;
        width: 0;
        height: 2px;
        background: #a11536;
        transition: width 0.3s ease;
    }
    
    .nav-link:hover::after {
        width: 100%;
    }
}
