/* ==========================================================
   GARAM MASALA RESTAURANT
   MENU PAGE CSS
   FILE : assets/css/menu.css
   VERSION : 5.0
   PURPOSE : Premium responsive Menu page styling
   NOTE : Scoped to .gm-menu-page
========================================================== */


/* ==========================================================
   00. MENU PAGE VARIABLES / BASE
========================================================== */

.gm-menu-page{
    --gm-gold:#c89b3c;
    --gm-gold-dark:#a97d25;
    --gm-red:#9d1c24;
    --gm-green:#174d2c;
    --gm-dark:#171717;
    --gm-text:#5f5b55;
    --gm-muted:#817c74;
    --gm-light:#f8f6f1;
    --gm-cream:#fbfaf7;
    --gm-border:#e8e2d7;
    --gm-white:#ffffff;

    color:var(--gm-text);
    background:#fff;
}

.gm-menu-page *,
.gm-menu-page *::before,
.gm-menu-page *::after{
    box-sizing:border-box;
}

.gm-menu-page h1,
.gm-menu-page h2,
.gm-menu-page h3,
.gm-menu-page h4,
.gm-menu-page h5,
.gm-menu-page h6{
    font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;
    color:var(--gm-dark);
}

.gm-menu-page p{
    color:var(--gm-text);
    line-height:1.75;
}

.gm-menu-page img{
    max-width:100%;
}


/* ==========================================================
   01. SHARED SECTION HEADER
========================================================== */

.gm-menu-page .gm-section-header{
    max-width:800px;
    margin:0 auto 55px;
    text-align:center;
}

.gm-menu-page .gm-section-header::after{
    content:"";
    display:block;
    width:55px;
    height:2px;
    margin:22px auto 0;
    background:var(--gm-gold);
}

.gm-menu-page .gm-section-subtitle{
    display:inline-block;
    margin-bottom:10px;
    color:var(--gm-gold-dark);
    font-family:Poppins,sans-serif;
    font-size:12px;
    font-weight:700;
    letter-spacing:2.5px;
    line-height:1.4;
    text-transform:uppercase;
}

.gm-menu-page .gm-section-title{
    margin:0 0 14px;
    color:var(--gm-dark);
    font-size:clamp(40px,5vw,58px);
    line-height:1.05;
    font-weight:600;
}

.gm-menu-page .gm-section-description{
    max-width:760px;
    margin:0 auto;
    color:var(--gm-muted);
    font-family:Poppins,sans-serif;
    font-size:15px;
    line-height:1.75;
}


/* ==========================================================
   02. HERO
========================================================== */

.gm-menu-page .gm-menu-hero{
    position:relative;
    min-height:650px;
    display:flex;
    align-items:center;
    overflow:hidden;
    padding:90px 0;
    background:
        radial-gradient(circle at 82% 45%,rgba(200,155,60,.18),transparent 30%),
        linear-gradient(105deg,#111 0%,#191919 58%,#24201a 100%);
}

.gm-menu-page .gm-menu-hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg,rgba(0,0,0,.34),transparent 68%),
        radial-gradient(circle at 15% 80%,rgba(157,28,36,.10),transparent 28%);
    pointer-events:none;
}

.gm-menu-page .gm-menu-hero .container{
    position:relative;
    z-index:2;
}

.gm-menu-page .gm-menu-hero-content{
    max-width:690px;
    padding:20px 0;
}

.gm-menu-page .gm-menu-hero-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:11px;
    margin-bottom:20px;
    color:var(--gm-gold);
    font-family:Poppins,sans-serif;
    font-size:11px;
    font-weight:700;
    letter-spacing:3px;
    line-height:1.4;
    text-transform:uppercase;
}

.gm-menu-page .gm-menu-hero-eyebrow-line{
    width:34px;
    height:1px;
    flex:0 0 34px;
    background:var(--gm-gold);
}

.gm-menu-page .gm-menu-hero h1{
    margin:0 0 25px;
    color:#fff;
    font-size:clamp(52px,6vw,78px);
    line-height:.96;
    font-weight:600;
    letter-spacing:-1.2px;
}

.gm-menu-page .gm-menu-hero h1 span{
    display:block;
    color:var(--gm-gold);
}

.gm-menu-page .gm-menu-hero-description{
    max-width:650px;
    margin:0 0 31px;
    color:rgba(255,255,255,.76);
    font-family:Poppins,sans-serif;
    font-size:15px;
    line-height:1.85;
}

.gm-menu-page .gm-menu-hero-buttons{
    display:flex;
    flex-wrap:wrap;
    gap:13px;
}

.gm-menu-page .gm-menu-hero-buttons a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:155px;
    padding:13px 25px;
    border-radius:50px;
    text-decoration:none;
    font-family:Poppins,sans-serif;
    font-size:13px;
    font-weight:600;
    transition:
        transform .3s ease,
        background-color .3s ease,
        border-color .3s ease,
        color .3s ease,
        box-shadow .3s ease;
}

.gm-menu-page .gm-menu-hero-buttons .gm-btn-primary{
    color:#fff;
    background:var(--gm-gold);
    box-shadow:0 12px 28px rgba(200,155,60,.22);
}

.gm-menu-page .gm-menu-hero-buttons .gm-btn-primary:hover{
    color:#fff;
    background:var(--gm-gold-dark);
    transform:translateY(-2px);
    box-shadow:0 15px 32px rgba(200,155,60,.28);
}

.gm-menu-page .gm-menu-hero-buttons .gm-btn-outline{
    color:#fff;
    border:1px solid rgba(255,255,255,.48);
    background:transparent;
}

.gm-menu-page .gm-menu-hero-buttons .gm-btn-outline:hover{
    color:var(--gm-dark);
    background:#fff;
    border-color:#fff;
    transform:translateY(-2px);
}

.gm-menu-page .gm-menu-hero-features{
    display:flex;
    flex-wrap:wrap;
    gap:10px 22px;
    margin-top:30px;
}

.gm-menu-page .gm-menu-hero-feature{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:rgba(255,255,255,.66);
    font-family:Poppins,sans-serif;
    font-size:11px;
    font-weight:500;
}

.gm-menu-page .gm-menu-hero-feature-icon{
    color:var(--gm-gold);
    font-size:12px;
    line-height:1;
}

.gm-menu-page .gm-menu-hero .gm-breadcrumb{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:28px !important;
    font-family:Poppins,sans-serif;
    font-size:12px;
}

.gm-menu-page .gm-menu-hero .gm-breadcrumb a{
    color:rgba(255,255,255,.60);
    text-decoration:none;
    transition:color .25s ease;
}

.gm-menu-page .gm-menu-hero .gm-breadcrumb a:hover{
    color:var(--gm-gold);
}

.gm-menu-page .gm-menu-hero .gm-breadcrumb span{
    color:rgba(255,255,255,.36);
}


/* Hero visual */

.gm-menu-page .gm-menu-hero-visual{
    position:relative;
    width:min(500px,100%);
    min-height:500px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
}

.gm-menu-page .gm-menu-hero-glow{
    position:absolute;
    width:390px;
    height:390px;
    border-radius:50%;
    background:rgba(200,155,60,.12);
    filter:blur(18px);
    transform:translate(8px,8px);
}

.gm-menu-page .gm-menu-hero-image{
    position:relative;
    z-index:2;
    width:min(440px,88%);
    aspect-ratio:1 / 1;
    padding:11px;
    border:1px solid rgba(200,155,60,.38);
    border-radius:50%;
    background:rgba(255,255,255,.05);
    box-shadow:0 30px 80px rgba(0,0,0,.38);
}

.gm-menu-page .gm-menu-hero-image::before{
    content:"";
    position:absolute;
    inset:-9px;
    border:1px solid rgba(200,155,60,.20);
    border-radius:50%;
    transform:rotate(-7deg);
    pointer-events:none;
}

.gm-menu-page .gm-menu-hero-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    border:7px solid rgba(255,255,255,.96);
    border-radius:50%;
    box-shadow:0 20px 50px rgba(0,0,0,.30);
}

.gm-menu-page .gm-menu-hero-badge{
    position:absolute;
    right:2%;
    bottom:7%;
    z-index:4;
    width:105px;
    height:105px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.65);
    border-radius:50%;
    color:#fff;
    background:var(--gm-red);
    box-shadow:0 14px 35px rgba(0,0,0,.28);
    transform:rotate(7deg);
}

.gm-menu-page .gm-menu-hero-badge::before{
    content:"";
    position:absolute;
    inset:6px;
    border:1px solid rgba(255,255,255,.25);
    border-radius:50%;
}

.gm-menu-page .gm-menu-hero-badge-small{
    position:relative;
    z-index:1;
    font-family:Poppins,sans-serif;
    font-size:9px;
    font-weight:600;
    letter-spacing:1.5px;
    text-transform:uppercase;
}

.gm-menu-page .gm-menu-hero-badge strong{
    position:relative;
    z-index:1;
    margin-top:2px;
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:24px;
    line-height:1;
}


/* ==========================================================
   03. FEATURED SPECIALS
========================================================== */

.gm-menu-page .gm-featured-section{
    padding:105px 0 100px;
    background:#fff;
}

.gm-menu-page .gm-featured-section > .container > .row{
    --bs-gutter-x:26px;
    --bs-gutter-y:26px;
}

.gm-menu-page .gm-featured-card{
    height:100%;
    overflow:hidden;
    border:1px solid var(--gm-border);
    border-radius:22px;
    background:#fff;
    box-shadow:0 12px 35px rgba(0,0,0,.055);
    transition:.35s ease;
}

.gm-menu-page .gm-featured-card:hover{
    transform:translateY(-8px);
    border-color:rgba(200,155,60,.5);
    box-shadow:0 25px 55px rgba(0,0,0,.12);
}

.gm-menu-page .gm-featured-image{
    position:relative;
    overflow:hidden;
    height:300px;
    background:var(--gm-light);
}

.gm-menu-page .gm-featured-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .5s ease;
}

.gm-menu-page .gm-featured-card:hover .gm-featured-image img{
    transform:scale(1.06);
}

.gm-menu-page .gm-featured-badge{
    position:absolute;
    top:15px;
    left:15px;
    padding:7px 12px;
    border-radius:30px;
    color:#fff;
    background:var(--gm-red);
    font-family:Poppins,sans-serif;
    font-size:10px;
    font-weight:700;
    letter-spacing:.7px;
    text-transform:uppercase;
    box-shadow:0 6px 15px rgba(0,0,0,.16);
}

.gm-menu-page .gm-featured-content{
    display:flex;
    flex-direction:column;
    min-height:205px;
    padding:22px 24px 24px;
}

.gm-menu-page .gm-featured-content h3{
    margin:0;
    color:var(--gm-dark);
    font-size:26px;
    line-height:1.1;
}

.gm-menu-page .gm-featured-rating{
    flex-shrink:0;
    margin-left:10px;
    color:#b77e12;
    font-family:Poppins,sans-serif;
    font-size:12px;
    font-weight:600;
}

.gm-menu-page .gm-featured-content p{
    margin:13px 0 20px;
    color:var(--gm-muted);
    font-size:13px;
    line-height:1.7;
}

.gm-menu-page .gm-featured-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:auto;
    padding-top:14px;
    border-top:1px dashed var(--gm-border);
}

.gm-menu-page .gm-featured-price{
    color:var(--gm-red);
    font-family:Poppins,sans-serif;
    font-size:18px;
    font-weight:700;
}

.gm-menu-page .gm-featured-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 16px;
    border:1px solid var(--gm-border);
    border-radius:30px;
    color:var(--gm-dark);
    background:#fff;
    text-decoration:none;
    font-family:Poppins,sans-serif;
    font-size:11px;
    font-weight:600;
    transition:.25s ease;
}

.gm-menu-page .gm-featured-btn:hover{
    color:#fff;
    background:var(--gm-dark);
    border-color:var(--gm-dark);
}


/* ==========================================================
   04. STATISTICS
   New PHP classes:
   gm-menu-stat-card
   gm-menu-stat-icon
========================================================== */

.gm-menu-page .gm-menu-stats{
    padding:90px 0;
    background:var(--gm-light);
    border-top:1px solid var(--gm-border);
    border-bottom:1px solid var(--gm-border);
}

.gm-menu-page .gm-menu-stats .container{
    max-width:1320px;
}

.gm-menu-page .gm-menu-stats .row{
    --bs-gutter-x:28px;
    --bs-gutter-y:35px;
}

.gm-menu-page .gm-menu-stat-card{
    height:100%;
    padding:20px 5px;
    text-align:left;
    background:transparent;
    border:0;
}

.gm-menu-page .gm-menu-stat-icon{
    width:42px;
    height:42px;
    margin-bottom:18px;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    color:var(--gm-gold-dark);
    font-size:22px;
}

.gm-menu-page .gm-menu-stat-icon i{
    line-height:1;
}

.gm-menu-page .gm-menu-stat-card h3,
.gm-menu-page .gm-menu-stat-card .gm-stat-number{
    margin:0 0 4px;
    color:var(--gm-dark);
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:29px;
    line-height:1;
    font-weight:600;
}

.gm-menu-page .gm-menu-stat-card h4,
.gm-menu-page .gm-menu-stat-card .gm-stat-title{
    margin:0 0 10px;
    color:var(--gm-dark);
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:23px;
    line-height:1.2;
    font-weight:600;
}

.gm-menu-page .gm-menu-stat-card p,
.gm-menu-page .gm-menu-stat-card .gm-stat-description{
    margin:0;
    max-width:285px;
    color:var(--gm-text);
    font-family:Poppins,sans-serif;
    font-size:13px;
    line-height:1.75;
}


/* Backward compatibility if old class appears */

.gm-menu-page .gm-stat-card{
    height:100%;
}

.gm-menu-page .gm-stat-icon{
    display:flex;
    align-items:center;
    justify-content:center;
}


/* ==========================================================
   05. MENU HIGHLIGHTS
   New PHP classes:
   gm-menu-highlight-card
   gm-menu-highlight-icon
   gm-menu-highlight-content
========================================================== */

.gm-menu-page .gm-menu-highlights{
    padding:105px 0 100px;
    background:#fff;
}

.gm-menu-page .gm-menu-highlights .container{
    max-width:1320px;
}

.gm-menu-page .gm-menu-highlights-header{
    max-width:800px;
    margin:0 auto 60px;
    text-align:center;
}

.gm-menu-page .gm-menu-highlights-header .gm-section-subtitle{
    margin-bottom:10px;
}

.gm-menu-page .gm-menu-highlights-header .gm-section-title{
    margin-bottom:14px;
}

.gm-menu-page .gm-menu-highlights-header .gm-section-description{
    margin:0 auto;
}

.gm-menu-page .gm-menu-highlights-header::after{
    content:"";
    display:block;
    width:55px;
    height:2px;
    margin:22px auto 0;
    background:var(--gm-gold);
}

.gm-menu-page .gm-menu-highlights .row{
    --bs-gutter-x:28px;
    --bs-gutter-y:28px;
}

.gm-menu-page .gm-menu-highlight-card{
    height:100%;
    padding:5px 0 5px 0;
    border:0;
    background:transparent;
}

.gm-menu-page .gm-menu-highlight-icon{
    width:42px;
    height:42px;
    margin-bottom:17px;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    color:var(--gm-gold-dark);
    background:transparent;
    font-size:22px;
}

.gm-menu-page .gm-menu-highlight-content h3{
    margin:0 0 9px;
    color:var(--gm-dark);
    font-size:27px;
    line-height:1.15;
    font-weight:600;
}

.gm-menu-page .gm-menu-highlight-content p{
    max-width:380px;
    margin:0;
    color:var(--gm-text);
    font-family:Poppins,sans-serif;
    font-size:13px;
    line-height:1.75;
}


/* Backward compatibility */

.gm-menu-page .gm-highlight-item{
    height:100%;
}

.gm-menu-page .gm-highlight-icon{
    display:flex;
}


/* ==========================================================
   06. CATEGORY NAVIGATION
========================================================== */

.gm-menu-page .gm-menu-categories-nav{
    position:sticky;
    top:0;
    z-index:50;
    padding:14px 0;
    background:rgba(255,255,255,.97);
    border-top:1px solid var(--gm-border);
    border-bottom:1px solid var(--gm-border);
    box-shadow:0 8px 25px rgba(0,0,0,.045);
    backdrop-filter:blur(12px);
}

.gm-menu-page .gm-menu-categories-header{
    display:none;
}

.gm-menu-page .gm-category-nav-list{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:9px;
    margin:0;
    padding:0;
}

.gm-menu-page .gm-category-nav-card{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:40px;
    padding:8px 15px;
    border:1px solid var(--gm-border);
    border-radius:30px;
    color:var(--gm-dark);
    background:#fff;
    text-decoration:none;
    font-family:Poppins,sans-serif;
    font-size:11px;
    font-weight:600;
    white-space:nowrap;
    transition:.25s ease;
}

.gm-menu-page .gm-category-nav-card:hover,
.gm-menu-page .gm-category-nav-card:focus-visible{
    color:#fff;
    background:var(--gm-dark);
    border-color:var(--gm-dark);
    box-shadow:0 6px 15px rgba(0,0,0,.1);
}

.gm-menu-page .gm-category-nav-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:var(--gm-gold-dark);
    font-size:12px;
}

.gm-menu-page .gm-category-nav-card:hover .gm-category-nav-icon,
.gm-menu-page .gm-category-nav-card:focus-visible .gm-category-nav-icon{
    color:var(--gm-gold);
}

.gm-menu-page .gm-category-nav-content{
    display:inline-flex;
    align-items:center;
    gap:4px;
}

.gm-menu-page .gm-category-nav-content strong{
    font-weight:700;
}

.gm-menu-page .gm-category-nav-content small{
    font-size:10px;
    font-weight:500;
    opacity:.82;
}

.gm-menu-page .gm-category-nav-arrow{
    color:var(--gm-gold-dark);
    font-size:13px;
    line-height:1;
}

.gm-menu-page .gm-category-nav-card:hover .gm-category-nav-arrow,
.gm-menu-page .gm-category-nav-card:focus-visible .gm-category-nav-arrow{
    color:var(--gm-gold);
}


/* ==========================================================
   07. COMPLETE MENU SHOWCASE
========================================================== */

.gm-menu-page .gm-menu-showcase{
    padding:105px 0 70px;
    background:#fff;
}

.gm-menu-page .gm-menu-showcase > .container{
    max-width:1320px;
}

.gm-menu-page .gm-menu-showcase-header{
    max-width:850px;
    margin:0 auto 65px;
    text-align:center;
}

.gm-menu-page .gm-menu-showcase-header::after{
    content:"";
    display:block;
    width:55px;
    height:2px;
    margin:22px auto 0;
    background:var(--gm-gold);
}


/* ==========================================================
   08. MAIN CATEGORY
========================================================== */

.gm-menu-page .gm-menu-category{
    position:relative;
    margin:0 0 85px;
    padding:0;
    scroll-margin-top:90px;
}

.gm-menu-page .gm-menu-category + .gm-menu-category{
    padding-top:70px;
    border-top:1px solid var(--gm-border);
}

.gm-menu-page .gm-menu-category-header{
    margin-bottom:45px;
}

.gm-menu-page .gm-menu-category-header .row{
    --bs-gutter-x:50px;
    --bs-gutter-y:25px;
}

.gm-menu-page .gm-category-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-bottom:8px;
    color:var(--gm-gold-dark);
    font-family:Poppins,sans-serif;
    font-size:11px;
    font-weight:700;
    letter-spacing:2px;
    line-height:1.4;
    text-transform:uppercase;
}

.gm-menu-page .gm-category-badge i{
    color:var(--gm-gold);
}

.gm-menu-page .gm-menu-category .gm-section-title{
    margin:0 0 13px;
    font-size:clamp(42px,4.5vw,57px);
}

.gm-menu-page .gm-menu-category .gm-section-description{
    max-width:760px;
    margin:0;
    font-size:14px;
    line-height:1.8;
}

.gm-menu-page .gm-menu-category-image{
    width:100%;
    height:240px;
    display:block;
    object-fit:cover;
    border:1px solid var(--gm-border);
    border-radius:20px;
    background:var(--gm-light);
    box-shadow:0 15px 40px rgba(0,0,0,.08);
}


/* ==========================================================
   09. SUBCATEGORY
========================================================== */

.gm-menu-page .gm-sub-category{
    position:relative;
    margin-top:45px;
    padding-top:0;
}

.gm-menu-page .gm-sub-category + .gm-sub-category{
    margin-top:70px;
    padding-top:55px;
    border-top:1px dashed var(--gm-border);
}

.gm-menu-page .gm-sub-category-header{
    margin-bottom:30px;
}

.gm-menu-page .gm-sub-category-header .row{
    --bs-gutter-x:40px;
    --bs-gutter-y:20px;
}

.gm-menu-page .gm-sub-category-title{
    display:inline-block;
    margin:0 0 8px;
    color:var(--gm-dark);
    font-size:34px;
    line-height:1.1;
    font-weight:600;
}

.gm-menu-page .gm-sub-category-title::after{
    content:"";
    display:block;
    width:38px;
    height:2px;
    margin-top:9px;
    background:var(--gm-gold);
}

.gm-menu-page .gm-sub-category-description{
    max-width:760px;
    margin:0;
    color:var(--gm-muted);
    font-family:Poppins,sans-serif;
    font-size:13px;
    line-height:1.75;
}

.gm-menu-page .gm-sub-category-image{
    width:100%;
    height:125px;
    display:block;
    object-fit:cover;
    border:1px solid var(--gm-border);
    border-radius:16px;
    background:var(--gm-light);
    box-shadow:0 10px 25px rgba(0,0,0,.06);
}


/* ==========================================================
   10. MENU ITEM GRID
========================================================== */

.gm-menu-page .gm-sub-category-grid{
    --bs-gutter-x:22px;
    --bs-gutter-y:22px;
    margin-top:0;
}

.gm-menu-page .gm-sub-category-grid > [class*="col-"]{
    display:flex;
}


/* ==========================================================
   11. MENU ITEM CARD
========================================================== */

.gm-menu-page .gm-menu-card{
    width:100%;
    height:100%;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border:1px solid var(--gm-border);
    border-radius:20px;
    background:#fff;
    box-shadow:0 9px 28px rgba(0,0,0,.045);
    transition:
        transform .35s ease,
        border-color .35s ease,
        box-shadow .35s ease;
}

.gm-menu-page .gm-menu-card:hover{
    transform:translateY(-7px);
    border-color:rgba(200,155,60,.5);
    box-shadow:0 20px 45px rgba(0,0,0,.11);
}


/* Image */

.gm-menu-page .gm-menu-image{
    position:relative;
    height:235px;
    flex-shrink:0;
    overflow:hidden;
    background:#eee9df;
}

.gm-menu-page .gm-menu-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .5s ease;
}

.gm-menu-page .gm-menu-card:hover .gm-menu-image img{
    transform:scale(1.06);
}


/* Food type */

.gm-menu-page .gm-food-type{
    position:absolute;
    top:13px;
    left:13px;
    z-index:3;
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:6px 10px;
    border-radius:20px;
    background:rgba(255,255,255,.96);
    font-family:Poppins,sans-serif;
    font-size:10px;
    font-weight:700;
    box-shadow:0 4px 12px rgba(0,0,0,.12);
}

.gm-menu-page .gm-food-type.veg{
    color:#187a3d;
}

.gm-menu-page .gm-food-type.nonveg{
    color:#a32121;
}


/* Featured badge */

.gm-menu-page .gm-featured{
    position:absolute;
    top:13px;
    right:13px;
    z-index:3;
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:6px 10px;
    border-radius:20px;
    color:#fff;
    background:var(--gm-red);
    font-family:Poppins,sans-serif;
    font-size:9px;
    font-weight:700;
    letter-spacing:.5px;
    text-transform:uppercase;
    box-shadow:0 4px 12px rgba(0,0,0,.18);
}


/* ==========================================================
   12. MENU CARD BODY
========================================================== */

.gm-menu-page .gm-menu-body{
    flex:1;
    display:flex;
    flex-direction:column;
    padding:21px;
}

.gm-menu-page .gm-menu-title-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
}

.gm-menu-page .gm-dish-name{
    margin:0;
    padding-right:5px;
    color:var(--gm-dark);
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:25px;
    line-height:1.12;
    font-weight:600;
}

.gm-menu-page .gm-dish-badges{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:5px;
    flex-shrink:0;
}

.gm-menu-page .gm-dish-badge{
    display:inline-flex;
    align-items:center;
    padding:4px 7px;
    border-radius:20px;
    color:#5d4600;
    background:#f7e7b7;
    font-family:Poppins,sans-serif;
    font-size:8px;
    font-weight:700;
    line-height:1.2;
    white-space:nowrap;
}


/* Description */

.gm-menu-page .gm-description{
    min-height:48px;
    margin:11px 0 14px;
    color:var(--gm-muted);
    font-family:Poppins,sans-serif;
    font-size:12px;
    line-height:1.7;
}


/* Serving */

.gm-menu-page .gm-serving{
    display:flex;
    align-items:center;
    gap:7px;
    margin-bottom:7px;
    color:#777;
    font-family:Poppins,sans-serif;
    font-size:11px;
}

.gm-menu-page .gm-serving i{
    color:var(--gm-gold);
}


/* Spicy */

.gm-menu-page .gm-spicy{
    margin:6px 0 8px;
    padding:6px 9px;
    border-left:3px solid #c6532b;
    color:#a33b20;
    background:#fff7f3;
    font-family:Poppins,sans-serif;
    font-size:10px;
    font-weight:600;
}


/* Rating */

.gm-menu-page .gm-rating{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:5px;
    margin:8px 0 0 !important;
    color:#d89b00;
    font-family:Poppins,sans-serif;
    font-size:11px;
}

.gm-menu-page .gm-rating-stars{
    display:inline-flex;
    align-items:center;
    gap:1px;
    color:#d89b00;
}

.gm-menu-page .gm-rating-stars i{
    font-size:10px;
}

.gm-menu-page .gm-rating-value{
    color:#777;
    font-size:11px;
    font-weight:500;
}

.gm-menu-page .gm-rating-count{
    color:#999;
    font-size:10px;
}


/* ==========================================================
   13. PRICE AREA
========================================================== */

.gm-menu-page .gm-price-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:auto;
    padding-top:14px;
    border-top:1px dashed var(--gm-border);
}

.gm-menu-page .gm-price-label{
    color:#666;
    font-family:Poppins,sans-serif;
    font-size:11px;
}

.gm-menu-page .gm-price-value{
    color:var(--gm-red);
    font-family:Poppins,sans-serif;
    font-size:16px;
    font-weight:700;
}

.gm-menu-page .gm-price-old{
    margin-right:5px;
    color:#999;
    font-size:11px;
    font-weight:400;
    text-decoration:line-through;
}

.gm-menu-page .gm-item-highlights{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
    margin-top:9px;
}

.gm-menu-page .gm-item-highlights span{
    color:var(--gm-muted);
    font-family:Poppins,sans-serif;
    font-size:9px;
}


/* Backward-compatible price table */

.gm-menu-page .gm-price-table{
    margin-top:auto;
    padding-top:14px;
    border-top:1px dashed var(--gm-border);
}

.gm-menu-page .gm-price-table > div{
    color:#666;
    font-family:Poppins,sans-serif;
    font-size:12px;
}

.gm-menu-page .gm-price-table strong{
    color:var(--gm-red);
    font-family:Poppins,sans-serif;
    font-size:15px;
}


/* ==========================================================
   14. RESERVATION
========================================================== */

.gm-menu-page .gm-reservation,
.gm-menu-page .reservation-section{
    position:relative;
    overflow:hidden;
    padding:110px 20px;
    color:#fff;
    background:
        radial-gradient(circle at 50% 0,rgba(200,155,60,.16),transparent 35%),
        linear-gradient(135deg,#121212,#211d18);
    text-align:center;
}

.gm-menu-page .gm-reservation::before,
.gm-menu-page .reservation-section::before{
    content:"";
    position:absolute;
    left:50%;
    top:25px;
    width:70px;
    height:1px;
    background:var(--gm-gold);
    transform:translateX(-50%);
}

.gm-menu-page .gm-reservation .container,
.gm-menu-page .reservation-section .container{
    position:relative;
    z-index:2;
    max-width:950px;
}

.gm-menu-page .gm-reservation h2,
.gm-menu-page .reservation-section h2{
    margin:0 0 18px;
    color:#fff;
    font-size:clamp(40px,5vw,58px);
    line-height:1;
}

.gm-menu-page .gm-reservation p,
.gm-menu-page .reservation-section p{
    max-width:720px;
    margin:0 auto 32px;
    color:rgba(255,255,255,.72);
    font-family:Poppins,sans-serif;
    font-size:14px;
}

.gm-menu-page .gm-reservation a,
.gm-menu-page .reservation-section a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:155px;
    margin:5px;
    padding:13px 24px;
    border-radius:50px;
    text-decoration:none;
    font-family:Poppins,sans-serif;
    font-size:13px;
    font-weight:600;
    transition:.3s ease;
}

.gm-menu-page .gm-reservation a:first-child,
.gm-menu-page .reservation-section a:first-child{
    color:#fff;
    background:var(--gm-gold);
}

.gm-menu-page .gm-reservation a:first-child:hover,
.gm-menu-page .reservation-section a:first-child:hover{
    color:#fff;
    background:var(--gm-gold-dark);
    transform:translateY(-2px);
}


/* ==========================================================
   15. IMAGE FALLBACK / BROKEN IMAGE AREA
========================================================== */

.gm-menu-page .gm-menu-image,
.gm-menu-page .gm-featured-image,
.gm-menu-page .gm-menu-category-image,
.gm-menu-page .gm-sub-category-image{
    background:#eee9df;
}


/* ==========================================================
   16. TABLET / SMALL DESKTOP
========================================================== */

@media (max-width:1199px){

    .gm-menu-page .gm-menu-hero{
        min-height:610px;
    }

    .gm-menu-page .gm-menu-image{
        height:220px;
    }

    .gm-menu-page .gm-menu-body{
        padding:19px;
    }

    .gm-menu-page .gm-dish-name{
        font-size:23px;
    }

    .gm-menu-page .gm-menu-category-image{
        height:220px;
    }
}


/* ==========================================================
   17. TABLET
========================================================== */

@media (max-width:991px){

    .gm-menu-page .gm-menu-hero{
        min-height:auto;
        padding:90px 0 80px;
    }

    .gm-menu-page .gm-menu-hero-content{
        max-width:760px;
        margin:0 auto;
        text-align:center;
    }

    .gm-menu-page .gm-menu-hero-eyebrow{
        justify-content:center;
    }

    .gm-menu-page .gm-menu-hero-description{
        margin-left:auto;
        margin-right:auto;
    }

    .gm-menu-page .gm-menu-hero-buttons{
        justify-content:center;
    }

    .gm-menu-page .gm-menu-hero-features{
        justify-content:center;
    }

    .gm-menu-page .gm-menu-hero .gm-breadcrumb{
        justify-content:center;
    }

    .gm-menu-page .gm-menu-hero-visual{
        min-height:450px;
        margin-top:30px;
    }

    .gm-menu-page .gm-featured-section,
    .gm-menu-page .gm-menu-highlights,
    .gm-menu-page .gm-menu-showcase{
        padding-top:80px;
    }

    .gm-menu-page .gm-menu-stats{
        padding:70px 0;
    }

    .gm-menu-page .gm-menu-highlights .row{
        --bs-gutter-y:35px;
    }

    .gm-menu-page .gm-menu-category{
        margin-bottom:65px;
    }

    .gm-menu-page .gm-menu-category-header{
        margin-bottom:35px;
        text-align:center;
    }

    .gm-menu-page .gm-menu-category .gm-section-description{
        margin-left:auto;
        margin-right:auto;
    }

    .gm-menu-page .gm-menu-category-image{
        max-width:520px;
        height:220px;
        margin:10px auto 0;
    }

    .gm-menu-page .gm-sub-category-header{
        text-align:center;
    }

    .gm-menu-page .gm-sub-category-description{
        margin-left:auto;
        margin-right:auto;
    }

    .gm-menu-page .gm-sub-category-title::after{
        margin-left:auto;
        margin-right:auto;
    }

    .gm-menu-page .gm-sub-category-image{
        max-width:450px;
        margin:10px auto 0;
    }

    .gm-menu-page .gm-menu-showcase{
        padding-bottom:50px;
    }
}


/* ==========================================================
   18. MOBILE
========================================================== */

@media (max-width:767px){

    .gm-menu-page .gm-menu-hero{
        padding:70px 18px 65px;
    }

    .gm-menu-page .gm-menu-hero h1{
        font-size:48px;
        letter-spacing:-.5px;
    }

    .gm-menu-page .gm-menu-hero-description{
        font-size:14px;
        line-height:1.75;
    }

    .gm-menu-page .gm-menu-hero-buttons{
        flex-direction:column;
        align-items:center;
    }

    .gm-menu-page .gm-menu-hero-buttons a{
        width:100%;
        max-width:245px;
    }

    .gm-menu-page .gm-menu-hero-features{
        flex-direction:column;
        align-items:center;
        gap:10px;
    }

    .gm-menu-page .gm-menu-hero-visual{
        min-height:350px;
        margin-top:20px;
    }

    .gm-menu-page .gm-menu-hero-image{
        width:min(350px,90%);
    }

    .gm-menu-page .gm-menu-hero-glow{
        width:300px;
        height:300px;
    }

    .gm-menu-page .gm-menu-hero-badge{
        right:4%;
        bottom:4%;
        width:86px;
        height:86px;
    }

    .gm-menu-page .gm-menu-hero-badge strong{
        font-size:20px;
    }


    /* Featured */

    .gm-menu-page .gm-featured-section{
        padding:70px 0;
    }

    .gm-menu-page .gm-featured-section > .container > .row{
        --bs-gutter-x:16px;
        --bs-gutter-y:20px;
    }

    .gm-menu-page .gm-featured-image{
        height:270px;
    }

    .gm-menu-page .gm-featured-content{
        min-height:200px;
        padding:20px;
    }


    /* Stats */

    .gm-menu-page .gm-menu-stats{
        padding:65px 0;
    }

    .gm-menu-page .gm-menu-stat-card{
        padding:8px 0;
    }

    .gm-menu-page .gm-menu-stat-card h3,
    .gm-menu-page .gm-menu-stat-card .gm-stat-number{
        font-size:27px;
    }

    .gm-menu-page .gm-menu-stat-card h4,
    .gm-menu-page .gm-menu-stat-card .gm-stat-title{
        font-size:21px;
    }


    /* Highlights */

    .gm-menu-page .gm-menu-highlights{
        padding:70px 0;
    }

    .gm-menu-page .gm-menu-highlights-header{
        margin-bottom:45px;
    }

    .gm-menu-page .gm-menu-highlight-card{
        padding:0;
    }

    .gm-menu-page .gm-menu-highlight-content h3{
        font-size:24px;
    }


    /* Category navigation */

    .gm-menu-page .gm-menu-categories-nav{
        padding:9px 0;
    }

    .gm-menu-page .gm-category-nav-list{
        justify-content:flex-start;
        flex-wrap:nowrap;
        overflow-x:auto;
        padding:0 15px 3px;
        scrollbar-width:thin;
    }

    .gm-menu-page .gm-category-nav-card{
        flex:0 0 auto;
    }


    /* Showcase */

    .gm-menu-page .gm-menu-showcase{
        padding:70px 0 40px;
    }

    .gm-menu-page .gm-menu-showcase-header{
        margin-bottom:45px;
    }


    /* Category */

    .gm-menu-page .gm-menu-category{
        margin-bottom:55px;
        scroll-margin-top:70px;
    }

    .gm-menu-page .gm-menu-category + .gm-menu-category{
        padding-top:45px;
    }

    .gm-menu-page .gm-menu-category .gm-section-title{
        font-size:42px;
    }

    .gm-menu-page .gm-menu-category-image{
        height:210px;
    }


    /* Subcategory */

    .gm-menu-page .gm-sub-category{
        margin-top:40px;
    }

    .gm-menu-page .gm-sub-category + .gm-sub-category{
        margin-top:55px;
        padding-top:40px;
    }

    .gm-menu-page .gm-sub-category-title{
        font-size:29px;
    }

    .gm-menu-page .gm-sub-category-image{
        height:115px;
    }


    /* Cards */

    .gm-menu-page .gm-menu-image{
        height:225px;
    }

    .gm-menu-page .gm-menu-body{
        padding:18px;
    }

    .gm-menu-page .gm-dish-name{
        font-size:22px;
    }

    .gm-menu-page .gm-description{
        min-height:auto;
    }


    /* Reservation */

    .gm-menu-page .gm-reservation,
    .gm-menu-page .reservation-section{
        padding:80px 18px;
    }
}


/* ==========================================================
   19. SMALL MOBILE
========================================================== */

@media (max-width:575px){

    .gm-menu-page .gm-menu-hero{
        padding:58px 15px 55px;
    }

    .gm-menu-page .gm-menu-hero-eyebrow{
        font-size:9px;
        letter-spacing:2px;
    }

    .gm-menu-page .gm-menu-hero h1{
        font-size:39px;
    }

    .gm-menu-page .gm-menu-hero-description{
        font-size:13px;
    }

    .gm-menu-page .gm-menu-hero-visual{
        min-height:300px;
    }

    .gm-menu-page .gm-menu-hero-image{
        width:min(290px,88%);
    }

    .gm-menu-page .gm-menu-hero-badge{
        width:74px;
        height:74px;
    }

    .gm-menu-page .gm-menu-hero-badge-small{
        font-size:7px;
    }

    .gm-menu-page .gm-menu-hero-badge strong{
        font-size:17px;
    }


    /* Shared headers */

    .gm-menu-page .gm-section-title{
        font-size:36px;
    }

    .gm-menu-page .gm-section-description{
        font-size:13px;
    }


    /* Featured */

    .gm-menu-page .gm-featured-image{
        height:245px;
    }

    .gm-menu-page .gm-featured-content h3{
        font-size:24px;
    }


    /* Stats */

    .gm-menu-page .gm-menu-stats .row{
        --bs-gutter-y:25px;
    }


    /* Category */

    .gm-menu-page .gm-menu-category .gm-section-title{
        font-size:36px;
    }

    .gm-menu-page .gm-menu-category-image{
        height:185px;
    }

    .gm-menu-page .gm-sub-category-title{
        font-size:27px;
    }

    .gm-menu-page .gm-sub-category-image{
        height:105px;
    }


    /* Cards */

    .gm-menu-page .gm-menu-image{
        height:210px;
    }

    .gm-menu-page .gm-dish-name{
        font-size:21px;
    }

    .gm-menu-page .gm-dish-badges{
        max-width:45%;
    }

    .gm-menu-page .gm-dish-badge{
        font-size:7px;
    }


    /* Reservation */

    .gm-menu-page .gm-reservation h2,
    .gm-menu-page .reservation-section h2{
        font-size:40px;
    }

    .gm-menu-page .gm-reservation a,
    .gm-menu-page .reservation-section a{
        width:100%;
        max-width:260px;
        margin:5px auto;
    }
}


/* ==========================================================
   20. ACCESSIBILITY
========================================================== */

.gm-menu-page a:focus-visible{
    outline:3px solid rgba(200,155,60,.5);
    outline-offset:3px;
}

@media (prefers-reduced-motion:reduce){

    .gm-menu-page *,
    .gm-menu-page *::before,
    .gm-menu-page *::after{
        scroll-behavior:auto !important;
        transition:none !important;
        animation:none !important;
    }
}


/* ==========================================================
   END MENU CSS 5.0
========================================================== */