:root{
    --olive:#38b646;
    --olive-dark:#557329;
    --olive-pale:#e9efdc;
    --ink:#253027;
    --muted:#687066;
    --cream:#f6f5ee;
    --paper:#fffefb;
    --line:#e1e3d8;
    --deep:#25382a;
    --serif:'Playfair Display',Georgia,serif;
    --sans:'DM Sans',Arial,sans-serif;
    --shadow:0 18px 55px rgba(31,43,27,.12);
    --radius:5px
}
 *{
    box-sizing:border-box
}
html{
    scroll-behavior:smooth;
    scroll-padding-top:105px
}
body{
    margin:0;
    background:#fff;
    color:var(--ink);
    font:15px/1.7 var(--sans),Arial,sans-serif;
    -webkit-font-smoothing:antialiased
}
body.lightbox-open{
    overflow:hidden
}
a{
    color:inherit;
    text-decoration:none
}
img{
    max-width:100%;
    display:block
}
button,input{
    font:inherit
}
button{
    cursor:pointer
}
button:focus-visible,a:focus-visible,input:focus-visible{
    outline:3px solid #a6bd70;
    outline-offset:3px
}
del.dish-price-old {
    color: #878787;
}
span.brand-name {
    color: #26a100;
}
.container{
    max-width:1220px
}
.topline{
    background:#263329;
    color:#edf0e6;
    padding:8px 0;
    font-size:14px;
    letter-spacing:.045em
}
.topline-inner,.topline-right{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px
}
.topline i{
    color:#38b646;
    margin-right:6px
}
.topline a:hover{
    color:#d9e9b7
}
.site-header{
    position:sticky;
    top:0;
    z-index:1030;
    background:rgba(255,255,252,.96);
    backdrop-filter:blur(15px);
    border-bottom:1px solid rgba(39,53,35,.08);
    transition:box-shadow .25s
}
.site-header.scrolled{
    box-shadow:0 8px 30px rgba(33,46,28,.09)
}
.navbar{
    padding:12px 0
}
.navbar-brand{
    display:flex;
    align-items:center;
    gap:10px;
    margin:0
}
.brand-mark{
    width:43px;
    height:43px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--olive);
    color:#fff;
    font:700 20px var(--serif);
    box-shadow:0 6px 18px #78963b30
}
.brand-name{
    font:700 21px/1.04 var(--serif);
    letter-spacing:-.02em
}
.brand-name em,.footer-brand em{
    font-weight:500;
    color:var(--olive);
    font-style:italic
}
.brand-name small{
    display:block;
    margin-top:5px;
    color:#7c8376;
    font:700 14px var(--sans);
    letter-spacing:.23em
}
.navbar-toggler{
    border:1px solid var(--line);
    padding:7px 9px
}
.navbar-toggler:focus{
    box-shadow:0 0 0 .15rem #78963b35
}
.navbar-nav{
    gap:3px
}
.nav-link{
    position:relative;
    padding:12px 12px!important;
    color:#475044!important;
    font-size:14px;
    font-weight:700
}
.nav-link:after{
    content:"";
    position:absolute;
    bottom:5px;
    left:12px;
    right:12px;
    height:2px;
    background:var(--olive);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .2s
}
.nav-link:hover:after,.nav-link:focus-visible:after{
    transform:scaleX(1)
}
.btn{
    border-radius:3px;
    font-size:14px;
    font-weight:700;
    padding:12px 17px;
    transition:background .2s,transform .2s,box-shadow .2s
}
.btn:hover{
    transform:translateY(-2px)
}
.btn-olive{
    background:var(--olive);
    border:1px solid var(--olive);
    color:#fff
}
.btn-olive:hover{
    background:var(--olive-dark);
    border-color:var(--olive-dark);
    color:#fff;
    box-shadow:0 8px 18px #78963b36
}
.btn-outline-light{
    border:1px solid rgba(255,255,255,.7);
    color:#fff
}
.btn-outline-light:hover{
    background:#fff;
    color:var(--deep)
}
.btn-light{
    background:#f8f7f0;
    color:var(--deep);
    border-color:#f8f7f0
}
.btn-lg{
    padding:14px 20px;
    font-size:14px
}
.hero{
    height:min(760px,82vh);
    min-height:570px;
    align-items:center;
    position:relative;
    isolation:isolate;
    overflow:hidden;
    background:#344234
}
.hero-image{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    z-index:-2
}
.hero-shade{
    position:absolute;
    inset:0;
    z-index:-1;
    background:linear-gradient(90deg,rgba(21,33,23,.88) 0%,rgba(23,35,23,.63) 48%,rgba(24,32,23,.10) 100%),linear-gradient(0deg,rgba(22,31,21,.35),transparent 45%)
}
.hero-content{
    padding:34px 0;
    color:white
}
.hero-kicker{
    display:flex;
    align-items:center;
    gap:11px;
    margin-bottom:18px;
    color:#d9e8ba;
    font-size:14px;
    letter-spacing:.2em;
    font-weight:700
}
.hero-kicker span{
    width:31px;
    height:1px;
    background:#c9dda0
}
.hero h1{
    max-width:740px;
    margin:0 0 20px;
    font:600 clamp(45px,6vw,76px)/1.06 var(--serif);
    letter-spacing:-.035em
}
.hero h1 em{
    color:#d7e5b2;
    font-weight:500
}
.hero-content>p{
    max-width:535px;
    margin:0 0 28px;
    color:#edf0e6;
    font-size:14px;
    line-height:1.9
}
.hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:11px
}
.hero-note{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:43px;
    color:#e8ecdf;
    font-size:14px
}
.hero-note i{
    color:#c9dda0;
    font-size:20px
}
.scroll-cue{
    position:absolute;
    left:50%;
    bottom:65px;
    transform:translateX(-50%);
    display:flex;
    align-items:center;
    gap:10px;
    color:#fff;
    font-size:14px;
    letter-spacing:.2em
}
.scroll-cue i{
    font-size:17px;
    animation:bob 1.7s infinite
}
.hero-index{
    position:absolute;
    right:5%;
    bottom:23px;
    color:#f1f2eb;
    font-size:14px;
    letter-spacing:.1em
}
.hero-index strong{
    font:500 19px var(--serif)
}
@keyframes bob{
    0%,100%{
        transform:translateY(0)
    }
    50%{
        transform:translateY(5px)
    }
}
.quick-actions{
    position:relative;
    z-index:3;
    margin-top:-38px
}
.quick-grid{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:16px
}
.quick-card{
    min-width:0;
    display:flex;
    align-items:center;
    gap:16px;
    padding:23px 25px;
    background:#fffefb;
    border:1px solid #eaebe3;
    box-shadow:0 12px 36px #25382110;
    transition:transform .22s,box-shadow .22s
}
.quick-card:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow)
}
.quick-book{
    background:var(--deep);
    color:#fff;
    border-color:var(--deep)
}
.quick-icon{
    flex:none;
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--olive-pale);
    color:var(--olive-dark);
    font-size:21px
}
.quick-book .quick-icon{
    background:#ffffff1a;
    color:#d8e9b7
}
.quick-copy{
    display:flex;
    flex-direction:column;
    min-width:0
}
.quick-copy small{
    font-size:14px;
    font-weight:700;
    letter-spacing:.16em;
    color:var(--olive-dark)
}
.quick-book .quick-copy small{
    color:#c7dba0
}
.quick-copy strong{
    font:600 21px/1.3 var(--serif);
    margin:2px 0 3px
}
.quick-copy em{
    font-style:normal;
    font-size:14px;
    color:var(--muted)
}
.quick-book .quick-copy em{
    color:#d3d9cf
}
.quick-arrow{
    margin-left:auto;
    font-size:20px;
    color:var(--olive)
}
.quick-book .quick-arrow{
    color:#d2e3ac
}
.section-pad{
    padding:40px 0
}
.menu-section{
    background:#fff
}
.section-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
    margin-bottom:32px
}
.section-heading>div:first-child{
    max-width:750px
}
.section-eyebrow{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:14px;
    color:var(--olive-dark);
    font-size:14px;
    font-weight:700;
    letter-spacing:.18em
}
.section-eyebrow span:before{
    content:"";
    display:inline-block;
    width:26px;
    height:1px;
    background:var(--olive);
    margin:0 9px 3px 0
}
.section-heading h2,.reservation-copy h2,.about-copy h2{
    margin:0;
    font:500 clamp(34px,4.2vw,52px)/1.13 var(--serif);
    letter-spacing:-.025em
}
.section-heading h2 em,.about-copy h2 em{
    font-weight:500;
    color:var(--olive);
    font-style:italic
}
.section-heading p{
    max-width:590px;
    margin:14px 0 0;
    color:var(--muted);
    font-size:14px
}
.menu-count{
    display:flex;
    align-items:baseline;
    gap:8px;
    white-space:nowrap;
    padding-bottom:7px;
    color:#8a9083;
    font-size:14px;
    letter-spacing:.13em
}
.menu-count strong{
    font:500 31px var(--serif);
    color:var(--olive)
}
.menu-pdf-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:13px;
    margin-bottom:37px
}
.menu-pdf-card{
    display:flex;
    align-items:center;
    gap:15px;
    padding:19px 20px;
    background:var(--cream);
    border:1px solid #e7e8df;
    transition:background .2s,border .2s,transform .2s
}
.menu-pdf-card:hover{
    background:#eef2e5;
    border-color:#cdd8b6;
    transform:translateY(-2px)
}
.pdf-icon{
    flex:none;
    width:43px;
    height:43px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#fff;
    color:var(--olive-dark);
    font-size:20px
}
.pdf-copy{
    display:flex;
    flex-direction:column;
    gap:2px;
    min-width:0
}
.pdf-copy small{
    color:var(--olive-dark);
    font-size:14px;
    letter-spacing:.13em;
    font-weight:700
}
.pdf-copy strong{
    font:600 19px/1.3 var(--serif)
}
.pdf-copy em{
    font-style:normal;
    color:var(--muted);
    font-size:14px
}
.pdf-arrow{
    margin-left:auto;
    color:var(--olive);
    font-size:19px
}
.menu-tools{
    display:flex;
    flex-direction:column;
    gap:17px;
    padding-bottom:20px;
    border-bottom:1px solid var(--line)
}
.menu-search{
    display:flex;
    align-items:center;
    gap:12px;
    max-width:590px;
    width:100%;
    padding:12px 14px;
    border:1px solid #dfe2d8;
    background:#fff
}
.menu-search>i{
    color:var(--olive-dark)
}
.menu-search input{
    width:100%;
    min-width:0;
    border:0;
    outline:0!important;
    box-shadow:none!important;
    background:transparent;
    font-size:14px;
    color:var(--ink)
}
.menu-search input::placeholder{
    color:#969b90
}
.menu-search kbd{
    font-size:15px;
    color:#a5aa9d;
    background:transparent;
    border:0
}
.menu-filters{
    display:flex;
    gap:8px;
    flex-wrap:wrap
}
.menu-filter{
    padding:9px 14px;
    border:1px solid #dfe2d8;
    background:#fff;
    color:#626a5d;
    border-radius:2px;
    font-size:14px;
    font-weight:700;
    transition:all .2s
}
.menu-filter:hover,.menu-filter.active{
    background:var(--olive);
    border-color:var(--olive);
    color:#fff
}
.menu-results-line{
    display:flex;
    justify-content:space-between;
    gap:15px;
    padding:17px 0 14px;
    color:#8a9083;
    font-size:14px
}
.menu-results-line span:first-child{
    color:#4a5345;
    font-weight:700
}
.menu-cards{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:17px
}
.dish-card{
    height:100%;
    min-width:0;
    overflow:hidden;
    background:#fff;
    border:1px solid #e9ebe3;
    transition:transform .25s,box-shadow .25s,border-color .25s
}
.dish-card:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow);
    border-color:#dce2d1
}
.dish-card[hidden]{
    display:none!important
}
.dish-image{
    width:100%;
    height:220px;
    display:block;
    position:relative;
    overflow:hidden;
    border:0;
    padding:0;
    background:#e6e8df;
    text-align:left
}
.dish-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .65s
}
.dish-image:hover img{
    transform:scale(1.055)
}
.dish-image-overlay{
    position:absolute;
    right:12px;
    top:12px;
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#243427d9;
    color:white;
    font-size:16px;
    opacity:0;
    transform:translateY(4px);
    transition:all .2s
}
.dish-image:hover .dish-image-overlay,.dish-image:focus-visible .dish-image-overlay{
    opacity:1;
    transform:translateY(0)
}
.dish-badge{
    position:absolute;
    bottom:12px;
    left:12px;
    display:flex;
    gap:6px;
    align-items:center;
    padding:5px 8px;
    background:#fffef0ed;
    color:var(--olive-dark);
    font-size:14px;
    font-weight:700
}
.dish-body{
    padding:17px 17px 16px
}
.dish-meta{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:8px;
    color:#858b7c;
    font-size:14px;
    font-weight:700;
    letter-spacing:.1em
}
.dish-price{
    color:var(--olive-dark);
    font-size:14px;
    letter-spacing:0;
    white-space:nowrap
}
.dish-body h3{
    margin:10px 0 7px;
    font:600 21px/1.25 var(--serif)
}
.dish-body p{
    min-height:62px;
    margin:0 0 14px;
    color:var(--muted);
    font-size:14px;
    line-height:1.75
}
.dish-detail{
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    padding:12px 0 0;
    border:0;
    border-top:1px solid #eaebe5;
    background:transparent;
    color:#3a4438;
    text-align:left;
    font-size:14px;
    font-weight:700
}
.dish-detail i{
    color:var(--olive);
    font-size:16px;
    transition:transform .2s
}
.dish-detail:hover i{
    transform:translateX(4px)
}
.menu-empty{
    padding:40px 15px;
    text-align:center;
    color:var(--muted);
    border:1px dashed var(--line);
    margin-top:15px
}
.menu-empty:not([hidden]){
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px
}
.menu-empty i{
    font-size:28px;
    color:var(--olive)
}
.menu-empty strong{
    color:var(--ink);
    font:600 22px var(--serif)
}
.menu-empty span{
    font-size:14px
}
.menu-note{
    display:flex;
    gap:10px;
    align-items:flex-start;
    margin-top:25px;
    color:#7e8579;
    font-size:14px
}
.menu-note i{
    margin-top:3px;
    color:var(--olive)
}
.reservation-section{
    background:var(--cream)
}
.reservation-layout{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:8%;
    align-items:center
}
.reservation-copy h2{
    font-size:clamp(37px,4.2vw,53px);
    margin-bottom:19px
}
.reservation-copy h2 em{
    color:var(--olive);
    font-weight:500
}
.reservation-copy>p{
    max-width:455px;
    color:var(--muted);
    font-size:14px;
    line-height:1.9
}
.reservation-perks{
    display:flex;
    flex-wrap:wrap;
    gap:17px;
    margin:22px 0;
    color:#606b5b;
    font-size:14px;
    font-weight:600
}
.reservation-perks span{
    display:flex;
    align-items:center;
    gap:7px
}
.reservation-perks i{
    color:var(--olive);
    font-size:17px
}
.reservation-copy .btn{
    margin:2px 0 8px
}
.reservation-copy .reservation-helper{
    font-size:14px;
    margin-top:8px
}
.contact-detail{
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:20px;
    padding-top:18px;
    border-top:1px solid #dedfd5;
    max-width:320px
}
.detail-icon{
    width:39px;
    height:39px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#fff;
    color:var(--olive);
    font-size:17px
}
.contact-detail div{
    display:flex;
    flex-direction:column
}
.contact-detail small{
    color:#888f81;
    font-size:14px;
    font-weight:700;
    letter-spacing:.12em
}
.contact-detail a{
    font-size:15px;
    font-weight:700
}
.reservation-visual{
    position:relative;
    min-height:485px;
    background:#d9ded1
}
.reservation-visual>img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover
}
.reservation-float{
    position:absolute;
    left:-34px;
    bottom:27px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    width:228px;
    padding:24px;
    background:#fffefb;
    box-shadow:var(--shadow)
}
.reservation-float-icon{
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    background:var(--olive-pale);
    color:var(--olive-dark);
    border-radius:50%;
    font-size:18px;
    margin-bottom:13px
}
.reservation-float small{
    font-size:14px;
    color:var(--olive-dark);
    letter-spacing:.14em;
    font-weight:700
}
.reservation-float strong{
    font:500 26px/1.14 var(--serif);
    margin:9px 0 17px
}
.reservation-float>a{
    font-size:14px;
    color:var(--olive-dark);
    font-weight:700
}
.reservation-float>a i{
    margin-left:5px
}
.about-section{
    background:#fff
}
.about-layout{
    display:grid;
    grid-template-columns:1.02fr .98fr;
    gap:9%;
    align-items:center
}
.about-photos{
    position:relative;
    min-height:470px;
    margin-right:18px
}
.about-photo-main{
    position:absolute;
    left:0;
    top:0;
    width:82%;
    height:435px;
    object-fit:cover
}
.about-photo-small{
    position:absolute;
    right:0;
    bottom:0;
    width:43%;
    height:225px;
    object-fit:cover;
    border:9px solid #fff
}
.about-stamp{
    position:absolute;
    left:-19px;
    bottom:36px;
    width:108px;
    height:108px;
    border-radius:50%;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    background:var(--olive);
    color:#fff;
    box-shadow:0 10px 25px #78963b35
}
.about-stamp i{
    font-size:18px;
    margin-bottom:5px
}
.about-stamp strong{
    font:500 15px/1.15 var(--serif)
}
.about-copy h2{
    margin-bottom:21px
}
.about-copy p{
    color:var(--muted);
    font-size:14px;
    line-height:2;
    margin-bottom:14px
}
.about-copy .text-link{
    margin-top:7px
}
.gallery-section{
    background:var(--cream)
}
.gallery-heading{
    margin-bottom:32px
}
.gallery-heading h2{
    font-size:clamp(34px,4vw,50px)
}
.gallery-heading>.text-link{
    margin-bottom:7px
}
.gallery-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-auto-rows:170px;
    gap:13px
}
.gallery-grid>a{
    position:relative;
    isolation:isolate;
    display:block;
    min-width:0;
    min-height:0;
    height:auto;
    overflow:hidden;
    background:#dfe3d6
}
.gallery-grid>a:nth-child(1){
    grid-column:span 2;
    grid-row:span 2
}
.gallery-grid>a:nth-child(4){
    grid-column:span 2
}
.gallery-grid>a:nth-child(6){
    grid-row:span 2
}
.gallery-grid>a img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .65s cubic-bezier(.2,.65,.2,1)
}
.gallery-grid>a:hover img{
    transform:scale(1.055)
}
.gallery-grid>a:after{
    content:"";
    position:absolute;
    inset:20% 0 0;
    z-index:0;
    background:linear-gradient(180deg,transparent 0%,rgba(14,25,14,.10) 33%,rgba(13,24,14,.78) 100%);
    pointer-events:none
}
.gallery-caption{
    position:absolute;
    z-index:1;
    left:0;
    right:0;
    bottom:0;
    padding:34px 17px 15px;
    color:white;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:3px;
    pointer-events:none
}
.gallery-caption small{
    font-size:14px;
    letter-spacing:.15em;
    font-weight:700;
    line-height:1.5
}
.gallery-caption strong{
    font:500 19px/1.25 var(--serif)
}
.gallery-caption i{
    position:absolute;
    right:17px;
    bottom:16px;
    font-size:18px
}
.gallery-footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-top:22px;
    color:#858a7d;
    font-size:14px
}
.gallery-footer>span{
    display:flex;
    align-items:center;
    gap:7px
}
.gallery-footer>span i{
    font-size:16px;
    color:var(--olive)
}
.visit-strip{
    padding:44px 0;
    background:var(--deep);
    color:white
}
.visit-strip>.container{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:28px
}
.visit-strip>div>div:first-child>span{
    color:#c7dda0;
    letter-spacing:.16em;
    font-weight:700;
    font-size:14px
}
.visit-strip h2{
    font:500 32px/1.15 var(--serif);
    margin:8px 0
}
.visit-strip p{
    margin:0;
    color:#d4dbd0;
    font-size:14px
}
.visit-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px
}
.site-footer{
    background:#1e2b21;
    color:#e7ebe2;
    padding:53px 0 19px
}
.footer-main{
    display:grid;
    grid-template-columns:1.35fr .7fr 1fr .95fr;
    gap:40px;
    padding-bottom:38px
}
.footer-brand{
    font:600 25px var(--serif)
}
.footer-brand-col p{
    max-width:250px;
    margin:14px 0;
    color:#c0c9bc;
    font-size:14px
}
.footer-book{
    color:#d2e4b2;
    font-size:14px;
    font-weight:700
}
.footer-main h3{
    margin:4px 0 17px;
    color:#c1d59a;
    font-size:14px;
    letter-spacing:.16em
}
.footer-main>div:not(:first-child){
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:9px
}
.footer-main>div>a:not(.footer-book),.footer-main>div>p,.footer-note{
    margin:0;
    color:#cbd1c6;
    font-size:14px;
    line-height:1.8
}
.footer-main a:hover,.footer-bottom a:hover{
    color:#d0e5a6
}
.hours-row{
    display:flex;
    flex-direction:column;
    gap:3px;
    font-size:14px
}
.hours-row span{
    color:#cbd1c6
}
.hours-row strong{
    color:#fff;
    font-size:14px
}
.footer-bottom{
    display:flex;
    align-items:center;
    gap:20px;
    padding-top:17px;
    border-top:1px solid #ffffff1d;
    color:#9da89b;
    font-size:14px
}
.footer-bottom>div{
    display:flex;
    gap:18px;
    margin-left:auto
}
.back-top{
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border:1px solid #ffffff35;
    margin-left:14px
}
.mobile-action-bar{
    display:none
}
.dish-modal-content{
    position:relative;
    overflow:hidden;
    border:0;
    border-radius:5px;
    background:#fffefb;
    box-shadow:0 24px 80px #121c1280
}
.modal-close{
    position:absolute;
    top:14px;
    right:14px;
    z-index:5;
    padding:10px;
    background-color:#fff;
    border-radius:50%;
    opacity:1;
    box-shadow:0 2px 12px #0002
}
.modal-media-col{
    background:#e6e9df
}
.modal-gallery-main{
    height:100%;
    min-height:430px;
    position:relative;
    background:#e5e9df
}
.modal-gallery-main>img{
    width:100%;
    height:100%;
    min-height:430px;
    max-height:580px;
    object-fit:cover
}
.gallery-nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:40px;
    height:40px;
    border:0;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#fffef2e8;
    color:var(--deep);
    box-shadow:0 3px 18px #0002
}
.gallery-prev{
    left:16px
}
.gallery-next{
    right:16px
}
.modal-thumbs{
    display:flex;
    gap:9px;
    padding:11px;
    overflow-x:auto;
    background:#eaede3
}
.modal-thumbs button{
    flex:none;
    width:64px;
    height:58px;
    padding:0;
    border:2px solid transparent;
    background:none;
    opacity:.68
}
.modal-thumbs button.active{
    border-color:var(--olive);
    opacity:1
}
.modal-thumbs img{
    width:100%;
    height:100%;
    object-fit:cover
}
.dish-modal-info{
    padding:52px 40px 38px
}
.modal-eyebrow{
    color:var(--olive-dark);
    letter-spacing:.16em;
    font-size:14px;
    font-weight:700
}
.dish-modal-info h2{
    margin:13px 0;
    font:500 38px/1.15 var(--serif)
}
.dish-modal-info>p{
    color:var(--muted);
    font-size:14px;
    line-height:1.9
}
.modal-price{
    margin:14px 0 18px;
    color:var(--olive-dark);
    font-size:22px;
    font-weight:700
}
.modal-info-note{
    display:flex;
    gap:9px;
    padding:13px 14px;
    margin:18px 0;
    background:var(--cream);
    color:#70796a;
    font-size:14px;
    line-height:1.7
}
.modal-info-note i{
    flex:none;
    color:var(--olive)
}
.dish-modal-info>.text-link{
    display:flex;
    margin-bottom:22px
}
.modal-reserve{
    display:inline-block
}
.photo-lightbox{
    position:fixed;
    inset:0;
    z-index:2000;
    display:none;
    grid-template-columns:74px minmax(0,1fr) 74px;
    grid-template-rows:minmax(0,1fr) auto 3px;
    align-items:center;
    gap:0;
    padding:34px 25px 0;
    background:rgba(15,21,16,.97);
    color:#fff;
    opacity:0;
    transition:opacity .2s
}
.photo-lightbox.is-open{
    display:grid;
    opacity:1
}
.photo-lightbox-close{
    position:absolute;
    right:24px;
    top:19px;
    width:44px;
    height:44px;
    border:1px solid #ffffff45;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#ffffff12;
    color:#fff;
    font-size:16px;
    z-index:3
}
.photo-lightbox-close:hover{
    background:#ffffff28
}
.photo-lightbox-stage{
    position:relative;
    width:100%;
    height:100%;
    min-height:0;
    display:grid;
    place-items:center;
    overflow:hidden
}
.photo-lightbox-image{
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    object-fit:contain;
    box-shadow:0 18px 65px #0005;
    opacity:1;
    transition:opacity .15s
}
.photo-lightbox-image.is-loading{
    opacity:.25
}
.photo-lightbox-loading{
    display:none;
    position:absolute;
    color:#bccc9d;
    font-size:27px
}
.photo-lightbox-image.is-loading+.photo-lightbox-loading{
    display:block
}
.photo-lightbox-nav{
    justify-self:center;
    width:43px;
    height:43px;
    border:1px solid #ffffff40;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#ffffff0d;
    color:#fff;
    font-size:16px;
    transition:background .2s
}
.photo-lightbox-nav:hover{
    background:#ffffff25
}
.photo-lightbox-caption{
    grid-column:1/4;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    padding:16px 12px 20px;
    max-width:1100px;
    width:100%;
    justify-self:center
}
.photo-lightbox-kicker{
    font-size:14px;
    letter-spacing:.17em;
    color:#c6d9a0;
    font-weight:700
}
.photo-lightbox-caption h3{
    margin:3px 0 0;
    font:500 23px/1.2 var(--serif)
}
.photo-lightbox-count{
    font-size:14px;
    color:#d5dbd1;
    white-space:nowrap
}
.photo-lightbox-progress{
    grid-column:1/4;
    height:3px;
    background:#ffffff1d
}
.photo-lightbox-progress span{
    display:block;
    height:100%;
    width:0;
    background:var(--olive);
    transition:width .2s
}
.fade-up{
    opacity:0;
    transform:translateY(18px);
    transition:opacity .7s ease,transform .7s ease
}
.fade-up.is-visible{
    opacity:1;
    transform:translateY(0)
}
 @media(min-width:1400px){
    .hero{
        max-height:790px
    }
    .gallery-grid{
        grid-auto-rows:180px
    }
    .dish-image{
        height:235px
    }
}
 @media(max-width:991.98px){
    .navbar{
        padding:10px 0
    }
    .navbar-collapse{
        padding:12px 0 8px
    }
    .navbar-nav{
        align-items:stretch!important;
        gap:0
    }
    .nav-link{
        padding:12px 4px!important
    }
    .nav-link:after{
        left:4px;
        right:auto;
        width:45px
    }
    .navbar-nav .btn{
        margin-top:7px
    }
    .hero{
        height:auto;
        min-height:620px
    }
    .hero-content{
        padding:80px 0
    }
    .quick-actions{
        margin-top:-25px
    }
    .quick-card{
        padding:20px
    }
    .quick-copy strong{
        font-size:19px
    }
    .section-pad{
        padding:78px 0
    }
    .menu-cards{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:15px
    }
    .dish-image{
        height:245px
    }
    .reservation-layout{
        grid-template-columns:1fr 1fr;
        gap:35px
    }
    .reservation-visual{
        min-height:430px
    }
    .reservation-float{
        left:-18px;
        width:205px
    }
    .about-layout{
        gap:6%
    }
    .about-photos{
        min-height:400px
    }
    .about-photo-main{
        height:365px
    }
    .about-photo-small{
        height:180px
    }
    .gallery-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
        grid-auto-rows:160px
    }
    .gallery-grid>a:nth-child(1){
        grid-column:span 2;
        grid-row:span 2
    }
    .gallery-grid>a:nth-child(4){
        grid-column:span 2
    }
    .gallery-grid>a:nth-child(6){
        grid-row:span 1
    }
    .footer-main{
        grid-template-columns:1.2fr 1fr;
        gap:32px
    }
    .dish-modal-info{
        padding:45px 30px 30px
    }
    .modal-gallery-main,.modal-gallery-main>img{
        min-height:360px
    }
}
 @media(max-width:767.98px){
    .topline{
        font-size:14px
    }
    .topline-inner{
        align-items:flex-start
    }
    .topline-right{
        gap:11px;
        flex-direction:column;
        align-items:flex-end
    }
    .topline-inner>span,.topline-right span,.topline-right a{
        white-space:nowrap
    }
    .brand-mark{
        width:39px;
        height:39px;
        font-size:18px
    }
    .brand-name{
        font-size:19px
    }
    .hero{
        min-height:590px
    }
    .hero-shade{
        background:linear-gradient(90deg,rgba(18,30,19,.88),rgba(21,32,21,.44)),linear-gradient(0deg,rgba(18,30,19,.5),transparent 70%)
    }
    .hero-content{
        padding:72px 15px 85px
    }
    .hero h1{
        font-size:clamp(42px,11vw,60px)
    }
    .hero-content>p{
        font-size:14px;
        max-width:460px
    }
    .hero-note{
        margin-top:33px
    }
    .hero-index{
        display:none
    }
    .quick-grid{
        grid-template-columns:1fr;
        gap:10px
    }
    .quick-card{
        padding:16px
    }
    .quick-icon{
        width:43px;
        height:43px
    }
    .quick-copy strong{
        font-size:19px
    }
    .quick-copy em{
        font-size:14px
    }
    .section-pad{
        padding:65px 0
    }
    .section-heading{
        align-items:flex-start;
        flex-direction:column;
        gap:15px
    }
    .section-heading h2{
        font-size:clamp(32px,8vw,43px)
    }
    .menu-count{
        display:none
    }
    .menu-pdf-grid{
        grid-template-columns:1fr;
        gap:9px;
        margin-bottom:28px
    }
    .menu-pdf-card{
        padding:15px
    }
    .pdf-copy strong{
        font-size:18px
    }
    .menu-tools{
        gap:14px
    }
    .menu-filters{
        flex-wrap:nowrap;
        overflow-x:auto;
        padding:2px 1px 8px;
        scrollbar-width:thin
    }
    .menu-filter{
        flex:none;
        padding:9px 12px
    }
    .menu-results-line{
        font-size:14px;
        align-items:flex-start
    }
    .menu-results-line span:last-child{
        max-width:48%;
        text-align:right
    }
    .menu-cards{
        gap:11px
    }
    .dish-image{
        height:auto;
        aspect-ratio:1/1
    }
    .dish-body{
        padding:13px 12px 12px
    }
    .dish-meta{
        font-size:14px;
        letter-spacing:.06em
    }
    .dish-price{
        font-size:14px
    }
    .dish-body h3{
        font-size:18px;
        margin:9px 0 6px
    }
    .dish-body p{
        min-height:77px;
        font-size:14px;
        margin-bottom:12px
    }
    .dish-detail{
        font-size:14px;
        padding-top:10px
    }
    .dish-image-overlay{
        opacity:1;
        transform:none;
        width:29px;
        height:29px;
        right:8px;
        top:8px;
        font-size:14px
    }
    .dish-badge{
        left:8px;
        bottom:8px;
        font-size:14px
    }
    .reservation-layout{
        grid-template-columns:1fr;
        gap:32px
    }
    .reservation-copy h2{
        font-size:clamp(38px,10vw,49px)
    }
    .reservation-visual{
        min-height:430px;
        margin-left:16px
    }
    .reservation-float{
        left:-16px;
        bottom:16px
    }
    .reservation-perks{
        gap:12px
    }
    .about-layout{
        grid-template-columns:1fr;
        gap:35px
    }
    .about-photos{
        min-height:390px;
        margin:0 14px 0 15px
    }
    .about-photo-main{
        height:360px;
        width:84%
    }
    .about-photo-small{
        height:175px;
        width:43%
    }
    .about-stamp{
        left:-14px;
        bottom:20px;
        width:95px;
        height:95px
    }
    .about-copy h2{
        font-size:clamp(33px,8.5vw,45px)
    }
    .gallery-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        grid-auto-rows:145px;
        gap:9px
    }
    .gallery-grid>a:nth-child(1){
        grid-column:span 2;
        grid-row:span 2
    }
    .gallery-grid>a:nth-child(4){
        grid-column:span 2
    }
    .gallery-grid>a:nth-child(6){
        grid-row:span 2
    }
    .gallery-caption{
        padding:28px 12px 12px
    }
    .gallery-caption small{
        font-size:14px
    }
    .gallery-caption strong{
        font-size:17px;
        max-width:85%
    }
    .gallery-caption i{
        right:12px;
        bottom:13px;
        font-size:15px
    }
    .gallery-footer{
        align-items:flex-start;
        font-size:14px
    }
    .gallery-footer>.text-link{
        font-size:14px
    }
    .visit-strip>.container{
        align-items:flex-start;
        flex-direction:column
    }
    .visit-strip h2{
        font-size:29px
    }
    .visit-actions{
        width:100%
    }
    .footer-main{
        grid-template-columns:1fr 1fr;
        gap:29px 22px
    }
    .footer-main>div:first-child{
        grid-column:1/-1
    }
    .footer-brand-col p{
        max-width:330px
    }
    .footer-bottom{
        flex-wrap:wrap;
        gap:12px
    }
    .footer-bottom>div{
        order:3;
        width:100%;
        margin:0
    }
    .back-top{
        margin-left:auto
    }
    .mobile-action-bar{
        position:fixed;
        left:0;
        right:0;
        bottom:0;
        z-index:1040;
        display:grid;
        grid-template-columns:1fr 1.25fr 1fr;
        gap:5px;
        padding:7px max(12px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));
        border-top:1px solid #e2e5dc;
        background:rgba(255,255,249,.97);
        backdrop-filter:blur(14px)
    }
    .mobile-action-bar a{
        min-height:42px;
        display:flex;
        align-items:center;
        justify-content:center;
        gap:7px;
        color:#4d5b47;
        font-size:14px;
        font-weight:700
    }
    .mobile-action-bar a i{
        font-size:17px
    }
    .mobile-action-bar .mobile-book{
        background:var(--olive);
        color:white;
        border-radius:3px
    }
    .site-footer{
        padding-bottom:85px
    }
    .dish-modal-content{
        border-radius:4px
    }
    .modal-dialog{
        margin:12px
    }
    .modal-media-col{
        height:auto
    }
    .modal-gallery-main,.modal-gallery-main>img{
        height:260px;
        min-height:260px;
        max-height:260px
    }
    .modal-thumbs{
        padding:8px
    }
    .modal-thumbs button{
        width:53px;
        height:46px
    }
    .dish-modal-info{
        padding:0px
    }
    .dish-modal-info h2{
        font-size:32px
    }
    .modal-close{
        top:10px;
        right:10px
    }
    .photo-lightbox{
        grid-template-columns:42px minmax(0,1fr) 42px;
        grid-template-rows:minmax(0,1fr) auto 3px;
        padding:62px 4px 0
    }
    .photo-lightbox-close{
        top:10px;
        right:12px;
        width:38px;
        height:38px
    }
    .photo-lightbox-nav{
        width:34px;
        height:34px;
        font-size:14px
    }
    .photo-lightbox-caption{
        padding:12px 9px 15px
    }
    .photo-lightbox-caption h3{
        font-size:19px
    }
    .photo-lightbox-kicker{
        font-size:14px
    }
    .photo-lightbox-count{
        font-size:14px
    }
    .gallery-heading>.text-link{
        margin-top:-4px
    }
}
 @media(max-width:390px){
    .topline-inner{
        gap:5px
    }
    .topline{
        font-size:14px
    }
    .topline-right{
        gap:6px
    }
    .brand-name{
        font-size:17px
    }
    .hero-actions .btn{
        padding:12px 13px;
        font-size:14px
    }
    .quick-copy strong{
        font-size:17px
    }
    .dish-body h3{
        font-size:16px
    }
    .dish-body p{
        font-size:14px
    }
    .gallery-grid{
        grid-auto-rows:125px
    }
    .gallery-caption strong{
        font-size:15px
    }
    .photo-lightbox{
        grid-template-columns:33px minmax(0,1fr) 33px
    }
    .photo-lightbox-nav{
        width:30px;
        height:30px
    }
}
 @media(prefers-reduced-motion:reduce){
    *,*:before,*:after{
        scroll-behavior:auto!important;
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        transition-duration:.01ms!important
    }
    .fade-up{
        opacity:1;
        transform:none
    }
}
/* Direct reservation-request modal */
 .reservation-modal .modal-dialog{
    max-width:960px;
    padding:12px
}
 .reservation-modal .modal-content{
    max-height:calc(100dvh - 24px);
    overflow:auto;
    border:0;
    border-radius:8px;
    box-shadow:0 25px 90px rgba(12,22,14,.3)
}
 .reservation-modal-content{
    display:grid;
    grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);
    background:var(--paper)
}
 .reservation-modal-aside{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    padding:42px 34px;
    background:var(--deep);
    color:#fff;
    overflow:hidden;
    isolation:isolate
}
 .reservation-modal-aside:after{
    content:"";
    position:absolute;
    z-index:-1;
    width:340px;
    height:340px;
    right:-190px;
    bottom:-170px;
    border:1px solid #ffffff24;
    border-radius:50%;
    box-shadow:0 0 0 32px #ffffff08,0 0 0 68px #ffffff06
}
 .reservation-modal-monogram{
    width:47px;
    height:47px;
    display:grid;
    place-items:center;
    border:1px solid #d8e9b780;
    border-radius:50%;
    color:#d8e9b7;
    font:600 20px var(--serif);
    margin-bottom:45px
}
 .reservation-modal-eyebrow{
    color:#c8dba4;
    font-size:14px;
    font-weight:700;
    letter-spacing:.19em
}
 .reservation-modal-aside h2{
    margin:13px 0 18px;
    font:500 clamp(30px,3.1vw,42px)/1.14 var(--serif);
    letter-spacing:-.025em
}
 .reservation-modal-aside h2 em{
    color:#d8e9b7;
    font-weight:500
}
 .reservation-modal-aside>p{
    color:#dbe1d6;
    font-size:14px;
    line-height:1.9;
    margin:0;
    max-width:310px
}
 .reservation-modal-contact{
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:auto;
    padding-top:42px
}
 .reservation-modal-contact>i{
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border-radius:50%;
    background:#ffffff15;
    color:#d8e9b7;
    font-size:17px
}
 .reservation-modal-contact span{
    display:flex;
    flex-direction:column;
    gap:3px
}
 .reservation-modal-contact small{
    font-size:14px;
    letter-spacing:.14em;
    color:#c8dba4;
    font-weight:700
}
 .reservation-modal-contact a{
    font-size:14px;
    font-weight:700;
    color:#fff
}
 .reservation-modal-address{
    display:flex;
    gap:8px;
    align-items:center;
    margin-top:22px;
    color:#cbd4c6;
    font-size:14px
}
 .reservation-modal-main{
    position:relative;
    padding:43px 42px 30px;
    min-width:0
}
 .reservation-modal-close{
    position:absolute;
    right:18px;
    top:17px;
    display:grid;
    place-items:center;
    width:36px;
    height:36px;
    border:1px solid var(--line);
    border-radius:50%;
    background:transparent;
    color:var(--muted);
    transition:background .2s,color .2s
}
 .reservation-modal-close:hover{
    background:var(--deep);
    color:#fff
}
 .reservation-modal-main .section-eyebrow{
    margin-bottom:9px;
    padding-right:35px
}
 .reservation-modal-main h3{
    margin:0 0 8px;
    font:600 29px/1.2 var(--serif);
    letter-spacing:-.02em
}
 .reservation-modal-intro{
    max-width:440px;
    color:var(--muted);
    font-size:14px;
    line-height:1.7;
    margin-bottom:22px
}
 .booking-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px 13px
}
 .booking-field{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:6px
}
 .booking-field-full{
    grid-column:1/-1
}
 .booking-field>label{
    color:#384237;
    font-size:14px;
    font-weight:700;
    letter-spacing:.01em
}
 .booking-field>label>span,.booking-required{
    color:#9d4f39
}
 .booking-field>label small{
    font-weight:400;
    color:var(--muted)
}
 .booking-field input:not([type=checkbox]),.booking-field select,.booking-field textarea{
    width:100%;
    min-height:43px;
    padding:10px 12px;
    border:1px solid #dfe3d8;
    border-radius:3px;
    background:#fff;
    color:var(--ink);
    font:400 14px/1.45 var(--sans);
    outline:0;
    transition:border-color .18s,box-shadow .18s
}
 .booking-field textarea{
    resize:vertical;
    min-height:78px
}
 .booking-field input:focus,.booking-field select:focus,.booking-field textarea:focus{
    border-color:var(--olive);
    box-shadow:0 0 0 3px #78963b20
}
 .booking-consent label{
    display:flex;
    align-items:flex-start;
    gap:9px;
    font-size:14px;
    font-weight:400;
    line-height:1.6;
    color:var(--muted);
    letter-spacing:0
}
 .booking-consent input{
    flex:none;
    width:15px;
    height:15px;
    margin-top:1px;
    accent-color:var(--olive)
}
 .booking-honeypot{
    position:absolute!important;
    left:-10000px!important;
    top:auto!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important
}
 .booking-status{
    padding:11px 13px;
    margin-top:14px;
    border-radius:3px;
    font-size:14px;
    line-height:1.65
}
 .booking-status.is-success{
    background:#e9f4e7;
    color:#315c38;
    border:1px solid #cfe4cb
}
 .booking-status.is-error{
    background:#fff0ed;
    color:#8b3028;
    border:1px solid #f0c8c2
}
 .booking-submit{
    width:100%;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:12px;
    margin-top:17px;
    min-height:46px
}
 .booking-submit:disabled{
    opacity:.72;
    cursor:wait;
    transform:none
}
 .booking-submit.is-loading i{
    animation:booking-spin .8s linear infinite
}
 @keyframes booking-spin{
    to{
        transform:rotate(360deg)
    }
}
 .booking-disclaimer{
    display:flex;
    align-items:flex-start;
    gap:7px;
    margin:11px 0 0;
    color:#788072;
    font-size:14px;
    line-height:1.65
}
 .booking-disclaimer i{
    flex:none;
    color:var(--olive-dark);
    margin-top:1px
}
 @media(max-width:767.98px){
    .reservation-modal .modal-dialog{
        margin:8px auto;
        padding:0 8px;
        min-height:calc(100% - 16px)
    }
    .reservation-modal .modal-content{
        max-height:calc(100dvh - 16px);
        border-radius:6px
    }
    .reservation-modal-content{
        grid-template-columns:1fr
    }
    .reservation-modal-aside{
        padding:24px 23px 20px
    }
    .reservation-modal-monogram{
        width:38px;
        height:38px;
        font-size:17px;
        margin-bottom:17px
    }
    .reservation-modal-aside h2{
        font-size:29px;
        margin:8px 0 9px
    }
    .reservation-modal-aside>p{
        font-size:14px;
        max-width:none;
        line-height:1.65
    }
    .reservation-modal-contact{
        position:static;
        padding-top:0;
        margin-top:15px
    }
    .reservation-modal-contact>i{
        width:34px;
        height:34px;
        font-size:15px
    }
    .reservation-modal-contact small{
        font-size:14px
    }
    .reservation-modal-contact a{
        font-size:14px
    }
    .reservation-modal-address{
        margin-top:12px;
        font-size:14px
    }
    .reservation-modal-main{
        padding:26px 22px 22px
    }
    .reservation-modal-close{
        right:13px;
        top:13px;
        width:32px;
        height:32px
    }
    .reservation-modal-main h3{
        font-size:26px
    }
    .reservation-modal-intro{
        margin-bottom:17px
    }
    .booking-form-grid{
        gap:12px 10px
    }
    .booking-field>label{
        font-size:14px
    }
    .booking-field input:not([type=checkbox]),.booking-field select,.booking-field textarea{
        min-height:41px;
        padding:9px 10px;
        font-size:14px
    }
    .booking-field textarea{
        min-height:67px
    }
    .booking-disclaimer{
        font-size:14px
    }
}
 @media(max-width:390px){
    .reservation-modal-aside{
        padding:18px 18px 17px
    }
    .reservation-modal-aside h2{
        font-size:26px
    }
    .reservation-modal-aside>p{
        font-size:14px;
        max-width:none
    }
    .reservation-modal-contact>i{
        display:grid
    }
    .reservation-modal-address{
        font-size:14px
    }
    .reservation-modal-main{
        padding:22px 17px 17px
    }
    .booking-form-grid{
        grid-template-columns:1fr;
        gap:10px
    }
    .booking-field-full{
        grid-column:auto
    }
    .booking-consent{
        margin-top:2px
    }
}
/* V6: primary actions in the header and directly below the hero */
 .header-quick-actions{
    display:flex;
    align-items:center;
    gap:8px;
    white-space:nowrap
}
 .btn-menu-outline{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:#fffef9;
    border:1px solid #d6ddc9;
    color:var(--deep);
}
 .btn-menu-outline:hover{
    background:var(--olive-pale);
    border-color:var(--olive);
    color:var(--deep);
    box-shadow:0 8px 18px #78963b22
}
 .quick-actions{
    margin-top:-31px
}
 .quick-card{
    min-height:105px;
    cursor:pointer
}
 .quick-menu{
    border-color:#dce3cf;
    background:linear-gradient(120deg,#fffefb 0%,#f7f8f0 100%)
}
 .quick-menu .quick-icon{
    background:var(--olive-pale);
    color:var(--olive-dark)
}
 .quick-card:hover .quick-arrow{
    transform:translate(3px,-3px)
}
 .quick-arrow{
    transition:transform .22s
}
 .hero-image{
    transition:opacity .65s ease
}
 .hero-image.is-fading{
    opacity:.15
}
/* V6: featured / promotional dishes carousel */
 .promo-section{
    position:relative;
    overflow:hidden;
    background:#f7f7f1
}
 .promo-section:before{
    content:"";
    position:absolute;
    top:0;
    right:0;
    width:38%;
    height:390px;
    background:radial-gradient(ellipse at top right,#e5ebd8 0,rgba(229,235,216,0) 70%);
    pointer-events:none
}
 .promo-section>.container{
    position:relative;
    z-index:1
}
 .promo-section-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:32px;
    margin-bottom:34px
}
 .promo-heading-copy{
    max-width:730px
}
 .promo-section-heading h2{
    margin:11px 0 13px;
    color:var(--deep);
    font:500 clamp(34px,4.1vw,51px)/1.12 var(--serif);
    letter-spacing:-.04em
}
 .promo-section-heading h2 em{
    color:var(--olive);
    font-weight:500
}
.promo-section-heading p {
    max-width: 630px;
    margin: 0;
    color: #737c6d;
    font-size: 14px;
    margin-bottom: 10px;
}
 .promo-heading-stamp{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:112px;
    height:112px;
    border:1px solid #d5ddc7;
    border-radius:50%;
    color:var(--olive-dark);
    text-align:center;
    font-size:14px;
    line-height:1.6;
    font-weight:700;
    letter-spacing:.1em;
    transform:rotate(7deg)
}
 .promo-heading-stamp i{
    font-size:17px
}
 .promo-carousel{
    padding:22px;
    background:#fffefa;
    border:1px solid #e7e9df;
    box-shadow:0 18px 45px #2538210a
}
 .promo-carousel-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    margin-bottom:18px;
    color:#7d8477;
    font-size:14px;
    letter-spacing:.16em;
    font-weight:700
}
 .promo-carousel-top>span:first-child{
    display:flex;
    align-items:center;
    gap:8px
}
 .promo-carousel-top>span:first-child i{
    color:var(--olive);
    font-size:14px
}
 .promo-carousel-count{
    letter-spacing:.08em;
    font-size:14px;
    color:#858b7f
}
 .promo-carousel-count strong{
    font-size:17px;
    color:var(--deep);
    font-weight:700
}
 .promo-slide[hidden]{
    display:none!important
}
 .promo-dish-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:17px
}
 .promo-dish-card{
    height:100%;
    min-width:0;
    overflow:hidden;
    border:1px solid #e8eae2;
    background:#fff;
    transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
    animation:promoEnter .45s both
}
 .promo-dish-card:hover{
    transform:translateY(-5px);
    border-color:#d5dec7;
    box-shadow:0 13px 30px #263d2d12
}
 .promo-dish-image{
    height:185px;
    position:relative;
    overflow:hidden;
    background:#e8eadf
}
 .promo-dish-image:after{
    content:"";
    position:absolute;
    inset:30% 0 0;
    background:linear-gradient(0deg,rgba(19,30,20,.25),transparent);
    pointer-events:none
}
 .promo-dish-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .6s cubic-bezier(.2,.75,.2,1)
}
 .promo-dish-card:hover .promo-dish-image img{
    transform:scale(1.055)
}
 .promo-ribbon{
    position:absolute;
    z-index:1;
    top:10px;
    left:10px;
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:6px 8px;
    background:#fffef0ed;
    color:#49632e;
    font-size:14px;
    line-height:1;
    font-weight:800;
    letter-spacing:.11em;
    box-shadow:0 3px 8px #17241312
}
 .promo-image-index{
    position:absolute;
    z-index:1;
    right:11px;
    bottom:9px;
    color:white;
    font:italic 18px var(--serif);
    text-shadow:0 1px 9px #0008
}
 .promo-dish-body{
    padding:15px 15px 16px
}
 .promo-dish-meta{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:9px;
    color:#858b7f;
    font-size:14px;
    line-height:1.5;
    letter-spacing:.11em;
    font-weight:800
}
 .promo-dish-meta strong{
    flex:none;
    color:var(--olive-dark);
    font-size:14px;
    letter-spacing:0;
    white-space:nowrap
}
 .promo-dish-body h3{
    margin:9px 0 6px;
    color:#29392d;
    font:600 19px/1.2 var(--serif);
    letter-spacing:-.02em
}
 .promo-dish-body p{
    margin:0;
    color:#7a8175;
    font-size:14px;
    line-height:1.7;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    min-height:34px
}
 .promo-carousel-bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    margin-top:22px;
    padding-top:17px;
    border-top:1px solid #eaebe4
}
 .promo-carousel-note{
    display:flex;
    align-items:flex-start;
    gap:8px;
    max-width:550px;
    color:#858b80;
    font-size:14px;
    line-height:1.65
}
 .promo-carousel-note i{
    color:var(--olive);
    font-size:14px;
    flex:none;
    margin-top:1px
}
 .promo-carousel-controls{
    display:flex;
    align-items:center;
    gap:13px;
    flex:none
}
 .promo-carousel-arrow{
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border:1px solid #dce1d4;
    background:#fffefb;
    color:var(--deep);
    transition:all .2s
}
 .promo-carousel-arrow:hover{
    background:var(--deep);
    border-color:var(--deep);
    color:#fff;
    transform:translateY(-2px)
}
 .promo-dots{
    display:flex;
    align-items:center;
    gap:6px
}
 .promo-dots button{
    width:7px;
    height:7px;
    padding:0;
    border:0;
    border-radius:20px;
    background:#d8ddcf;
    transition:width .25s,background .25s
}
 .promo-dots button.is-active{
    width:22px;
    background:var(--olive)
}
 .promo-footer-cta{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-top:19px;
    padding:19px 22px;
    background:#26372a;
    color:#fff
}
 .promo-footer-cta>span{
    display:flex;
    align-items:center;
    gap:13px
}
 .promo-footer-cta>span>i{
    display:grid;
    place-items:center;
    width:39px;
    height:39px;
    flex:none;
    border-radius:50%;
    background:#ffffff14;
    color:#d6e5bb;
    font-size:17px
}
 .promo-footer-cta>span>span{
    display:flex;
    flex-direction:column;
    gap:3px
}
 .promo-footer-cta strong{
    font:500 18px/1.3 var(--serif)
}
 .promo-footer-cta small{
    color:#d4dacc;
    font-size:14px;
    line-height:1.5
}
 .promo-footer-cta .btn{
    flex:none
}
 @keyframes promoEnter{
    from{
        opacity:.15;
        transform:translateY(8px)
    }
    to{
        opacity:1;
        transform:translateY(0)
    }
}
/* V6: polished PDF menu modal. PDF.js is loaded on demand from a CDN. */
 .menu-pdf-modal{
    --pdf-green:#26372a;
    --pdf-olive:#78963b;
    --pdf-cream:#f7f7f0
}
 .menu-pdf-modal .modal-dialog{
    max-width:1250px;
    width:calc(100% - 34px);
    margin:17px auto
}
 .menu-pdf-content{
    height:min(94vh,980px);
    min-height:520px;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border:0;
    border-radius:7px;
    background:#fafaf6;
    box-shadow:0 28px 100px #0e190e70
}
 .pdf-modal-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:20px 26px;
    background:#fffefb;
    border-bottom:1px solid #e7e9df
}
 .pdf-modal-brand{
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0
}
 .pdf-brand-mark{
    display:grid;
    place-items:center;
    width:45px;
    height:45px;
    flex:none;
    border-radius:50%;
    background:var(--pdf-green);
    color:#fff;
    font:700 18px var(--serif)
}
 .pdf-modal-eyebrow{
    display:block;
    margin-bottom:4px;
    color:var(--pdf-olive);
    font-size:14px;
    letter-spacing:.18em;
    font-weight:800
}
 .pdf-modal-header h2{
    margin:0;
    color:var(--pdf-green);
    font:500 27px/1.1 var(--serif);
    letter-spacing:-.03em
}
 .pdf-modal-header h2 em{
    color:var(--pdf-olive);
    font-weight:500
}
 .pdf-modal-header p{
    margin:5px 0 0;
    color:#7c8377;
    font-size:14px
}
 .pdf-modal-close{
    display:grid;
    place-items:center;
    width:39px;
    height:39px;
    flex:none;
    border:1px solid #e1e4da;
    border-radius:50%;
    background:#fffefb;
    color:#364331;
    transition:all .2s
}
 .pdf-modal-close:hover{
    transform:rotate(90deg);
    background:var(--pdf-green);
    border-color:var(--pdf-green);
    color:#fff
}
 .pdf-modal-toolbar{
    padding:13px 20px 0;
    background:#fffefb;
    border-bottom:1px solid #e5e7de
}
 .pdf-document-tabs{
    display:flex;
    align-items:center;
    gap:7px;
    overflow-x:auto
}
 .pdf-document-tab{
    display:flex;
    align-items:center;
    gap:9px;
    padding:12px 15px;
    border:1px solid transparent;
    border-bottom:2px solid transparent;
    background:transparent;
    color:#7c8376;
    font-size:14px;
    font-weight:700;
    white-space:nowrap;
    transition:all .2s
}
 .pdf-document-tab i{
    font-size:15px
}
 .pdf-document-tab:hover{
    background:#f7f8f2;
    color:var(--pdf-green)
}
 .pdf-document-tab.is-active{
    border-color:#e5e8de;
    border-bottom-color:var(--pdf-olive);
    background:#f7f8f2;
    color:var(--pdf-green)
}
 .pdf-tools{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:11px 0 12px
}
 .pdf-page-nav,.pdf-zoom-nav{
    display:flex;
    align-items:center;
    gap:9px;
    color:#71796d;
    font-size:14px;
    font-variant-numeric:tabular-nums;
    white-space:nowrap
}
 .pdf-tool-button{
    display:grid;
    place-items:center;
    width:29px;
    height:29px;
    border:1px solid #e0e4d9;
    background:#fff;
    color:var(--pdf-green);
    font-size:14px;
    transition:all .15s
}
 .pdf-tool-button:hover:not(:disabled){
    background:var(--pdf-green);
    border-color:var(--pdf-green);
    color:#fff
}
 .pdf-tool-button:disabled{
    opacity:.35;
    cursor:not-allowed
}
 .pdf-zoom-nav{
    padding-left:12px;
    border-left:1px solid #e7e9e0
}
 .pdf-open-original{
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-left:auto;
    color:var(--pdf-green);
    font-size:14px;
    font-weight:700;
    white-space:nowrap
}
 .pdf-open-original:hover{
    color:var(--pdf-olive)
}
 .pdf-reader-shell{
    display:flex;
    flex:1;
    flex-direction:column;
    min-height:0;
    background:#e9ebe5
}
 .pdf-reader-status{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:8px 20px;
    background:#f2f3ed;
    border-bottom:1px solid #dfe3d9;
    color:#838a7e;
    font-size:14px;
    letter-spacing:.12em;
    font-weight:700
}
 .pdf-reader-status span:first-child{
    display:flex;
    align-items:center;
    gap:7px
}
 .pdf-reader-status i{
    color:#b24c3d;
    font-size:14px
}
 #pdfLoadStatus{
    letter-spacing:.02em;
    text-transform:none;
    font-weight:500
}
 .pdf-canvas-wrap{
    position:relative;
    display:flex;
    flex:1;
    align-items:flex-start;
    justify-content:center;
    min-height:0;
    overflow:auto;
    padding:25px 18px 32px;
    background-color:#e7e9e3;
    background-image:radial-gradient(#cbd0c5 0.65px,transparent 0.65px);
    background-size:13px 13px;
    overscroll-behavior:contain
}
 #pdfCanvas{
    display:block;
    max-width:none;
    height:auto;
    background:white;
    box-shadow:0 8px 35px #20292029
}
 .pdf-loading-state,.pdf-error-state{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:280px;
    max-width:460px;
    padding:30px;
    text-align:center;
    color:#53604f
}
 .pdf-loading-state strong,.pdf-error-state strong{
    font:500 22px/1.25 var(--serif)
}
 .pdf-loading-state small,.pdf-error-state span{
    color:#858b80;
    font-size:14px;
    line-height:1.6
}
 .pdf-spinner{
    width:35px;
    height:35px;
    border:3px solid #d9dfcf;
    border-top-color:var(--pdf-olive);
    border-radius:50%;
    animation:pdfSpin .85s linear infinite
}
 .pdf-error-state>i{
    font-size:31px;
    color:#b06b45
}
 @keyframes pdfSpin{
    to{
        transform:rotate(360deg)
    }
}
 .pdf-modal-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    padding:12px 20px;
    background:#fffefb;
    border-top:1px solid #e7e9df
}
 .pdf-modal-footer>span{
    display:flex;
    align-items:center;
    gap:8px;
    color:#848b7e;
    font-size:14px
}
 .pdf-modal-footer>span i{
    color:var(--pdf-olive)
}
/* Tối ưu khung Modal */
.menu-pdf-modal .modal-dialog {
    max-width: 95vw;
    margin: 1.5vh auto;
}

.menu-pdf-content {
    height: 94vh;
    display: flex;
    flex-direction: column;
    border-radius: 12px;
    overflow: hidden;
    background: #2b2b2b;
    border: none;
}

/* THANH HEADER ĐỒNG HÀNG 1 DÒNG DUY NHẤT (~50px) */
.pdf-compact-header {
    background: #ffffff;
    height: 52px;
    min-height: 52px;
    padding: 0 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #e5e7eb;
    gap: 12px;
}

.pdf-header-left, 
.pdf-header-right {
    display: flex;
    align-items: center;
    gap: 30px;
}

/* Logo mini */
.pdf-brand-mark-sm {
    background: #263d2d;
    color: #dfba73;
    font-weight: 700;
    font-size: 13px;
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
}

/* Tabs chuyển menu dạng viên thuốc (Pill tabs) */
.pdf-document-tabs {
    display: inline-flex;
    padding: 3px;
    border-radius: 8px;
    gap: 5px;
}

.pdf-document-tab {
    border: none;
    background: transparent;
    padding: 5px 12px;
    font-size: 13px;
    font-weight: 600;
    color: #495057;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.pdf-document-tab {
    background: #cfcfcf;
    color: #263d2d;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.pdf-document-tab.is-active {
    background: #263d2d;
    color: #ffffff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

/* Cụm nút công cụ nhỏ gọn */
.pdf-mini-group {
    display: inline-flex;
    align-items: center;
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    overflow: hidden;
}

.pdf-tool-btn {
    border: none;
    background: transparent;
    width: 32px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #333;
    cursor: pointer;
    transition: background 0.15s;
    text-decoration: none;
}

.pdf-tool-btn:hover:not(:disabled) {
    background: #e9ecef;
}

.pdf-tool-btn:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.pdf-status-tag {
    font-size: 12px;
    font-weight: 600;
    padding: 0 8px;
    color: #495057;
    white-space: nowrap;
}

.pdf-btn-link {
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
}

.pdf-close-btn {
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    color: #dc3545;
}

.pdf-close-btn:hover {
    background: #fee2e2;
}

/* KHUNG VIEW PDF CHIẾM TOÀN BỘ KHÔNG GIAN CÒN LẠI */
.pdf-reader-shell {
    flex: 1;
    width: 100%;
    height: 100%;
    overflow: auto;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding: 10px;
    background: #3a3a3a;
}

.pdf-canvas-wrap {
    margin: auto;
    display: flex;
    justify-content: center;
}

.pdf-canvas-wrap canvas {
    max-width: 100%;
    height: auto !important;
    box-shadow: 0 10px 25px rgba(0,0,0,0.5);
    background: #ffffff;
}

/* Footer siêu mỏng */
.pdf-modal-footer-compact {
    height: 42px;
    min-height: 42px;
    background: #ffffff;
    border-top: 1px solid #e5e7eb;
    padding: 0 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
 @media(max-width:1199.98px){
    .navbar-nav{
        gap:0
    }
    .nav-link{
        padding-left:9px!important;
        padding-right:9px!important
    }
    .header-quick-actions{
        gap:6px
    }
    .header-quick-actions .btn{
        padding:10px 11px;
        font-size:14px
    }
}
 @media(max-width:991.98px){
    .header-quick-actions{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:9px;
        margin-top:12px
    }
    .header-quick-actions .btn{
        justify-content:center;
        padding:12px 10px;
        font-size:14px
    }
    .promo-heading-stamp{
        width:90px;
        height:90px
    }
    .promo-dish-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:14px
    }
    .promo-dish-image{
        height:210px
    }
    .promo-carousel{
        padding:17px
    }
    .promo-carousel-bottom{
        align-items:flex-start
    }
    .promo-carousel-note{
        max-width:55%
    }
    .menu-pdf-modal .modal-dialog{
        width:calc(100% - 20px);
        margin:10px auto
    }
    .menu-pdf-content{
        height:calc(100dvh - 20px)
    }
}
 @media(max-width:767.98px){

.pdf-header-left, 
.pdf-header-right {
    display: flex;
    align-items: center;
    gap: 10px;
}    .quick-actions{
        margin-top:-24px
    }
    .quick-grid{
        grid-template-columns:1fr;
        gap:10px
    }
    .quick-card{
        min-height:88px;
        padding:16px
    }
    .promo-section-heading{
        align-items:flex-start;
        margin-bottom:24px
    }
    .promo-heading-stamp{
        display:none
    }
    .promo-section-heading h2{
        font-size:clamp(31px,8vw,42px)
    }
    .promo-section-heading p{
        font-size:14px
    }
    .promo-dish-grid{
        gap:11px
    }
    .promo-dish-image{
        height:auto;
        aspect-ratio:1.35/1
    }
    .promo-dish-body{
        padding:12px 11px 13px
    }
    .promo-dish-meta{
        font-size:14px;
        gap:4px
    }
    .promo-dish-meta strong{
        font-size:14px
    }
    .promo-dish-body h3{
        font-size:17px;
        margin:8px 0 5px
    }
    .promo-dish-body p{
        font-size:14px;
        min-height:44px
    }
    .promo-carousel-bottom{
        flex-direction:column;
        gap:14px
    }
    .promo-carousel-note{
        max-width:none
    }
    .promo-carousel-controls{
        align-self:center
    }
    .promo-footer-cta{
        align-items:flex-start;
        flex-direction:column;
        padding:17px
    }
    .promo-footer-cta .btn{
        width:100%;
        text-align:center
    }
    .pdf-modal-header{
        padding:15px 15px 13px
    }
    .pdf-brand-mark{
        width:37px;
        height:37px;
        font-size:15px
    }
    .pdf-modal-header h2{
        font-size:23px
    }
    .pdf-modal-header p{
        font-size:14px;
        max-width:300px
    }
    .pdf-modal-toolbar{
        padding:9px 12px 0
    }
    .pdf-document-tab{
        padding:10px 10px;
        font-size:14px
    }
    .pdf-tools{
        flex-wrap:wrap;
        gap:10px
    }
    .pdf-page-nav,.pdf-zoom-nav{
        gap:6px
    }
    .pdf-open-original{
        font-size:14px
    }
    .pdf-reader-status{
        padding:8px 12px
    }
    .pdf-canvas-wrap{
        padding:16px 8px 20px
    }
    .pdf-modal-footer{
        align-items:flex-start;
        flex-direction:column;
        padding:11px 14px
    }
    .pdf-modal-footer .btn{
        width:100%;
        text-align:center
    }
    .menu-pdf-modal .modal-dialog{
        width:100%;
        height:100%;
        max-width:none;
        margin:0
    }
    .menu-pdf-content{
        height:100dvh;
        min-height:0;
        border-radius:0
    }
    .pdf-reader-status span:last-child{
        max-width:58%;
        text-align:right
    }
}
 @media(max-width:390px){
    .promo-carousel{
        padding:11px
    }
    .promo-dish-grid{
        gap:8px
    }
    .promo-dish-image{
        aspect-ratio:1.15/1
    }
    .promo-dish-body{
        padding:10px 9px
    }
    .promo-dish-body h3{
        font-size:15px
    }
    .promo-dish-meta{
        letter-spacing:.04em
    }
    .pdf-tools{
        justify-content:flex-start
    }
    .pdf-open-original{
        margin-left:0;
        width:100%
    }
    .pdf-modal-header h2{
        font-size:21px
    }
    .pdf-modal-header p{
        max-width:230px
    }
}
 @media(prefers-reduced-motion:reduce){
    .promo-dish-card,.promo-dish-image img,.promo-dots button,.promo-carousel-arrow,.hero-image{
        transition:none!important;
        animation:none!important
    }
}
 .pdf-loading-state[hidden],.pdf-error-state[hidden],#pdfCanvas[hidden]{
    display:none!important
}
/* V6 typography refinement: readable copy is at least 14px, with spacing rebalanced. */
 small,.small{
    font-size:max(14px,1em)!important;
    line-height:1.45
}
 .topline{
    font-size:14px;
    letter-spacing:.015em;
    line-height:1.45
}
 .topline-inner,.topline-right{
    flex-wrap:wrap;
    gap:8px 16px
}
 .topline-inner>span,.topline-right span,.topline-right a{
    white-space:normal
}
 .nav-link{
    font-size:16px;
    line-height:1.35
}
 .btn,.btn-lg{
    font-size:14px;
    line-height:1.35
}
 .brand-name small{
    font-size:14px;
    letter-spacing:.04em;
    line-height:1.3;
    white-space:normal
}
 .hero-kicker,.section-eyebrow,.quick-copy small,.menu-count,.pdf-copy small,.dish-meta,.gallery-caption small,.visit-strip>div>div:first-child>span,.footer-main h3,.modal-eyebrow,.photo-lightbox-kicker,.reservation-modal-eyebrow,.promo-heading-stamp,.promo-carousel-top,.promo-ribbon,.pdf-modal-eyebrow,.pdf-reader-status{
    letter-spacing:.045em
}
 .hero-content>p,.section-heading p,.about-copy p,.reservation-copy>p{
    font-size:15px;
    line-height:1.75
}
 .hero-note,.scroll-cue,.hero-index,.quick-copy em,.pdf-copy em,.menu-search input,.menu-filter,.menu-results-line,.dish-badge,.dish-meta,.dish-price,.dish-body p,.dish-detail,.menu-empty span,.menu-note,.reservation-perks,.reservation-copy .reservation-helper,.contact-detail small,.reservation-float small,.reservation-float>a,.gallery-footer,.visit-strip p,.footer-brand-col p,.footer-book,.footer-main>div>a:not(.footer-book),.footer-main>div>p,.footer-note,.hours-row,.hours-row strong,.footer-bottom,.modal-info-note,.photo-lightbox-count,.mobile-action-bar a,.reservation-modal-aside>p,.reservation-modal-contact small,.reservation-modal-contact a,.reservation-modal-address,.reservation-modal-intro,.booking-field>label,.booking-field input:not([type=checkbox]),.booking-field select,.booking-field textarea,.booking-consent label,.booking-status,.booking-disclaimer,.reservation-modal-contact a,.promo-section-heading p,.promo-carousel-count,.promo-dish-meta,.promo-dish-meta strong,.promo-dish-body p,.promo-carousel-note,.promo-footer-cta small,.pdf-modal-header p,.pdf-document-tab,.pdf-page-nav,.pdf-zoom-nav,.pdf-open-original,.pdf-loading-state small,.pdf-error-state span,.pdf-modal-footer>span{
    font-size:14px
}
 .menu-count{
    white-space:normal;
    line-height:1.45
}
 .dish-meta,.promo-dish-meta{
    flex-wrap:wrap;
    gap:7px;
    line-height:1.45;
    letter-spacing:.025em
}
 .dish-price,.promo-dish-meta strong{
    white-space:normal;
    line-height:1.35
}
 .dish-badge,.promo-ribbon{
    padding:7px 10px;
    line-height:1.25;
    max-width:calc(100% - 20px)
}
 .dish-body p,.promo-dish-body p{
    line-height:1.55;
    min-height:3.1em
}
 .promo-dish-body p{
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden
}
 .promo-carousel-note{
    line-height:1.55
}
 .promo-carousel-count{
    letter-spacing:.025em
}
 .pdf-tool-button{
    width:38px;
    height:38px;
    font-size:14px;
    flex:none
}
 .pdf-page-nav,.pdf-zoom-nav{
    font-size:14px;
    gap:8px;
    line-height:1.4
}
 .pdf-page-nav{
    white-space:normal
}
 .pdf-open-original{
    font-size:14px;
    white-space:normal;
    line-height:1.4
}
 .pdf-reader-status{
    font-size:14px;
    line-height:1.4;
    letter-spacing:.025em
}
 .pdf-modal-header p,.pdf-modal-footer>span{
    line-height:1.5
}
 .booking-field input:not([type=checkbox]),.booking-field select{
    min-height:46px;
    padding:10px 12px;
    font-size:14px
}
 .booking-field textarea{
    min-height:88px;
    font-size:14px;
    line-height:1.5
}
 .booking-field>label{
    line-height:1.4;
    letter-spacing:0
}
 .booking-consent label,.booking-disclaimer{
    line-height:1.5
}
 .reservation-modal .modal-content{
    overscroll-behavior:contain
}
 .footer-main h3{
    line-height:1.4
}
 .footer-main>div:not(:first-child){
    gap:11px
}
 .gallery-caption{
    gap:5px
}
 @media(max-width:1199.98px){
     .nav-link{
        padding-left:8px!important;
        padding-right:8px!important
    }
     .header-quick-actions .btn{
        font-size:14px;
        padding:10px 12px;
        line-height:1.35
    }
}
 @media(max-width:991.98px){
     .menu-cards{
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
     .dish-image{
        height:auto;
        aspect-ratio:1.22/1
    }
     .pdf-tools{
        flex-wrap:wrap;
        align-items:flex-start
    }
     .pdf-open-original{
        margin-left:0
    }
     .footer-main{
        gap:30px 24px
    }
}
 @media(max-width:767.98px){
     .topline-inner{
        align-items:flex-start;
        flex-direction:column;
        gap:6px
    }
     .topline-right{
        align-items:flex-start;
        flex-direction:row;
        flex-wrap:wrap;
        gap:6px 14px
    }
     .topline-inner>span,.topline-right span,.topline-right a{
        white-space:normal
    }
     .topline{
        padding:9px 0
    }
     .hero-kicker{
        font-size:14px;
        letter-spacing:.045em;
        line-height:1.45
    }
     .hero-content>p{
        font-size:15px
    }
     .quick-copy small{
        font-size:14px;
        letter-spacing:.035em
    }
     .quick-copy em{
        font-size:14px;
        line-height:1.5
    }
     .section-eyebrow{
        font-size:14px;
        letter-spacing:.045em;
        line-height:1.4
    }
     .dish-body{
        padding:14px 13px
    }
     .dish-body p{
        font-size:14px;
        min-height:4.3em;
        line-height:1.5
    }
     .promo-dish-grid{
        gap:12px
    }
     .promo-dish-body{
        padding:13px 12px 14px
    }
     .promo-dish-meta{
        font-size:14px;
        gap:5px;
        letter-spacing:0
    }
     .promo-dish-meta strong{
        font-size:14px
    }
     .promo-dish-body h3{
        font-size:18px;
        line-height:1.3
    }
     .promo-dish-body p{
        font-size:14px;
        line-height:1.5;
        min-height:4.3em;
        -webkit-line-clamp:3
    }
     .promo-carousel-note{
        font-size:14px;
        line-height:1.5
    }
     .promo-footer-cta small{
        font-size:14px;
        line-height:1.5
    }
     .pdf-modal-header{
        align-items:flex-start;
        gap:12px
    }
     .pdf-modal-header h2{
        font-size:23px;
        line-height:1.2
    }
     .pdf-modal-header p{
        font-size:14px;
        line-height:1.45
    }
     .pdf-document-tabs{
        gap:5px
    }
.pdf-document-tab {
    font-size: 16px;
    padding: 5px 5px;
    white-space: nowrap;
}
.pdf-modal-footer-compact {
    padding: 0 5px;
}
.pdf-compact-header {
    background: #ffffff;
    height: 52px;
    min-height: 52px;
    padding: 0px 5px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #e5e7eb;
    gap: 5px;
}
.pdf-modal-footer-compact a.btn.btn-sm.btn-olive.py-1.px-3 {
    padding: 6px !important;
}
     .pdf-tools{
        flex-wrap:wrap;
        gap:10px
    }
     .pdf-page-nav,.pdf-zoom-nav{
        font-size:14px;
        gap:7px;
        white-space:normal
    }
     .pdf-open-original{
        flex:0 0 100%;
        width:100%;
        margin:0
    }
     .pdf-reader-status{
        font-size:14px;
        letter-spacing:0;
        gap:8px
    }
     .pdf-reader-status span:first-child{
        max-width:48%
    }
     .pdf-reader-status span:last-child{
        max-width:52%;
        text-align:right
    }
     .pdf-modal-footer>span{
        font-size:14px;
        line-height:1.45
    }
     .reservation-modal-aside{
        padding:23px 21px 19px
    }
     .reservation-modal-aside>p,.reservation-modal-intro{
        font-size:14px;
        line-height:1.55
    }
     .reservation-modal-contact small,.reservation-modal-address,.booking-field>label,.booking-disclaimer{
        font-size:14px
    }
     .reservation-modal-main{
        padding:25px 20px 22px
    }
     .booking-form-grid{
        gap:14px 12px
    }
     .booking-field input:not([type=checkbox]),.booking-field select{
        min-height:46px;
        font-size:14px
    }
     .booking-field textarea{
        min-height:85px;
        font-size:14px
    }
     .footer-main>div>a:not(.footer-book),.footer-main>div>p,.footer-note,.footer-bottom{
        font-size:14px;
        line-height:1.6
    }
}
 @media(max-width:550px){

.pdf-header-right {
    position: absolute;
    bottom: 5px;
    right: 10px;
}
.pdf-document-tab {
    font-size: 16px;
    padding: 5px 5px;
    white-space: nowrap;
}
}
 @media(max-width:390px){
     .topline{
        font-size:14px
    }
     .dish-body{
        padding:12px 10px
    }
     .dish-meta{
        gap:5px;
        font-size:14px;
        letter-spacing:0
    }
     .dish-body h3{
        font-size:17px;
        line-height:1.25
    }
     .dish-body p{
        min-height:5.6em
    }
     .promo-carousel{
        padding:12px
    }
     .promo-dish-grid{
        gap:9px
    }
     .promo-dish-body{
        padding:11px 10px 12px
    }
     .promo-dish-meta{
        display:flex;
        flex-wrap:wrap;
        gap:4px;
        font-size:14px
    }
     .promo-dish-body h3{
        font-size:17px;
        line-height:1.3
    }
     .promo-dish-body p{
        font-size:14px;
        min-height:5.6em;
        line-height:1.45
    }
     .pdf-modal-header h2{
        font-size:21px
    }
     .pdf-modal-header p{
        font-size:14px;
        max-width:none
    }
     .pdf-modal-brand{
        gap:10px
    }
     .pdf-tools{
        align-items:flex-start
    }
     .pdf-page-nav,.pdf-zoom-nav{
        gap:6px
    }
     .pdf-modal-footer .btn{
        font-size:14px
    }
}
/* V7: image + video mixed hero slideshow */
 .hero-image, .hero-video{
     position:absolute;
     inset:0;
     display:block;
     width:100%;
     height:100%;
     object-fit:cover;
     object-position:center;
     z-index:-2;
     transition:opacity .65s ease;
}
 .hero-image{
    opacity:0
}
 .hero-image.is-active{
    opacity:1
}
 .hero-image.is-fading{
    opacity:0!important
}
 .hero-video{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    background:#263329
}
 .hero-video.is-active{
    opacity:1;
    visibility:visible
}
 .hero-shade{
    pointer-events:none
}
 @media(max-width:767.98px){
     .hero-video,.hero-image{
        object-position:center center
    }
}
 @media(prefers-reduced-motion:reduce){
     .hero-image,.hero-video{
        transition:none!important
    }
}
/* V8: hierarchical desktop navigation and left-to-right drill-down mobile menu */
 .mobile-menu-trigger{
    display:none;
    align-items:center;
    justify-content:center;
    width:46px;
    height:44px;
    margin-left:auto;
    padding:0!important;
    border:1px solid #dfe4d7!important;
    border-radius:4px;
    background:#fffef9!important;
    color:var(--deep,#263d2d)!important;
    box-shadow:none!important
}
 .mobile-menu-trigger:focus-visible{
    outline:3px solid #a7be7d;
    outline-offset:3px
}
 .mobile-menu-trigger i{
    font-size:27px;
    line-height:1
}
 .nav-tree-item{
    position:relative
}
 .nav-tree-root{
    display:flex;
    align-items:center;
    gap:8px;
    white-space:nowrap
}
 .nav-tree-root>i{
    font-size:11px;
    transition:transform .2s ease
}
 .nav-tree-item:hover>.nav-tree-root>i,.nav-tree-item:focus-within>.nav-tree-root>i{
    transform:rotate(180deg)
}
 .nav-tree-dropdown{
    position:absolute;
    z-index:1070;
    top:calc(100% + 10px);
    left:-22px;
    width:282px;
    padding:9px;
    background:#fffef9;
    border:1px solid #e5e9de;
    box-shadow:0 18px 44px #20321d1c;
    opacity:0;
    visibility:hidden;
    transform:translateY(7px);
    transition:opacity .18s ease,transform .18s ease,visibility .18s
}
 .nav-tree-item:hover>.nav-tree-dropdown,.nav-tree-item:focus-within>.nav-tree-dropdown{
    opacity:1;
    visibility:visible;
    transform:translateY(0)
}
 .nav-tree-dropdown:before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:-11px;
    height:11px
}
 .nav-tree-list,.nav-tree-submenu{
    margin:0;
    padding:0;
    list-style:none
}
 .nav-tree-list>li{
    position:relative
}
 .nav-tree-list a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:13px;
    min-height:46px;
    padding:11px 13px;
    color:#344233;
    text-decoration:none;
    font-size:14px;
    font-weight:600;
    line-height:1.4;
    transition:background .18s ease,color .18s ease
}
 .nav-tree-list a:hover,.nav-tree-list a:focus-visible{
    background:#f0f3e9;
    color:#405d2e;
    outline:none
}
 .nav-tree-list a>i{
    flex:none;
    color:#79836f;
    font-size:12px
}
 .nav-tree-submenu{
    position:absolute;
    z-index:1;
    left:calc(100% + 9px);
    top:-8px;
    width:242px;
    padding:8px;
    background:#fffef9;
    border:1px solid #e5e9de;
    box-shadow:0 18px 44px #20321d1c;
    opacity:0;
    visibility:hidden;
    transform:translateX(6px);
    transition:opacity .18s ease,transform .18s ease,visibility .18s
}
 .nav-tree-submenu:before{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    left:-10px;
    width:10px
}
 .nav-tree-has-children:hover>.nav-tree-submenu,.nav-tree-has-children:focus-within>.nav-tree-submenu{
    opacity:1;
    visibility:visible;
    transform:translateX(0)
}
 .mobile-nav-overlay{
    position:fixed;
    inset:0;
    z-index:1080;
    background:rgba(14,22,15,.56);
    backdrop-filter:blur(3px);
    opacity:0;
    visibility:hidden;
    transition:opacity .24s ease,visibility .24s ease
}
 .mobile-nav-overlay[hidden]{
    display:none!important
}
 .mobile-nav-overlay.is-open{
    opacity:1;
    visibility:visible
}
 .mobile-nav-drawer{
    position:fixed;
    z-index:1081;
    inset:0 auto 0 0;
    display:flex;
    flex-direction:column;
    width:min(420px,calc(100vw - 24px));
    height:100dvh;
    max-height:100dvh;
    background:#fffef9;
    color:var(--deep,#263d2d);
    box-shadow:20px 0 60px #0d170d38;
    transform:translateX(-104%);
    visibility:hidden;
    transition:transform .28s cubic-bezier(.2,.75,.2,1),visibility .28s ease;
    overflow:hidden;
    overscroll-behavior:contain
}
 .mobile-nav-drawer.is-open{
    transform:translateX(0);
    visibility:visible
}
 .mobile-drawer-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:13px;
    min-height:82px;
    padding:15px 18px;
    border-bottom:1px solid #e6e8de;
    background:#fffefb;
    flex:none
}
 .mobile-drawer-brand{
    display:inline-flex;
    align-items:center;
    gap:10px;
    min-width:0;
    color:var(--deep,#263d2d);
    text-decoration:none
}
 .mobile-drawer-brand .brand-mark{
    width:39px;
    height:39px;
    flex:none;
    font-size:17px
}
 .mobile-drawer-brand .brand-name{
    font-size:19px;
    line-height:1.05
}
 .mobile-drawer-brand .brand-name small{
    display:block;
    margin-top:4px;
    font-size:9px;
    letter-spacing:.19em
}
 .mobile-drawer-close{
    display:grid;
    place-items:center;
    flex:none;
    width:40px;
    height:40px;
    border:1px solid #dfe4d7;
    border-radius:50%;
    background:#fffef9;
    color:#33432f;
    font-size:17px;
    transition:background .18s ease,color .18s ease,transform .18s ease
}
 .mobile-drawer-close:hover{
    background:var(--deep,#263d2d);
    color:#fff;
    transform:rotate(90deg)
}
 .mobile-nav-viewport{
    position:relative;
    flex:1;
    min-height:0;
    overflow:hidden;
    background:linear-gradient(145deg,#fffef9,#f8f9f2)
}
 .mobile-menu-page{
    height:100%;
    width:100%;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:24px 17px 23px;
    scrollbar-width:thin;
    scrollbar-color:#cdd6bd transparent
}
 .mobile-menu-page.is-exiting-left{
    animation:mobileMenuExitLeft .15s ease both
}
 .mobile-menu-page.is-exiting-right{
    animation:mobileMenuExitRight .15s ease both
}
 .mobile-menu-page.is-entering-right{
    animation:mobileMenuEnterRight .23s cubic-bezier(.2,.75,.2,1) both
}
 .mobile-menu-page.is-entering-left{
    animation:mobileMenuEnterLeft .23s cubic-bezier(.2,.75,.2,1) both
}
 @keyframes mobileMenuExitLeft{
    to{
        opacity:.2;
        transform:translateX(-22%)
    }
}
 @keyframes mobileMenuExitRight{
    to{
        opacity:.2;
        transform:translateX(22%)
    }
}
 @keyframes mobileMenuEnterRight{
    from{
        opacity:.2;
        transform:translateX(24%)
    }
    to{
        opacity:1;
        transform:translateX(0)
    }
}
 @keyframes mobileMenuEnterLeft{
    from{
        opacity:.2;
        transform:translateX(-24%)
    }
    to{
        opacity:1;
        transform:translateX(0)
    }
}
 .mobile-menu-page-heading{
    display:flex;
    align-items:center;
    gap:13px;
    padding:2px 2px 20px;
    margin-bottom:9px;
    border-bottom:1px solid #e4e7dc
}
 .mobile-menu-page-heading.is-root{
    display:block;
    padding:5px 3px 20px
}
 .mobile-menu-kicker,.mobile-menu-page-title small{
    display:block;
    color:#778466;
    font-size:14px;
    font-weight:800;
    letter-spacing:.13em;
    line-height:1.4
}
 .mobile-menu-page-heading h2{
    margin:5px 0 0;
    color:#293b2b;
    font:600 28px/1.15 var(--serif,Georgia,serif);
    letter-spacing:-.025em
}
 .mobile-menu-page-heading p{
    margin:8px 0 0;
    color:#75806f;
    font-size:14px;
    line-height:1.6
}
 .mobile-menu-back{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    flex:none;
    min-width:88px;
    min-height:42px;
    padding:9px 11px;
    border:1px solid #dce3d2;
    border-radius:3px;
    background:#f4f6ed;
    color:#425b34;
    font-size:14px;
    font-weight:700;
    transition:background .18s ease,color .18s ease
}
 .mobile-menu-back:hover{
    background:var(--deep,#263d2d);
    color:#fff
}
 .mobile-menu-back i{
    font-size:16px
}
 .mobile-menu-page-title{
    min-width:0
}
 .mobile-menu-page-title h2{
    overflow-wrap:anywhere;
    font-size:24px
}
 .mobile-menu-list{
    display:flex;
    flex-direction:column;
    gap:7px;
    margin:0;
    padding:0;
    list-style:none
}
 .mobile-menu-list-item{
    min-width:0
}
 .mobile-menu-row{
    display:flex;
    align-items:stretch;
    min-height:69px;
    border:1px solid #e7eadf;
    background:#fffefc;
    box-shadow:0 4px 15px #293d2206;
    transition:border-color .18s ease,background .18s ease,box-shadow .18s ease
}
 .mobile-menu-row:focus-within,.mobile-menu-row:hover{
    border-color:#d1dcc1;
    background:#fff;
    box-shadow:0 8px 22px #293d220b
}
 .mobile-menu-link{
    display:flex;
    align-items:center;
    gap:12px;
    flex:1;
    min-width:0;
    padding:11px 12px;
    color:#2c3c2e;
    text-decoration:none
}
 .mobile-menu-icon{
    display:grid;
    place-items:center;
    flex:none;
    width:39px;
    height:39px;
    border-radius:3px;
    background:#f0f3e8;
    color:#54713d;
    font-size:18px
}
 .mobile-menu-copy{
    display:flex;
    flex-direction:column;
    gap:3px;
    min-width:0
}
 .mobile-menu-copy strong{
    font-size:15px;
    font-weight:700;
    line-height:1.35;
    overflow-wrap:anywhere
}
 .mobile-menu-copy small{
    color:#7a8273;
    font-size:14px;
    line-height:1.4;
    overflow-wrap:anywhere
}
 .mobile-menu-next{
    display:grid;
    place-items:center;
    flex:none;
    width:49px;
    margin:7px;
    border:0;
    border-left:1px solid #eef0e8;
    background:transparent;
    color:#61744c;
    font-size:17px;
    transition:background .18s ease,transform .18s ease
}
 .mobile-menu-next:hover,.mobile-menu-next:focus-visible{
    background:#f0f3e8;
    transform:translateX(2px);
    outline:2px solid #9eb67c;
    outline-offset:-2px
}
 .mobile-menu-panel-hint{
    display:flex;
    align-items:flex-start;
    gap:8px;
    margin:17px 3px 0;
    color:#87907e;
    font-size:14px;
    line-height:1.55
}
 .mobile-menu-panel-hint i{
    flex:none;
    color:#829663;
    margin-top:3px
}
 .mobile-drawer-footer{
    display:grid;
    grid-template-columns:1fr 1.2fr 42px;
    gap:7px;
    padding:12px 13px calc(12px + env(safe-area-inset-bottom));
    border-top:1px solid #e5e8de;
    background:#fffefb;
    flex:none
}
 .mobile-drawer-footer a{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-width:0;
    min-height:44px;
    padding:8px 9px;
    border:1px solid #dfe5d5;
    border-radius:3px;
    color:#405333;
    text-align:center;
    text-decoration:none;
    font-size:14px;
    font-weight:700;
    line-height:1.25;
    transition:background .18s ease,color .18s ease,border-color .18s ease
}
 .mobile-drawer-footer a i{
    font-size:16px;
    flex:none
}
 .mobile-drawer-footer .mobile-drawer-footer-book{
    border-color:var(--olive,#78963b);
    background:var(--olive,#78963b);
    color:#fff
}
 .mobile-drawer-footer .mobile-drawer-footer-book:hover{
    background:#4f6a31;
    border-color:#4f6a31
}
 .mobile-drawer-footer .mobile-drawer-footer-menu:hover,.mobile-drawer-footer .mobile-drawer-footer-call:hover{
    background:#f0f3e8;
    border-color:#cbd8bb
}
 .mobile-drawer-footer .mobile-drawer-footer-call{
    padding:6px
}
 body.mobile-nav-locked{
    overflow:hidden!important
}
 @media(min-width:992px){
    .mobile-nav-overlay,.mobile-nav-drawer{
        display:none!important
    }
}
 @media(max-width:991.98px){
     .mobile-menu-trigger{
        display:inline-flex
    }
     .site-header .navbar .container{
        gap:12px
    }
     .site-header .navbar-toggler-icon{
        background-image:none
    }
     .nav-tree-item{
        display:none!important
    }
     .navbar-collapse:not(.show){
        display:none!important
    }
}
 @media(max-width:380px){
     .mobile-drawer-header{
        min-height:74px;
        padding:12px 13px
    }
     .mobile-menu-page{
        padding:19px 12px 20px
    }
     .mobile-menu-page-heading h2{
        font-size:25px
    }
     .mobile-menu-page-title h2{
        font-size:21px
    }
     .mobile-menu-link{
        gap:9px;
        padding:10px 8px
    }
     .mobile-menu-icon{
        width:34px;
        height:34px;
        font-size:16px
    }
     .mobile-menu-copy strong{
        font-size:14px
    }
     .mobile-menu-copy small{
        font-size:14px
    }
     .mobile-menu-next{
        width:38px;
        margin:5px
    }
     .mobile-drawer-footer{
        grid-template-columns:1fr 1.15fr 38px;
        gap:5px;
        padding-left:8px;
        padding-right:8px
    }
     .mobile-drawer-footer a{
        font-size:14px;
        gap:5px;
        padding:7px 5px
    }
}
 @media(prefers-reduced-motion:reduce){
    .mobile-nav-overlay,.mobile-nav-drawer,.mobile-menu-page,.mobile-menu-row,.mobile-menu-next{
        transition:none!important;
        animation:none!important
    }
}
/* Layout hero căn giữa */
.hero {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    position: relative;
    min-height: 100vh;
    padding-top: 80px;
    padding-bottom: 60px;
    box-sizing: border-box;
    overflow: hidden;
}

.hero-media-wrapper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

/* Media chuyển cảnh mượt */
.hero-media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.8s ease-in-out, visibility 0.8s ease-in-out;
    pointer-events: none;
}

.hero-media.is-active {
    opacity: 1;
    visibility: visible;
}

/* Caption container */
.hero-content {
    position: relative;
    z-index: 3;
    margin-top: auto;
    margin-bottom: auto;
    width: 100%;
}

.hero-caption {
    display: none;
    max-width: 720px;
}

.hero-caption.is-active {
    display: block;
    animation: heroFadeIn 0.8s ease forwards;
}

@keyframes heroFadeIn {
    from {
        opacity: 0;
        transform: translateY(15px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* 1. Thiết lập lại khối cha đảm bảo thứ tự lớp (z-index) chuẩn */
.hero {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    position: relative;
    min-height: 100vh;
    padding-top: 80px;
    padding-bottom: 60px;
    box-sizing: border-box;
    overflow: hidden;
}

/* Các file ảnh và video nền nằm dưới cùng */
.hero-media-wrapper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1; /* Nằm dưới cùng */
}

/* 2. NÂNG CẤP LỚP PHỦ TỐI (HERO SHADE) */
/* Áp dụng 2 lớp phủ: một lớp làm tối nhẹ toàn bộ ảnh và một lớp tối đậm dần xuống đáy */
.hero .hero-shade {
    position: absolute;
    inset: 0;
    z-index: 2; /* Nằm đè lên ảnh/video nhưng dưới chữ */
    background: linear-gradient(
        180deg, 
        rgba(0, 0, 0, 0.45) 0%,     /* Làm tối nhẹ phần trên */
        rgba(0, 0, 0, 0.6) 50%,     /* Tối dần ở giữa */
        rgba(0, 0, 0, 0.75) 100%    /* Rất tối ở phía dưới - nơi có nhiều chữ */
    );
    pointer-events: none;
}

/* 3. LÀM NỔI BẬT NỘI DUNG CHỮ (HERO CONTENT) */
.hero-content {
    position: relative;
    z-index: 3; /* Phải lớn hơn z-index của hero-shade */
    margin-top: auto;
    margin-bottom: auto;
    width: 100%;
}

/* Thêm text-shadow cho toàn bộ chữ để luôn đọc được bất kể ảnh nền sáng hay tối */
.hero-caption h1,
.hero-caption .hero-kicker,
.hero-caption p,
.hero-caption .hero-note {
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5), 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* Tinh chỉnh riêng cho kicker (chữ nhỏ màu sắc ở trên) */
.hero-caption .hero-kicker {
    color: #ffd166; /* Chuyển sang tông vàng ấm để tăng độ nhận diện */
    font-weight: 700;
    letter-spacing: 0.1em;
}

/* Tinh chỉnh tiêu đề chính */
.hero-caption h1 {
    color: #ffffff;
    font-weight: 800;
}

.hero-caption h1 em {
    color: #e4c6b4; /* Tone sundust nhẹ nhàng nhưng nổi bật */
}

/* Đoạn mô tả (đặc biệt khó đọc trên nền sáng) */
.hero-caption p {
    color: rgba(255, 255, 255, 0.95) !important; /* Tăng độ sáng của chữ */
    font-weight: 450; /* Tăng độ đậm nhẹ để nét chữ rõ ràng */
    max-width: 680px;
}

/* Ghi chú dưới cùng kèm icon */
.hero-caption .hero-note {
    color: rgba(255, 255, 255, 0.85);
    font-weight: 500;
}

.hero-caption .hero-note i {
    color: #ffd166; /* Ngôi sao màu vàng */
}

/* Đảm bảo nút điều hướng và bộ đếm cũng nổi bật */
.hero .scroll-cue,
.hero .hero-index {
    z-index: 3;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
}

.hero .scroll-cue {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 4;
}

.hero .hero-index {
    position: absolute;
    right: 30px;
    bottom: 30px;
    z-index: 4;
}

.custom-hero-media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.8s ease-in-out, visibility 0.8s ease-in-out;
    pointer-events: none;
    z-index: 1;
}

.custom-hero-media.is-active {
    opacity: 1;
    visibility: visible;
}

.custom-hero-caption {
    display: none;
    max-width: 720px;
}

.custom-hero-caption.is-active {
    display: block;
    animation: heroFadeIn 0.8s ease forwards;
}

@keyframes heroFadeIn {
    from {
        opacity: 0;
        transform: translateY(15px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* 1. Modal dialog và content co giãn thông minh theo chiều cao màn hình */
#dishModal .modal-dialog {
    max-width: 960px;
    margin: 1.5rem auto;
}

#dishModal .dish-modal-content {
    border-radius: 18px;
    overflow: hidden;
    border: none;
    background: #ffffff;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
    max-height: calc(100vh - 3rem); /* Không bao giờ vượt quá chiều cao màn hình */
    display: flex;
    flex-direction: column;
}

#dishModal .modal-dish-wrapper {
    display: flex;
    flex-direction: row;
    width: 100%;
    align-items: stretch;
    overflow-y: auto; /* Cho phép cuộn nếu màn hình cực thấp */
}

/* 2. CỘT TRÁI (35%): Luôn khóa vừa vặn cả ảnh chính và thumbnail */
#dishModal .modal-media-col {
    flex: 0 0 38%;
    max-width: 38%;
    background: #f8f9fa;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border-right: 1px solid #edf0f2;
    box-sizing: border-box;
}

/* Ảnh chính: Dùng tỷ lệ chuẩn 4:3 và max-height để không chiếm hết chỗ của thumb */
#dishModal .modal-gallery-main {
    width: 100%;
    height: 240px; /* Chiều cao an toàn cho mọi màn hình */
    max-height: 260px;
    border-radius: 12px;
    overflow: hidden;
    background: #111;
    margin-bottom: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    position: relative;
    flex-shrink: 0; /* Không bị bóp méo */
}

#dishModal .modal-gallery-main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 3. KHỐI THUMBNAIL: Khóa cứng không gian hiển thị, luôn nhìn thấy 100% */
#dishModal .modal-thumbs-carousel {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    margin-top: auto; /* Luôn neo ở phần đáy cột trái */
    flex-shrink: 0;   /* Không bao giờ bị co lại hoặc biến mất */
}

#dishModal .modal-thumbs-track {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    scroll-behavior: smooth;
    scrollbar-width: none;
    width: 100%;
    padding: 2px 0;
}

#dishModal .modal-thumbs-track::-webkit-scrollbar {
    display: none;
}

#dishModal .modal-thumb-item {
    flex: 0 0 calc((100% - 18px) / 4); /* Chia đều 4 ảnh */
    height: 52px; /* Chiều cao vừa vặn */
    border-radius: 6px;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid transparent;
    opacity: 0.65;
    transition: all 0.2s ease;
    background: #e9ecef;
    flex-shrink: 0;
}

#dishModal .modal-thumb-item.is-active,
#dishModal .modal-thumb-item:hover {
    border-color: #263d2d;
    opacity: 1;
    transform: translateY(-1px);
}

#dishModal .modal-thumb-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

#dishModal .thumb-nav-btn {
    flex: 0 0 22px;
    height: 22px;
    border-radius: 50%;
    border: 1px solid #d0d7de;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    cursor: pointer;
    color: #333;
}

/* 4. CỘT PHẢI (62%): Cân đối lại khoảng cách đệm */
#dishModal .modal-info-col {
    flex: 0 0 62%;
    max-width: 62%;
    padding: 28px 32px;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

#dishModal .dish-modal-info h2 {
    font-size: 26px;
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    color: #1a251b;
    margin-bottom: 8px;
    line-height: 1.25;
}

#dishModal .dish-modal-info p {
    font-size: 14.5px;
    line-height: 1.6;
    color: #555555;
    margin-bottom: 16px;
}

/* 5. RESPONSIVE CHO MÀN HÌNH NHỎ & MOBILE */
@media (max-width: 768px) {
    #dishModal .modal-dish-wrapper {
        flex-direction: column;
    }
    #dishModal .modal-media-col,
    #dishModal .modal-info-col {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
    #dishModal .modal-media-col {
        border-right: none;
        border-bottom: 1px solid #edf0f2;
        padding: 16px;
    }
    #dishModal .modal-gallery-main {
        height: 200px;
    }
    #dishModal .modal-info-col {
        padding: 20px 16px;
    }
}
/* Tối ưu trải nghiệm kéo thả cho Slide món ăn */
.promo-slides {
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
    touch-action: pan-y; /* Cho phép cuộn dọc trang tự nhiên, chỉ can thiệp kéo ngang */
}

.promo-slides.is-dragging {
    cursor: grabbing !important;
}

.promo-slides.is-dragging * {
    pointer-events: none; /* Tránh click trúng link/card khi đang kéo dở */
}
/* Khối cột trái */
#dishModal .modal-media-col {
    flex: 0 0 38%;
    max-width: 38%;
    background: #f8f9fa;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-sizing: border-box;
}

#dishModal .modal-gallery-main {
    width: 100%;
    height: 240px;
    border-radius: 12px;
    overflow: hidden;
    background: #111;
    margin-bottom: 12px;
}

#dishModal .modal-gallery-main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Cấu hình Swiper Thumbnail */
.dish-thumb-swiper {
    width: 100%;
    height: 60px;
    padding: 2px 0;
    cursor: grab;
}
.dish-thumb-swiper:active {
    cursor: grabbing;
}

.dish-thumb-swiper .swiper-slide {
    width: 65px !important;
    height: 54px;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid transparent;
    opacity: 0.55;
    transition: all 0.25s ease;
}

.dish-thumb-swiper .swiper-slide.is-active,
.dish-thumb-swiper .swiper-slide:hover {
    border-color: #263d2d;
    opacity: 1;
    transform: translateY(-2px);
}

.dish-thumb-swiper .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Styling Menu Mobile Drawer */
.mobile-nav-tree {
    padding: 1rem 1.25rem;
}

.mobile-nav-item {
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.mobile-nav-link {
    font-size: 1.05rem;
    font-weight: 600;
    color: #263d2d;
    text-decoration: none;
    transition: color 0.2s ease;
}

.mobile-nav-link:hover,
.mobile-nav-link:focus {
    color: #4b6b52;
}

.mobile-sub-link,
.mobile-nested-link {
    font-size: 0.95rem;
    color: #555555;
    text-decoration: none;
    transition: color 0.2s ease;
}

.mobile-sub-link:hover,
.mobile-nested-link:hover {
    color: #263d2d;
}

.mobile-nav-toggle {
    color: #666;
    border: none;
    background: transparent;
    transition: transform 0.25s ease;
}

.mobile-nav-toggle.is-open {
    transform: rotate(180deg);
}

.mobile-nav-sublist,
.mobile-nav-sublist-nested {
    border-left: 2px solid #e2e8f0;
    margin-bottom: 0.5rem;
}
/* 1. Ẩn toàn bộ ảnh từ số 8 trở đi */
.gallery-grid > a:nth-child(n+8) {
    display: none !important;
}

/* 2. Cấu hình lưới 12 cột cho Desktop */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: 240px; /* Chiều cao mỗi hàng */
    gap: 16px;
    width: 100%;
}

.gallery-grid > a {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: 14px;
    text-decoration: none;
}

.gallery-grid > a img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

.gallery-grid > a:hover img {
    transform: scale(1.04);
}

/* 3. BỐ TRÍ CỤM 4 ẢNH ĐẦU (Theo đúng hình mẫu) */

/* Ảnh 1: Khối dọc lớn bên trái */
.gallery-grid > a:nth-child(1) {
    grid-column: span 6;
    grid-row: span 2;
}

/* Ảnh 2 & 3: Hai ô nhỏ ở hàng 1 bên phải */
.gallery-grid > a:nth-child(2) {
    grid-column: span 3;
    grid-row: span 1;
}

.gallery-grid > a:nth-child(3) {
    grid-column: span 3;
    grid-row: span 1;
}

/* Ảnh 4: Ô ngang bên dưới ảnh 2 & 3 */
.gallery-grid > a:nth-child(4) {
    grid-column: span 6;
    grid-row: span 1;
}

/* 4. BỐ TRÍ 3 ẢNH HÀNG CUỐI (Chia đều làm 3 phần) */
.gallery-grid > a:nth-child(5),
.gallery-grid > a:nth-child(6),
.gallery-grid > a:nth-child(7) {
    grid-column: span 4; /* 12 / 3 = 4 cột */
    grid-row: span 1;
}

/* 5. Responsive trên Tablet (<= 991px) */
@media (max-width: 991px) {
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 220px;
        gap: 12px;
    }

    .gallery-grid > a:nth-child(1) {
        grid-column: span 2;
        grid-row: span 2;
    }

    .gallery-grid > a:nth-child(2),
    .gallery-grid > a:nth-child(3) {
        grid-column: span 1;
        grid-row: span 1;
    }

    .gallery-grid > a:nth-child(4) {
        grid-column: span 2;
        grid-row: span 1;
    }

    .gallery-grid > a:nth-child(5),
    .gallery-grid > a:nth-child(6) {
        grid-column: span 1;
        grid-row: span 1;
    }

    .gallery-grid > a:nth-child(7) {
        grid-column: span 2;
        grid-row: span 1;
    }
}

/* 6. Responsive trên Mobile (<= 575px) */
@media (max-width: 575px) {
    .gallery-grid {
        grid-template-columns: 1fr;
        grid-auto-rows: 220px;
    }

    .gallery-grid > a:nth-child(n+1) {
        grid-column: auto !important;
        grid-row: auto !important;
    }
}

/* LIGHTBOX MODAL ALBUM */
.album-lightbox-content {
    background: #0f1410;
    border: none;
    border-radius: 20px;
    overflow: hidden;
    color: #ffffff;
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.7);
}

.album-modal-close {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 10;
    filter: invert(1);
    opacity: 0.8;
}
.album-modal-close:hover {
    opacity: 1;
}

.album-lightbox-body {
    padding: 24px;
    display: flex;
    flex-direction: column;
}

.album-viewer-wrap {
    position: relative;
    width: 100%;
    height: 60vh;
    min-height: 380px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000000;
    border-radius: 14px;
    overflow: hidden;
}

.album-main-image-wrap {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.album-main-image-wrap img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    transition: opacity 0.25s ease;
}

.album-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    border: none;
    color: #ffffff;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    backdrop-filter: blur(6px);
    transition: all 0.2s;
    z-index: 5;
}
.album-nav-btn:hover {
    background: #ffffff;
    color: #000000;
}
.album-prev-btn { left: 16px; }
.album-next-btn { right: 16px; }

.album-meta-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 16px;
    padding: 0 4px;
}

.album-meta-text span {
    font-size: 12px;
    letter-spacing: 0.1em;
    color: #a3b899;
    text-transform: uppercase;
    font-weight: 700;
}

.album-meta-text h3 {
    margin: 4px 0 0;
    font-size: 22px;
    font-family: 'Playfair Display', serif;
    color: #ffffff;
}

.album-counter {
    font-size: 14px;
    font-weight: 600;
    background: rgba(255, 255, 255, 0.1);
    padding: 6px 14px;
    border-radius: 20px;
}

.album-thumbnails-bar {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    margin-top: 14px;
    padding: 6px 2px;
    scrollbar-width: thin;
}

.album-thumb-node {
    width: 65px;
    height: 50px;
    flex: 0 0 65px;
    border-radius: 6px;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid transparent;
    opacity: 0.5;
    transition: all 0.2s;
}
.album-thumb-node.is-active,
.album-thumb-node:hover {
    border-color: #ffffff;
    opacity: 1;
    transform: translateY(-2px);
}
.album-thumb-node img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
span.promo-carousel-count {
    display: none;
}
/* Modern Banner */
.banner-top-modern {
    position: relative;
    padding: 70px 0 65px;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    margin-bottom: 25px;
}
.banner-title-box {
    text-align: center;
    color: #fff;
    max-width: 800px;
    margin: 0 auto;
}
.cat-title-main {
    font-size: 32px;
    font-weight: 700;
    margin: 0 0 10px;
    color: #ffffff;
    text-shadow: 0 2px 10px rgba(0,0,0,0.3);
}
.cat-desc-sub {
    font-size: 15px;
    color: #e5e7eb;
    margin: 0;
    line-height: 1.6;
}

/* Breadcrumb */
.category-main-wrapper {
    padding-bottom: 50px;
}
.custom-breadcrumb-bar {
    padding: 12px 18px;
    background: #f8fafc;
    border-radius: 8px;
    margin-bottom: 30px;
    border: 1px solid #e2e8f0;
}
.custom-breadcrumb-bar p {
    margin: 0;
    font-size: 13.5px;
    color: #64748b;
}
.custom-breadcrumb-bar a {
    color: #334155;
    text-decoration: none;
    transition: color 0.2s;
}
.custom-breadcrumb-bar a:hover {
    color: #2563eb;
}
.custom-breadcrumb-bar .sep {
    margin: 0 8px;
    color: #cbd5e1;
}
.custom-breadcrumb-bar .current {
    color: #0f172a;
    font-weight: 600;
}

/* Empty State */
.empty-state-box {
    padding: 60px 20px;
    background: #fff;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    margin: 30px 0;
}
.empty-icon {
    font-size: 48px;
    color: #94a3b8;
    margin-bottom: 15px;
}
.empty-text {
    font-size: 16px;
    color: #64748b;
    margin-bottom: 25px;
}
.btn-goback {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 24px;
    background: #1e293b;
    color: #ffffff;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.2s;
}
.btn-goback:hover {
    background: #334155;
    color: #fff;
}

/* Container phân trang căn giữa */
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    list-style: none;
    padding: 0;
    margin: 32px 0 16px;
    gap: 6px; /* Khoảng cách giữa các nút */
    flex-wrap: wrap;
}

.pagination li {
    display: inline-flex;
}

/* Kiểu dáng chung cho nút số trang và nút điều hướng */
.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 10px;
    border-radius: 8px;
    background-color: #ffffff;
    color: #444444;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid #e2e8f0;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
    transition: all 0.25s ease;
    user-select: none;
}

/* Hiệu ứng khi rê chuột vào nút link */
.pagination a.page-numbers:hover {
    background-color: #263d2d;
    color: #ffffff;
    border-color: #263d2d;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(38, 61, 45, 0.2);
}

/* Trạng thái trang hiện tại (Active) */
.pagination .page-numbers.current {
    background-color: #263d2d;
    color: #ffffff;
    border-color: #263d2d;
    cursor: default;
    box-shadow: 0 4px 8px rgba(38, 61, 45, 0.25);
}

/* Tùy biến nút icon mũi tên */
.pagination a.page-numbers i {
    font-size: 13px;
    pointer-events: none;
}

/* Hỗ trợ kích thước nhỏ (.pagination-sm) */
.pagination.pagination-sm {
    gap: 4px;
    margin: 24px 0 12px;
}

.pagination.pagination-sm .page-numbers {
    min-width: 32px;
    height: 32px;
    padding: 0 8px;
    font-size: 13px;
    border-radius: 6px;
}

.pagination.pagination-sm a.page-numbers i {
    font-size: 12px;
}

.price-current,
strong.dish-price-sale {
    color: #dd0000;
}

/* Tối ưu hiển thị trên màn hình di động */
@media (max-width: 576px) {
    .pagination {
        gap: 4px;
    }

    .pagination .page-numbers {
        min-width: 32px;
        height: 32px;
        padding: 0 6px;
        font-size: 12.5px;
    }
}
.promo-ribbon {
    position: absolute;
    top: 12px;
    left: 12px;
    background: #bc4749;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 9px;
    border-radius: 6px;
    z-index: 2;
    letter-spacing: 0.5px;
    box-shadow: 0 2px 8px rgba(188, 71, 73, 0.3);
}
.navbar-brand img {
    height: auto !important;
}
.hidden {
    display: none;
}
a.footer-brand img {
    height: auto;
    margin-bottom: 10px;
}
/* Container Slides chính */
.promo-slides {
    position: relative;
    overflow: hidden;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
    touch-action: pan-y !important; /* KHÔNG chặn cuộn dọc trang, CHỈ bắt kéo ngang */
}

.promo-slides.is-dragging {
    cursor: grabbing !important;
}

/* Các thẻ bài viết và ảnh bên trong */
.promo-slides .promo-slide,
.promo-slides .promo-dish-grid,
.promo-slides .promo-dish-card {
    user-select: none;
    -webkit-user-select: none;
    -webkit-user-drag: none !important; /* Chặn tuyệt đối kéo bóng ảnh trên trình duyệt Webkit */
}

/* Ngăn hình ảnh bên trong thẻ card chiếm quyền kéo chuột */
.promo-slides img {
    pointer-events: none !important;
    -webkit-user-drag: none !important;
    user-drag: none !important;
}

/* ========================================================
   MOBILE ACTION BAR - THIẾT KẾ CÂN ĐỐI & SANG TRỌNG
   ======================================================== */
.mobile-action-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* Chia đều 3 cột tuyệt đối 1:1:1 */
    gap: 8px;
    padding: 8px 10px;
    padding-bottom: max(8px, env(safe-area-inset-bottom)); /* Hỗ trợ iPhone không bị thanh home che */
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.08);
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

/* Kiểu dáng chung cho cả 3 nút */
.mobile-action-bar .mob-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 7px 4px;
    border-radius: 10px;
    text-decoration: none;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.2;
    transition: all 0.2s ease;
    border: 1px solid transparent;
    text-align: center;
    min-width: 0; /* Ngăn vỡ layout chữ */
}

.mobile-action-bar .mob-item i {
    font-size: 1.25rem;
    margin-bottom: 3px;
    line-height: 1;
}

.mobile-action-bar .mob-item span {
    display: block;
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; /* Tự thu gọn ... nếu màn hình siêu hẹp */
}

/* NÚT 1: Speisekarte (Nền xám nhạt thanh lịch) */
.mobile-action-bar .mob-menu {
    background: #f4f6f3;
    color: #333333;
    border-color: #e5e8e3;
}
.mobile-action-bar .mob-menu i {
    color: var(--olive, #556b2f);
}
.mobile-action-bar .mob-menu:active {
    background: #e9ece6;
}

/* NÚT 2: Reservieren (Nút nhấn trung tâm phong cách nhà hàng) */
.mobile-action-bar .mob-book {
    background: #fdf8f0;
    color: #8c5b1b;
    border-color: #faebd7;
}
.mobile-action-bar .mob-book i {
    color: #c88022;
}
.mobile-action-bar .mob-book:active {
    background: #f5eedf;
}

/* NÚT 3: Mittagsangebote (Nổi bật chuẩn tone màu Olive) */
.mobile-action-bar .mob-lunch {
    background: color-mix(in srgb, var(--olive, #556b2f) 12%, white);
    color: var(--olive, #556b2f);
    border-color: color-mix(in srgb, var(--olive, #556b2f) 25%, white);
}
.mobile-action-bar .mob-lunch i {
    color: var(--olive, #556b2f);
}
.mobile-action-bar .mob-lunch:active {
    background: color-mix(in srgb, var(--olive, #556b2f) 22%, white);
}

/* Ẩn trên máy tính / desktop để không chiếm không gian */
@media (min-width: 768px) {
    .mobile-action-bar {
        display: none !important;
    }
}

/* ========================================================
   FLOATING CART BUTTON (TƯƠNG THÍCH SAFARI CŨ & TRÁNH THANH TOOLBAR)
   ======================================================== */
.floating-cart-wrap {
    position: fixed;
    bottom: 35px;
    right: 25px;
    z-index: 9990;
    user-select: none;
    -webkit-user-select: none;
}

.floating-cart-btn {
    position: relative;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    
    /* 1. FALLBACK CHO SAFARI CŨ: Dùng màu đơn và gradient chuẩn mã màu rõ ràng */
    background-color: #28a745; /* Màu dự phòng nếu trình duyệt không hiểu linear-gradient */
    background: linear-gradient(135deg, #28a745 0%, #1e7e34 100%);
    background: linear-gradient(135deg, var(--olive, #28a745) 0%, #1e7e34 100%);
    
    box-shadow: 0 8px 25px rgba(40, 167, 69, 0.45), 0 3px 10px rgba(0, 0, 0, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff !important;
    text-decoration: none !important;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s ease;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.floating-cart-btn:hover {
    transform: scale(1.1) translateY(-3px);
    box-shadow: 0 12px 30px rgba(40, 167, 69, 0.6), 0 4px 12px rgba(0, 0, 0, 0.2);
    color: #ffffff !important;
}

.floating-cart-btn:active {
    transform: scale(0.95);
}

.cart-icon-box {
    font-size: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: cartShake 3.5s infinite ease-in-out;
}

/* Sóng lan tỏa (Pulse Wave) tương thích Safari cũ */
.cart-pulse-wave {
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 2px solid #28a745;
    border-color: var(--olive, #28a745);
    animation: cartPulse 2.4s infinite ease-out;
    pointer-events: none;
    opacity: 0;
}
.cart-pulse-wave.delay {
    animation-delay: 1.2s;
}

@keyframes cartPulse {
    0% { transform: scale(0.9); opacity: 0.8; }
    50% { opacity: 0.4; }
    100% { transform: scale(1.6); opacity: 0; }
}

@keyframes cartShake {
    0%, 75%, 100% { transform: rotate(0deg); }
    78% { transform: rotate(-14deg); }
    81% { transform: rotate(14deg); }
    84% { transform: rotate(-10deg); }
    87% { transform: rotate(10deg); }
    90% { transform: rotate(0deg); }
}

/* Badge số lượng màu đỏ */
.floating-cart-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 24px;
    height: 24px;
    padding: 0 6px;
    border-radius: 12px;
    background: #dd0000;
    color: #ffffff;
    font-size: 12px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #ffffff;
    box-shadow: 0 2px 8px rgba(221, 0, 0, 0.4);
}

.floating-cart-btn.has-items .floating-cart-badge {
    animation: badgePop 0.3s ease-out;
}

@keyframes badgePop {
    0% { transform: scale(0.7); }
    50% { transform: scale(1.3); }
    100% { transform: scale(1); }
}

/* Tooltip trên máy tính */
.floating-cart-tooltip {
    position: absolute;
    right: 70px;
    top: 50%;
    transform: translateY(-50%) translateX(10px);
    background: #1e293b;
    color: #ffffff;
    font-size: 12px;
    font-weight: 600;
    padding: 6px 12px;
    border-radius: 8px;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: all 0.25s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    pointer-events: none;
}
.floating-cart-tooltip::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -5px;
    transform: translateY(-50%);
    border-width: 5px 0 5px 5px;
    border-style: solid;
    border-color: transparent transparent transparent #1e293b;
}
.floating-cart-btn:hover .floating-cart-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translateY(-50%) translateX(0);
}

/* ========================================================
   2. XỬ LÝ TRÊN MOBILE: NÂNG LÊN CAO ĐỂ KHÔNG BỊ ĐÈ
   ======================================================== */
@media (max-width: 767.98px) {
    .floating-cart-wrap {
        /* Cách đáy 95px + khoảng an toàn của iPhone (Home Indicator) */
        bottom: calc(95px + env(safe-area-inset-bottom, 0px));
        bottom: calc(95px + -webkit-env(safe-area-inset-bottom, 0px));
        right: 16px;
    }
    
    .floating-cart-btn {
        width: 54px;
        height: 54px;
    }
    
    .cart-icon-box {
        font-size: 23px;
    }
    
    .floating-cart-tooltip {
        display: none !important;
    }
}

/* 5. ĐIỀU CHỈNH KHOẢNG CÁCH TRÊN MOBILE ĐỂ TRÁNH BỊ THANH ACTION BAR Ở ĐÁY CHE */
@media (max-width: 767.98px) {
    .floating-cart-wrap {
        bottom: 145px; /* Nhấc cao lên trên thanh mobile-action-bar */
        right: 18px;
    }
    .floating-cart-btn {
        width: 52px;
        height: 52px;
    }
    .cart-icon-box {
        font-size: 22px;
    }
    .floating-cart-tooltip {
        display: none !important; /* Ẩn tooltip trên màn hình cảm ứng */
    }
}
/* Khung chứa ảnh cần có position: relative */
.promo-dish-image {
    position: relative;
    overflow: hidden;
}

/* NÚT THÊM GIỎ HÀNG TRÊN CARD SẢN PHẨM */
.btn-quick-add-cart {
    position: absolute;
    bottom: 12px;
    right: 12px;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: none;
    background: #ffffff;
    color: var(--olive, #28a745);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    cursor: pointer;
    z-index: 5;
    transition: all 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.btn-quick-add-cart:hover {
    background: var(--olive, #28a745);
    color: #ffffff;
    transform: scale(1.15);
    box-shadow: 0 6px 16px rgba(40, 167, 69, 0.35);
}

.btn-quick-add-cart:active {
    transform: scale(0.92);
}

/* Hiệu ứng phản hồi khi vừa thêm thành công */
.btn-quick-add-cart.is-added {
    background: var(--olive, #28a745) !important;
    color: #ffffff !important;
    animation: cartButtonPop 0.35s ease-out;
}

@keyframes cartButtonPop {
    0% { transform: scale(0.9); }
    50% { transform: scale(1.25); }
    100% { transform: scale(1); }
}

.promo-dish-card {
    background: #ffffff;
    border-radius: 14px;
    border: 1px solid rgba(96, 108, 56, 0.16);
    overflow: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    cursor: pointer;
}
.promo-dish-card:hover {
    border-color: var(--olive);
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(96, 108, 56, 0.12);
}


.promo-dish-image a {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
}
.promo-dish-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}
.promo-dish-card:hover .promo-dish-image img {
    transform: scale(1.06);
}

.promo-ribbon {
    position: absolute;
    top: 12px;
    left: 12px;
    background: #bc4749;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 9px;
    border-radius: 6px;
    z-index: 2;
    letter-spacing: 0.5px;
    box-shadow: 0 2px 8px rgba(188, 71, 73, 0.3);
}
.promo-image-index {
    position: absolute;
    bottom: 10px;
    right: 12px;
    background: rgba(17, 24, 15, 0.65);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 4px;
    backdrop-filter: blur(2px);
}

.promo-dish-body {
    padding: 18px 20px 16px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}
.promo-dish-meta {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 8px;
}
.promo-dish-meta span {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.6px;
    color: var(--olive);
    text-transform: uppercase;
}
.dish-card-price-wrap {
    display: flex;
    align-items: baseline;
    gap: 6px;
}
.dish-price-sale, .dish-price-regular {
    color: #283618;
    font-size: 17px;
    font-weight: 800;
}
.dish-price-sale {
    color: #bc4749;
}
.dish-price-old {
    color: #999;
    font-size: 13px;
    text-decoration: line-through;
}

.promo-dish-body h3 {
    font-size: 17px;
    font-weight: 700;
    margin: 4px 0 8px;
    line-height: 1.35;
}
.promo-dish-body h3 a {
    color: #1f2415;
    text-decoration: none;
    transition: color 0.2s;
}
.promo-dish-body h3 a:hover {
    color: var(--olive);
}
.promo-dish-body p {
    font-size: 13.5px;
    color: #555c4d;
    line-height: 1.55;
    margin: 0 0 16px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.dish-card-footer {
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px dashed rgba(96, 108, 56, 0.2);
}
.btn-dish-detail {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 600;
    color: var(--olive);
    text-decoration: none;
    transition: all 0.2s;
}
.btn-dish-detail:hover {
    color: var(--olive-dark);
    transform: translateX(3px);
}

a.btn-dish-call.btn-quick-add-cart {
    position: unset !important;
    width: unset !important;
    height: unset !important;
}
.btn-dish-call:hover.btn-quick-add-cart {
    border-color: unset !important;
    color: unset !important;
}
.btn-dish-call.btn-quick-add-cart:hover {
    background: unset !important;
    color: unset !important;
    transform: unset !important;
    box-shadow: unset !important;
}
.btn-dish-call.btn-quick-add-cart:active {
    transform: unset !important;
}

/* CSS cho Badge thông báo Mittagsangebote */
.mittags-badge-count {
    position: absolute;
    top: 6px;
    right: 12px;
    background-color: #ffc107;
    color: #000;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 10px;
    line-height: 1.2;
    box-shadow: 0 2px 5px rgba(0,0,0,0.15);
    animation: pulseBadge 1.5s infinite;
}

.mittags-card-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    background-color: #ffc107;
    color: #000;
    font-size: 0.75rem;
    font-weight: 700;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 6px rgba(211, 158, 0, 0.4);
    animation: pulseBadge 1.5s infinite;
}

@keyframes pulseBadge {
    0% { transform: scale(1); }
    50% { transform: scale(1.1); }
    100% { transform: scale(1); }
}
.pdf-mini-group {
    display: none !important;
}
