/* Shared by the public site and the private desk. */
:root {
  color-scheme: light;
  --paper: #fffaf2;
  --paper-2: #f4ebdd;
  --ink: #392b22;
  --muted: #6b5845;
  --rule: #d9cbbc;
  --night: #38291f;
  --wine: #694527;
  --brass: #78572c;
  --gold: #efd5a1;
  --on-dark: #fff6e9;
  --pale: var(--on-dark);
  --dark-rule: #796347;
  --dark-hover: #4a3524;
  --badge: rgb(53 37 23 / .91);
  --wash: #f5eae0;
  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --display: var(--serif);
  --sans: "Manrope", system-ui, "Segoe UI", Arial, sans-serif;
  --title-type: 560 clamp(31px, 7.5vw, 40px)/1.04 var(--display);
  --price-type: 650 clamp(20px, 4.8vw, 23px)/1.25 var(--sans);
  --sheet-radius: 24px;
}
.dis-delivery { max-inline-size: 36ch; margin: 12px auto; color: var(--muted); font-size: .875rem; line-height: 1.5; }
.language-toggle { white-space:nowrap; font:600 12px var(--sans); color:var(--gold); }
.language-toggle span { opacity:.6; font-weight:400; }
.dialog-language { position:absolute; z-index:6; top:12px; left:12px; border:1px solid var(--rule); padding:9px 12px; border-radius:999px; background:var(--paper); color:var(--brass); }
.contact-channels[hidden] { display:none; }
.miras-contact .contact-toggle { display:block; width:100%; min-height:50px; border:0; border-radius:999px; padding:12px 22px; color:var(--paper); background:var(--wine); font:600 16px var(--sans); cursor:pointer; }
.miras-contact .contact-toggle[aria-expanded="true"] { margin-bottom:16px; }
#events-feed .m-event img { object-fit:contain; object-position:center; }
body { min-height:100svh; display:flex; flex-direction:column; }
main { flex:1; }
footer { background:var(--paper); border-top:1px solid var(--rule); padding:20px 0 max(20px,env(safe-area-inset-bottom)); }
footer .footer-inner { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; color:var(--muted); }
footer .brand, footer .footer-inner .brand { color:var(--brass); }
footer .brand span { font-size:26px; }
footer .brand svg { width:25px; height:25px; }
footer .brand small { display:none; }
footer .footer-links { font-size:12px; }
footer .back-top { font-size:12px; color:var(--muted); }
.dis-card .dis-photo img, .dis-preview .dis-photo img, .mx-photo img,
.evening-card .evening-image, .offer-preview-photo, .m-event-cover, .m-event-detail > img,
.item-open img, .detail-visual img { object-fit:contain; object-position:center; background:var(--paper-2); }
.dis-contained img, .dis-preview .dis-contained img { padding:0; }
.dis-preview .dis-photo { aspect-ratio:auto; max-height:none; height:auto; }
.dis-preview .dis-photo img { position:static; width:100%; height:auto; max-height:48dvh; }
.offer-preview > .offer-preview-photo { width:100%; height:auto; max-height:48dvh; }
.item-open:hover img { transform:none; }
.dis-video { margin:12px; text-align:center; }
.dis-video summary { cursor:pointer; color:var(--brass); }
.dis-video video { display:block; width:100%; max-height:50dvh; margin-top:10px; background:var(--paper-2); }

.site-header .brand, .footer-inner .brand { color: var(--gold); }
.footer-inner { color: var(--on-dark); }
.brand span { font-weight: 600; letter-spacing: -.045em; }
dialog::backdrop { background: rgb(32 22 29 / .74); }
:is(#booking-dialog, #space-dialog, #discovery-dialog, #event-dialog, #dialog[data-mode="detail"]) {
  border: 1px solid var(--rule);
  border-radius: var(--sheet-radius);
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 14px 64px rgb(34 19 27 / .22);
}
.offer-preview-copy, .dis-preview-copy, .m-event-info, .detail-info { text-align: center; }
.offer-preview-copy, .dis-preview-copy { padding: clamp(19px, 4.8vw, 28px); }
.offer-preview-copy h2, .dis-preview-copy h2, .m-event-info h2, .detail-info .dialog-title {
  margin-inline: auto;
  font: var(--title-type);
  letter-spacing: -.025em;
  color: var(--ink);
  overflow-wrap: anywhere;
  text-wrap: balance;
}
.offer-preview:not(:has(.offer-preview-photo)) .offer-preview-copy h2 { padding-inline: 26px; }
.offer-preview-copy > p:not(.offer-rate), .dis-note, .m-event-info > p {
  max-width: 37ch;
  margin-inline: auto;
  text-wrap: pretty;
}
.offer-preview-copy > p:not(.offer-rate), .dis-note {
  margin-block: 8px 12px;
  color: var(--muted);
  font: 450 14px/1.55 var(--sans);
}
.m-event-info .m-event-meta { margin-inline: auto; }
.dis-preview-copy .dis-price, .detail-base, .detail-info .dialog-actions { justify-content: center; }
.offer-preview-copy .offer-rate, .dis-preview-copy > .dis-price, .detail-base {
  color: var(--muted);
  font: 450 13px/1.5 var(--sans);
  font-variant-numeric: lining-nums tabular-nums;
}
.offer-rate strong, .dis-preview-copy .dis-price strong, .detail-base strong {
  color: var(--wine);
  font: var(--price-type);
}
.detail-info .quote-box, .miras-request-inline { text-align: start; }
.offer-preview .booking-close, .dis-preview-close, .m-event-close {
  width: 44px; height: 44px;
  border: 1px solid var(--rule);
  background: var(--paper);
  color: var(--ink);
  font: 400 22px/1 var(--sans);
}

@media (max-width: 860px) {
  .site-header .nav-inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    grid-template-rows: 1fr;
    gap: 4px;
  }
  .site-header .brand { grid-area: 1 / 2; }
  .site-header .nav-actions { display: contents; }
  .site-header #saved-btn { grid-area: 1 / 1; justify-self: start; }
  .site-header [data-language-toggle] { grid-area: 1 / 3; justify-self: end; }
}

@media (max-width: 480px) and (max-height: 640px) {
  .offer-preview > .offer-preview-photo { height: 24dvh; }
  .offer-preview-copy, .dis-preview-copy { padding-block: 15px; }
  .miras-contact { margin-top: 12px; }
}

/* Public navigation stays in the header; browsing controls belong to their section. */
.public-site .dis-browse { width:fit-content; max-width:100%; margin:0 0 14px; }
.public-site .dis-browse > summary, .public-site .dis-show > summary { cursor:pointer; width:fit-content; padding:8px 14px; border:1px solid var(--rule); border-radius:999px; font:500 13px/1.4 var(--sans); }
.public-site .dis-filter-label { display:grid; gap:7px; margin:13px 0; color:var(--muted); font:500 12px/1.4 var(--sans); }
.public-site .dis-picker { max-width:100%; min-width:0; min-height:42px; border:1px solid var(--rule); border-radius:12px; padding:8px 30px 8px 12px; background:var(--paper); color:var(--ink); font:500 14px/1.4 var(--sans); }
.public-site .dis-show { margin-top:20px; }
.public-site .dis-show .dis-grid { margin-top:15px; }
.public-site .mx-head > select { max-width:180px; }
@media (max-width:860px) {
  html:has(body.public-site) { --header-height:105px; }
  .public-site .site-header .nav-inner { grid-template-rows:56px 44px; gap:0 4px; }
  .public-site .site-header #section-links { grid-area:2 / 1 / 3 / 4; display:flex; align-items:center; gap:20px; width:100%; min-width:0; height:44px; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none; }
  .public-site .site-header #section-links a { flex:none; font-size:12px; }
  .public-site .site-header #section-links a:focus-visible { outline:2px solid var(--gold); outline-offset:-2px; border-radius:4px; }
}
