/* ==============================================
   Lokale Schriftarten â€“ SIL Open Font License
   ============================================== */

/* --- Cinzel Decorative --- */
/* latin-ext */
@font-face {
    font-family: 'Cinzel Decorative';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/cinzel-decorative-400-latin-ext.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
    font-family: 'Cinzel Decorative';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/cinzel-decorative-400-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
    font-family: 'Cinzel Decorative';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(../fonts/cinzel-decorative-700-latin-ext.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
    font-family: 'Cinzel Decorative';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(../fonts/cinzel-decorative-700-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
    font-family: 'Cinzel Decorative';
    font-style: normal;
    font-weight: 900;
    font-display: swap;
    src: url(../fonts/cinzel-decorative-900-latin-ext.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
    font-family: 'Cinzel Decorative';
    font-style: normal;
    font-weight: 900;
    font-display: swap;
    src: url(../fonts/cinzel-decorative-900-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- Playfair Display --- */
/* italic 400 â€“ latin-ext */
@font-face {
    font-family: 'Playfair Display';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/playfair-display-italic-400-latin-ext.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* italic 400 â€“ latin */
@font-face {
    font-family: 'Playfair Display';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/playfair-display-italic-400-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* normal 400 â€“ latin-ext */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/playfair-display-normal-latin-ext.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* normal 400 â€“ latin */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/playfair-display-normal-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* normal 600 â€“ latin-ext */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(../fonts/playfair-display-normal-latin-ext.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* normal 600 â€“ latin */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(../fonts/playfair-display-normal-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* normal 700 â€“ latin-ext */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(../fonts/playfair-display-normal-latin-ext.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* normal 700 â€“ latin */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(../fonts/playfair-display-normal-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- Source Sans 3 --- */
/* 300 â€“ latin-ext */
@font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url(../fonts/source-sans-3-latin-ext.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* 300 â€“ latin */
@font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url(../fonts/source-sans-3-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* 400 â€“ latin-ext */
@font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/source-sans-3-latin-ext.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* 400 â€“ latin */
@font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/source-sans-3-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* 600 â€“ latin-ext */
@font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(../fonts/source-sans-3-latin-ext.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* 600 â€“ latin */
@font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(../fonts/source-sans-3-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}* {
    box-sizing: border-box;
    mso-line-height-rule: exactly;
}

:root {

    /* Brand Colors - Authentic Amrit */

    --bs-primary: #F1860D;

    /* Amrit Orange */

    --bs-secondary: #781235;

    /* Amrit Red */

    --bs-dark: #333333;

    --bs-light: #F9F5F0;



    /* Typography */

    --bs-body-font-family: 'Source Sans 3', sans-serif;

    --bs-heading-font-family: 'Playfair Display', serif;



    /* Effects */

    --glass-bg: rgba(255, 255, 255, 0.9);

    --shadow-premium: 0 10px 30px rgba(0, 0, 0, 0.1);

    --gradient-gold: linear-gradient(135deg, #F1860D 0%, #D97300 100%);

    /* Orange Gradient */



    /* Layout */

    --bs-gutter-x: 3rem;

    --bs-gutter-y: 0;

}



*,

::after,

::before {

    box-sizing: border-box;

}



body {
    margin: 0;
    padding: 0;
    width: 100%;


    font-family: var(--bs-body-font-family);

    color: var(--bs-gray-dark);

    background-color: var(--bs-light);

    /* Indian-style Background Pattern */
    background-image: url('../assets/mandala-pattern.svg');
    background-repeat: repeat;
    background-position: center top;
    background-size: 600px;
    background-attachment: fixed;

    line-height: 1.6;

    overflow-x: hidden;

    /* Prevent horizontal scroll */

}



h1,

h2,

h3,

h4,

h5,

h6,

.h1,

.h2,

.h3 {

    font-family: var(--bs-heading-font-family);

    font-weight: 700;

    color: var(--bs-primary);

    /* Default headings to Brand Red */

    margin-top: 0;

    margin-bottom: 0.5rem;

    line-height: 1.2;

}



h1,

.h1 {

    font-size: calc(1.375rem + 1.5vw);

}



a {

    text-decoration: none;

    color: inherit;

    transition: 0.3s ease;

}



/* Utilities */

.container {

    width: 100%;

    padding-right: calc(var(--bs-gutter-x) * .5);

    padding-left: calc(var(--bs-gutter-x) * .5);

    margin-right: auto;

    margin-left: auto;

    max-width: 1320px;

    /* XXL standard */

}



.btn {

    display: inline-block;

    font-weight: 400;

    line-height: 1.5;

    color: #212529;

    text-align: center;

    text-decoration: none;

    vertical-align: middle;

    cursor: pointer;

    user-select: none;

    background-color: transparent;

    border: 1px solid transparent;

    padding: .375rem .75rem;

    font-size: 1rem;

    border-radius: 0.25rem;

    transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;

}



.btn-primary {

    color: #fff;

    background-color: var(--bs-primary);

    border-color: var(--bs-primary);

}



.btn-outline-light {

    color: #f8f9fa;

    border-color: #f8f9fa;

}



.text-center {

    text-align: center;

}



.d-flex {

    display: flex;

}



.align-items-center {

    align-items: center;

}



.justify-content-between {

    justify-content: space-between;

}



.justify-content-center {

    justify-content: center;

}



.fs-1 {

    font-size: 2.5rem;

}



.fw-bold {

    font-weight: 700;

}



.py-5 {

    padding-top: 3rem;

    padding-bottom: 3rem;

}



.my-5 {

    margin-top: 3rem;

    margin-bottom: 3rem;

}



/* Header / Navigation */

.site-header {

    background: var(--bs-secondary);

    /* Permanent Red Background */

    padding: 1.5rem 0;

    position: fixed;

    top: 0;

    width: 100%;

    z-index: 1000;

    transition: all 0.4s ease;

    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);

}



.site-header.scrolled {

    padding: 0.5rem 0;
    /* Shrink padding on scroll only */

}



/* Removed .site-header.scrolled .navbar-brand rule to keep consistent logo color */



/* Removed .site-header.scrolled .nav-link rule as links are now dark by default */



.navbar-brand {
    font-family: 'Cinzel Decorative', cursive;
    font-size: 2.2rem;
    /* Slightly larger for the decorative font */
    color: var(--bs-primary);
    text-transform: none;
    /* Allow Title Case */
    font-weight: 700;
    letter-spacing: 0.5px;
    /* Reduced spacing for better readability */
}



.nav-link {

    color: var(--bs-light);

    margin-left: 1.5rem;

    font-size: 0.9rem;

    text-transform: uppercase;

    letter-spacing: 1px;

    position: relative;

    padding: 0.5rem 0;

}



.nav-link::after {

    content: '';

    position: absolute;

    width: 0;

    height: 2px;

    bottom: 0;

    left: 0;

    background-color: var(--bs-secondary);

    transition: width 0.3s ease;

}



.nav-link:hover::after {

    width: 100%;

}



.header-cta {

    background: var(--gradient-gold);

    border: none;

    color: white;

    padding: 0.5rem 1.5rem;

    border-radius: 50px;

    font-size: 0.8rem;

    text-transform: uppercase;

    letter-spacing: 1px;

    transition: all 0.3s ease;

    box-shadow: 0 5px 15px rgba(212, 175, 55, 0.3);

}



.header-cta:hover {

    transform: translateY(-2px);

    box-shadow: 0 10px 20px rgba(212, 175, 55, 0.4);

    color: white;

}



/* Hero Section */

.hero-section-one {

    min-height: 80vh;

    position: relative;

    display: flex;

    align-items: center;

    justify-content: center;

    text-align: center;

    color: white;

    background-color: #ffffff;

    padding-top: 100px;

    overflow: hidden;

}

/* Hero Background Image – separate element for Ken Burns + mouse parallax */
.hero-section-one::after {
    content: '';
    position: absolute;
    top: -5%;
    left: -5%;
    width: 110%;
    height: 110%;
    background-image: url('../assets/Web_Quality/indisches-restaurant-sanjha-tadka-erfurt-speisen-20.webp');
    background-size: cover;
    background-position: center 60%;
    z-index: 0;
    animation: heroKenBurns 25s ease-in-out infinite alternate, baseFadeIn 1.5s ease-in-out forwards;
    opacity: 0;
    will-change: transform;
    /* Mouse parallax + scroll offset via CSS custom properties */
    transform: translate(calc(var(--mouse-x, 0px) * -1),
            calc(var(--mouse-y, 0px) * -1 + var(--scroll-y, 0px)));
}

@keyframes heroKenBurns {
    0% {
        transform: scale(1) translate(calc(var(--mouse-x, 0px) * -1),
                calc(var(--mouse-y, 0px) * -1 + var(--scroll-y, 0px)));
    }

    100% {
        transform: scale(1.08) translate(calc(-1.5% + var(--mouse-x, 0px) * -1),
                calc(1% + var(--mouse-y, 0px) * -1 + var(--scroll-y, 0px)));
    }
}



.hero-section-one::before {

    content: '';

    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0.25) 60%, rgba(0, 0, 0, 0.55) 100%);
    z-index: 1;
    /* Subtle pulsing glow on the overlay */
    animation: heroPulse 6s ease-in-out infinite alternate, baseFadeIn 1.5s ease-in-out forwards;
    opacity: 0;

}

@keyframes baseFadeIn {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes heroPulse {
    0% {
        background: linear-gradient(to bottom, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0.25) 60%, rgba(0, 0, 0, 0.55) 100%);
    }

    100% {
        background: linear-gradient(to bottom, rgba(0, 0, 0, 0.40) 0%, rgba(0, 0, 0, 0.20) 60%, rgba(0, 0, 0, 0.50) 100%);
    }
}



.hero-section-one .container {

    position: relative;

    z-index: 2;

    max-width: 1000px;

    padding-top: 0;

    /* Fade-in + slide-up on load */
    animation: heroContentReveal 1.5s cubic-bezier(0.23, 1, 0.32, 1) forwards;
    opacity: 0;

}

@keyframes heroContentReveal {
    0% {
        opacity: 0;
        transform: translateY(40px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Hero Particles Canvas */
.hero-particles-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    pointer-events: none;
}

/* Scroll Down Indicator */
.hero-scroll-indicator {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    color: rgba(255, 255, 255, 0.7);
    cursor: pointer;
    transition: color 0.3s ease;
    animation: heroScrollBounce 2s ease-in-out infinite, heroScrollFadeIn 2s ease forwards;
    animation-delay: 2s, 1.5s;
    opacity: 0;
}

.hero-scroll-indicator span {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 3px;
}

.hero-scroll-indicator:hover {
    color: rgba(241, 134, 13, 1);
}

@keyframes heroScrollBounce {

    0%,
    100% {
        transform: translateX(-50%) translateY(0);
    }

    50% {
        transform: translateX(-50%) translateY(8px);
    }
}

@keyframes heroScrollFadeIn {
    to {
        opacity: 1;
    }
}

/* Hero H1 shimmer accent */
.hero-section-one h1 {
    background: linear-gradient(90deg,
            #ffffff 0%,
            #ffffff 40%,
            #F1860D 50%,
            #ffffff 60%,
            #ffffff 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: heroTextShimmer 6s ease-in-out infinite;
}

@keyframes heroTextShimmer {
    0% {
        background-position: 200% center;
    }

    100% {
        background-position: -200% center;
    }
}

/* ============================================
   AMBIENTE PHOTO MOSAIC GALLERY
   ============================================ */

.ambiente-gallery-section {
    padding: 6rem 0;
    background-color: var(--bs-light);
    position: relative;
    overflow: hidden;
    content-visibility: auto;
    contain-intrinsic-size: 0 700px;
}

.ambiente-gallery-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(120, 18, 53, 0.05) 0%, rgba(0, 0, 0, 0) 60%, rgba(241, 134, 13, 0.04) 100%);
    pointer-events: none;
    z-index: 0;
}

.ambiente-gallery-header {
    text-align: center;
    margin-bottom: 3.5rem;
    position: relative;
    z-index: 2;
}

.ambiente-gallery-header .sub-label {
    display: block;
    font-family: 'Source Sans 3', sans-serif;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 4px;
    color: #F1860D;
    margin-bottom: 1rem;
}

.ambiente-gallery-header h2 {
    font-family: 'Playfair Display', serif;
    font-size: clamp(2.2rem, 4vw, 3.5rem);
    color: var(--bs-dark);
    margin: 0;
    line-height: 1.15;
}

.ambiente-gallery-header h2 em {
    color: #F1860D;
    font-style: italic;
}

.ambiente-gallery-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: 280px 280px;
    gap: 6px;
    position: relative;
    z-index: 2;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1rem;
}

.ag-item {
    overflow: hidden;
    position: relative;
    cursor: pointer;
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.ag-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
    display: block;
}

.ag-item:hover img {
    transform: scale(1.05);
    will-change: transform;
}

.ag-item .ag-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.45) 0%, transparent 55%);
    opacity: 0;
    transition: opacity 0.4s ease;
}

.ag-item:hover .ag-overlay {
    opacity: 1;
}

/* Grid Placement - Asymmetric Mosaic */
.ag-item:nth-child(1) {
    grid-column: 1 / 6;
    grid-row: 1 / 2;
}

.ag-item:nth-child(2) {
    grid-column: 6 / 9;
    grid-row: 1 / 2;
}

.ag-item:nth-child(3) {
    grid-column: 9 / 13;
    grid-row: 1 / 3;
}

.ag-item:nth-child(4) {
    grid-column: 1 / 4;
    grid-row: 2 / 3;
}

.ag-item:nth-child(5) {
    grid-column: 4 / 7;
    grid-row: 2 / 3;
}

.ag-item:nth-child(6) {
    grid-column: 7 / 9;
    grid-row: 2 / 3;
}

.ag-item:nth-child(6) img {
    object-position: center 75%;
}

.ambiente-gallery-cta {
    text-align: center;
    margin-top: 3rem;
    position: relative;
    z-index: 2;
}

.ambiente-gallery-cta .btn-gallery {
    display: inline-block;
    padding: 0.9rem 2.8rem;
    border: 1.5px solid rgba(241, 134, 13, 0.6);
    color: #F1860D;
    font-family: 'Source Sans 3', sans-serif;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 3px;
    border-radius: 50px;
    transition: all 0.3s ease;
    background: transparent;
    text-decoration: none;
}

.ambiente-gallery-cta .btn-gallery:hover {
    background: #F1860D;
    color: #fff;
    border-color: #F1860D;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(241, 134, 13, 0.3);
}

@media (max-width: 1024px) {
    .ambiente-gallery-grid {
        grid-template-columns: repeat(6, 1fr);
        grid-template-rows: 220px 220px;
    }

    .ag-item:nth-child(1) {
        grid-column: 1 / 4;
        grid-row: 1;
    }

    .ag-item:nth-child(2) {
        grid-column: 4 / 7;
        grid-row: 1;
    }

    .ag-item:nth-child(3) {
        grid-column: 1 / 3;
        grid-row: 2;
    }

    .ag-item:nth-child(4) {
        grid-column: 3 / 5;
        grid-row: 2;
    }

    .ag-item:nth-child(5) {
        grid-column: 5 / 7;
        grid-row: 2;
    }

    .ag-item:nth-child(6) {
        display: none;
    }
}

@media (max-width: 640px) {
    .ambiente-gallery-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: repeat(3, 200px);
        gap: 4px;
    }

    .ag-item:nth-child(1) {
        grid-column: 1 / 3;
        grid-row: 1;
    }

    .ag-item:nth-child(2) {
        grid-column: 1;
        grid-row: 2;
    }

    .ag-item:nth-child(3) {
        grid-column: 2;
        grid-row: 2;
    }

    .ag-item:nth-child(4) {
        grid-column: 1;
        grid-row: 3;
    }

    .ag-item:nth-child(5) {
        grid-column: 2;
        grid-row: 3;
    }

    .ag-item:nth-child(6) {
        display: none;
    }
}



.hero-section-one h1 {

    font-size: clamp(2.5rem, 5vw, 4.5rem);

    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);

    margin-bottom: 2rem;

    font-weight: 700;

    line-height: 1.2;

    max-width: 900px;

    margin-left: auto;

    margin-right: auto;

}



/* Section: Intro */

.section-intro {

    background-color: var(--bs-light);

    padding: 8rem 0;

    position: relative;

    overflow: hidden;

}

.section-intro::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('../assets/mandala-pattern.svg');
    background-size: 70%;
    background-repeat: no-repeat;
    background-position: center center;
    filter: invert(1);
    opacity: 0.06;
    pointer-events: none;
    z-index: 0;
}

.section-intro .container {
    position: relative;
    z-index: 1;
}



.intro-text p {

    max-width: 800px;

    margin: 0 auto;

    font-size: 1.3rem;

    /* Larger body text */

    color: var(--bs-gray-dark);

    font-weight: 400;

    line-height: 1.9;

}



/* News Grid */

.news-grid {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));

    gap: 2rem;

}



.news-card {

    height: 400px;

    background-size: cover;

    background-position: center;

    position: relative;

    display: flex;

    align-items: flex-end;

    border-radius: 4px;

    /* Slight rounding */

    overflow: hidden;

    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);

}



.news-card::before {

    content: '';

    position: absolute;

    bottom: 0;

    left: 0;

    width: 100%;

    height: 60%;

    background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);

}



.news-card-content {

    position: relative;

    z-index: 2;

    padding: 2rem;

    color: white;

}



.news-badge {

    background-color: var(--bs-secondary);

    color: white;

    padding: 0.3rem 0.8rem;

    text-transform: uppercase;

    font-size: 0.75rem;

    letter-spacing: 1px;

    margin-bottom: 0.5rem;

    display: inline-block;

}



.news-card h3 {

    color: white;

    font-size: 1.8rem;

    margin-bottom: 0.5rem;

}



/* Restaurants Teaser with Floating Bowls */

.restaurants-teaser {

    position: relative;

    padding: 6rem 0;

    overflow: hidden;

}



.bowl-img {

    position: absolute;

    top: 50%;

    transform: translateY(-50%);

    width: 300px;

    /* Adjust based on image quality */

    max-width: 30%;

    z-index: 1;

    filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.2));

}



.bowl-left {

    left: -50px;

}



.bowl-right {

    right: -50px;

}



.restaurant-content {

    position: relative;

    z-index: 2;

    background-color: rgba(255, 255, 255, 0.9);

    /* Check readability */

    padding: 2rem;

    border-radius: 50%;

    /* Optional styling choice */

}



/* Groups and Events */

.groups-section {

    background-color: #e3dccd;

    position: relative;

}



.groups-content {

    padding: 5rem 0;

    display: flex;

    align-items: center;

    justify-content: center;

}



.groups-text {

    text-align: center;

    max-width: 500px;

    padding: 2rem;

}



.groups-icon {

    width: 80px;

    height: 80px;

    margin: 0 auto 1rem;

    color: var(--bs-secondary);

}



/* Testimonial */

.testimonial-section {

    background-color: var(--bs-secondary);

    color: #f1860d;

    /* Gold/Orange text */

    padding: 6rem 0;

    text-align: center;

}



.testimonial-text {

    font-family: var(--bs-heading-font-family);

    font-size: 2.2rem;

    line-height: 1.4;

    max-width: 900px;

    margin: 0 auto;

}



/* Menu Page (Speisekarte) */

.menu-header {

    background-color: var(--bs-secondary);

    color: white;

    padding: 4rem 0;

    text-align: center;

    background-image: url('../mandala-bg.webp');

    background-size: cover;

    background-blend-mode: soft-light;

}



.menu-category {

    margin-bottom: 2rem;

}



.menu-category h2 {

    color: var(--bs-secondary);

    border-bottom: 2px solid var(--bs-primary);

    display: inline-block;

    padding-bottom: 0.5rem;

    margin-bottom: 1.5rem;

}



.menu-item {

    display: flex;

    justify-content: space-between;

    align-items: baseline;

    /* Align text baselines */

    margin-bottom: 1rem;

    border-bottom: 1px dotted #ccc;

    padding-bottom: 0.5rem;

}



.menu-item-name {

    font-weight: 600;

    font-size: 1.1rem;

    color: var(--bs-gray-dark);

}



.menu-item-price {

    font-weight: 700;

    color: var(--bs-primary);

    white-space: nowrap;

    /* Prevent price wrapping */

}



.menu-item-desc {

    font-size: 0.9rem;

    color: var(--bs-gray-600);

    margin-top: -0.5rem;

    /* Pull up closer to title */

    margin-bottom: 1rem;

    font-style: italic;

}



/* Restaurants Page */

.locations-grid {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));

    gap: 2rem;

    padding: 4rem 0;

}



.location-card {

    background: white;

    border: 1px solid #eee;

    transition: transform 0.3s ease;

}



.location-card:hover {

    transform: translateY(-5px);

    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);

}



.location-img {

    height: 250px;

    background-color: #ddd;

    background-size: cover;

    background-position: center;

}



.location-details {

    padding: 2rem;

    text-align: center;

}



.location-details h3 {

    color: var(--bs-secondary);

    margin-bottom: 1rem;

}



.location-details p {

    color: var(--bs-gray-600);

    margin-bottom: 1.5rem;

}



/* Interactive & Dynamic Styles */



/* 1. Sticky Header Transistion */

.site-header {

    transition: padding 0.3s ease, background-color 0.3s ease;

}



.site-header.scrolled {

    padding: 0.5rem 0;

    /* Shrink */

    background-color: rgba(120, 18, 53, 0.95);

    /* Slight transparency */

    backdrop-filter: blur(5px);

}



/* 2. Mobile Menu Overlay */

.mobile-menu-overlay {

    position: fixed;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    background-color: var(--bs-secondary);

    z-index: 2000;

    transform: translateX(-100%);

    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);

    display: flex;

    /* Centered menu */

    align-items: center;

    justify-content: center;

    flex-direction: column;

}



.mobile-menu-overlay.active {

    transform: translateX(0);

}



.mobile-menu-content {

    text-align: center;

    width: 100%;

}



.mobile-menu-content nav {

    display: flex;

    flex-direction: column;

    align-items: center;

}



.mobile-menu-content nav a {

    display: block;

    font-family: var(--bs-heading-font-family);

    font-size: 2.5rem;

    color: white;

    margin: 1rem 0;

    text-decoration: none;

    transition: color 0.3s;

}



.mobile-menu-content nav a:hover {

    color: var(--bs-primary);

}



.close-menu {

    position: absolute;

    top: 2rem;

    right: 2rem;

    background: none;

    border: none;

    color: white;

    font-size: 3rem;

    cursor: pointer;

}



body.no-scroll {

    overflow: hidden;

}



/* Hero Buttons */

.hero-section-one .btn-primary {

    background-color: var(--bs-primary);

    border-color: var(--bs-primary);

    font-family: var(--bs-body-font-family);

    text-transform: uppercase;

    transition: transform 0.2s;

}



.hero-section-one .btn-primary:hover {

    background-color: #d97300;

    transform: translateY(-2px);

}



.hero-section-one .btn-light {

    background-color: white;

    border: none;

    font-family: var(--bs-body-font-family);

    text-transform: uppercase;

    transition: transform 0.2s;

}



.hero-section-one .btn-light:hover {

    background-color: #f8f9fa;

    transform: translateY(-2px);

}



/* News Card Authentic */

.news-card {

    background: white;

    border: 1px solid #eee;

    border-radius: 4px;

    /* Less rounded */

    overflow: hidden;

    height: 400px;

    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);

    /* Subtle shadow */

    transition: all 0.3s ease;

}



.location-card:hover {

    transform: translateY(-10px);

    box-shadow: 0 25px 50px rgba(120, 18, 53, 0.15);

    /* Hint of red shadow */

}



/* Testimonial Slider */

.testimonial-slide {

    display: none;

    animation: fade 1.5s;

}



.testimonial-slide.active {

    display: block;

}



@keyframes fade {

    from {

        opacity: .4
    }



    to {

        opacity: 1
    }

}



.dot {

    cursor: pointer;

    transition: opacity 0.3s ease;

}



.dot:hover {

    opacity: 0.8 !important;

}

/* News/Blog Section */

.news-section {

    background-color: #E8DCC0;

    /* Approximated warm beige/dark yellow */

    padding: 5rem 0;

}



.news-card {

    background: transparent;

    border: none;

    margin-bottom: 2rem;

    transition: transform 0.3s ease;

}



/* Card hover effect if desired */

.news-card:hover {

    transform: translateY(-5px);

}



.news-card-img-wrapper {

    position: relative;

    overflow: hidden;

    margin-bottom: 1.5rem;

}



.news-card-img {

    width: 100%;

    height: auto;

    display: block;

    border-radius: 4px;

    /* Slight rounding if needed */

}



/* The dark red "NEWS" badge */

.news-badge {

    position: absolute;

    bottom: -15px;

    /* Overlap the bottom edge slightly */

    left: 20px;

    background-color: #7A1A37;

    /* Dark red branded color */

    color: #fff;

    padding: 8px 25px;

    font-size: 0.9rem;

    font-weight: 600;

    text-transform: uppercase;

    letter-spacing: 1px;

}



.news-content {

    padding: 1rem 0.5rem;

}



.news-title {

    font-size: 1.75rem;

    line-height: 1.3;

    color: var(--bs-secondary);

    /* Dark text */

    margin-bottom: 1rem;

    font-family: 'Playfair Display', serif;

    /* Assuming serif for headings */

    font-weight: 400;

}



.news-text {

    font-size: 1rem;

    line-height: 1.6;

    color: #555;

    margin-bottom: 1.5rem;

}



.news-link {

    color: #7A1A37;

    text-decoration: none;

    font-weight: 500;

    text-transform: uppercase;

    font-size: 0.9rem;

    display: inline-flex;

    align-items: center;

    gap: 8px;

    transition: color 0.3s ease;

}



.news-link:hover {

    color: var(--bs-primary);

}



.news-link::after {

    content: '   ';

    /* Arrow icon */

    font-size: 1.2em;

    transition: transform 0.3s ease;

}



.news-link:hover::after {

    transform: translateX(5px);

}

/* News/Blog Section - Overlay Style */

.news-section {

    background-color: var(--bs-light);

    /* Or keep beige: #E8DCC0 if preferred, but overlay style usually goes with clean bg */

    padding: 5rem 0;

}



.news-card {

    position: relative;

    border-radius: 8px;

    overflow: hidden;

    height: 450px;

    /* Taller to show image */

    background-color: #000;

}



.news-card-img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    transition: transform 0.6s ease;

}



.news-card:hover .news-card-img {

    transform: scale(1.05);

}



.news-overlay {

    position: absolute;

    inset: 0;

    /* Gradient from transparent at top to dark at bottom */

    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.9) 100%);

    pointer-events: none;

}



.news-content {

    position: absolute;

    bottom: 0;

    left: 0;

    width: 100%;

    padding: 2rem;

    z-index: 2;

    color: #fff;

    transform: translateY(0);

    transition: transform 0.3s ease;

}



.news-badge {

    display: inline-block;

    background-color: #7A1A37;

    color: #fff;

    padding: 4px 12px;

    font-size: 0.75rem;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 1px;

    margin-bottom: 0.75rem;

    border-radius: 2px;

}



.news-title {

    font-size: 1.5rem;

    line-height: 1.2;

    color: #fff;

    margin-bottom: 0.75rem;

    font-family: 'Playfair Display', serif;

    font-weight: 700;

}



.news-title a {

    color: #fff;

    transition: color 0.3s ease;

}



.news-title a:hover {

    color: #ddd;

}



.news-text {

    font-size: 0.95rem;

    line-height: 1.5;

    color: rgba(255, 255, 255, 0.9);

    margin-bottom: 1rem;

    display: -webkit-box;

    -webkit-line-clamp: 2;

    -webkit-box-orient: vertical;

    overflow: hidden;

}



.news-link {

    color: #fff;

    text-decoration: none;

    font-weight: 500;

    text-transform: uppercase;

    font-size: 0.85rem;

    display: inline-flex;

    align-items: center;

    gap: 8px;

    opacity: 0.9;

    transition: opacity 0.3s ease, gap 0.3s ease;

}



.news-link:hover {

    opacity: 1;

    gap: 12px;

    color: #fff;

}



.news-link::after {

    content: '   ';

    font-size: 1.1em;

}



/* Optional: Slight lift of content on hover */

.news-card:hover .news-content {

    /* transform: translateY(-5px); */

}


html,
body {
    width: 100%;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}
/* Footer Styles */
.site-footer {
    background-color: #1a1a1a;
    color: #fff;
    padding: 4rem 0 2rem;
    position: relative;
    font-family: var(--bs-body-font-family);
    border-top: 5px solid var(--bs-secondary);
}

.site-footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('../assets/mandala-pattern.svg');
    /* Assuming this exists or similar */
    background-size: 500px;
    opacity: 0.05;
    pointer-events: none;
}

.footer-content {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 3rem;
    position: relative;
    z-index: 2;
}

@media (min-width: 768px) {
    .footer-content {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 992px) {
    .footer-content {
        grid-template-columns: 1fr 1fr 1fr;
        justify-content: center;
        text-align: center;
        gap: 2rem;
    }

    .footer-contact-info p {
        justify-content: center;
    }

    .social-links {
        justify-content: center;
    }
}

.footer-brand-col .navbar-brand {
    font-size: 2.5rem;
    color: var(--bs-primary) !important;
    margin-bottom: 0.5rem;
    display: inline-block;
    letter-spacing: 2px;
}

.footer-tagline {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 1.5rem;
    font-size: 1.1rem;
}

.footer-heading {
    font-family: var(--bs-heading-font-family);
    font-size: 1.2rem;
    color: var(--bs-light);
    margin-bottom: 1.5rem;
    position: relative;
    padding-bottom: 0.5rem;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.footer-heading::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 0;
    width: 30px;
    height: 2px;
    background-color: var(--bs-primary);
}

.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li {
    margin-bottom: 0.8rem;
}

.footer-links a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: all 0.3s ease;
    font-size: 0.95rem;
    display: inline-block;
}

.footer-links a:hover {
    color: var(--bs-primary);
    transform: translateX(5px);
}

.footer-contact-info p {
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 0.8rem;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    line-height: 1.5;
}

.footer-contact-info svg {
    width: 20px;
    height: 20px;
    color: var(--bs-primary);
    flex-shrink: 0;
    margin-top: 2px;
}

.social-links {
    display: flex;
    gap: 1rem;
    margin-top: 1.5rem;
}

.social-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    transition: all 0.3s ease;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.social-icon:hover {
    background-color: var(--bs-primary);
    color: white;
    transform: translateY(-3px);
    border-color: var(--bs-primary);
}

.footer-bottom {
    margin-top: 4rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.5);
}

@media (min-width: 768px) {
    .footer-bottom {
        flex-direction: row;
        justify-content: space-between;
    }
}

.footer-bottom-links {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

.footer-bottom-links a {
    color: rgba(255, 255, 255, 0.5);
    transition: color 0.3s ease;
    text-decoration: none;
}

.footer-bottom-links a:hover {
    color: var(--bs-primary);
}/* Logo Styles */
.logo-img {
    height: 50px;
    width: auto;
    display: block;
    object-fit: contain;
}

.footer-logo-img {
    height: 70px;
    width: auto;
    display: block;
    object-fit: contain;
}

@media (max-width: 768px) {
    .logo-img {
        height: 40px;
    }

    .footer-logo-img {
        height: 60px;
    }
}

/* Hero Logo */
.hero-logo {
    height: 180px;
    width: auto;
    margin-bottom: 2rem;
    display: inline-block;
}

@media (max-width: 768px) {
    .hero-logo {
        height: 100px;
        margin-bottom: 1.5rem;
    }
}/* Mobile Optimization Fixes */

/* Utility Fixes */
.p-5 {
    padding: 3rem !important;
}

/* Missing Bootstrap Utilities */
.d-none {
    display: none !important;
}

@media (min-width: 768px) {
    .d-md-block {
        display: block !important;
    }
}

@media (min-width: 992px) {
    .d-lg-block {
        display: block !important;
    }
}

@media (max-width: 768px) {
    .p-5 {
        padding: 1.5rem !important;
    }

    .py-5 {
        padding-top: 2rem !important;
        padding-bottom: 2rem !important;
    }

    .display-3 {
        font-size: clamp(1.8rem, 8vw, 2.2rem);
        /* Adjusted for mobile */
    }

    .lead {
        font-size: 1.1rem;
    }

    /* Typography Overrides */
    .hero-section-one h1 {
        font-size: clamp(1.8rem, 8vw, 2.2rem);
        word-wrap: break-word;
        hyphens: auto;
    }

    .intro-text p {
        font-size: 1.05rem;
        /* reduced from 1.3rem */
        padding: 0 1rem;
    }

    h2,
    .h2 {
        font-size: 1.8rem;
    }

    /* Mandala in section-intro auf mobile größer und sichtbarer */
    .section-intro::before {
        background-size: 90%;
        opacity: 0.12;
    }

    /* "Bestes indisches Restaurant Deutschlands" heading mobile fix */
    .section-intro h2 {
        font-size: 2rem !important;
        letter-spacing: -1px !important;
        line-height: 1.15 !important;
        padding: 0 1rem;
    }


}

/* Extra small screens – further reduce the intro heading */
@media (max-width: 480px) {
    .section-intro h2 {
        font-size: 1.6rem !important;
        letter-spacing: -0.5px !important;
        line-height: 1.15 !important;
    }
}

/* Header Mobile Adjustments */
@media (max-width: 991px) {
    .site-header {
        padding: 0.8rem 0;
        background-color: #781235;
        /* Amrit Red */
        /* Ensure readability */
    }

    /* Ensure the brand logo is visible on mobile */
    .site-header .navbar-brand {
        color: #f1860d !important;
        /* Orange */
        font-size: 1.8rem;
    }

    /* Menu Icon size */
    .menu-icon svg {
        width: 24px;
        height: 24px;
    }
}

/* Menu Item (Speisekarte) stacking/layout on very small screens */
@media (max-width: 576px) {
    .menu-item {
        flex-direction: row;
        /* keep row layout */
        align-items: flex-start;
        gap: 0.5rem;
    }

    .menu-item-name {
        font-size: 1rem;
        max-width: 75%;
        /* leave room for price */
        word-wrap: break-word;
        /* Ensure valid property */
        overflow-wrap: break-word;
    }

    .menu-item-price {
        font-size: 1rem;
        align-self: flex-start;
        white-space: nowrap;
    }
}

/* Mobile Menu Overlay Z-Index Fix */
.mobile-menu-overlay {
    z-index: 9999 !important;
    /* Ensure it is above everything */
}

/* Restaurants Page Footer Mobile Fix */
@media (max-width: 768px) {
    footer .d-flex {
        flex-wrap: wrap !important;
        gap: 1rem !important;
        /* reduce gap on mobile */
    }

    /* Hide Testimonial Arrows on Mobile */
    .testimonial-arrow {
        display: none !important;
    }
}

/* Global fix for hero height clipping */
.res-hero,
.ce-hero,
.ge-hero,
.menu-hero,
.hero-restaurants {
    height: auto !important;
    min-height: max(65vh, 450px) !important;
    padding-bottom: 3rem !important;
}

/* Other Pages Hero Sections Mobile & Tablet Fixes */
@media (max-width: 1024px) {

    .res-hero,
    .ce-hero,
    .ge-hero,
    .menu-hero,
    .hero-restaurants {
        min-height: 60vh !important;
        padding-top: 140px !important;
        padding-bottom: 4rem !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;
    }

    .res-hero-content,
    .ce-hero-content,
    .ge-hero-content,
    .menu-hero-content,
    .hero-restaurant-content {
        width: 100%;
        margin: auto;
    }

    .res-hero-title,
    .ce-hero-title,
    .ge-hero-title,
    .menu-hero-title,
    .hero-restaurant-title {
        font-size: clamp(2.2rem, 6vw, 2.8rem) !important;
        word-wrap: break-word;
        hyphens: auto;
        line-height: 1.2 !important;
        margin-bottom: 1rem !important;
    }

    .res-hero-subtitle,
    .ce-hero-subtitle,
    .ge-hero-subtitle,
    .menu-hero-subtitle,
    .hero-restaurant-subtitle {
        font-size: 1.2rem !important;
        padding: 0 1rem;
        margin-bottom: 0 !important;
    }

    .hero-logo {
        max-width: 120px !important;
        margin-bottom: 1rem !important;
        height: auto !important;
    }
}/* Side Menu Styles - Amrit Style */
:root {
    --side-menu-bg: #8B1A3D;
    /* Deep Amrit Red - slightly darker than main for contrast or matching screenshot */
    --side-menu-text: #ffffff;
    --side-menu-gold: #D4AF37;
    /* Gold for accents */
    --side-menu-border: rgba(255, 255, 255, 0.2);
}

.side-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    backdrop-filter: blur(2px);
}

.side-menu-overlay.active {
    opacity: 1;
    visibility: visible;
}

.side-menu-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    max-width: 400px;
    /* Adjust for larger screens */
    height: 100%;
    background-color: var(--bs-secondary);
    /* Use main brand red */
    color: white;
    transform: translateX(-100%);
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    box-shadow: 5px 0 15px rgba(0, 0, 0, 0.3);
}

.side-menu-overlay.active .side-menu-container {
    transform: translateX(0);
}

/* Header */
.side-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem 2rem;
    border-bottom: 1px solid var(--side-menu-border);
}

.close-menu-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: white;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease;
}

.close-menu-btn:hover {
    transform: rotate(90deg);
}

.side-menu-brand {
    font-family: var(--bs-heading-font-family);
    /* Playfair or Cinzel */
    font-size: 1.5rem;
    color: var(--bs-primary);
    /* Orange */
    font-weight: 700;
    text-transform: uppercase;
}

/* Navigation Links */
.side-menu-nav {
    flex: 1;
    padding: 1rem 0;
    overflow-y: auto;
}

.side-menu-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 2rem;
    color: white;
    text-decoration: none;
    font-family: var(--bs-body-font-family);
    /* Source Sans 3 */
    font-size: 1.1rem;
    border-bottom: 1px solid var(--side-menu-border);
    transition: background-color 0.2s ease, padding-left 0.2s ease;
}

.side-menu-link:hover {
    background-color: rgba(0, 0, 0, 0.1);
    padding-left: 2.5rem;
    color: var(--bs-primary);
}

.side-menu-link span {
    font-weight: 500;
}

.arrow-icon {
    width: 18px;
    height: 18px;
    stroke: white;
    transition: transform 0.2s ease;
}

.side-menu-link:hover .arrow-icon {
    transform: translateX(5px);
    stroke: var(--bs-primary);
}

/* Footer Section */
.side-menu-footer {
    padding: 2rem;
    background-color: rgba(0, 0, 0, 0.1);
    font-size: 0.9rem;
}

.contact-info {
    margin-bottom: 1.5rem;
    opacity: 0.9;
}

.contact-link {
    display: flex;
    align-items: center;
    color: var(--bs-primary);
    /* Highlight contact links */
    text-decoration: none;
    margin-bottom: 0.5rem;
    font-weight: 600;
}

.contact-link svg {
    margin-right: 10px;
    width: 18px;
    height: 18px;
}

.address-text {
    color: rgba(255, 255, 255, 0.8);
    margin-top: 1rem;
    font-size: 0.85rem;
}

.social-icons-menu {
    display: flex;
    gap: 15px;
    margin-bottom: 1.5rem;
}

.social-icon-menu {
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    transition: all 0.3s ease;
}

.social-icon-menu:hover {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
    color: white;
}

.legal-links-menu {
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.6);
}

.legal-links-menu a {
    color: inherit;
    text-decoration: none;
    margin-right: 10px;
}

.legal-links-menu a:hover {
    color: white;
    text-decoration: underline;
}

/* Scrollbar styling */
.side-menu-nav::-webkit-scrollbar {
    width: 6px;
}

.side-menu-nav::-webkit-scrollbar-track {
    background: transparent;
}

.side-menu-nav::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.2);
    border-radius: 3px;
}

@media (min-width: 992px) {
    /* Optional: If we wanted to make this work on desktop too, styles are already responsive-ish.
       Max-width 400px handles the "sheet" aspect.
    */
}/* Cookie Banner Styles */
.cookie-banner {
    position: fixed;
    bottom: 20px;
    left: 20px;
    right: 20px;
    max-width: 1200px;
    margin: 0 auto;
    background-color: rgba(33, 33, 33, 0.98);
    /* Very dark grey, almost black */
    color: #fff;
    padding: 1.5rem 2rem;
    z-index: 10000;
    /* Highest priority */
    border-radius: 8px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);

    /* Hidden by default, animated in */
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);

    /* Flex layout */
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;

    border-left: 4px solid var(--bs-primary);
    /* Orange accent */
}

.cookie-banner.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.cookie-text-content {
    flex: 1 1 600px;
}

.cookie-banner h3 {
    margin: 0 0 0.5rem;
    font-family: var(--bs-heading-font-family);
    font-weight: 700;
    font-size: 1.25rem;
    color: var(--bs-primary);
}

.cookie-banner p {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #e0e0e0;
}

.cookie-actions {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-shrink: 0;
}

.cookie-link {
    color: #aaa;
    font-size: 0.85rem;
    text-decoration: underline;
    white-space: nowrap;
    transition: color 0.3s ease;
}

.cookie-link:hover {
    color: var(--bs-primary);
}

/* Custom button overrides for the banner */
.btn-cookie-accept {
    background-color: var(--bs-primary);
    color: white;
    border: none;
    padding: 0.5rem 1.5rem;
    border-radius: 4px;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.btn-cookie-accept:hover {
    background-color: #d97300;
    /* Darker orange */
    transform: translateY(-2px);
}

.btn-cookie-reject {
    background-color: transparent;
    border: 1px solid #666;
    color: #ddd;
    padding: 0.45rem 1rem;
    border-radius: 4px;
    font-size: 0.9rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-cookie-reject:hover {
    border-color: #eee;
    color: #fff;
    background-color: rgba(255, 255, 255, 0.1);
}

@media (max-width: 768px) {
    .cookie-banner {
        bottom: 0;
        left: 0;
        right: 0;
        border-radius: 0;
        /* Full width on mobile */
        flex-direction: column;
        align-items: flex-start;
        padding: 1.5rem;
        border-left: none;
        border-top: 4px solid var(--bs-primary);
    }

    .cookie-text-content {
        flex: auto;
        width: 100%;
        margin-bottom: 1rem;
    }

    .cookie-actions {
        width: 100%;
        flex-wrap: wrap;
        justify-content: space-between;
    }

    .btn-cookie-accept,
    .btn-cookie-reject {
        flex: 1;
        text-align: center;
    }

    .cookie-link {
        order: 3;
        width: 100%;
        text-align: center;
        margin-top: 0.5rem;
    }
}

/* Footer Cookie Icon Styles */
.cookie-icon-footer {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    padding: 5px;
    border-radius: 50%;
    color: #aaa;
    /* Default footer link color style */
}

.cookie-icon-footer:hover {
    color: var(--bs-primary);
    transform: scale(1.1) rotate(15deg);
    background-color: rgba(255, 255, 255, 0.05);
}

.cookie-icon-footer svg {
    display: block;
}