/* Shared dialog lifecycle; dish cards keep their centered surface. */
.tm-site-modal{--ink:#0b282e;--line:#d5e2e5;--tint:#f0f6f7;position:fixed;inset:0;padding:24px;border:0;margin:0;width:100%;height:100dvh;max-width:none;max-height:none;background:transparent;color:var(--ink);overflow:hidden;box-sizing:border-box;font:400 17px/1.55 Gilroy,Arial,sans-serif}
.tm-site-modal *{box-sizing:border-box}
.tm-site-modal::backdrop{background:transparent;backdrop-filter:none}
.tm-site-modal[open]{display:grid;place-items:center}
.tm-site-modal .modal-surface{position:relative;max-width:920px;width:100%;max-height:calc(100dvh - 48px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 16px 60px #0b282e30;transform-origin:0 0}
.tm-site-modal .modal-close{position:absolute;top:13px;right:13px;z-index:3;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#fff;color:#004659;box-shadow:0 2px 12px #0b282e0b;font:400 28px/1 Gilroy,Arial,sans-serif;cursor:pointer;touch-action:manipulation}
.tm-site-modal .modal-close:hover{background:var(--tint)}
.tm-site-modal :focus-visible{outline:3px solid #009aaf;outline-offset:-3px}
.tm-site-modal .modal-morph-proxy{position:fixed;z-index:3;pointer-events:none;overflow:hidden;background:var(--tint);display:none}
.tm-site-modal .modal-morph-proxy img{display:block;width:100%;height:100%;object-fit:cover;max-width:none}
.tm-site-modal:is([data-phase=opening],[data-phase=closing]) [data-modal-image]{visibility:hidden}
@media(max-width:700px){.tm-site-modal{padding:18px}.tm-site-modal .modal-surface{max-height:calc(100dvh - 36px);border-radius:16px}.tm-site-modal .modal-close{top:10px;right:10px;width:40px;height:40px}}

/* Interior photographs fill the viewport. Oversized photos can be panned;
   the whole-photo toggle preserves an uncropped overview at any orientation. */
.tm-photo-modal{padding:0;background:#071a20;color:#fff}
.tm-photo-modal::backdrop{background:#071a20}
.tm-photo-modal[open]{display:block}
.tm-photo-modal .modal-surface{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;padding:0;border:0;border-radius:0;overflow:hidden;background:#071a20;box-shadow:none}
.tm-photo-modal .tm-lightbox-image{position:absolute;inset:0;display:block;width:100%;height:100%;aspect-ratio:auto;min-height:0;border-radius:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;scrollbar-width:none;background:#071a20}
.tm-photo-modal .tm-lightbox-image::-webkit-scrollbar{display:none}
.tm-photo-modal .tm-lightbox-image img{display:block;width:100%;height:100%;min-height:0;max-width:none;max-height:none;object-fit:contain;user-select:none;-webkit-user-drag:none}
.tm-photo-modal[data-photo-view=fill] .tm-lightbox-image{cursor:grab}
.tm-photo-modal[data-photo-dragging] .tm-lightbox-image{cursor:grabbing}
.tm-photo-modal .modal-morph-proxy img{object-fit:cover}
.tm-photo-modal[data-photo-view=fit] .modal-morph-proxy img{object-fit:contain}
.tm-photo-modal .tm-photo-controls{position:absolute;inset:0;pointer-events:none}
.tm-photo-modal .tm-photo-controls .tm-gallery-control{position:absolute;top:50%;transform:translateY(-50%);pointer-events:auto}
.tm-photo-modal .tm-lightbox-prev{left:max(8px,env(safe-area-inset-left))}
.tm-photo-modal .tm-lightbox-next{right:max(8px,env(safe-area-inset-right))}
.tm-photo-modal .tm-lightbox-counter{position:absolute;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);margin:0;padding:3px 10px;border-radius:20px;background:#0b282ecf;color:#fff;font:400 13px/1.5 Gilroy,Arial,sans-serif;white-space:nowrap}
.tm-photo-modal .modal-close{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:44px;height:44px;background:#0b282ecf;color:#fff;box-shadow:none}
.tm-photo-modal .tm-photo-fit{position:absolute;z-index:2;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));min-height:44px;max-width:calc(100% - 96px);padding:8px 14px;border:0;border-radius:24px;background:#0b282ecf;color:#fff;font:500 14px/1.4 Gilroy,Arial,sans-serif;cursor:pointer;touch-action:manipulation;pointer-events:auto}
.tm-photo-modal .modal-close:hover,.tm-photo-modal .tm-photo-fit:hover{background:#0b282ef2}
