/* KESAR mobile/tablet interaction fixes. Desktop above 1000px is intentionally untouched. */
@media (max-width:1000px){
  html{scroll-padding-bottom:calc(92px + env(safe-area-inset-bottom))}

  html body #menu .party-tabs button,
  html body #menu [data-reserve-combo],
  html body #menu-combos .combo-row>button,
  html body #menu-combos [data-row-reserve],
  html body .mobile-reserve button{
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }

  html body #menu .party-tabs button{
    position:relative;
    z-index:2;
    min-height:44px;
    pointer-events:auto;
    user-select:none;
    -webkit-user-select:none;
  }

  html body #menu .party-tabs button:focus-visible,
  html body #menu-combos .combo-row>button:focus-visible,
  html body #menu [data-reserve-combo]:focus-visible,
  html body #menu-combos [data-row-reserve]:focus-visible,
  html body .mobile-reserve button:focus-visible{
    outline:3px solid rgba(185,110,38,.38);
    outline-offset:3px;
  }

  html body #menu .featured-combo,
  html body #menu .featured-combo>* ,
  html body #menu-combos .combo-layout,
  html body #menu-combos .accordion,
  html body #menu-combos .combo-row{
    min-width:0;
  }

  html body #menu #featuredImage{
    transition:opacity .18s ease;
  }

  html body #menu-combos .combo-row>button{
    min-height:58px;
    pointer-events:auto;
  }

  html body #menu-combos .combo-panel{
    overflow:clip;
  }

  html body #menu-combos .combo-panel-inner [data-row-reserve]{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

  html body .mobile-reserve{
    position:fixed;
    z-index:14500;
    left:12px;
    right:12px;
    bottom:max(10px,env(safe-area-inset-bottom));
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    min-height:70px;
    padding:10px 10px 10px 15px;
    border:1px solid rgba(214,154,58,.34);
    border-radius:16px;
    background:rgba(12,10,8,.96);
    color:#f7f0e3;
    box-shadow:0 18px 54px rgba(0,0,0,.36);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    transition:opacity .22s ease,transform .22s ease;
  }

  html body .mobile-reserve[hidden]{display:none!important}
  html body .mobile-reserve:not([hidden]){display:grid!important}
  body.combo-reserve-visible .mobile-reserve{
    display:grid!important;
    opacity:1;
    transform:none;
    pointer-events:auto;
  }

  html body .mobile-reserve>div{
    min-width:0;
    display:grid;
    gap:4px;
  }

  html body .mobile-reserve #mobileComboName{
    overflow:hidden;
    color:rgba(247,240,227,.78);
    font:600 9px/1.25 "DM Sans",Arial,sans-serif;
    letter-spacing:.08em;
    text-overflow:ellipsis;
    text-transform:uppercase;
    white-space:nowrap;
  }

  html body .mobile-reserve #mobileComboPrice{
    color:#e0ad64;
    font:400 22px/1 "Italiana",Georgia,serif;
  }

  html body .mobile-reserve #mobileReserveButton{
    min-width:112px;
    min-height:48px;
    padding:11px 18px;
    border:1px solid #d69a3a;
    border-radius:11px;
    background:#d69a3a;
    color:#130f0b;
    font:700 10px/1 "DM Sans",Arial,sans-serif;
    letter-spacing:.13em;
    text-transform:uppercase;
    cursor:pointer;
  }

  body.combo-reserve-visible .kesar-mobile-actions,
  body.reservation-modal-open .kesar-mobile-actions,
  body.reservation-modal-open .mobile-reserve,
  body.menu-open .mobile-reserve,
  body.dialog-open .mobile-reserve{
    opacity:0!important;
    transform:translateY(125%)!important;
    pointer-events:none!important;
  }

  /* Tablet modal treatment; desktop modal above 1000px remains unchanged. */
  html body .reservation-modal{
    align-items:end;
    padding:12px;
  }

  html body .reservation-modal__panel{
    width:min(100%,780px);
    max-height:96dvh;
    grid-template-columns:1fr;
    border-radius:18px 18px 11px 11px;
  }

  html body .reservation-modal__intro{
    min-height:0;
    display:block;
    padding:28px 58px 22px 24px;
    border-right:0;
    border-bottom:1px solid var(--reservation-modal-line);
  }

  html body .reservation-modal__eyebrow{margin-top:22px}
  html body .reservation-modal__title{font-size:clamp(38px,7vw,54px)}
  html body .reservation-modal__copy{max-width:620px;margin-top:10px;line-height:1.5}
  html body .reservation-modal__hours{margin-top:15px;padding-top:12px}
  html body .reservation-modal__form-shell{padding:22px 20px calc(24px + env(safe-area-inset-bottom))}
  html body .reservation-modal .reservation-form{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
  html body .reservation-modal .field.full,
  html body .reservation-modal .submit-row{grid-column:1/-1!important}
}

@media (max-width:767px){
  html body #menu .party-tabs{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    overflow:visible!important;
  }

  html body #menu .party-tabs button{
    width:100%;
    padding-inline:5px!important;
  }

  html body #menu .featured-combo{
    grid-template-columns:1fr!important;
    min-height:0!important;
  }

  html body #menu .featured-combo figure{
    min-height:240px;
    max-height:310px;
  }

  html body #menu .featured-copy{
    min-height:0!important;
  }

  html body #menu #featuredItems li:nth-child(n+4){
    display:list-item!important;
  }

  html body #menu-combos .combo-row>button{
    width:100%;
  }

  html body .reservation-modal .reservation-form{
    grid-template-columns:1fr!important;
  }

  html body .reservation-modal .field.full,
  html body .reservation-modal .submit-row{
    grid-column:auto!important;
  }

  html body .reservation-modal__intro{
    padding:25px 52px 18px 20px;
  }

  html body .reservation-modal__copy{
    font-size:11px;
  }
}

@media (max-width:700px){
  html body .mobile-reserve{
    left:8px;
    right:8px;
    bottom:max(8px,env(safe-area-inset-bottom));
    min-height:66px;
    border-radius:15px;
  }

  html body .mobile-reserve #mobileReserveButton{
    min-width:104px;
    min-height:46px;
  }
}

@media (max-width:420px){
  html body #menu .party-tabs{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  html body #menu .party-tabs button:last-child{
    grid-column:1/-1!important;
  }

  html body .mobile-reserve{
    gap:8px;
    padding-left:12px;
  }

  html body .mobile-reserve #mobileComboName{
    font-size:8px;
  }

  html body .mobile-reserve #mobileComboPrice{
    font-size:19px;
  }

  html body .mobile-reserve #mobileReserveButton{
    min-width:94px;
    padding-inline:12px;
    font-size:9px;
  }

  html body .reservation-modal__copy,
  html body .reservation-modal__hours{
    display:none;
  }

  html body .reservation-modal__eyebrow{
    margin-top:16px;
  }
}

@media (max-width:1000px) and (prefers-reduced-motion:reduce){
  html body .mobile-reserve,
  html body #menu #featuredImage{
    transition:none!important;
  }
}

/* Full-screen, single-scroll reservation page on phones. */
@media (max-width:767px){
  html body.reservation-modal-open{
    height:100dvh!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }

  html body .reservation-modal{
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    min-height:100svh!important;
    display:block!important;
    padding:0!important;
    overflow:hidden!important;
    background:var(--reservation-modal-surface,#fcf9f3)!important;
  }

  html body .reservation-modal__backdrop{
    display:none!important;
  }

  html body .reservation-modal__panel{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100dvh!important;
    min-height:100svh!important;
    max-height:none!important;
    display:block!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch;
    border:0!important;
    border-radius:0!important;
    background:var(--reservation-modal-surface,#fcf9f3)!important;
    box-shadow:none!important;
    transform:translateY(100%)!important;
    opacity:1!important;
  }

  html body .reservation-modal.is-open .reservation-modal__panel{
    transform:translateY(0)!important;
  }

  html body .reservation-modal__intro{
    min-height:0!important;
    display:block!important;
    padding:calc(22px + env(safe-area-inset-top)) 58px 18px 18px!important;
    overflow:visible!important;
    border:0!important;
    border-bottom:1px solid rgba(168,101,34,.22)!important;
    background:linear-gradient(145deg,#f5edde 0%,#efe7d8 100%)!important;
  }

  html body .reservation-modal__intro::before{
    width:128px!important;
    height:128px!important;
    right:-72px!important;
    bottom:-76px!important;
  }

  html body .reservation-modal__brand{
    font-size:9px!important;
  }

  html body .reservation-modal__eyebrow{
    margin-top:14px!important;
  }

  html body .reservation-modal__title{
    margin-top:8px!important;
    font-size:clamp(34px,10.5vw,44px)!important;
    line-height:.96!important;
  }

  html body .reservation-modal__title br{
    display:none!important;
  }

  html body .reservation-modal__copy{
    display:block!important;
    max-width:560px!important;
    margin-top:9px!important;
    font-size:11px!important;
    line-height:1.45!important;
  }

  html body .reservation-modal__hours{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    margin-top:12px!important;
    padding-top:10px!important;
  }

  html body .reservation-modal__hours strong{
    text-align:right!important;
    font-size:11px!important;
  }

  html body .reservation-modal__form-shell{
    min-height:0!important;
    overflow:visible!important;
    padding:18px 15px calc(28px + env(safe-area-inset-bottom))!important;
    background:var(--reservation-modal-surface,#fcf9f3)!important;
  }

  html body .reservation-modal__form-host{
    min-width:0!important;
  }

  html body .reservation-modal .reservation-form{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }

  html body .reservation-modal .field,
  html body .reservation-modal .field.full,
  html body .reservation-modal .field--full,
  html body .reservation-modal .reservation-experience,
  html body .reservation-modal .reservation-selected-feast,
  html body .reservation-modal .submit-row{
    grid-column:auto!important;
  }

  html body .reservation-modal .field input,
  html body .reservation-modal .field select,
  html body .reservation-modal .field textarea{
    font-size:16px!important;
  }

  html body .reservation-modal .field input,
  html body .reservation-modal .field select{
    height:52px!important;
    min-height:52px!important;
  }

  html body .reservation-modal .field textarea{
    min-height:92px!important;
  }

  html body .reservation-experience__options{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  html body .reservation-experience__content{
    min-height:66px!important;
  }

  html body .reservation-selected-feast{
    grid-template-columns:1fr auto!important;
  }

  html body .reservation-selected-feast__label{
    grid-column:1/-1!important;
  }

  html body .reservation-selected-feast strong{
    white-space:normal!important;
  }

  html body .reservation-modal .reservation-submit-actions{
    grid-template-columns:1fr!important;
  }

  html body .reservation-modal .reservation-submit-actions a{
    min-height:52px!important;
    font-size:12px!important;
    touch-action:manipulation;
  }

  html body .reservation-modal__confirmation{
    margin:16px 0 0!important;
    padding-bottom:4px!important;
    font-size:10px!important;
  }

  html body .reservation-modal__close{
    position:fixed!important;
    z-index:20010!important;
    top:calc(10px + env(safe-area-inset-top))!important;
    right:12px!important;
    width:40px!important;
    height:40px!important;
    border-color:rgba(168,101,34,.34)!important;
    background:rgba(252,249,243,.96)!important;
    box-shadow:0 6px 20px rgba(0,0,0,.12)!important;
  }
}

@media (max-width:480px){
  html body .reservation-experience__options{
    grid-template-columns:1fr!important;
  }

  html body .reservation-modal__intro{
    padding-left:15px!important;
  }

  html body .reservation-modal__form-shell{
    padding-left:12px!important;
    padding-right:12px!important;
  }
}
