


[x-cloak] {
    display: none;
}


html {
    scroll-behavior: smooth;
}


body {
    background: linear-gradient(135deg, #FBF8F3 0%, #F5EDE4 100%);
    overflow-x: hidden;
    position: relative;
}


body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0.03;
    z-index: -1;
    background-image:
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(138, 111, 71, 0.05) 2px, rgba(138, 111, 71, 0.05) 4px),
        repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(138, 111, 71, 0.05) 2px, rgba(138, 111, 71, 0.05) 4px);
    pointer-events: none;
}


.fade-in-up {
    animation: fadeInUp 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
    opacity: 0;
    transform: translateY(30px);
}

@keyframes fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fade-in {
    animation: fadeIn 1.5s ease-out forwards;
    opacity: 0;
}

@keyframes fadeIn {
    to {
        opacity: 1;
    }
}

.delay-100 { animation-delay: 0.1s; }
.delay-200 { animation-delay: 0.2s; }
.delay-300 { animation-delay: 0.3s; }
.delay-400 { animation-delay: 0.4s; }


.warm-glow {
    box-shadow:
        0 0 30px rgba(212, 165, 116, 0.2),
        0 0 60px rgba(184, 92, 56, 0.1),
        inset 0 0 20px rgba(255, 255, 255, 0.1);
}


.decorative-divider {
    position: relative;
    height: 1px;
    background: linear-gradient(90deg, transparent, #D4A574, transparent);
}

.decorative-divider::before,
.decorative-divider::after {
    content: '◆';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: #D4A574;
    font-size: 8px;
}

.decorative-divider::before { left: 45%; }
.decorative-divider::after { right: 45%; }


.texture-paper {
    background-image:
        radial-gradient(circle at 20% 50%, rgba(212, 165, 116, 0.03) 0%, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(201, 123, 99, 0.03) 0%, transparent 50%);
}


.elfsight-app-lazy {
    background: transparent;
}


.hover-lift {
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.hover-lift:hover {
    transform: translateY(-8px);
    box-shadow:
        0 20px 40px rgba(138, 111, 71, 0.15),
        0 10px 20px rgba(184, 92, 56, 0.1);
}


.hero-image {
    filter: saturate(1.1) contrast(1.05);
}

.hero-overlay {
    background: linear-gradient(to bottom right, rgba(184, 92, 56, 0.4), rgba(74, 52, 38, 0.6), rgba(74, 52, 38, 0.8));
    mix-blend-mode: multiply;
}

.hero-vignette {
    background: radial-gradient(ellipse at center, transparent 0%, rgba(42, 24, 16, 0.4) 100%);
}

.hero-frame-bg {
    background: linear-gradient(135deg, rgba(212, 165, 116, 0.08) 0%, rgba(184, 92, 56, 0.05) 100%);
}

.hero-title-shadow {
    text-shadow: 0 4px 20px rgba(42, 24, 16, 0.5), 0 0 40px rgba(212, 165, 116, 0.2);
}

.hero-script-shadow {
    text-shadow: 0 0 30px rgba(212, 165, 116, 0.4);
}

.hero-quote-shadow {
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
}


.about-script-shadow {
    text-shadow: 0 2px 10px rgba(201, 123, 99, 0.2);
}


.menu-script-shadow {
    text-shadow: 0 2px 10px rgba(201, 123, 99, 0.2);
}

.menu-image-filter {
    filter: saturate(1.05);
}


.popular-script-shadow {
    text-shadow: 0 2px 10px rgba(184, 92, 56, 0.2);
}


.catering-bg-filter {
    filter: brightness(0.7) saturate(1.1) contrast(1.05);
}

.catering-title-shadow {
    text-shadow: 0 2px 15px rgba(0, 0, 0, 0.5);
}

.catering-heading-shadow {
    text-shadow: 0 2px 20px rgba(0, 0, 0, 0.7);
}


.reviews-script-shadow {
    text-shadow: 0 2px 10px rgba(201, 123, 99, 0.2);
}


.instagram-script-shadow {
    text-shadow: 0 2px 10px rgba(184, 92, 56, 0.2);
}


.footer-script-shadow {
    text-shadow: 0 0 20px rgba(232, 196, 160, 0.3);
}


.z-100 { z-index: 100; }
.z-101 { z-index: 101; }
.z-90 { z-index: 90; }


.text-10px { font-size: 10px; }
.text-11px { font-size: 11px; }
.text-15vw { font-size: 15vw; }


.h-55vh { height: 55vh; }
.h-85vh { height: 85vh; }
.min-h-450 { min-height: 450px; }
.min-h-650 { min-height: 650px; }
.h-2px { height: 2px; }
.-mt-1px { margin-top: -1px; }


.tracking-02em { letter-spacing: 0.2em; }
.tracking-03em { letter-spacing: 0.3em; }


.aspect-4-3 { aspect-ratio: 4 / 3; }
.aspect-4-5 { aspect-ratio: 4 / 5; }


.scale-102 { transform: scale(1.02); }


.sepia-005 { filter: sepia(0.05); }
.contrast-102 { filter: contrast(1.02); }
.brightness-102 { filter: brightness(1.02); }
.sepia-005-contrast-102-brightness-102 {
    filter: sepia(0.05) contrast(1.02) brightness(1.02);
}
.brightness-102-contrast-102 {
    filter: brightness(1.02) contrast(1.02);
}


.max-w-1200 { max-width: 1200px; }
.min-h-400 { min-height: 400px; }


html {
    overflow-x: hidden;
}

@media (max-width: 640px) {
    section,
    section > div,
    section > div > div,
    section > div > div > div {
        max-width: 100%;
        box-sizing: border-box;
        overflow-x: hidden;
    }

    .contact-grid > div,
    .grid > div {
        min-width: 0;
        max-width: 100%;
    }
}

#contact-form {
    max-width: 100%;
    overflow: hidden;
}

#contact-form .g-recaptcha {
    transform-origin: left center;
    max-width: 100%;
}

@media (max-width: 400px) {
    #contact-form .g-recaptcha {
        transform: scale(0.85);
    }

    #contact-form .g-recaptcha > div {
        max-width: 100%;
    }
}

@media (max-width: 340px) {
    #contact-form .g-recaptcha {
        transform: scale(0.75);
    }
}
