.storefront-symbols{position:absolute;overflow:hidden}.tenant-brand-logo{width:32px;height:32px;border-radius:50%;object-fit:cover}.storefront-logout{border:0;background:transparent;color:inherit;font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.mobile-nav-actions{padding:.8rem .2rem 0}.mobile-nav-actions button{width:100%;min-height:42px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:transparent;color:#fff;font-size:.62rem;font-weight:700;text-transform:uppercase}.branch-hero{min-height:100svh}.link-button{display:grid;place-items:center}.storefront-empty{grid-column:1/-1;min-height:280px;display:grid;place-items:center;align-content:center;gap:.7rem;border:1px solid var(--rs-line);border-radius:var(--rs-radius-l);text-align:center}.storefront-empty>span{font:400 3rem var(--rs-display);color:var(--rs-accent)}.storefront-empty h3{font:400 2rem var(--rs-display)}.storefront-empty p{color:var(--rs-muted)}.booking-loading,.availability-pending{grid-column:1/-1;color:var(--rs-muted);font-size:.7rem}.availability-periods:has(.period-card:only-child){grid-template-columns:1fr}.period-card:only-child .period-slots{min-height:50px}.toast{display:grid}.mobile-booking-bar{z-index:var(--rs-z-mobile-cta)}.location-card{min-height:500px}.menu-item-main h4{font-weight:650}.restaurant-hero em,.branch-overview em{font-style:italic}.drawer-submit:disabled,.booking-submit:disabled{opacity:.55;cursor:not-allowed}.slot-btn[aria-pressed=true]{background:var(--rs-ink);color:#fff}.period-slots .slot-btn[aria-pressed=true]{background:#fff;color:var(--rs-ink)}
@media(max-width:1100px){.storefront-logout{display:none}}
@media(max-width:820px){.branch-hero{min-height:100svh}.location-card{min-height:450px}.tenant-nav-links{display:none}.nav-menu{display:grid}.tenant-nav{grid-template-columns:minmax(0,1fr) auto}.tenant-nav-actions{grid-column:2}}

/* Shared tenant chrome ---------------------------------------------------
   The public marketplace and restaurant subdomains deliberately use the
   same four-item mobile navigation geometry. Destinations become tenant-
   aware, but the interaction and touch targets do not change. */
.dotdine-chip{gap:8px;text-decoration:none}
.dotdine-chip small{color:currentColor;opacity:.58;font-size:.48rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase}
.dotdine-chip strong span{color:var(--rs-accent)}
.mobile-nav-foot a{min-height:40px;display:inline-flex;align-items:center;color:#d5d1c8;text-transform:none}
.mobile-nav-foot strong{margin-left:4px;color:#fff}
.mobile-nav-foot strong span{color:var(--rs-accent)}
.storefront-dock-wrap{display:none}

@media(max-width:820px){
  body{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
  .tenant-footer{padding-bottom:32px}
  .tenant-brand{min-width:0}
  .tenant-brand-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tenant-nav-actions{min-width:0;gap:6px}
  .dotdine-chip{height:40px;display:inline-flex;padding:0 12px;border-color:rgba(255,255,255,.30)}
  .tenant-nav.is-light .dotdine-chip{border-color:rgba(23,23,20,.20)}
  .dotdine-chip small{display:none}
  .mobile-booking-bar{display:none!important}
  .storefront-dock-wrap{position:fixed;z-index:var(--rs-z-dock);left:50%;bottom:max(10px,env(safe-area-inset-bottom));display:block;width:min(380px,calc(100% - 20px));transform:translateX(-50%)}
  .storefront-dock{height:64px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:5px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(23,23,20,.88);box-shadow:0 16px 48px rgba(0,0,0,.25);color:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(22px) saturate(130%);backdrop-filter:blur(22px) saturate(130%)}
  .storefront-dock a,.storefront-dock button{position:relative;min-width:0;min-height:54px;display:grid;place-items:center;align-content:center;gap:3px;border:0;border-radius:999px;padding:4px 3px;background:transparent;color:inherit;text-decoration:none;cursor:pointer;font:600 .55rem/1 var(--rs-ui);letter-spacing:.01em}
  .storefront-dock a.active,.storefront-dock a[aria-current=page],.storefront-dock button.active{background:rgba(255,255,255,.11);color:#fff}
  .storefront-dock a.active::after,.storefront-dock a[aria-current=page]::after,.storefront-dock button.active::after{content:"";position:absolute;top:4px;width:4px;height:4px;border-radius:50%;background:var(--rs-accent)}
  .storefront-dock svg{width:17px;height:17px;display:block;pointer-events:none}
  .storefront-dock span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .toast{bottom:calc(90px + env(safe-area-inset-bottom))}
  body.drawer-open .storefront-dock-wrap,body.storefront-menu-open .storefront-dock-wrap{visibility:hidden;opacity:0;pointer-events:none}
}

@media(max-width:390px){
  .tenant-nav{padding-left:10px;padding-right:7px}
  .tenant-brand{gap:7px}
  .tenant-brand-name{font-size:.75rem}
  .dotdine-chip{width:40px;padding:0;justify-content:center}
  .storefront-dock-wrap{width:calc(100% - 16px)}
}

@media(prefers-contrast:more){.storefront-dock{background:#171714;border-color:rgba(255,255,255,.38)}}
@media(prefers-reduced-motion:reduce){.storefront-dock,.storefront-dock-wrap{transition-duration:.01ms!important}}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.storefront-dock{background:rgba(23,23,20,.98)}}

@media(max-width:820px){
  .tenant-brand,.mobile-nav-foot a,.footer-links a,.powered-by,.branch-back,.detail-list dd a{min-height:44px;display:inline-flex;align-items:center}
  .dotdine-chip{height:44px;min-height:44px}
  .icon-btn.nav-menu,.location-card-link,.toast button{width:44px;min-width:44px;height:44px;min-height:44px}
  .dietary-pills button{height:44px;min-height:44px}
}
/* Restaurant-selectable template presets share the same accessible document
   structure while changing the visual system. This keeps menus, reservations
   and future AI-generated themes compatible with one stable storefront API. */
body[data-storefront-template="warm"] {
  --rs-bg: #f1e7d8;
  --rs-surface: #fffaf1;
  --rs-ink: #211713;
  --rs-accent: #a45c3c;
}
body[data-storefront-template="warm"] .restaurant-hero-media::after { background: linear-gradient(90deg,rgba(37,20,12,.7),rgba(37,20,12,.08)); }
body[data-storefront-template="warm"] .location-card { border-radius: 2px 34px 2px 34px; }
body[data-storefront-template="nocturne"] {
  --rs-bg: #eeeae2;
  --rs-surface: #fffaf1;
  --rs-ink: #181815;
  --rs-accent: #997147;
}
body[data-storefront-template="nocturne"] .restaurant-intro,
body[data-storefront-template="nocturne"] .locations-section { background:#151613;color:#f5f0e7; }
body[data-storefront-template="nocturne"] .restaurant-intro .eyebrow,
body[data-storefront-template="nocturne"] .restaurant-intro .lead,
body[data-storefront-template="nocturne"] .restaurant-intro dt,
body[data-storefront-template="nocturne"] .locations-section .eyebrow,
body[data-storefront-template="nocturne"] .locations-head p { color:#c8c2b7; }
body[data-storefront-template="nocturne"] .restaurant-intro .intro-aside,
body[data-storefront-template="nocturne"] .restaurant-intro .stat-strip,
body[data-storefront-template="nocturne"] .restaurant-intro .stat-strip div+div { border-color:rgba(255,255,255,.2); }
body[data-storefront-template="nocturne"] .location-card { background:#20211d; }

.gallery-open {display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in;color:inherit}
.gallery-grid figcaption {font:400 .8rem/1.5 var(--rs-ui);padding:12px 4px;color:#706c64}
.storefront-gallery-dialog {width:min(1080px,calc(100vw - 32px));max-height:90dvh;padding:18px;border:0;border-radius:24px;background:#fffdf8;color:#181816}
.storefront-gallery-dialog::backdrop {background:rgba(13,13,11,.75);backdrop-filter:blur(8px)}
.storefront-gallery-dialog img {display:block;max-height:72dvh;width:100%;object-fit:contain;border-radius:14px}
.storefront-gallery-dialog p {margin:12px 0 0;font:400 .875rem/1.5 var(--rs-ui)}
.storefront-gallery-dialog button {margin-left:auto;display:block;min-width:44px;min-height:44px}
body.gallery-opened {overflow:hidden}
.gallery-open:focus-visible {outline:3px solid #a47b52;outline-offset:4px}
.branch-highlights {padding:0 0 32px}
.branch-room-tags {display:flex;flex-wrap:wrap;gap:10px}
.branch-room-tags a,.branch-room-tags span {padding:12px 16px;border:1px solid var(--line,rgba(24,24,22,.12));border-radius:999px;color:inherit;font:500 .8rem/1.3 var(--rs-ui)}
.branch-room-tags a {min-height:44px;display:inline-flex;align-items:center}
