/* ============================================
   TULUMB — MENU PAGE STYLESHEET
   ============================================ */
:root{
  --ivory:#F8F5EE;--sand:#DCC9A3;--taupe:#B79D7C;
  --sage:#6D7A63;--charcoal:#2E2E2E;--bronze:#8A6A44;
  --font-h:"Playfair Display",Georgia,serif;
  --font-sub:"Cormorant Garamond",Georgia,serif;
  --font-b:"Inter",Arial,sans-serif;
  --sh:0 28px 70px rgba(46,46,46,.14);
  --ease:cubic-bezier(.22,1,.36,1);
  --header-h:76px;
  --cat-bar-h:48px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{background:var(--ivory);color:var(--charcoal);font-family:var(--font-b);line-height:1.65;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input{font:inherit;border:0;outline:0;cursor:pointer}
::selection{background:var(--bronze);color:var(--ivory)}
h1,h2,h3{font-family:var(--font-h);font-weight:500;line-height:1.06;margin:0}
h1{font-size:clamp(3rem,9vw,7rem);letter-spacing:-.045em}
h2{font-size:clamp(2rem,5vw,4.2rem);letter-spacing:-.03em}
h3{font-size:1.55rem}
.kicker{font-size:.74rem;font-weight:800;letter-spacing:.28em;text-transform:uppercase;color:var(--taupe)}
.kicker--dark{color:var(--bronze)}

/* ===== HEADER ===== */
.mh{position:sticky;top:0;z-index:40;background:rgba(248,245,238,.96);backdrop-filter:blur(18px);border-bottom:1px solid rgba(183,157,124,.14);height:var(--header-h)}
.mh__inner{width:min(1260px,100% - 32px);margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:100%;gap:16px}
.logo{display:flex;flex-direction:column;line-height:1}
.logo__word{font-family:var(--font-h);font-size:clamp(1.7rem,4vw,2.5rem);font-weight:600;text-transform:lowercase;letter-spacing:.02em}
.logo__tag{margin-top:5px;font-size:.58rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.mh__nav{display:flex;align-items:center;gap:14px}
.mh__link{padding:10px 14px;border:1px solid rgba(46,46,46,.16);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;transition:all .2s}
.mh__link:hover{border-color:var(--bronze);color:var(--bronze)}

/* Cart Badge */
.cart-badge{position:relative;display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--charcoal);color:var(--ivory);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;transition:background .2s}
.cart-badge:hover{background:var(--bronze)}
.cart-badge span{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:var(--bronze);font-size:.65rem;font-weight:800;transition:transform .25s}
.cart-badge span.bump{animation:bump .35s}
@keyframes bump{0%{transform:scale(1)}50%{transform:scale(1.35)}100%{transform:scale(1)}}

/* ===== HERO ===== */
.menu-hero{min-height:52vh;display:grid;place-items:center;padding:100px 20px 60px;background:linear-gradient(180deg,rgba(46,46,46,.6),rgba(46,46,46,.76)),url('image/tulumbresort (20).jpeg') center/cover;color:var(--ivory);text-align:center}
.menu-hero__inner{width:min(900px,100%)}
.menu-hero__sub{width:min(680px,100%);margin:22px auto 0;font-family:var(--font-sub);font-size:clamp(1.2rem,2.6vw,1.6rem);color:rgba(248,245,238,.84)}

/* ===== FILTERS ===== */
/* Search Bar Container */
.search-container{position:relative;width:100%;max-width:440px;margin:24px auto 16px;padding:0 12px}
.search-input{width:100%;padding:11px 16px 11px 40px;border:1px solid rgba(183,157,124,.3);background:transparent;color:var(--charcoal);font-family:var(--font-main);font-size:.82rem;border-radius:4px;transition:border-color .2s,box-shadow .2s;letter-spacing:.03em}
.search-input:focus{outline:0;border-color:var(--bronze);box-shadow:0 0 10px rgba(183,157,124,.12)}
.search-icon{position:absolute;left:24px;top:50%;transform:translateY(-50%);color:var(--bronze);display:flex;align-items:center;pointer-events:none}

.filters{background:rgba(248,245,238,.96);border-bottom:1px solid rgba(183,157,124,.12);display:flex;justify-content:center;gap:8px;padding:14px 16px;margin-bottom:16px}
.fbtn{padding:11px 18px;border:1px solid rgba(46,46,46,.14);background:0;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;gap:7px;transition:all .2s}
.fbtn.active{background:var(--charcoal);color:var(--ivory);border-color:var(--charcoal)}
.fbtn--veg.active{background:var(--sage);border-color:var(--sage)}
.fbtn--nv.active{background:var(--bronze);border-color:var(--bronze)}
.dot{width:10px;height:10px;border-radius:2px;border:2px solid currentColor}
.dot--veg{border-color:var(--sage)}.fbtn--veg.active .dot--veg{border-color:var(--ivory)}
.dot--nv{border-color:var(--bronze)}.fbtn--nv.active .dot--nv{border-color:var(--ivory)}

/* ===== LAYOUT ===== */
.menu-body{width:min(1260px,100% - 28px);margin:0 auto}
.menu-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px;padding:44px 0 90px}

/* Sidebar */
.sidebar{position:sticky;top:140px;align-self:start;display:flex;flex-direction:column;gap:3px}
.sidebar button{width:100%;padding:13px 16px;text-align:left;background:0;border:0;border-left:3px solid transparent;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(46,46,46,.5);transition:all .2s}
.sidebar button:hover,.sidebar button.active{background:rgba(220,201,163,.26);border-left-color:var(--bronze);color:var(--charcoal)}

/* Category block & Banner */
.category-block {
  margin-bottom: 70px;
  scroll-margin-top: 160px;
}
.cat-banner{position:relative;height:240px;overflow:hidden;margin-bottom:32px;display:grid;place-items:center;text-align:center;color:var(--ivory);border-radius:6px}
.cat-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .4s}
.cat-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(46,46,46,.22),rgba(46,46,46,.66))}
.cat-banner div{position:relative;z-index:1;padding:20px}

/* Sub-categories bar */
.sub-categories-bar {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 14px 0;
  background: var(--ivory);
  border-bottom: 1px solid rgba(183,157,124,.12);
  margin-bottom: 24px;
  scrollbar-width: none;
  position: sticky;
  top: var(--header-h);
  z-index: 25;
}
.sub-categories-bar::-webkit-scrollbar {
  display: none;
}

.sub-cat-pill {
  flex: 0 0 auto;
  padding: 7px 16px;
  background: transparent;
  border: 1px solid rgba(183,157,124,.35);
  border-radius: 99px;
  font-family: var(--font-b);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(46,46,46,.6);
  transition: all 0.2s ease;
}
.sub-cat-pill:hover {
  border-color: var(--bronze);
  color: var(--charcoal);
  background: rgba(220,201,163,.1);
}
.sub-cat-pill.active {
  background: var(--bronze);
  border-color: var(--bronze);
  color: var(--ivory);
  box-shadow: 0 4px 10px rgba(138,106,68,.15);
}

/* Groups */
.groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 52px}
.subgroup{min-width:0;scroll-margin-top:135px}
.sg-head{display:flex;align-items:center;gap:10px;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid rgba(183,157,124,.24)}
.marker{width:13px;height:13px;border:2px solid var(--sage);flex-shrink:0;border-radius:2px}
.marker--nv{border-color:var(--bronze)}

/* Dish Row & Staggered Fade */
@keyframes dishFadeIn {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
.dish{display:grid;grid-template-columns:68px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 10px;border-bottom:1px solid rgba(183,157,124,.1);cursor:pointer;border-radius:4px;opacity:0;animation:dishFadeIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;transition:background .25s,transform .25s,box-shadow .25s}
.dish:hover{background:rgba(220,201,163,.16);box-shadow:0 6px 20px rgba(183,157,124,.12);transform:translateY(-3px)}
.dish__thumb-wrapper{position:relative;width:68px;height:68px;border-radius:4px;overflow:hidden;background:rgba(220,201,163,.3)}
.dish__thumb{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.dish:hover .dish__thumb{transform:scale(1.12)}
.dish__hover-overlay{position:absolute;inset:0;background:rgba(46,46,46,.4);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .25s}
.dish:hover .dish__hover-overlay{opacity:1}
.dish__hover-overlay span{color:var(--ivory);font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}

.dish__details{display:flex;flex-direction:column;gap:3px;min-width:0}
.dish__name-row{display:flex;align-items:center;min-width:0}
.dish__name{font-family:var(--font-sub);font-size:1.25rem;font-weight:600;line-height:1.18;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
.dish__meta{font-size:.78rem;font-style:italic;color:rgba(46,46,46,.48);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
.dish__price{font-family:var(--font-h);font-size:1.05rem;white-space:nowrap}

/* Veg / Non-veg Type Dots */
.type-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 12px;
  height: 12px;
  border: 1px solid currentColor;
  padding: 1px;
  margin-right: 8px;
  flex-shrink: 0;
  border-radius: 1px;
}
.type-dot::after {
  content: '';
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}
.type-dot.marker--veg {
  color: #2e7d32;
}
.type-dot.marker--nonveg {
  color: #c62828;
}

.menu-footer{grid-column:1/-1;text-align:center;margin-top:60px;padding-top:40px;border-top:1px solid rgba(183,157,124,.18)}
.menu-footer p{font-family:var(--font-sub);font-size:1.7rem;font-style:italic;color:rgba(46,46,46,.7)}
.menu-footer span{display:block;margin-top:8px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(46,46,46,.4)}

/* ===== DISH MODAL ===== */
.modal{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}
.modal.open{opacity:1;pointer-events:auto}
.modal__bg{position:absolute;inset:0;background:rgba(46,46,46,.65);backdrop-filter:blur(8px)}
.modal__card{position:relative;width:min(420px,calc(100% - 24px));max-height:calc(100vh - 40px);overflow-y:auto;background:var(--ivory);box-shadow:var(--sh);transform:scale(.95) translateY(12px);transition:transform .3s var(--ease)}
.modal.open .modal__card{transform:scale(1) translateY(0)}
.modal__x{position:absolute;top:10px;right:10px;z-index:2;width:32px;height:32px;border-radius:50%;background:rgba(248,245,238,.92);display:flex;align-items:center;justify-content:center;font-size:.85rem;transition:background .2s}
.modal__x:hover{background:var(--charcoal);color:var(--ivory)}
.modal__img{height:190px;overflow:hidden}
.modal__img img{width:100%;height:100%;object-fit:cover}
.modal__body{padding:22px}
.modal__cat{margin-bottom:6px;font-size:.65rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze)}
.modal__title{font-size:clamp(1.5rem,3.8vw,2.1rem);margin-bottom:4px}
.modal__desc{margin:8px 0;font-family:var(--font-sub);font-size:1.15rem;font-style:italic;color:rgba(46,46,46,.68)}
.modal__copy{font-size:.84rem;color:rgba(46,46,46,.56);font-weight:300;line-height:1.6;margin-bottom:4px}
.modal__price-row{display:flex;justify-content:space-between;align-items:end;margin:16px 0 12px;padding-top:12px;border-top:1px solid rgba(183,157,124,.2)}
.modal__price-row span{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(46,46,46,.5)}
.modal__price-row strong{display:block;font-family:var(--font-h);font-size:1.8rem;font-weight:500;margin-top:2px}

/* Quantity */
.modal__qty{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:16px;border:1px solid rgba(46,46,46,.16);width:fit-content;margin-left:auto;margin-right:auto}
.qty-btn{width:38px;height:38px;background:0;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:background .15s}
.qty-btn:hover{background:rgba(220,201,163,.3)}
.modal__qty span{width:38px;text-align:center;font-weight:700;font-size:.95rem}

/* Add Button */
.modal__add{width:100%;min-height:46px;background:var(--charcoal);color:var(--ivory);font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;transition:background .2s}
.modal__add:hover{background:var(--bronze)}

/* ===== CART DRAWER ===== */
.drawer{position:fixed;inset:0;z-index:85;display:flex;opacity:0;pointer-events:none;transition:opacity .25s}
.drawer.open{opacity:1;pointer-events:auto}
.drawer__bg{position:absolute;inset:0;background:rgba(46,46,46,.58);backdrop-filter:blur(6px)}
.drawer__panel{position:absolute;inset:0 0 0 auto;width:min(520px,100%);display:flex;flex-direction:column;background:var(--ivory);box-shadow:var(--sh);transform:translateX(100%);transition:transform .35s var(--ease)}
.drawer.open .drawer__panel{transform:translateX(0)}
.drawer__head{display:flex;align-items:center;justify-content:space-between;padding:24px 26px;border-bottom:1px solid rgba(183,157,124,.16)}
.drawer__close{width:42px;height:42px;border-radius:50%;border:1px solid rgba(46,46,46,.16);background:0;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:all .2s}
.drawer__close:hover{background:var(--charcoal);color:var(--ivory)}
.drawer__items{flex:1;overflow-y:auto;padding:20px 26px}

/* Empty State */
.empty-state{padding:60px 10px;text-align:center}
.empty-state h3{font-size:1.6rem;margin-bottom:10px}
.empty-state p{color:rgba(46,46,46,.55);font-size:.92rem}
.empty-state .go-btn{margin-top:22px;display:inline-flex;align-items:center;justify-content:center;padding:14px 26px;background:var(--charcoal);color:var(--ivory);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}

/* Cart Item */
.ci{display:grid;grid-template-columns:80px minmax(0,1fr);gap:14px;padding:16px 0;border-bottom:1px solid rgba(183,157,124,.12)}
.ci img{width:80px;height:80px;object-fit:cover;border-radius:4px}
.ci h3{font-family:var(--font-sub);font-size:1.2rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ci__meta{margin:3px 0 10px;font-size:.78rem;color:rgba(46,46,46,.5);font-style:italic}
.ci__bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ci__qty{display:inline-grid;grid-template-columns:32px 36px 32px;border:1px solid rgba(46,46,46,.14)}
.ci__qty button{background:0;font-size:1rem;display:flex;align-items:center;justify-content:center;height:34px;transition:background .15s}
.ci__qty button:hover{background:rgba(220,201,163,.3)}
.ci__qty span{display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.88rem}
.ci__price{font-family:var(--font-h);font-size:1.08rem}
.ci__remove{margin-top:6px;background:0;color:var(--bronze);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:0;transition:color .15s}
.ci__remove:hover{color:var(--charcoal)}

/* Summary Footer */
.drawer__foot{padding:22px 26px;border-top:1px solid rgba(183,157,124,.16);background:rgba(220,201,163,.14)}
.sum-row{display:flex;justify-content:space-between;margin:6px 0;font-size:.92rem;color:rgba(46,46,46,.62)}
.sum-row.total{margin-top:12px;padding-top:12px;border-top:1px solid rgba(46,46,46,.12);color:var(--charcoal);font-family:var(--font-h);font-size:1.4rem;font-weight:500}
.order-btn{width:100%;min-height:52px;margin-top:14px;background:var(--sage);color:var(--ivory);font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;transition:background .2s}
.order-btn:hover{background:var(--charcoal)}
.clear-btn{width:100%;margin-top:8px;padding:12px;background:0;border:1px solid rgba(46,46,46,.14);font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(46,46,46,.55);transition:all .2s}
.clear-btn:hover{border-color:var(--bronze);color:var(--bronze)}

/* Floating Cart */
.float-cart{position:fixed;left:22px;bottom:22px;z-index:35;display:none;align-items:center;gap:8px;padding:14px 22px;border-radius:999px;background:var(--charcoal);color:var(--ivory);box-shadow:0 14px 38px rgba(0,0,0,.22);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;border:0;transition:background .2s,transform .2s}
.float-cart.show{display:inline-flex}
.float-cart:hover{background:var(--bronze);transform:scale(1.06)}
.float-cart span{min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bronze);font-size:.65rem;font-weight:800;padding:0 4px}

/* Success Toast */
.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(80px);z-index:100;padding:16px 32px;background:var(--sage);color:var(--ivory);font-size:.82rem;font-weight:600;letter-spacing:.08em;border-radius:4px;box-shadow:0 12px 40px rgba(0,0,0,.2);transition:transform .4s var(--ease),opacity .4s;opacity:0;pointer-events:none}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1}

/* ===== RESPONSIVE ===== */
@media(max-width:980px){
  :root{
    --cat-bar-h:62px;
  }
  .menu-layout{grid-template-columns:1fr;gap:20px}
  .sidebar{position:sticky;top:var(--header-h);z-index:35;background:var(--ivory);flex-direction:row;overflow-x:auto;padding:12px 16px;gap:8px;border-bottom:1px solid rgba(183,157,124,.14);box-shadow:0 4px 12px rgba(46,46,46,0.04);scrollbar-width:none}
  .sidebar::-webkit-scrollbar{display:none}
  .sidebar button{flex:0 0 auto;width:auto;border-left:0;border-bottom:2px solid transparent;padding:8px 12px}
  .sidebar button.active,.sidebar button:hover{border-bottom-color:var(--bronze);border-left:0}
  .groups{grid-template-columns:1fr;gap:28px}
  .menu-main{position:relative;z-index:10}
  .filters{position:relative;top:auto;z-index:10;background:transparent;backdrop-filter:none;padding:10px 16px;margin-bottom:8px}
  .subgroup{scroll-margin-top:175px}
  .sub-categories-bar {
    position: sticky;
    top: calc(var(--header-h) + var(--cat-bar-h) - 1px);
    z-index: 25;
    padding: 10px 16px;
    margin-left: -16px;
    margin-right: -16px;
    background: rgba(248, 245, 238, 0.98);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(183,157,124,.14);
  }
}
@media(max-width:640px){
  :root{
    --header-h:64px;
    --cat-bar-h:62px;
  }
  .mh__inner{flex-wrap:nowrap;padding:0;min-height:auto}
  .logo__tag{display:none}
  .mh__nav{width:auto;justify-content:flex-end;gap:8px}
  .mh__link,.cart-badge{padding:9px 10px;font-size:.66rem}
  .menu-hero{min-height:42vh;padding:80px 14px 40px}
  .filters{flex-wrap:wrap;gap:6px;top:auto;position:relative}
  .cat-banner{height:200px}
  .dish{grid-template-columns:58px minmax(0,1fr)}
  .dish__thumb{width:58px;height:58px}
  .dish__price{grid-column:2;justify-self:start;margin-top:-6px}
  .drawer__panel{width:100%}
}

/* Standalone Menu Page Container */
.menu-page {
  background: var(--ivory);
  min-height: 100vh;
}

/* WhatsApp Button */
.wa-btn{position:fixed;right:22px;bottom:22px;z-index:55;display:flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;box-shadow:0 14px 38px rgba(0,0,0,.24);transition:transform .25s}
.wa-btn:hover{transform:scale(1.12)}

/* Cart Bump Animation */
@keyframes cartBump {
  0% { transform: scale(1); }
  30% { transform: scale(1.25); }
  50% { transform: scale(0.88); }
  70% { transform: scale(1.08); }
  100% { transform: scale(1); }
}
.cart-badge.bump, .float-cart.bump {
  animation: cartBump 0.45s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
