/*
Theme Name: The Opal Spoon - Restaurant Template
Theme Description: Elegant restaurant template with modern design
*/

/* ========== TABLE OF CONTENTS ==========
1. CSS Variables
2. Global Styles
3. Navigation
4. Hero Section
5. Features Section
6. About Section
7. Menu Preview
8. Footer
9. Image Styles
10. Animations
11. About Page Styles
12. Menu Page Styles
13. Reservations Page Styles
14. Contact Page Styles
15. Responsive Adjustments
16. Form Styles
*/

/* ========== 1. CSS VARIABLES ========== */
:root {
    --isabeline: #F3F2EE;
    --tangerine: #E78B3B;
    --bone: #D8D2BD;
    --hunter-green: #315A2B;
    --night: #161616;
}

/* ========== 2. GLOBAL STYLES ========== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Inter', sans-serif;
    background-color: var(--isabeline);
    color: var(--night);
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Playfair Display', serif;
}

/* ========== 3. NAVIGATION ========== */
.navbar {
    background: rgba(243, 242, 238, 0.95);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(49, 90, 43, 0.1);
    transition: all 0.3s ease;
    padding: 1rem 0;
}

.navbar.scrolled {
    background: rgba(243, 242, 238, 0.98);
    box-shadow: 0 2px 20px rgba(0,0,0,0.1);
}

.navbar-brand {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    font-weight: 700;
    color: var(--hunter-green) !important;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.navbar-brand i {
    color: var(--tangerine);
    font-size: 1.8rem;
}

.nav-link {
    color: var(--night) !important;
    font-weight: 500;
    margin: 0 1rem;
    position: relative;
    transition: all 0.3s ease;
}

.nav-link:hover,
.nav-link.active {
    color: var(--tangerine) !important;
}

.nav-link::after {
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: -5px;
    left: 50%;
    background-color: var(--tangerine);
    transition: all 0.3s ease;
    transform: translateX(-50%);
}

.nav-link:hover::after,
.nav-link.active::after {
    width: 100%;
}

/* ========== 4. HERO SECTION ========== */
.hero {
    min-height: 100vh;
    background: linear-gradient(135deg, var(--isabeline) 0%, var(--bone) 100%);
    display: flex;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="50" cy="50" r="2" fill="%23315A2B" opacity="0.1"/></svg>');
    animation: float 6s ease-in-out infinite;
}

.hero-content {
    position: relative;
    z-index: 2;
}

.hero h1 {
    font-size: 4.5rem;
    font-weight: 700;
    color: var(--hunter-green);
    margin-bottom: 1rem;
    opacity: 0;
    animation: slideUp 1s ease-out 0.5s forwards;
}

.hero .subtitle {
    font-size: 1.5rem;
    color: var(--tangerine);
    margin-bottom: 2rem;
    opacity: 0;
    animation: slideUp 1s ease-out 1s forwards;
}

.hero .description {
    font-size: 1.2rem;
    color: var(--night);
    margin-bottom: 3rem;
    opacity: 0;
    animation: slideUp 1s ease-out 1.5s forwards;
    line-height: 1.8;
}

.btn-primary {
    background: linear-gradient(45deg, var(--tangerine), #c67326);
    border: none;
    padding: 1rem 2.5rem;
    font-size: 1.1rem;
    font-weight: 600;
    border-radius: 50px;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 8px 25px rgba(231, 139, 59, 0.3);
    opacity: 0;
    animation: slideUp 1s ease-out 2s forwards;
}

.btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 35px rgba(231, 139, 59, 0.4);
    background: linear-gradient(45deg, #c67326, var(--tangerine));
}

.btn-outline-primary {
    border: 2px solid var(--hunter-green);
    color: var(--hunter-green);
    padding: 1rem 2.5rem;
    font-size: 1.1rem;
    font-weight: 600;
    border-radius: 50px;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 1px;
    background: transparent;
    opacity: 0;
    animation: slideUp 1s ease-out 2.2s forwards;
}

.btn-outline-primary:hover {
    background: var(--hunter-green);
    color: var(--isabeline);
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(49, 90, 43, 0.3);
}

/* ========== 5. FEATURES SECTION ========== */
.features {
    padding: 8rem 0;
    background: var(--night);
    color: var(--isabeline);
    position: relative;
    z-index: 1;
}

.feature-card {
    text-align: center;
    padding: 3rem 2rem;
    border-radius: 20px;
    background: rgba(243, 242, 238, 0.05);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(243, 242, 238, 0.1);
    transition: all 0.5s ease;
    height: 100%;
}

.feature-card:hover {
    transform: translateY(-10px);
    background: rgba(243, 242, 238, 0.1);
    box-shadow: 0 20px 40px rgba(0,0,0,0.3);
}

.feature-icon {
    font-size: 3.5rem;
    color: var(--tangerine);
    margin-bottom: 1.5rem;
    transition: all 0.3s ease;
}

.feature-card:hover .feature-icon {
    transform: scale(1.1);
}

.feature-card h3 {
    font-size: 1.8rem;
    margin-bottom: 1rem;
    color: var(--isabeline);
}

.feature-card p {
    color: var(--bone);
    line-height: 1.8;
    font-size: 1.1rem;
}

/* ========== 6. ABOUT SECTION ========== */
.about {
    padding: 8rem 0;
    background: linear-gradient(135deg, var(--bone) 0%, var(--isabeline) 100%);
}

.about-content {
    display: flex;
    align-items: center;
    gap: 4rem;
}

.about-text h2 {
    font-size: 3rem;
    color: var(--hunter-green);
    margin-bottom: 2rem;
}

.about-text p {
    font-size: 1.2rem;
    line-height: 1.8;
    color: var(--night);
    margin-bottom: 1.5rem;
}

.about-image {
    position: relative;
    overflow: hidden;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
}

.about-image::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(45deg, var(--tangerine), transparent);
    opacity: 0.3;
    z-index: 1;
}

/* ========== 7. MENU PREVIEW ========== */
.menu-preview {
    padding: 8rem 0;
    background: var(--isabeline);
}

.menu-item {
    background: white;
    border-radius: 15px;
    padding: 2rem;
    margin-bottom: 2rem;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    border-left: 4px solid var(--tangerine);
}

.menu-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}

.menu-item h4 {
    color: var(--hunter-green);
    margin-bottom: 0.5rem;
    font-size: 1.5rem;
}

.menu-item .price {
    color: var(--tangerine);
    font-weight: 600;
    font-size: 1.3rem;
    float: right;
}

.menu-item p {
    color: var(--night);
    line-height: 1.6;
}

/* ========== 8. FOOTER ========== */
.footer {
    background: var(--night);
    color: var(--isabeline);
    padding: 4rem 0 2rem;
}

.footer h5 {
    color: var(--tangerine);
    margin-bottom: 1.5rem;
}

.footer a {
    color: var(--bone);
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer a:hover {
    color: var(--tangerine);
}

.social-icons a {
    display: inline-block;
    width: 50px;
    height: 50px;
    background: var(--hunter-green);
    color: var(--isabeline)!important;
    text-align: center;
    line-height: 50px;
    border-radius: 50%;
    margin-right: 1rem;
    transition: all 0.3s ease;
}

.social-icons a:hover {
    background: var(--tangerine);
    transform: translateY(-3px);
}

/* ========== 9. IMAGE STYLES ========== */
.hero-image img {
    width: 100%;
    max-width: 500px;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
    transition: all 0.5s ease;
}

.hero-image img:hover {
    transform: scale(1.03);
    box-shadow: 0 25px 70px rgba(0,0,0,0.3);
}

.about-image img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    border-radius: 20px;
}

/* ========== 10. ANIMATIONS ========== */
@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(50px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}

/* Scroll animations */
.fade-in {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s ease;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

/* ========== 11. ABOUT PAGE STYLES ========== */
.about-hero {
    min-height: 60vh;
    background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    color: white;
    text-align: center;
}

.about-hero h1 {
    font-size: 4rem;
    color: white;
    margin-bottom: 1rem;
    opacity: 1;
    animation: none;
}

.about-hero .subtitle {
    font-size: 1.5rem;
    color: var(--tangerine);
    opacity: 1;
    animation: none;
}

.history-section,
.philosophy-section {
    padding: 6rem 0;
}

.history-section h2,
.philosophy-section h2 {
    color: var(--hunter-green);
    margin-bottom: 2rem;
}

.history-section p,
.philosophy-section p {
    font-size: 1.1rem;
    line-height: 1.8;
    margin-bottom: 1.5rem;
}

.history-image,
.philosophy-image {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}

.history-image img,
.philosophy-image img {
    width: 100%;
    height: 400px;
    object-fit: cover;
}

.team-section {
    padding: 6rem 0;
    background: var(--bone);
}

.team-section h2 {
    color: var(--hunter-green);
    margin-bottom: 1rem;
}

.team-card {
    background: white;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    height: 100%;
}

.team-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}

.team-image {
    height: 300px;
    overflow: hidden;
}

.team-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.team-card:hover .team-image img {
    transform: scale(1.05);
}

.team-info {
    padding: 2rem;
}

.team-info h4 {
    color: var(--hunter-green);
    margin-bottom: 0.5rem;
}

.team-info .position {
    color: var(--tangerine);
    font-weight: 600;
    margin-bottom: 1rem;
}

.principle {
    margin-bottom: 2rem;
}

.principle h4 {
    color: var(--hunter-green);
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
}

.principle h4 i {
    color: var(--tangerine);
}

.awards-section {
    padding: 6rem 0;
    background: var(--night);
    color: white;
}

.awards-section h2 {
    color: var(--tangerine);
    margin-bottom: 1rem;
}

.award-item {
    padding: 2rem 1rem;
}

.award-item i {
    font-size: 3rem;
    color: var(--tangerine);
    margin-bottom: 1rem;
}

.award-item h4 {
    color: white;
    margin-bottom: 0.5rem;
}

.award-item p {
    color: var(--bone);
}

.about-cta {
    padding: 6rem 0;
    background: linear-gradient(135deg, var(--tangerine) 0%, #c67326 100%);
    color: white;
    text-align: center;
}

.about-cta h2 {
    color: white;
    margin-bottom: 1rem;
}

.about-cta p {
    font-size: 1.2rem;
    margin-bottom: 2rem;
}

/* ========== 12. MENU PAGE STYLES ========== */
.menu-hero {
    min-height: 60vh;
    background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    color: white;
    text-align: center;
}

.menu-hero h1 {
    font-size: 4rem;
    color: white;
    margin-bottom: 1rem;
    opacity: 1;
    animation: none;
}

.menu-hero .subtitle {
    font-size: 1.5rem;
    color: var(--tangerine);
    opacity: 1;
    animation: none;
}

.menu-filter-section {
    padding: 3rem 0;
    background: var(--isabeline);
}

.menu-filter {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1rem;
}

.filter-btn {
    background: transparent;
    border: 2px solid var(--hunter-green);
    color: var(--hunter-green);
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-weight: 600;
    transition: all 0.3s ease;
    cursor: pointer;
}

.filter-btn:hover,
.filter-btn.active {
    background: var(--hunter-green);
    color: var(--isabeline);
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(49, 90, 43, 0.3);
}

.menu-category {
    padding: 5rem 0;
}

.menu-category:nth-child(even) {
    background: var(--bone);
}

.menu-category h2 {
    color: var(--hunter-green);
    margin-bottom: 1rem;
}

.menu-subcategory {
    margin-bottom: 2rem;
}

.menu-subcategory h3 {
    color: var(--hunter-green);
    margin-bottom: 1.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--tangerine);
}

.menu-item {
    background: white;
    border-radius: 15px;
    padding: 2rem;
    margin-bottom: 2rem;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    border-left: 4px solid var(--tangerine);
    opacity: 1;
    transform: translateY(0);
}

.menu-item.hidden {
    display: none;
}

.menu-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}

.menu-item-content h4 {
    color: var(--hunter-green);
    margin-bottom: 0.5rem;
    font-size: 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.menu-item .price {
    color: var(--tangerine);
    font-weight: 600;
    font-size: 1.3rem;
}

.menu-item p {
    color: var(--night);
    line-height: 1.6;
    margin-bottom: 1rem;
}

.menu-tags {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.menu-tag {
    background: var(--hunter-green);
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 500;
}

.menu-tag[data-tag="vegetarian"] {
    background: var(--hunter-green);
}

.menu-tag[data-tag="gluten-free"] {
    background: var(--tangerine);
}

.menu-tag[data-tag="chef-recommendation"] {
    background: #8B4513;
}

.menu-tag[data-tag="signature-dish"] {
    background: #8A2BE2;
}

.menu-cta {
    padding: 6rem 0;
    background: linear-gradient(135deg, var(--tangerine) 0%, #c67326 100%);
    color: white;
    text-align: center;
}

.menu-cta h2 {
    color: white;
    margin-bottom: 1rem;
}

.menu-cta p {
    font-size: 1.2rem;
    margin-bottom: 2rem;
}

/* ========== 13. RESERVATIONS PAGE STYLES ========== */
.reservations-hero {
    min-height: 60vh;
    background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    color: white;
    text-align: center;
}

.reservations-hero h1 {
    font-size: 4rem;
    color: white;
    margin-bottom: 1rem;
    opacity: 1;
    animation: none;
}

.reservations-hero .subtitle {
    font-size: 1.5rem;
    color: var(--tangerine);
    opacity: 1;
    animation: none;
}

.reservation-form-section {
    padding: 6rem 0;
    background: var(--isabeline);
}

.reservation-form-container {
    background: white;
    border-radius: 20px;
    padding: 3rem;
    box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}

.reservation-form h2 {
    color: var(--hunter-green);
    margin-bottom: 2rem;
}

.reservation-form .form-label {
    font-weight: 600;
    color: var(--hunter-green);
    margin-bottom: 0.5rem;
}

.reservation-form .form-control,
.reservation-form .form-select {
    padding: 0.75rem 1rem;
    border: 2px solid var(--bone);
    border-radius: 10px;
    transition: all 0.3s ease;
}

.reservation-form .form-control:focus,
.reservation-form .form-select:focus {
    border-color: var(--tangerine);
    box-shadow: 0 0 0 0.25rem rgba(231, 139, 59, 0.25);
}

.reservation-form .form-check-input:checked {
    background-color: var(--tangerine);
    border-color: var(--tangerine);
}

.reservation-form .btn {
    padding: 1rem 2rem;
    font-size: 1.1rem;
    font-weight: 600;
}

.reservation-info {
    padding: 6rem 0;
    background: var(--night);
    color: white;
}

.info-card {
    background: rgba(243, 242, 238, 0.05);
    padding: 2.5rem 2rem;
    border-radius: 15px;
    height: 100%;
    transition: all 0.3s ease;
}

.info-card:hover {
    transform: translateY(-10px);
    background: rgba(243, 242, 238, 0.1);
}

.info-card i {
    font-size: 3rem;
    color: var(--tangerine);
    margin-bottom: 1.5rem;
}

.info-card h3 {
    color: var(--isabeline);
    margin-bottom: 1.5rem;
}

.info-card p {
    color: var(--bone);
    line-height: 1.7;
}

.private-events {
    padding: 6rem 0;
    background: var(--bone);
}

.private-events h2 {
    color: var(--hunter-green);
    margin-bottom: 2rem;
}

.private-events p {
    font-size: 1.1rem;
    line-height: 1.8;
    margin-bottom: 1.5rem;
}

.events-image {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(0,0,0,0.2);
}

.events-image img {
    width: 100%;
    height: 400px;
    object-fit: cover;
}

.faq-section {
    padding: 6rem 0;
    background: var(--isabeline);
}

.faq-section h2 {
    color: var(--hunter-green);
    margin-bottom: 1rem;
}

.accordion-button {
    font-weight: 600;
    color: var(--hunter-green);
    padding: 1.25rem;
}

.accordion-button:not(.collapsed) {
    background-color: rgba(231, 139, 59, 0.1);
    color: var(--tangerine);
}

.accordion-button:focus {
    border-color: var(--tangerine);
    box-shadow: 0 0 0 0.25rem rgba(231, 139, 59, 0.25);
}

.accordion-body {
    padding: 1.25rem;
    color: var(--night);
    line-height: 1.7;
}

/* ========== 14. CONTACT PAGE STYLES ========== */
.contact-hero {
    min-height: 60vh;
    background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    color: white;
    text-align: center;
}

.contact-hero h1 {
    font-size: 4rem;
    color: white;
    margin-bottom: 1rem;
    opacity: 1;
    animation: none;
}

.contact-hero .subtitle {
    font-size: 1.5rem;
    color: var(--tangerine);
    opacity: 1;
    animation: none;
}

.contact-info-section {
    padding: 6rem 0;
    background: var(--isabeline);
}

.contact-info-card {
    background: white;
    padding: 3rem 2rem;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    height: 100%;
    transition: all 0.3s ease;
}

.contact-info-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}

/*.contact-info-card i {
    font-size: 3rem;
    color: var(--tangerine);
    margin-bottom: 1.5rem;
}*/

.contact-info-card h3 {
    color: var(--hunter-green);
    margin-bottom: 1.5rem;
}

.contact-info-card p {
    color: var(--night);
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.contact-info-card a {
    color: var(--hunter-green);
    text-decoration: none;
    transition: color 0.3s ease;
}

.contact-info-card a:hover {
    color: white;
    /*color: var(--tangerine);*/
    /*color: var(--hunter-green);*/
}

.contact-info-card .social-icons {
    justify-content: center;
}

.contact-form-section {
    padding: 6rem 0;
    background: var(--bone);
}

.contact-form-container {
    background: white;
    border-radius: 20px;
    padding: 3rem;
    box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}

.contact-form h2 {
    color: var(--hunter-green);
    margin-bottom: 2rem;
}

.contact-form .form-label {
    font-weight: 600;
    color: var(--hunter-green);
    margin-bottom: 0.5rem;
}

.contact-form .form-control,
.contact-form .form-select {
    padding: 0.75rem 1rem;
    border: 2px solid var(--bone);
    border-radius: 10px;
    transition: all 0.3s ease;
}

.contact-form .form-control:focus,
.contact-form .form-select:focus {
    border-color: var(--tangerine);
    box-shadow: 0 0 0 0.25rem rgba(231, 139, 59, 0.25);
}

.contact-form .form-check-input:checked {
    background-color: var(--tangerine);
    border-color: var(--tangerine);
}

.contact-form .btn {
    padding: 1rem 2rem;
    font-size: 1.1rem;
    font-weight: 600;
}

.map-section {
    padding: 0;
}

.map-container {
    height: 400px;
    background: var(--night);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
}

.map-placeholder {
    text-align: center;
}

.map-placeholder a {
 color: white;
 border-color: white;
 font-weight: 400;
}

.map-placeholder a:hover {
    border-color: var(--hunter-green);
}

.map-placeholder i {
    color: white;
}

.map-placeholder h3 {
    color: white;
    margin-bottom: 1rem;
}

.map-placeholder p {
    color: var(--bone);
    margin-bottom: 1.5rem;
}

.contact-faq {
    padding: 6rem 0;
    background: var(--isabeline);
}

.contact-faq h2 {
    color: var(--hunter-green);
    margin-bottom: 1rem;
}

.newsletter-section {
    padding: 6rem 0;
    background: var(--hunter-green);
    color: white;
    text-align: center;
}

.newsletter-section h2 {
    color: white;
    margin-bottom: 1rem;
}

.newsletter-section p {
    margin-bottom: 2rem;
    font-size: 1.1rem;
}

.newsletter-form {
    max-width: 500px;
    margin: 0 auto;
}

.newsletter-form .input-group {
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
    border-radius: 50px;
    overflow: hidden;
}

.newsletter-form .form-control {
    border: none;
    padding: 1rem 1.5rem;
}

.newsletter-form .btn {
    border-radius: 0 50px 50px 0;
    padding: 1rem 1.5rem;
}

/* ========== 15. RESPONSIVE ADJUSTMENTS ========== */

@media (max-width: 768px) {
    .contact-hero h1 {
        font-size: 3rem;
    }
    
    .contact-info-card {
        margin-bottom: 2rem;
        padding: 2rem;
    }
    
    .contact-form-container {
        padding: 2rem;
    }
    
    .map-container {
        height: 300px;
    }
    
    .newsletter-form .input-group {
        flex-direction: column;
        border-radius: 15px;
    }
    
    .newsletter-form .form-control {
        border-radius: 15px 15px 0 0;
    }
    
    .newsletter-form .btn {
        border-radius: 0 0 15px 15px;
        width: 100%;
    }

    .reservations-hero h1 {
        font-size: 3rem;
    }
    
    .reservation-form-container {
        padding: 2rem;
    }
    
    .info-card {
        margin-bottom: 2rem;
    }
    
    .private-events .btn {
        width: 100%;
    }

    .menu-hero h1 {
        font-size: 3rem;
    }
    
    .menu-filter {
        gap: 0.5rem;
    }
    
    .filter-btn {
        padding: 0.5rem 1rem;
        font-size: 0.9rem;
    }
    
    .menu-item-content h4 {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    
    .menu-item .price {
        align-self: flex-end;
    }

    .hero h1 {
        font-size: 3rem;
    }
    
    .hero .subtitle {
        font-size: 1.2rem;
    }
    
    .about-content {
        flex-direction: column;
        gap: 2rem;
    }
    
    .about-text h2 {
        font-size: 2.5rem;
    }
    
    .hero-image img {
        margin-top: 2rem;
        max-width: 100%;
    }

    .hero-content {
        margin-top: 5rem;
    }

}

@media (max-width: 576px) {
    .hero-content a {
        width: 100%
    }
}

/* ========== 16. FORM STYLES ========== */
/* Datepicker customization */
input[type="date"] {
    position: relative;
}

input[type="date"]::-webkit-calendar-picker-indicator {
    background: transparent;
    bottom: 0;
    color: transparent;
    cursor: pointer;
    height: auto;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    width: auto;
}

/* Form validation styles */
.was-validated .form-control:valid,
.form-control.is-valid {
    border-color: var(--hunter-green);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23315A2B' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
}

.was-validated .form-control:invalid,
.form-control.is-invalid {
    border-color: #dc3545;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath d='m5.8 3.6.4.4.4-.4'/%3e%3cpath d='M6 7v2'/%3e%3c/svg%3e");
}

/* Loading animation for form submission */
.btn-loading {
    position: relative;
    color: transparent !important;
}

.btn-loading::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    top: 50%;
    left: 50%;
    margin: -10px 0 0 -10px;
    border: 2px solid transparent;
    border-radius: 50%;
    border-top-color: currentColor;
    animation: spin 0.8s ease infinite;
}

@keyframes spin {
    from { transform: rotate(0turn); }
    to { transform: rotate(1turn); }
}