/* =========================================================
   CAMBANA ST.2004
   FINE DINING — LUXURY EDITION
========================================================= */

:root{
    --fd-green:#062d23;
    --fd-green-2:#0b4434;
    --fd-green-3:#145843;

    --fd-gold:#c9a15a;
    --fd-gold-light:#ead49a;
    --fd-gold-dark:#9e7530;

    --fd-cream:#f7f2e8;
    --fd-paper:#fffdf8;

    --fd-text:#173a30;
    --fd-muted:#7d8681;

    --fd-border:rgba(174,132,58,.20);

    --fd-shadow:
        0 18px 45px rgba(40,31,15,.10);
}


/* =========================================================
   PAGE
========================================================= */

.cb-menu.fine{

    min-height:100vh;

    background:
        radial-gradient(
            circle at 50% -100px,
            rgba(201,161,90,.14),
            transparent 420px
        ),
        linear-gradient(
            180deg,
            #fffdf8 0%,
            #f8f4eb 55%,
            #f3ecdf 100%
        );

    color:var(--fd-text);
}


/* =========================================================
   HEADER
========================================================= */

.cb-menu.fine .cb-menu-head{

    position:sticky;
    top:0;
    z-index:1000;

    min-height:112px;

    padding:
        16px 42px;

    display:grid;

    grid-template-columns:
        1fr auto 1fr;

    align-items:center;

    background:

        radial-gradient(
            circle at 50% 0%,
            rgba(203,164,89,.10),
            transparent 55%
        ),

        linear-gradient(
            135deg,
            #041f18 0%,
            #073a2c 48%,
            #041f18 100%
        );

    border-bottom:
        1px solid rgba(234,212,154,.38);

    box-shadow:
        0 14px 35px rgba(4,28,22,.22);
}


/* GOLD TOP LINE */

.cb-menu.fine .cb-menu-head::before{

    content:"";

    position:absolute;

    top:0;
    left:0;
    right:0;

    height:2px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #b88d43,
            #ecd99f,
            #b88d43,
            transparent
        );
}


/* =========================================================
   BRAND
========================================================= */

.cb-menu.fine .cb-brand{

    display:flex;

    align-items:center;

    gap:14px;
}


.cb-menu.fine .cb-brand-logo{

    width:67px;
    height:67px;

    display:flex;

    align-items:center;
    justify-content:center;

    border:
        1px solid rgba(234,212,154,.35);

    border-radius:50%;

    background:
        rgba(255,255,255,.025);

    box-shadow:
        inset 0 0 20px rgba(255,255,255,.025);
}


.cb-menu.fine .cb-brand-logo img{

    width:53px;
    height:53px;

    object-fit:contain;
}


.cb-menu.fine .cb-brand-text{

    color:var(--fd-gold-light);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:21px;

    font-weight:500;

    letter-spacing:5px;
}


.cb-menu.fine .cb-brand-text small{

    display:block;

    margin-top:5px;

    color:
        rgba(255,255,255,.58);

    font-family:
        Arial,
        sans-serif;

    font-size:8px;

    font-weight:500;

    letter-spacing:2.6px;
}


/* =========================================================
   MAIN TITLE
========================================================= */

.cb-menu.fine .cb-menu-title{

    min-width:340px;

    text-align:center;
}


.cb-menu.fine .cb-menu-title small{

    display:block;

    margin-bottom:7px;

    color:var(--fd-gold);

    font-size:8px;

    font-weight:700;

    letter-spacing:5px;
}


.cb-menu.fine .cb-menu-title h1{

    margin:0;

    color:#fffdf7;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:31px;

    font-weight:400;

    letter-spacing:9px;

    line-height:1.1;
}


/* =========================================================
   HEADER BUTTONS
========================================================= */

.cb-menu.fine .cb-head-actions{

    display:flex;

    justify-content:flex-end;

    align-items:center;

    gap:10px;
}


.cb-menu.fine .cb-link{

    height:40px;

    padding:
        0 18px;

    border:
        1px solid rgba(234,212,154,.38);

    border-radius:999px;

    background:
        rgba(255,255,255,.02);

    color:var(--fd-gold-light);

    font-size:8px;

    font-weight:700;

    letter-spacing:1.5px;

    cursor:pointer;

    transition:
        all .25s ease;
}


.cb-menu.fine .cb-link:hover{

    background:
        linear-gradient(
            135deg,
            #ead49a,
            #bd9146
        );

    border-color:
        transparent;

    color:#062d23;

    transform:
        translateY(-1px);
}


/* =========================================================
   CATEGORY SECTION
========================================================= */

.cb-menu.fine .cb-category-shell{

    padding:
        28px 24px 24px;

    background:
        rgba(255,253,248,.94);

    border-bottom:
        1px solid rgba(163,124,54,.12);
}


.cb-menu.fine .cb-cats{

    max-width:850px;

    margin:
        0 auto;

    display:grid;

    grid-template-columns:
        repeat(5,1fr);

    gap:14px;
}


/* =========================================================
   CATEGORY
========================================================= */

.cb-menu.fine .cb-cat{

    position:relative;

    min-height:112px;

    padding:
        14px 8px 12px;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    text-decoration:none;

    border:
        1px solid rgba(169,128,55,.20);

    border-radius:18px;

    background:
        linear-gradient(
            145deg,
            #ffffff 0%,
            #faf6ed 100%
        );

    box-shadow:
        0 8px 24px rgba(65,49,21,.055);

    transition:
        transform .24s ease,
        box-shadow .24s ease,
        border-color .24s ease;
}


.cb-menu.fine .cb-cat:hover{

    transform:
        translateY(-4px);

    border-color:
        rgba(185,142,62,.50);

    box-shadow:
        0 14px 32px rgba(65,49,21,.10);
}


/* ACTIVE */

.cb-menu.fine .cb-cat.active{

    background:

        radial-gradient(
            circle at 50% 0%,
            rgba(218,182,108,.12),
            transparent 65%
        ),

        linear-gradient(
            145deg,
            #11513e,
            #062d23
        );

    border-color:
        rgba(224,193,127,.68);

    box-shadow:
        0 15px 35px rgba(7,55,42,.22);
}


.cb-menu.fine .cb-cat.active::after{

    content:"";

    position:absolute;

    bottom:-1px;

    left:50%;

    width:36%;

    height:3px;

    border-radius:
        5px 5px 0 0;

    background:
        linear-gradient(
            90deg,
            #ad7f34,
            #f0d89f,
            #ad7f34
        );
}


/* =========================================================
   CATEGORY ICON
========================================================= */

.cb-menu.fine .cb-category-icon-image{

    width:80px;
    height:80px;

    margin-bottom:7px;

    display:flex;

    align-items:center;

    justify-content:center;
}


.cb-menu.fine .cb-category-icon-image img{

    width:80px;
    height:80px;

    object-fit:contain;

    transition:
        transform .25s ease;
}


.cb-menu.fine .cb-cat:hover
.cb-category-icon-image img{

    transform:
        scale(1.07);
}


.cb-menu.fine .cb-cat-en{

    color:#775b27;

    font-size:14px;

    font-weight:700;

    letter-spacing:1.25px;

    text-align:center;

    text-transform:uppercase;
}


.cb-menu.fine .cb-cat.active
.cb-cat-en{

    color:var(--fd-gold-light);
}


/* =========================================================
   MAIN BODY
========================================================= */

.cb-menu.fine .cb-body{

    width:
        min(1560px,calc(100% - 60px));

    margin:
        0 auto;

    padding:
        42px 0 85px;
}


/* =========================================================
   SECTION TITLE
========================================================= */

.cb-menu.fine .cb-section-heading{

    max-width:900px;

    margin:
        0 auto 38px;

    display:grid;

    grid-template-columns:
        1fr auto 1fr;

    align-items:center;

    gap:28px;
}


.cb-menu.fine .cb-section-line{

    height:1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(177,133,56,.48)
        );
}


.cb-menu.fine
.cb-section-line:last-child{

    background:
        linear-gradient(
            90deg,
            rgba(177,133,56,.48),
            transparent
        );
}


.cb-menu.fine .cb-section-center{

    text-align:center;
}


.cb-menu.fine .cb-section-center small{

    display:block;

    margin-bottom:8px;

    color:var(--fd-gold-dark);

    font-size:8px;

    font-weight:700;

    letter-spacing:4px;
}


.cb-menu.fine .cb-section-center h2{

    margin:0;

    color:var(--fd-green);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:29px;

    font-weight:400;

    letter-spacing:6px;
}


.cb-menu.fine .cb-section-count{

    margin-top:9px;

    color:#969c98;

    font-size:8px;

    font-weight:700;

    letter-spacing:2.5px;
}


/* =========================================================
   FOOD GRID
========================================================= */

.cb-menu.fine .cb-food-grid{

    display:grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    gap:26px;
}


/* =========================================================
   FOOD CARD
========================================================= */

.cb-menu.fine .cb-food{

    position:relative;

    overflow:hidden;

    min-width:0;

    display:flex;

    flex-direction:column;

    border:
        1px solid var(--fd-border);

    border-radius:22px;

    background:
        rgba(255,255,255,.96);

    box-shadow:
        var(--fd-shadow);

    transition:
        transform .28s ease,
        box-shadow .28s ease,
        border-color .28s ease;
}


.cb-menu.fine .cb-food:hover{

    transform:
        translateY(-6px);

    border-color:
        rgba(190,145,62,.40);

    box-shadow:
        0 24px 55px rgba(41,32,15,.14);
}


/* GOLD TOP BORDER */

.cb-menu.fine .cb-food::before{

    content:"";

    position:absolute;

    top:0;

    left:23%;

    width:54%;

    height:2px;

    z-index:10;

    background:
        linear-gradient(
            90deg,
            transparent,
            #c89f57,
            transparent
        );
}


/* =========================================================
   FOOD PHOTO
========================================================= */

.cb-menu.fine .cb-food-image{

    position:relative;

    overflow:hidden;

    aspect-ratio:
        4 / 3;

    background:#ebe6dc;
}


.cb-menu.fine .cb-food-image img{

    width:100%;
    height:100%;

    display:block;

    object-fit:cover;

    transition:
        transform .6s ease;
}


.cb-menu.fine .cb-food:hover
.cb-food-image img{

    transform:
        scale(1.045);
}


/* PHOTO GRADIENT */

.cb-menu.fine .cb-food-image::after{

    content:"";

    position:absolute;

    inset:0;

    pointer-events:none;

    background:
        linear-gradient(
            180deg,
            transparent 58%,
            rgba(3,27,21,.23) 100%
        );
}


/* =========================================================
   FOOD ID
========================================================= */

.cb-menu.fine .cb-food-id{

    position:absolute;

    top:14px;
    left:14px;

    z-index:5;

    padding:
        6px 11px;

    border:
        1px solid rgba(236,216,164,.48);

    border-radius:999px;

    background:
        rgba(4,41,31,.82);

    backdrop-filter:
        blur(8px);

    color:#ead49a;

    font-size:8px;

    font-weight:700;

    letter-spacing:1.5px;
}


/* HIDE NUMBER */

.cb-menu.fine .cb-food-number{

    display:none;
}


/* =========================================================
   FOOD INFO
========================================================= */

.cb-menu.fine .cb-food-info{

    flex:1;

    padding:
        21px 21px 19px;

    display:flex;

    flex-direction:column;
}


/* KHMER */

.cb-menu.fine .cb-food-name-kh{

    margin-bottom:6px;

    color:#a27934;

    font-family:
        "Noto Sans Khmer",
        "Khmer OS Battambang",
        sans-serif;

    font-size:14px;

    font-weight:600;

    line-height:1.6;
}


/* ENGLISH */

.cb-menu.fine .cb-food-name{

    margin:0;

    color:#0b392d;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:19px;

    font-weight:500;

    line-height:1.35;

    letter-spacing:.15px;
}


/* =========================================================
   DESCRIPTION
========================================================= */

.cb-menu.fine .cb-food-description{

    flex:1;

    margin-top:12px;
}


.cb-menu.fine .cb-food-desc-kh{

    margin-bottom:7px;

    color:#586862;

    font-family:
        "Noto Sans Khmer",
        "Khmer OS Battambang",
        sans-serif;

    font-size:10.5px;

    line-height:1.75;
}


.cb-menu.fine .cb-food-desc-en{

    color:#838b87;

    font-size:10px;

    line-height:1.7;
}


/* =========================================================
   PRICE / BUTTON
========================================================= */

.cb-menu.fine .cb-food-bottom{

    margin-top:18px;

    padding-top:15px;

    display:flex;

    align-items:center;

    justify-content:space-between;

    border-top:
        1px solid rgba(178,137,63,.14);
}


.cb-menu.fine .cb-price{

    color:#a2762d;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:22px;

    font-weight:600;

    letter-spacing:.5px;
}


/* =========================================================
   ADD BUTTON
========================================================= */

.cb-menu.fine .cb-add{

    width:42px;
    height:42px;

    padding:0;

    display:flex;

    align-items:center;

    justify-content:center;

    border:
        1px solid rgba(171,126,48,.25);

    border-radius:50%;

    background:
        linear-gradient(
            145deg,
            #efdca8 0%,
            #c39341 100%
        );

    color:white;

    font-family:
        Arial,
        sans-serif;

    font-size:23px;

    font-weight:300;

    cursor:pointer;

    box-shadow:
        0 7px 18px rgba(157,113,39,.25);

    transition:
        transform .22s ease,
        box-shadow .22s ease;
}


.cb-menu.fine .cb-add:hover{

    transform:
        scale(1.08);

    box-shadow:
        0 10px 24px rgba(157,113,39,.34);
}


.cb-menu.fine .cb-add:active{

    transform:
        scale(.94);
}


/* =========================================================
   ERROR
========================================================= */

.cb-menu.fine .cb-data-error,
.cb-menu.fine .cb-no-menu{

    grid-column:
        1 / -1;

    max-width:850px;

    margin:
        20px auto;

    padding:
        25px 30px;

    border:
        1px solid rgba(182,137,57,.23);

    border-radius:18px;

    background:#fffaf0;

    color:#6c5328;

    text-align:center;

    font-size:13px;
}


/* =========================================================
   FOOTER
========================================================= */

.cb-menu.fine .cb-footer{

    min-height:66px;

    padding:
        11px 40px;

    display:grid;

    grid-template-columns:
        1fr auto 1fr;

    align-items:center;

    background:
        linear-gradient(
            135deg,
            #041f18,
            #08372a
        );

    border-top:
        1px solid rgba(234,212,154,.28);
}


.cb-menu.fine .cb-footer-home{

    justify-self:start;

    color:var(--fd-gold-light);

    text-decoration:none;

    font-size:9px;

    font-weight:700;

    letter-spacing:2px;
}


.cb-menu.fine .cb-note{

    color:
        rgba(255,255,255,.50);

    font-size:8px;

    letter-spacing:2.4px;
}


.cb-menu.fine .cb-footer-cart{

    justify-self:end;

    min-height:38px;

    padding:
        0 18px;

    border:
        1px solid rgba(234,212,154,.38);

    border-radius:999px;

    background:transparent;

    color:var(--fd-gold-light);

    font-size:9px;

    font-weight:700;

    letter-spacing:1px;

    cursor:pointer;
}


/* =========================================================
   IPAD LANDSCAPE
========================================================= */

@media
(max-width:1180px){

    .cb-menu.fine .cb-menu-head{

        padding:
            14px 25px;
    }


    .cb-menu.fine .cb-food-grid{

        grid-template-columns:
            repeat(3,minmax(0,1fr));

        gap:20px;
    }


    .cb-menu.fine .cb-body{

        width:
            calc(100% - 40px);

        padding-top:32px;
    }

}


/* =========================================================
   TABLET
========================================================= */

@media
(max-width:850px){

    .cb-menu.fine .cb-menu-head{

        grid-template-columns:
            1fr auto;
    }


    .cb-menu.fine .cb-menu-title{

        display:none;
    }


    .cb-menu.fine .cb-cats{

        display:flex;

        justify-content:flex-start;

        overflow-x:auto;
    }


    .cb-menu.fine .cb-cat{

        min-width:120px;
    }


    .cb-menu.fine .cb-food-grid{

        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media
(max-width:560px){

    .cb-menu.fine .cb-menu-head{

        min-height:78px;

        padding:
            9px 12px;
    }


    .cb-menu.fine .cb-brand-logo{

        width:49px;
        height:49px;
    }


    .cb-menu.fine .cb-brand-logo img{

        width:41px;
        height:41px;
    }


    .cb-menu.fine .cb-brand-text{

        font-size:14px;

        letter-spacing:2px;
    }


    .cb-menu.fine .cb-brand-text small{

        font-size:6px;

        letter-spacing:1.5px;
    }


    .cb-menu.fine .cb-link{

        height:35px;

        padding:
            0 9px;

        font-size:7px;
    }


    .cb-menu.fine .cb-category-shell{

        padding:
            15px 12px;
    }


    .cb-menu.fine .cb-cat{

        min-width:100px;

        min-height:91px;
    }


    .cb-menu.fine
    .cb-category-icon-image{

        width:46px;
        height:46px;
    }


    .cb-menu.fine
    .cb-category-icon-image img{

        width:42px;
        height:42px;
    }


    .cb-menu.fine .cb-body{

        width:
            calc(100% - 28px);

        padding:
            26px 0 60px;
    }


    .cb-menu.fine .cb-food-grid{

        grid-template-columns:1fr;

        gap:20px;
    }


    .cb-menu.fine .cb-food-image{

        aspect-ratio:
            4 / 3;
    }


    .cb-menu.fine
    .cb-section-heading{

        grid-template-columns:
            35px 1fr 35px;

        gap:10px;
    }


    .cb-menu.fine
    .cb-section-center h2{

        font-size:21px;

        letter-spacing:3px;
    }


    .cb-menu.fine .cb-food-name{

        font-size:19px;
    }


    .cb-menu.fine .cb-footer{

        padding:
            10px 14px;

        grid-template-columns:
            1fr auto;
    }


    .cb-menu.fine .cb-note{

        display:none;
    }

}
/* =========================================================
   IMAGE CLICK / LIGHTBOX
========================================================= */

.cb-menu.fine .cb-food-image img{
    cursor:zoom-in;
}


/* LIGHTBOX BACKGROUND */

.fine-lightbox{

    position:fixed;

    inset:0;

    z-index:99999;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:40px;

    background:
        rgba(2,18,14,.92);

    backdrop-filter:
        blur(12px);

    opacity:0;

    visibility:hidden;

    transition:
        opacity .25s ease,
        visibility .25s ease;
}


/* ACTIVE */

.fine-lightbox.active{

    opacity:1;

    visibility:visible;
}


/* CONTENT */

.fine-lightbox-content{

    position:relative;

    max-width:1100px;

    width:auto;

    max-height:90vh;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    animation:
        fineZoomIn
        .28s ease;
}


/* IMAGE */

.fine-lightbox img{

    display:block;

    max-width:90vw;

    max-height:82vh;

    width:auto;

    height:auto;

    object-fit:contain;

    border-radius:18px;

    border:
        1px solid rgba(234,212,154,.32);

    background:#111;

    box-shadow:
        0 30px 90px
        rgba(0,0,0,.45);
}


/* TITLE */

.fine-lightbox-title{

    margin-top:17px;

    padding:
        9px 20px;

    border:
        1px solid rgba(234,212,154,.20);

    border-radius:999px;

    background:
        rgba(5,45,34,.72);

    color:#ead49a;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:17px;

    letter-spacing:.7px;

    text-align:center;

    backdrop-filter:
        blur(8px);
}


/* CLOSE */

.fine-lightbox-close{

    position:absolute;

    top:24px;

    right:28px;

    z-index:100000;

    width:48px;

    height:48px;

    display:flex;

    align-items:center;

    justify-content:center;

    border:
        1px solid rgba(234,212,154,.40);

    border-radius:50%;

    background:
        rgba(4,40,31,.75);

    color:#ead49a;

    font-size:28px;

    line-height:1;

    cursor:pointer;

    transition:
        transform .2s ease,
        background .2s ease;
}


.fine-lightbox-close:hover{

    transform:
        scale(1.08);

    background:
        #0b4938;
}


/* ANIMATION */

@keyframes fineZoomIn{

    from{
        transform:
            scale(.92);

        opacity:0;
    }

    to{
        transform:
            scale(1);

        opacity:1;
    }

}


/* MOBILE */

@media(max-width:560px){

    .fine-lightbox{

        padding:15px;
    }

    .fine-lightbox img{

        max-width:94vw;

        max-height:78vh;

        border-radius:14px;
    }

    .fine-lightbox-close{

        top:14px;

        right:14px;

        width:42px;

        height:42px;

        font-size:24px;
    }

    .fine-lightbox-title{

        margin-top:12px;

        font-size:14px;
    }

}