/* Dharahara – menu pages (Wolt style, display only). Layout lives in the Elementor classes dh-wm-* / dh-wc-*. */
body .dh-wm .dh-wm-nav { position: sticky; top: var(--dh-top, 76px); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); transition: box-shadow .3s ease; }
body .dh-wm .dh-wm-nav.is-stuck { box-shadow: 0 12px 28px rgba(26, 23, 32, .08); }
.dh-wm-tabs { scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
.dh-wm-tabs::-webkit-scrollbar { display: none; }
body .dh-wm .dh-wm-tab.is-active, body .dh-wm .dh-wm-tab.is-active:hover { background-color: var(--dh-ink, #1A1720); color: #FFFFFF; }
.dh-wm .dh-wm-tab[hidden], .dh-wm .dh-wm-sec[hidden], .dh-wm [hidden].e-collection-loop-item, .dh-wm .dh-wc-card[hidden], .dh-wm .dh-line[hidden] { display: none !important; }
.dh-wm-sec { scroll-margin-top: calc(var(--dh-top, 76px) + 80px); }
.dh-wm-search { flex: 0 0 280px; display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 16px; border-radius: 999px; background: #FFFFFF; border: 1px solid var(--dh-line, #E2D9CC); color: var(--dh-muted, #6B6370); transition: box-shadow .25s ease, border-color .25s ease; }
.dh-wm-search svg { width: 19px; height: 19px; flex: none; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
html body .dh-wm-search input[type="search"], html body .dh-wm-search input[type="search"]:focus { flex: 1; min-width: 0; height: auto; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; outline: none; font: 500 15px/1.2 Manrope, system-ui, sans-serif; color: var(--dh-ink, #1A1720); -webkit-appearance: none; appearance: none; width: auto; }
.dh-wm-search:focus-within { border-color: var(--dh-ink, #1A1720); box-shadow: 0 0 0 3px rgba(26, 23, 32, .08); }
.dh-wm-empty { width: 100%; max-width: 1240px; margin: 40px auto 0; font: 500 17px/1.5 Manrope, sans-serif; color: var(--dh-muted, #6B6370); }
@media (max-width: 1024px) { .dh-wm-search { flex-basis: 220px; } }
@media (max-width: 767px) { .dh-wm-search { order: -1; flex: 1 1 100%; height: 42px; } }

/* Popular row = swipe carousel */
body .dh-wm .dh-wm-row { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc((100% - 32px) / 3); scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.dh-wm-row::-webkit-scrollbar { display: none; }
body .dh-wm .dh-wm-row > * { scroll-snap-align: start; }
@media (max-width: 1024px) { body .dh-wm .dh-wm-row { grid-auto-columns: calc((100% - 16px) / 2); } }
@media (max-width: 767px) { body .dh-wm .dh-wm-row { grid-auto-columns: 86%; } }

/* Cards: equal height, text clamped like Wolt */
.e-collection-loop-item:has(> .dh-wc-card), .dh-wc-card { height: 100%; }
.dh-wc-card { outline: none; position: relative; }
.dh-wc-card:focus-visible { box-shadow: 0 0 0 3px var(--dh-ink, #1A1720); }
.dh-wc-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; flex: none; }
body .dh-wc-card .dh-wc-desc { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; flex: none; }
body .dh-wc-card.is-long .dh-wc-desc, body .dh-wc-card.has-kind .dh-wc-desc { -webkit-line-clamp: 2; }
body .dh-wc-card.has-kind.is-long .dh-wc-desc { -webkit-line-clamp: 1; }
.dh-wc-badge:empty, .dh-wc-kind:empty, .dh-wc-tags:empty { display: none; }
body .dh-wc-card .dh-wc-full { display: none; }
.dh-wc-card .dh-wc-img { pointer-events: none; transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
@media (hover: hover) { .dh-wc-card:hover .dh-wc-img { transform: scale(1.06) rotate(-2deg); } }
/* a dish without a photo: the text uses the whole card */
body .dh-wc-card img.dh-wc-img:not([src]), body .dh-wc-card img.dh-wc-img[src=""], body .dh-wc-card.no-img .dh-wc-img { display: none; }
/* "+" hint in the corner: tap for details */
body .dh-wc-card::after { content: "+"; position: absolute; right: 10px; bottom: 10px; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--dh-stone, #F6F2EC); color: var(--dh-ink, #1A1720); font: 700 18px/1 Manrope, sans-serif; transition: background-color .25s ease, color .25s ease, transform .35s cubic-bezier(.2, .9, .3, 1.4); }
body .dh-wc-card:not(.no-img)::after { right: 22px; bottom: 22px; background: #FFFFFF; box-shadow: 0 4px 12px rgba(26, 23, 32, .15); }
@media (hover: hover) { body .dh-wc-card:hover::after { background: var(--dh-red, #C8231E); color: #FFFFFF; transform: rotate(90deg); } }

/* Dish sheet */
.dh-modal { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(22, 19, 26, .55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); animation: dh-fade .2s ease-out; }
.dh-modal[hidden] { display: none; }
.dh-modal.is-closing { animation: dh-fade-out .26s ease-in forwards; }
.dh-modal * { box-sizing: border-box; }
.dh-modal .dh-dialog { position: relative; width: min(560px, 100%); max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; background: #FFFFFF; border-radius: 22px; box-shadow: 0 30px 70px rgba(22, 19, 26, .35); outline: none; animation: dh-rise .3s cubic-bezier(.2, .9, .3, 1.1); transition: transform .3s cubic-bezier(.2, .9, .3, 1); }
.dh-modal.is-closing .dh-dialog { animation: dh-sink .26s ease-in forwards; }
body .dh-modal button { margin: 0; border: 0; font: inherit; text-transform: none; letter-spacing: normal; box-shadow: none; }
.dh-modal svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.dh-grab { display: none; }
body .dh-modal .dh-close { position: sticky; top: 12px; margin: 12px 12px -52px auto; z-index: 2; width: 40px; height: 40px; display: grid; place-items: center; padding: 0; border-radius: 50%; background: rgba(255, 255, 255, .94); color: var(--dh-ink, #1A1720); box-shadow: 0 2px 10px rgba(0, 0, 0, .14); cursor: pointer; transition: transform .3s ease; }
body .dh-modal .dh-close:hover { transform: rotate(90deg); background: #FFFFFF; }
.dh-modal .dh-m-img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--dh-stone, #F6F2EC); }
.dh-modal .dh-m-body { padding: 24px 26px 22px; border-bottom: 1px solid var(--dh-line, #E2D9CC); font-family: Manrope, system-ui, sans-serif; }
.dh-modal .dh-m-body.no-img { padding-top: 66px; }
.dh-modal .dh-m-kind { margin: 0 0 6px; font: 700 13px/1.4 'Big Shoulders Display', sans-serif; letter-spacing: .16em; text-transform: uppercase; color: var(--dh-red, #C8231E); }
.dh-modal .dh-m-name { margin: 0 0 12px; font: 800 40px/1 'Big Shoulders Display', system-ui, sans-serif; text-transform: uppercase; color: var(--dh-ink, #1A1720); letter-spacing: 0; }
.dh-modal .dh-m-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.dh-modal .dh-m-price { font-size: 18px; font-weight: 800; color: var(--dh-ink, #1A1720); margin-right: 4px; }
.dh-modal .dh-m-tags { padding: 5px 9px; border-radius: 999px; background: var(--dh-stone, #F6F2EC); color: var(--dh-muted, #6B6370); font-size: 12px; font-weight: 800; }
.dh-modal .dh-m-badge { padding: 5px 9px; border-radius: 999px; background: var(--dh-red, #C8231E); color: #FFFFFF; font-size: 12px; font-weight: 800; line-height: 1; }
.dh-modal .dh-m-desc { margin-top: 16px; font-size: 16px; line-height: 1.6; color: var(--dh-ink, #1A1720); }
.dh-modal .dh-m-desc p { margin: 0 0 .7em; }
.dh-modal .dh-m-desc em { color: var(--dh-muted, #6B6370); }
.dh-modal .dh-m-note { margin: 6px 0 18px; font-size: 12px; line-height: 1.5; color: var(--dh-muted, #6B6370); }
.dh-modal .dh-m-order { display: flex; align-items: center; justify-content: center; width: 100%; padding: 16px 20px; border-radius: 999px; background: var(--dh-red, #C8231E); color: #FFFFFF; font: 800 15px/1 Manrope, sans-serif; text-decoration: none; transition: background-color .25s ease, transform .25s ease; }
.dh-modal .dh-m-order:hover { background: var(--dh-red-deep, #9C1814); color: #FFFFFF; }
.dh-modal .dh-m-order:active { transform: scale(.97); }
.dh-modal .dh-m-related { padding: 20px 26px 24px; }
.dh-modal .dh-m-related h3 { margin: 0 0 14px; font: 800 26px/1 'Big Shoulders Display', system-ui, sans-serif; text-transform: uppercase; color: var(--dh-ink, #1A1720); }
.dh-modal .dh-m-rel-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.dh-modal .dh-rel { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: #FFFFFF; border: 1px solid var(--dh-line, #E2D9CC); cursor: pointer; outline: none; transition: transform .3s ease, border-color .3s ease; }
.dh-modal .dh-rel:hover { transform: translateY(-3px); border-color: var(--dh-ink, #1A1720); }
.dh-modal .dh-rel:focus-visible { box-shadow: 0 0 0 3px var(--dh-ink, #1A1720); }
.dh-modal .dh-rel-media { height: 120px; background: var(--dh-sand, #ECE3D6); display: grid; place-items: center; }
.dh-modal .dh-rel-media span { font: 900 54px/1 'Big Shoulders Display', sans-serif; color: rgba(26, 23, 32, .18); }
.dh-modal .dh-rel-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dh-modal .dh-rel-text { padding: 10px 12px 12px; display: flex; flex-direction: column; gap: 3px; font-family: Manrope, sans-serif; }
.dh-modal .dh-rel-name { font-size: 14px; font-weight: 800; line-height: 1.25; color: var(--dh-ink, #1A1720); }
.dh-modal .dh-rel-price { font-size: 14px; color: var(--dh-muted, #6B6370); }
html.dh-lock { overflow: hidden; }
@keyframes dh-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes dh-fade-out { to { opacity: 0; } }
@keyframes dh-rise { from { opacity: 0; transform: translateY(24px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes dh-sink { to { opacity: 0; transform: translateY(24px) scale(.97); } }
@media (max-width: 767px) {
	/* phones: bottom sheet that slides up, pull down to close */
	.dh-modal { align-items: flex-end; padding: 0; }
	.dh-modal .dh-dialog { width: 100%; max-height: 92dvh; border-radius: 24px 24px 0 0; animation: dh-sheet .42s cubic-bezier(.2, .9, .3, 1); }
	.dh-modal.is-closing .dh-dialog { animation: dh-sheet-out .26s ease-in forwards; }
	.dh-grab { display: block; position: sticky; top: 0; z-index: 3; width: 44px; height: 5px; margin: 8px auto -13px; border-radius: 999px; background: rgba(26, 23, 32, .25); }
	.dh-modal .dh-m-body, .dh-modal .dh-m-related { padding-left: 18px; padding-right: 18px; }
	.dh-modal .dh-m-name { font-size: 34px; }
	.dh-modal .dh-rel-media { height: 100px; }
}
@keyframes dh-sheet { from { transform: translateY(100%); } to { transform: none; } }
@keyframes dh-sheet-out { to { transform: translateY(100%); } }
@media (prefers-reduced-motion: reduce) { .dh-modal, .dh-modal .dh-dialog { animation: none !important; } }
