/* ===========================================
   Baba Abdi Digital Menu
   Version 1.0
=========================================== */

@font-face{
    font-family:'Aria';
    src:url('fonts/Aria.woff2') format('woff2');
    font-weight:normal;
    font-style:normal;
}

:root{

    --green:#1B8B72;
    --greenDark:#116D59;

    --cream:#F8E9D2;
    --cream2:#F3DFC0;

    --white:#ffffff;

    --text:#0D4F43;

    --shadow:0 12px 30px rgba(0,0,0,.14);

    --radius:32px;

    --transition:.35s ease;

}

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

html,
body{

    min-height:100%;

}

body{

    direction:rtl;

    font-family:'Aria',sans-serif;

    background-color:var(--greenDark);

    background:
        linear-gradient(
            180deg,
            var(--green) 0%,
            var(--greenDark) 100%
        );

    background-attachment:fixed;

    color:white;

    overflow-x:hidden;

    min-height:100vh;

}

@media (prefers-reduced-motion: reduce){

    html{

        scroll-behavior:auto;

    }

    .hero-card{

        animation:none;
        opacity:1;
        transform:none;
        transition:none;

    }

    .logo,
    .hero-card,
    .arrow{

        animation:none;

    }

}

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

.hero{

    position:relative;

    width:100%;

    padding-top:28px;

    padding-bottom:88px;

}

.hero-top{

    width:100%;
    height:90px;

}

.hero-card{

    width:min(92%,420px);

    margin:auto;

    background:var(--cream);

    color:var(--text);

    border-radius:30px;

    padding:42px 24px 26px;

    text-align:center;

    box-shadow:0 18px 30px rgba(0,0,0,.18);

    position:relative;
    z-index:2;

    transform-style:preserve-3d;
    perspective:1200px;
    will-change:transform, box-shadow;

    opacity:0;
    transform:translate3d(0, 22px, 0) scale(.96);
    animation:heroEntrance .9s cubic-bezier(.2,.7,.2,1) forwards;

    transition:transform .35s ease, box-shadow .35s ease;

}

.logo{

    width:170px;
    max-width:52vw;

    display:block;

    margin:-88px auto 12px;
    position:relative;
    z-index:10;
    transform:translateY(0);

    filter:drop-shadow(0 16px 18px rgba(17,109,89,.2));

}

.hero h1{

    font-size:clamp(30px, 2.8vw, 36px);
    line-height:1.08;
    letter-spacing:-.03em;
    margin-top:10px;
    margin-bottom:12px;
    color:var(--greenDark);

}

.hero h2{

    font-size:18px;
    line-height:1.4;
    font-weight:400;
    color:#777;
    margin-bottom:0;

}

.instagram{

    display:inline-flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    width:auto;
    margin:18px auto 0;
    padding:10px 16px;
    border-radius:999px;
    background:rgba(17,109,89,.06);
    color:var(--greenDark);
    font-size:15px;
    text-decoration:none;
    box-shadow:inset 0 0 0 1px rgba(17,109,89,.08);
    transition:transform .2s ease, box-shadow .2s ease;

}

.instagram:hover{

    transform:translateY(-1px);
    box-shadow:inset 0 0 0 1px rgba(17,109,89,.08), 0 8px 18px rgba(17,109,89,.08);

}

.instagram-label{

    font-size:11px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    opacity:.78;

}

.instagram-handle{

    font-size:15px;
    font-weight:600;

}

.instagram svg{

    width:18px;
    height:18px;
    flex-shrink:0;

}

.arrow{

    width:56px;

    height:56px;

    background:white;

    border-radius:50%;

    color:var(--greenDark);

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:30px;

    position:absolute;

    left:50%;

    bottom:24px;

    transform:translateX(-50%);

    box-shadow:0 10px 25px rgba(0,0,0,.15);

    text-decoration:none;

    cursor:pointer;

    transition:transform .25s ease, box-shadow .25s ease;

}

.arrow:hover{

    transform:translateX(-50%) translateY(-3px);

    box-shadow:0 14px 28px rgba(0,0,0,.18);

}

.branch-modal-overlay{

    position:fixed;
    inset:0;
    display:flex;
    justify-content:center;
    align-items:center;
    padding:24px;
    background:rgba(17,109,89,.58);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    z-index:120;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .25s ease, visibility .25s ease;

}

.branch-modal-overlay.active{

    opacity:1;
    visibility:visible;
    pointer-events:auto;

}

.branch-modal{

    width:min(92vw, 440px);
    background:var(--cream);
    color:var(--text);
    border-radius:30px;
    padding:28px 24px 22px;
    box-shadow:var(--shadow);
    text-align:center;

}

.branch-modal h3{

    font-size:28px;
    line-height:1.4;
    margin-bottom:16px;
    color:var(--greenDark);

}

.branch-label{

    display:block;
    font-size:14px;
    margin-bottom:10px;
    text-align:right;
    color:var(--greenDark);
    opacity:.9;

}

.branch-select{

    width:100%;
    min-height:52px;
    border:2px solid rgba(17,109,89,.18);
    border-radius:16px;
    background:#fff;
    color:var(--text);
    padding:14px 16px;
    font-size:16px;
    font-family:'Aria',sans-serif;
    outline:none;
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    cursor:pointer;
    box-shadow:inset 0 0 0 1px rgba(17,109,89,.04);

}

.branch-select:focus{

    border-color:var(--greenDark);
    box-shadow:0 0 0 4px rgba(27,139,114,.12);

}

.branch-submit,
.change-branch-button,
.directions-button{

    border:none;
    border-radius:16px;
    font-family:'Aria',sans-serif;
    font-size:16px;
    cursor:pointer;
    transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;

}

.branch-submit{

    width:100%;
    margin-top:18px;
    min-height:52px;
    background:var(--greenDark);
    color:#fff;
    box-shadow:0 12px 24px rgba(17,109,89,.2);

}

.branch-submit:disabled{

    opacity:.5;
    cursor:not-allowed;
    box-shadow:none;

}

.branch-submit:not(:disabled):hover,
.change-branch-button:hover,
.directions-button:hover{

    transform:translateY(-1px);

}

.branch-info-card{

    width:min(1100px, 92%);
    margin:-12px auto 26px;
    background:var(--cream);
    color:var(--text);
    border-radius:26px;
    box-shadow:var(--shadow);
    border:1px solid rgba(17,109,89,.08);
    overflow:hidden;

}

.branch-info-body{

    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:22px 24px;

}

.branch-info-copy{

    flex:1 1 auto;
    min-width:0;

}

.branch-info-tag{

    display:inline-block;
    margin-bottom:8px;
    padding:6px 12px;
    border-radius:999px;
    background:rgba(17,109,89,.08);
    color:var(--greenDark);
    font-size:12px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;

}

#branchNameDisplay{

    font-size:clamp(22px, 2vw, 30px);
    line-height:1.3;
    margin-bottom:6px;
    color:var(--greenDark);
    word-break:break-word;

}

#currentBranchDisplay{

    color:var(--text);
    opacity:.9;
    font-size:16px;
    line-height:1.6;
    word-break:break-word;

}

.branch-info-actions{

    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    flex-wrap:wrap;

}

.directions-button,
.change-branch-button,
.snappfood-button{

    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    min-height:48px;
    padding:0 18px;
    border:none;
    border-radius:16px;
    font-family:'Aria',sans-serif;
    font-size:15px;
    text-decoration:none;
    cursor:pointer;
    transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;

}

.directions-button{

    background:var(--green);
    color:#fff;
    box-shadow:0 12px 24px rgba(27,139,114,.18);
    white-space:nowrap;

}

.snappfood-button{

    background:linear-gradient(135deg, #ff6b3d, #ffb347);
    color:#fff;
    box-shadow:0 12px 24px rgba(255,107,61,.22);
    white-space:nowrap;

}

.change-branch-button{

    background:#fff;
    color:var(--greenDark);
    box-shadow:0 12px 24px rgba(17,109,89,.08);

}

.snappfood-icon{

    width:18px;
    height:18px;
    flex-shrink:0;

}

.directions-button[hidden],
.snappfood-button[hidden]{

    display:none;

}

.jalali-date-group{

    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:12px;
    direction:ltr;
    margin-top:8px;

}

.jalali-date-part{

    display:flex;
    flex-direction:column;
    gap:8px;

}

.jalali-date-part label{

    color:var(--greenDark);
    font-size:13px;
    font-weight:700;
    text-align:center;
    display:block;

}

.jalali-date-part input{

    width:100%;
    min-height:52px;
    border:1px solid rgba(17,109,89,.15);
    border-radius:14px;
    background:#fff;
    color:var(--text);
    font-size:16px;
    font-family:'Aria',sans-serif;
    text-align:center;
    padding:0 12px;
    outline:none;
    box-shadow:0 8px 18px rgba(17,109,89,.04);
    -moz-appearance:textfield;

}

.jalali-date-part input::-webkit-outer-spin-button,
.jalali-date-part input::-webkit-inner-spin-button{

    -webkit-appearance:none;
    margin:0;

}

.jalali-date-part input::placeholder{

    color:rgba(15,35,23,.45);

}

.jalali-date-part input:focus{

    border-color:rgba(17,109,89,.34);
    box-shadow:0 0 0 4px rgba(17,109,89,.08);

}

/* ===========================
        MENU
=========================== */

main{

    width:100%;

    padding-bottom:0;

    opacity:0;

    transform:translateY(24px);

    visibility:hidden;

    pointer-events:none;

    transition:
        opacity .45s ease,
        transform .45s ease,
        visibility .45s ease,
        padding-bottom .45s ease;

}

main.menu-ready{

    opacity:1;

    transform:translateY(0);

    visibility:visible;

    pointer-events:auto;

    padding-bottom:120px;

}

#menu{

    width:min(1100px,94%);

    margin:auto;

    position:relative;

    scroll-margin-top:24px;

}

.timeline{

    position:relative;

}

.timeline::before{

    content:"";

    position:absolute;

    top:0;

    bottom:0;

    left:50%;

    width:8px;

    transform:translateX(-50%);

    background:#fff;

    border-radius:50px;

    opacity:.15;

}
/*=========================================
        MENU ITEMS
=========================================*/

.food-item{

    position:relative;

    display:flex;

    align-items:center;

    justify-content:space-between;

    margin:70px 0;

    min-height:180px;

}

.food-item.left{

    flex-direction:row;

}

.food-item.right{

    flex-direction:row-reverse;

}

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

.food-card{

    width:340px;

    max-width:calc(100% - 180px);

    background:var(--cream);

    border-radius:30px;

    padding:28px;

    color:var(--greenDark);

    box-shadow:var(--shadow);

    transition:var(--transition);

    position:relative;

    z-index:5;

}

.food-card:hover{

    transform:translateY(-8px);

    box-shadow:0 18px 40px rgba(0,0,0,.18);

}

.food-title{

    font-size:34px;

    font-weight:bold;

    line-height:1.4;

    text-align:center;

}

/*==========================
        IMAGE
===========================*/

.food-image{

    width:145px;

    height:145px;

    border-radius:50%;

    overflow:hidden;

    background:white;

    border:8px solid rgba(255,255,255,.55);

    box-shadow:0 15px 35px rgba(0,0,0,.22);

    position:relative;

    z-index:10;

    flex-shrink:0;

}

.food-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.45s;

}

.food-item:hover .food-image img{

    transform:scale(1.08);

}

/*==========================
      CONNECTOR
===========================*/

.food-item::before{

    content:"";

    position:absolute;

    width:80px;

    height:10px;

    background:white;

    top:50%;

    transform:translateY(-50%);

    opacity:.25;

    border-radius:20px;

}

.food-item.left::before{

    right:330px;

}

.food-item.right::before{

    left:330px;

}

/*==========================
      DOT
===========================*/

.food-item::after{

    content:"";

    position:absolute;

    width:28px;

    height:28px;

    border-radius:50%;

    background:white;

    top:50%;

    left:50%;

    transform:translate(-50%,-50%);

    box-shadow:0 0 0 10px rgba(255,255,255,.12);

    z-index:2;

}

/*==========================
      ANIMATION
===========================*/

.food-item{

    opacity:0;

    transform:translateY(60px);

    transition:

        opacity .8s ease,

        transform .8s ease;

}

.food-item.show{

    opacity:1;

    transform:translateY(0);

}

.food-card{

    animation:floatCard 6s ease-in-out infinite;

}

@keyframes floatCard{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-6px);

    }

    100%{

        transform:translateY(0);

    }

}

@keyframes heroEntrance{

    0%{

        opacity:0;
        transform:translate3d(0, 28px, 0) scale(.96);

    }

    100%{

        opacity:1;
        transform:translate3d(0, 0, 0) scale(1);

    }

}

@keyframes heroFloat{

    0%,100%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-6px);

    }

}

.food-image{

    animation:floatImage 5s ease-in-out infinite;

}

@keyframes floatImage{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(4px);

    }

    100%{

        transform:translateY(0);

    }

}
/*=========================================
            GLASS EFFECT
=========================================*/

.glass{

    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);

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

    border:1px solid rgba(255,255,255,.18);

}

/*=========================================
            IMAGE PLACEHOLDER
=========================================*/

.food-image.empty{

    background:

        radial-gradient(circle at center,
            #ffffff 0%,
            #f4f4f4 70%,
            #ececec 100%);

}

.food-image.empty::before{

    content:"🍲";

    position:absolute;

    inset:0;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:52px;

}

/*=========================================
            HOVER EFFECTS
=========================================*/

.food-item:hover .food-card{

    background:#fff5e7;

}

.food-item:hover .food-title{

    color:#0b5c4b;

}

.food-item:hover::before{

    opacity:.45;

}

.food-item:hover::after{

    transform:translate(-50%,-50%) scale(1.15);

}

.food-image{

    transition:.35s;

}

.food-item:hover .food-image{

    transform:scale(1.05);

}

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

footer{

    margin-top:120px;

    padding:70px 20px;

    background:rgba(0,0,0,.12);

    backdrop-filter:blur(12px);

}

.footer-content{

    width:min(900px,92%);

    margin:auto;

    text-align:center;

}

.footer-content h3{

    font-size:34px;

    margin-bottom:18px;

}

.footer-content p,
.footer-instagram-link{

    font-size:22px;

    opacity:.9;

}

.footer-instagram-link{

    display:inline-block;
    color:#fff;
    text-decoration:none;
    transition:opacity .2s ease;

}

.footer-instagram-link:hover{

    opacity:1;

}

.order-card{

    width:min(900px, 92%);
    margin:36px auto 0;
    background:var(--cream);
    color:var(--text);
    border-radius:30px;
    padding:28px 24px 22px;
    box-shadow:var(--shadow);

}

.order-card-header{

    margin-bottom:18px;
    text-align:center;

}

.order-card-header h3{

    font-size:clamp(26px, 2vw, 36px);
    color:var(--greenDark);
    margin-bottom:10px;

}

.order-card-header p{

    font-size:18px;
    line-height:1.8;
    color:var(--text);
    opacity:.9;

}

.order-form{

    display:flex;
    flex-direction:column;
    gap:18px;
    text-align:right;

}

.form-row{

    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:18px;

}

.field-group{

    display:flex;
    flex-direction:column;
    gap:8px;

}

.field-group label{

    font-size:16px;
    font-weight:600;
    color:var(--greenDark);

}

.field-group input,
.field-group textarea{

    width:100%;
    border:2px solid rgba(17,109,89,.15);
    border-radius:16px;
    background:#fff;
    color:var(--text);
    padding:14px 16px;
    font-family:'Aria',sans-serif;
    font-size:16px;
    resize:vertical;
    outline:none;
    transition:border-color .2s ease, box-shadow .2s ease;

}

.field-group input:focus,
.field-group textarea:focus{

    border-color:var(--greenDark);
    box-shadow:0 0 0 4px rgba(27,139,114,.12);

}

.field-group textarea{

    min-height:180px;

}

.error-message{

    min-height:18px;
    color:#b42318;
    font-size:13px;
    line-height:1.5;

}

.order-submit-button{

    width:100%;
    border:none;
    border-radius:16px;
    background:var(--greenDark);
    color:#fff;
    box-shadow:0 12px 24px rgba(17,109,89,.2);
    padding:16px 18px;
    font-family:'Aria',sans-serif;
    font-size:18px;
    cursor:pointer;
    transition:transform .2s ease, opacity .2s ease;

}

.order-submit-button:hover:not(:disabled){

    transform:translateY(-1px);

}

.order-submit-button:disabled{

    opacity:.7;
    cursor:wait;

}

.order-feedback{

    min-height:24px;
    font-size:15px;
    line-height:1.8;
    text-align:center;
    white-space:pre-line;
    display:none;

}

.order-feedback.success{

    display:block;
    color:#0d6b4d;
    background:rgba(27,139,114,.08);
    border:1px solid rgba(27,139,114,.18);
    border-radius:12px;
    padding:12px 14px;

}

.order-feedback.error{

    display:block;
    color:#b42318;
    background:rgba(180,35,24,.06);
    border:1px solid rgba(180,35,24,.18);
    border-radius:12px;
    padding:12px 14px;

}

@media (max-width: 767px){

    .order-card{

        width:min(92%, 640px);
        padding:22px 18px 18px;
        border-radius:24px;

    }

    .order-card-header p{

        font-size:16px;

    }

    .form-row{

        grid-template-columns:1fr;
        gap:14px;

    }

    .field-group input,
    .field-group textarea{

        font-size:15px;
        padding:12px 14px;

    }

    .field-group textarea{

        min-height:150px;

    }

    .order-submit-button{

        min-height:50px;
        font-size:16px;

    }

}

/*=========================================
            SCROLLBAR
=========================================*/

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#0f6757;

}

::-webkit-scrollbar-thumb{

    background:#f5dfc0;

    border-radius:50px;

}

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

@media (max-width: 767px){

    .hero{

        padding-top:20px;
        padding-bottom:72px;

    }

    .hero-top{

        height:58px;

    }

    .hero-card{

        width:min(84%, 360px);
        padding:34px 18px 20px;
        border-radius:26px;

    }

    .logo{

        width:140px;
        max-width:52vw;
        margin:-66px auto 10px;

    }

    .hero h1{

        font-size:clamp(26px, 7vw, 30px);
        margin-top:8px;
        margin-bottom:8px;

    }

    .hero h2{

        font-size:16px;
        line-height:1.5;

    }

    .instagram{

        gap:6px;
        margin-top:14px;
        padding:9px 12px;
        font-size:13px;

    }

    .instagram-label{

        font-size:10px;

    }

    .instagram-handle{

        font-size:14px;

    }

    .instagram svg{

        width:17px;
        height:17px;

    }

    .arrow{

        width:50px;
        height:50px;
        bottom:18px;
        font-size:26px;

    }

    main.menu-ready{

        padding-bottom:80px;

    }

    #menu{

        width:min(100%, calc(100vw - 18px));

    }

    .timeline::before{

        left:50%;
        width:5px;

    }

    .food-item{

        margin:36px 0;
        min-height:unset;

    }

    .food-item.left,
    .food-item.right{

        flex-direction:column;
        align-items:center;
        justify-content:center;

    }

    .food-card{

        width:min(84vw, 320px);
        max-width:100%;
        padding:20px 18px;
        border-radius:24px;

    }

    .food-title{

        font-size:24px;
        line-height:1.45;

    }

    .food-image{

        width:118px;
        height:118px;
        border-width:6px;

    }

    .food-item::before{

        display:none;

    }

    .food-item::after{

        width:22px;
        height:22px;
        box-shadow:0 0 0 8px rgba(255,255,255,.12);

    }

    .food-item:hover .food-card,
    .food-item:hover .food-image{

        transform:none;

    }

    footer{

        margin-top:80px;
        padding:52px 18px;

    }

    .footer-content h3{

        font-size:26px;
        margin-bottom:12px;

    }

    .footer-content p{

        font-size:18px;

    }

    .branch-modal{

        padding:22px 18px 18px;
        border-radius:24px;

    }

    .branch-modal h3{

        font-size:24px;
        margin-bottom:12px;

    }

    .branch-select,
    .branch-submit,
    .change-branch-button,
    .directions-button,
    .snappfood-button{

        min-height:48px;
        font-size:15px;

    }

    .branch-info-card{

        width:min(92%, 640px);
        margin:-8px auto 18px;

    }

    .branch-info-body{

        flex-direction:column;
        align-items:stretch;
        padding:18px 18px 20px;

    }

    .branch-info-actions{

        width:100%;
        flex-direction:column;

    }

    .directions-button,
    .change-branch-button,
    .snappfood-button{

        width:100%;
        padding:0 16px;

    }

    .jalali-date-group{

        gap:10px;

    }

    .jalali-date-part input{

        min-height:54px;
        font-size:17px;

    }

}

@media (max-width: 420px){

    .hero-card{

        width:88%;

    }

    .logo{

        width:128px;
        margin:-40px auto 6px;

    }

    .food-card{

        width:min(88vw, 300px);

    }

    .food-title{

        font-size:22px;

    }

    .food-image{

        width:104px;
        height:104px;

    }

}


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

@media(min-width:901px) and (max-width:1200px){

    #menu{

        width:95%;

    }

    .food-card{

        width:300px;

    }

    .food-image{

        width:125px;
        height:125px;

    }

    .food-title{

        font-size:30px;

    }

}

/*=========================================
            LARGE DESKTOP
=========================================*/

@media(min-width:1400px){

    .hero-card{

        width:460px;

    }

    .logo{

        width:186px;

    }

    .food-card{

        width:380px;

    }

    .food-image{

        width:165px;
        height:165px;

    }

}

/*=========================================
            LOADING
=========================================*/

.hidden{

    opacity:0;

    visibility:hidden;

    pointer-events:none;

}

.loaded{

    opacity:1;

    visibility:visible;

    transition:opacity .6s ease;

}

.fade{

    animation:fadeUp .8s ease forwards;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(35px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/*=========================================
            IMAGE GLOW
=========================================*/

.food-image::after{

    content:"";

    position:absolute;

    inset:-10px;

    border-radius:50%;

    background:radial-gradient(
        rgba(255,255,255,.18),
        transparent 70%
    );

    z-index:-1;

    opacity:0;

    transition:.35s;

}

.food-item:hover .food-image::after{

    opacity:1;

}

/*=========================================
            CARD BORDER
=========================================*/

.food-card::before{

    content:"";

    position:absolute;

    inset:0;

    border-radius:30px;

    padding:1px;

    background:linear-gradient(
        135deg,
        rgba(255,255,255,.35),
        transparent
    );

    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);

    -webkit-mask-composite:xor;

    mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);

    mask-composite:exclude;

    pointer-events:none;

}

/*=========================================
            BACKGROUND DECORATION
=========================================*/

body::before{

    content:"";

    position:fixed;

    width:650px;

    height:650px;

    border-radius:50%;

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

    top:-220px;

    left:-220px;

    filter:blur(90px);

    pointer-events:none;

}

body::after{

    content:"";

    position:fixed;

    width:500px;

    height:500px;

    border-radius:50%;

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

    bottom:-180px;

    right:-180px;

    filter:blur(80px);

    pointer-events:none;

}

/*=========================================
            LINKS
=========================================*/

a{

    color:inherit;

    text-decoration:none;

}

img{

    display:block;

    max-width:100%;

}

button{

    font-family:inherit;

}

input{

    font-family:inherit;

}

/*=========================================
        REDUCE MOTION
=========================================*/

@media(prefers-reduced-motion:reduce){

*{

    animation:none !important;

    transition:none !important;

    scroll-behavior:auto !important;

}

}
/*=========================================
            MENU STATES
=========================================*/

.menu-ready{

    opacity:1;

    transform:none;

}

.menu-loading{

    opacity:0;

    transform:translateY(40px);

}

.menu-empty{

    text-align:center;

    padding:80px 20px;

    color:#ffffff;

    font-size:28px;

}

/*=========================================
            DYNAMIC ITEMS
=========================================*/

.food-item[data-index]{

    transition:
        transform .45s ease,
        opacity .45s ease;

}

.food-item.removing{

    opacity:0;

    transform:scale(.9);

}

.food-item.adding{

    animation:itemAppear .7s ease forwards;

}

@keyframes itemAppear{

    from{

        opacity:0;

        transform:translateY(50px) scale(.9);

    }

    to{

        opacity:1;

        transform:translateY(0) scale(1);

    }

}

/*=========================================
            IMAGE EFFECTS
=========================================*/

.food-image img{

    filter:saturate(1.02)
           contrast(1.02);

}

.food-item:hover .food-image img{

    filter:saturate(1.12)
           contrast(1.08);

}

/*=========================================
            TITLE EFFECT
=========================================*/

.food-title{

    transition:
        color .35s ease,
        letter-spacing .35s ease;

}

.food-item:hover .food-title{

    letter-spacing:.5px;

}

/*=========================================
            CARD SHINE
=========================================*/

.food-card{

    overflow:hidden;

}

.food-card::after{

    content:"";

    position:absolute;

    top:-150%;

    left:-50%;

    width:60%;

    height:300%;

    background:linear-gradient(

        transparent,

        rgba(255,255,255,.35),

        transparent

    );

    transform:rotate(25deg);

    transition:.8s;

}

.food-item:hover .food-card::after{

    left:140%;

}

/*=========================================
            TIMELINE DOT
=========================================*/

.timeline-dot{

    width:22px;

    height:22px;

    border-radius:50%;

    background:white;

    position:absolute;

    left:50%;

    transform:translateX(-50%);

    z-index:20;

    box-shadow:

        0 0 0 10px rgba(255,255,255,.10),

        0 10px 25px rgba(0,0,0,.15);

}

/*=========================================
            SVG LINE
=========================================*/

.timeline-svg{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    pointer-events:none;

    overflow:visible;

}

.timeline-svg path{

    stroke:rgba(255,255,255,.20);

    stroke-width:8;

    fill:none;

    stroke-linecap:round;

    stroke-linejoin:round;

}

/*=========================================
            UTILITIES
=========================================*/

.text-center{

    text-align:center;

}

.w-100{

    width:100%;

}

.mt-1{

    margin-top:10px;

}

.mt-2{

    margin-top:20px;

}

.mt-3{

    margin-top:30px;

}

.mb-1{

    margin-bottom:10px;

}

.mb-2{

    margin-bottom:20px;

}

.mb-3{

    margin-bottom:30px;

}

.pointer{

    cursor:pointer;

}

.round{

    border-radius:50%;

}

.shadow{

    box-shadow:var(--shadow);

}
/*=========================================
        AUTO GENERATED MENU SUPPORT
=========================================*/

.food-list{

    position:relative;

    width:100%;

}

.food-item:nth-child(odd){

    animation-delay:.1s;

}

.food-item:nth-child(even){

    animation-delay:.25s;

}

/*=========================================
        PLACEHOLDER IMAGE
=========================================*/

.food-image img[src=""],
.food-image img:not([src]){

    opacity:0;

}

.food-image.no-image{

    background:
        linear-gradient(
            135deg,
            #fafafa,
            #e9e9e9
        );

}

.food-image.no-image::before{

    content:"";

    position:absolute;

    width:46px;

    height:46px;

    border-radius:50%;

    background:#d4d4d4;

    top:28px;

    left:50%;

    transform:translateX(-50%);

}

.food-image.no-image::after{

    content:"";

    position:absolute;

    width:75px;

    height:34px;

    border-radius:40px 40px 12px 12px;

    background:#d4d4d4;

    bottom:26px;

    left:50%;

    transform:translateX(-50%);

}

/*=========================================
        LONG TITLES
=========================================*/

.food-title{

    word-break:break-word;

    overflow-wrap:anywhere;

}

/*=========================================
        VERY LARGE MENUS
=========================================*/

.food-item{

    will-change:transform,opacity;

}

.food-item:last-child{

    margin-bottom:40px;

}

#menu.large-menu .food-item{

    margin:45px 0;

}

#menu.large-menu .food-card{

    padding:22px;

}

#menu.large-menu .food-image{

    width:120px;

    height:120px;

}

#menu.large-menu .food-title{

    font-size:26px;

}

/*=========================================
        PRINT
=========================================*/

@media print{

body{

    background:white;

}

.hero{

    padding-bottom:40px;

}

.arrow{

    display:none;

}

footer{

    display:none;

}

.food-card{

    box-shadow:none;

    border:1px solid #ddd;

}

}

/*=========================================
        FINAL POLISH
=========================================*/

::selection{

    background:#f3d7aa;

    color:#145848;

}

:focus-visible{

    outline:3px solid rgba(255,255,255,.45);

    outline-offset:4px;

}

html,
body{

    text-rendering:optimizeLegibility;

    -webkit-font-smoothing:antialiased;

    -moz-osx-font-smoothing:grayscale;

}

body.ready{

    opacity:1;

}

body.loading{

    opacity:0;

}

/*=========================================
        END OF FILE
=========================================*/

/* ==========================================
   NABARD PRICE DISPLAY
   Prices are rendered by script.js only on
   nabard.babaabdi.com
========================================== */

.food-price{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    margin-top:12px;
    padding-top:10px;
    border-top:1px solid rgba(13,79,67,.12);
    color:var(--greenDark);
    direction:rtl;
    line-height:1;
}

.food-price-label{
    font-size:12px;
    font-weight:500;
    opacity:.65;
}

.food-price-value{
    font-size:19px;
    font-weight:800;
    letter-spacing:-.02em;
}

.food-price-currency{
    font-size:12px;
    font-weight:600;
    opacity:.75;
}


/* Requested Nabard menu pricing note */
.nabard-price-note{display:none;width:min(1100px,94%);margin:18px auto 0;text-align:center;color:var(--greenDark);font-size:18px;font-weight:800}
.nabard-price-note:not([hidden]){display:block}
