/*
 * DotDine UI System
 * Canonical first-party stylesheet for public, diner and partner surfaces.
 * Operational dashboard styles are appended at the end and scoped to data-surface="dashboard".
 */

:root {
  color-scheme: light;
  --dd-bg: #f4f1ea;
  --dd-bg-2: #ebe6dc;
  --dd-surface: #fffdf9;
  --dd-surface-2: #f8f5ef;
  --dd-surface-3: #eee8de;
  --dd-ink: #171714;
  --dd-ink-2: #292822;
  --dd-muted: #706c64;
  --dd-muted-2: #918b82;
  --dd-line: rgba(23,23,20,.11);
  --dd-line-strong: rgba(23,23,20,.19);
  --dd-accent: #9b744d;
  --dd-accent-deep: #765438;
  --dd-accent-soft: #dbc5aa;
  --dd-success: #51664d;
  --dd-warning: #956b2f;
  --dd-danger: #874b47;
  --dd-dark: #171815;
  --dd-dark-2: #21211d;
  --dd-white: #fffdf9;
  --dd-shadow-xs: 0 8px 24px rgba(20,18,14,.06);
  --dd-shadow-sm: 0 14px 38px rgba(20,18,14,.09);
  --dd-shadow: 0 26px 80px rgba(20,18,14,.12);
  --dd-shadow-lg: 0 42px 120px rgba(8,8,7,.22);
  --dd-radius-sm: 12px;
  --dd-radius-md: 18px;
  --dd-radius-lg: 28px;
  --dd-radius-xl: 38px;
  --dd-pill: 999px;
  --dd-max: 1320px;
  --dd-pad: clamp(20px, 4vw, 56px);
  --dd-section: clamp(76px, 8vw, 124px);
  --dd-header-h: 64px;
  --dd-ease: cubic-bezier(.2,.75,.2,1);

  /* ── Canonical stacking layer system ───────────────────────────────────────
     Every position:fixed / position:sticky element must use one of these
     variables. Never write a bare numeric z-index for layout components.
     ──────────────────────────────────────────────────────────────────────── */
  --dd-z-sticky:           100;   /* sticky headings and section anchors   */
  --dd-z-toolbar:         1100;   /* page toolbars and diner tab bar       */
  --dd-z-concierge-float: 1210;   /* floating concierge entry point        */
  --dd-z-map:             1500;   /* mobile full-screen map pane           */
  --dd-z-mobile-cta:      1750;   /* mobile sticky booking action          */
  --dd-z-filter-rail:     1810;   /* discover filter bar                   */
  --dd-z-nav:             1900;   /* floating header navigation            */
  --dd-z-dock:            2100;   /* persistent mobile bottom navigation   */
  --dd-z-menu:            3000;   /* mobile navigation drawer              */
  --dd-z-modal-backdrop:  4000;   /* dimming layer for blocking surfaces   */
  --dd-z-modal:           4010;   /* sheets and centered dialogs           */
  --dd-z-popover:         4020;   /* modal date, guests and location UI    */
  --dd-z-toast:           5000;   /* toast notifications                   */
  --dd-z-skip:            5100;   /* skip-to-content link                  */
  --dd-z-backdrop: var(--dd-z-modal-backdrop);
  --dd-z-sheet: var(--dd-z-modal);
  --dd-z-dialog: var(--dd-z-modal);
}

*,*::before,*::after { box-sizing: border-box; }
html { min-height:100%; background:var(--dd-bg); scroll-behavior:smooth; }
body { min-height:100vh; margin:0; background:var(--dd-bg); color:var(--dd-ink); font:400 16px/1.5 var(--dd-font-ui); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body.menu-open,body.location-modal-open,body.sheet-open,body.dialog-open,body.discovery-filter-modal-open { overflow:hidden; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; color:inherit; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; opacity:.56; }
[hidden] { display:none!important; }
::selection { background:var(--dd-accent-soft); color:var(--dd-ink); }
:focus-visible { outline:3px solid color-mix(in srgb,var(--dd-accent) 58%,transparent); outline-offset:3px; }
.dd-icon-sprite { position:absolute; width:0; height:0; overflow:hidden; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.skip-link { position:fixed; z-index:var(--dd-z-skip); left:16px; top:-80px; padding:12px 16px; border-radius:10px; background:#fff; box-shadow:var(--dd-shadow); font-weight:700; }
.skip-link:focus { top:16px; }
.dd-app-main { min-height:60vh; }
.section-shell,.container { width:min(var(--dd-max),100%); margin-inline:auto; padding-inline:var(--dd-pad); }
.eyebrow { margin:0; color:var(--dd-muted); font-size:.67rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.eyebrow.light,.eyebrow-light { color:rgba(255,255,255,.62); }

/* ---------- Shared controls ---------- */
.solid-button,.primary-button,.secondary-button,.outline-button,.light-button,.form-submit,.primary,.filter-apply,.filter-reset,.dedicated-pay-button {
  min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:0 20px; border:1px solid transparent; border-radius:12px; font-size:.74rem; font-weight:700; letter-spacing:.01em; line-height:1; transition:transform .16s var(--dd-ease),background .16s,color .16s,border-color .16s,box-shadow .16s;
}
.solid-button,.primary-button,.form-submit,.primary,.filter-apply,.dedicated-pay-button { background:var(--dd-ink); color:#fff; border-color:var(--dd-ink); }
.secondary-button,.outline-button,.filter-reset { background:transparent; color:var(--dd-ink); border-color:var(--dd-line-strong); }
.light-button { background:var(--dd-white)!important; color:var(--dd-ink)!important; border-color:var(--dd-white)!important; }
.on-dark-button { color:#fff; border-color:rgba(255,255,255,.25); background:rgba(255,255,255,.04); }
.solid-button:hover,.primary-button:hover,.form-submit:hover,.primary:hover,.dedicated-pay-button:hover { transform:translateY(-1px); background:var(--dd-accent-deep); border-color:var(--dd-accent-deep); box-shadow:0 8px 20px rgba(20,18,14,.12); }
.outline-button:hover,.secondary-button:hover,.filter-reset:hover { background:var(--dd-surface-3); border-color:var(--dd-line-strong); }
.on-dark-button:hover { background:rgba(255,255,255,.09); }
.text-link { display:inline-flex; min-height:38px; align-items:center; color:var(--dd-ink); border-bottom:1px solid currentColor; font-size:.72rem; font-weight:700; }
.text-link.light-link { color:#fff; }
.icon-button { width:44px; height:44px; min-width:44px; display:grid; place-items:center; padding:0; border:1px solid var(--dd-line); border-radius:50%; background:transparent; }
.icon-button svg,.nav-location svg,.mobile-dock svg,.filter-control svg,.search-trigger svg,.search-submit svg,.feature-icon svg { width:18px; height:18px; }

/* ---------- Shared form system ---------- */
.form-field,label.form-field,.auth-form label,.restaurant-registration-form-v6 label,.onboarding-fieldset>label { display:grid; gap:7px; min-width:0; color:var(--dd-ink); font-size:.69rem; font-weight:650; }
.form-field>span,.auth-form label>span,.restaurant-registration-form-v6 label:not(.terms-check-v6) { letter-spacing:.015em; }
input,select,textarea { width:100%; min-width:0; border:1px solid var(--dd-line-strong); border-radius:13px; background:#fff; transition:border-color .16s,box-shadow .16s,background .16s; }
input,select { height:48px; padding:0 14px; }
textarea { min-height:112px; padding:13px 14px; resize:vertical; line-height:1.55; }
input:focus,select:focus,textarea:focus { outline:0; border-color:color-mix(in srgb,var(--dd-accent) 70%,#0000); box-shadow:0 0 0 4px color-mix(in srgb,var(--dd-accent) 12%,transparent); }
.form-pair,.form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.form-trio { display:grid; grid-template-columns:1fr 1fr .62fr; gap:12px; }
.form-note { margin:0; color:var(--dd-muted); font-size:.65rem; line-height:1.6; }

/* ---------- Floating navigation ---------- */
.floating-nav-wrap { position:fixed; z-index:var(--dd-z-nav); top:14px; left:0; right:0; padding-inline:16px; pointer-events:none; }
.floating-nav { width:min(1180px,100%); height:var(--dd-header-h); margin:auto; display:grid; grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr); align-items:center; gap:20px; padding:0 10px 0 20px; border:1px solid rgba(255,255,255,.13); border-radius:var(--dd-pill); color:#fff; background:rgba(20,20,18,.66); box-shadow:0 16px 45px rgba(8,8,7,.16); backdrop-filter:blur(22px) saturate(125%); pointer-events:auto; transition:background .2s,border-color .2s,color .2s,box-shadow .2s; }
.floating-nav.on-light,.floating-nav.inner-header.on-light { color:var(--dd-ink); background:rgba(255,253,249,.91); border-color:var(--dd-line); box-shadow:0 12px 38px rgba(20,18,14,.09); }
.brand-dot { color:var(--dd-accent); }
.nav-links { display:flex; align-items:center; justify-content:center; gap:clamp(17px,2.2vw,31px); }
.nav-links a { position:relative; min-height:44px; display:flex; align-items:center; color:inherit; opacity:.78; font-size:.69rem; font-weight:650; }
.nav-links a::after { content:""; position:absolute; left:0; right:100%; bottom:7px; height:1px; background:currentColor; transition:right .2s; }
.nav-links a:hover,.nav-links a.active { opacity:1; }
.nav-links a:hover::after,.nav-links a.active::after { right:0; }
.nav-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; min-width:0; }
.nav-location { max-width:160px; min-height:42px; display:flex; align-items:center; gap:7px; padding:0 12px; border:1px solid currentColor; border-color:color-mix(in srgb,currentColor 16%,transparent); border-radius:var(--dd-pill); opacity:.85; }
.nav-location strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.68rem; font-weight:650; }
.nav-account,.nav-menu-button { border-color:color-mix(in srgb,currentColor 16%,transparent); color:inherit; }
.nav-signout { height:42px; padding:0 10px; border:0; background:transparent; color:inherit; font-size:.64rem; font-weight:700; }
.nav-menu-button { display:none; }

/* ---------- Mobile navigation ---------- */
.mobile-menu { position:fixed; z-index:var(--dd-z-menu); inset:0; visibility:hidden; opacity:0; pointer-events:none; transition:opacity .22s,visibility 0s linear .22s; }
.mobile-menu.open,.mobile-menu[aria-hidden="false"] { visibility:visible; opacity:1; pointer-events:auto; transition-delay:0s; }
.mobile-menu-backdrop { position:absolute; inset:0; width:100%; border:0; background:rgba(10,10,9,.54); }
.mobile-menu-panel { position:absolute; top:0; right:0; width:min(390px,88vw); height:100dvh; display:grid; grid-template-rows:auto 1fr auto auto; gap:0; overflow:auto; overscroll-behavior:contain; padding:22px 20px calc(24px + env(safe-area-inset-bottom)); border-left:1px solid rgba(255,255,255,.08); background:#171815; color:#fff; transform:translateX(104%); transition:transform .26s var(--dd-ease); scrollbar-width:none; }
.mobile-menu-panel::-webkit-scrollbar { display:none; }
.mobile-menu.open .mobile-menu-panel,.mobile-menu[aria-hidden="false"] .mobile-menu-panel { transform:translateX(0); }
.mobile-menu-head { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; padding:2px 0 20px; border-bottom:1px solid rgba(255,255,255,.12); }
.mobile-menu-mark span { color:var(--dd-accent-soft); }
.mobile-menu-head p { margin:7px 0 0; color:rgba(255,255,255,.5); font-size:.68rem; }
.mobile-menu-close { color:#fff; border-color:rgba(255,255,255,.16); }
.mobile-menu-nav { display:grid; align-content:start; padding:18px 0; }
.mobile-menu-nav a { min-height:68px; display:flex; align-items:center; padding:10px 4px; border-bottom:1px solid rgba(255,255,255,.09); color:rgba(255,255,255,.82); }
.mobile-menu-nav a>span { display:grid; gap:2px; }
.mobile-menu-nav strong { font-size:.9rem; font-weight:600; }
.mobile-menu-nav small { color:rgba(255,255,255,.43); font-size:.62rem; font-weight:400; }
.mobile-menu-nav a.active { color:var(--dd-accent-soft); }
.mobile-menu-auth { display:grid; grid-template-columns:1fr auto; gap:8px; padding:16px 0; border-top:1px solid rgba(255,255,255,.1); }
.mobile-menu-auth a,.mobile-menu-auth button { min-height:46px; display:grid; place-items:center; padding:0 18px; border:1px solid rgba(255,255,255,.18); border-radius:var(--dd-pill); background:#fff; color:var(--dd-ink); font-size:.69rem; font-weight:700; }
.mobile-menu-auth button { background:transparent; color:#fff; }
.mobile-menu-footer { display:flex; justify-content:space-between; gap:18px; padding-top:16px; color:rgba(255,255,255,.45); font-size:.61rem; }
.mobile-menu-footer div { display:grid; gap:4px; }
.mobile-menu-footer a { color:#fff; }
body.menu-open .mobile-dock-wrap,body.dialog-open .mobile-dock-wrap,body.ddx-dialog-open .mobile-dock-wrap,body.discovery-filter-modal-open .mobile-dock-wrap,body.sheet-open .mobile-dock-wrap { opacity:0; pointer-events:none; }

/* ---------- Unified mobile dock ---------- */
.mobile-dock-wrap { display:none; }
.mobile-dock { height:64px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:stretch; padding:5px; border:1px solid var(--dd-line); border-radius:26px; background:rgba(255,253,249,.95); box-shadow:0 15px 42px rgba(20,18,14,.15); backdrop-filter:blur(20px); }
.mobile-dock a,.mobile-dock button { min-width:0; display:grid; place-items:center; align-content:center; gap:3px; padding:3px; border:0; border-radius:20px; background:transparent; color:var(--dd-muted); font-size:.56rem; font-weight:650; }
.mobile-dock svg { width:17px; height:17px; }
.mobile-dock a.active,.mobile-dock a[aria-current="page"],.mobile-dock button.active { background:rgba(155,116,77,.12); color:var(--dd-ink); }

/* ---------- Footer ---------- */
.newsletter-strip { padding:72px 0; background:#24231f; color:#fff; }
.newsletter-shell { width:min(var(--dd-max),100%); margin:auto; padding-inline:var(--dd-pad); display:grid; grid-template-columns:1fr minmax(320px,.75fr); gap:60px; align-items:end; }
.newsletter-copy h2 { margin:8px 0 12px; font:400 clamp(3rem,5vw,5rem)/.92 var(--dd-font-display); letter-spacing:-.045em; }
.newsletter-note { max-width:500px; margin:0; color:rgba(255,255,255,.57); }
.newsletter-form { display:grid; grid-template-columns:1fr auto; gap:8px; padding:6px; border:1px solid rgba(255,255,255,.16); border-radius:var(--dd-pill); background:rgba(255,255,255,.07); }
.newsletter-form input { border:0; background:transparent; color:#fff; }
.newsletter-form input::placeholder { color:rgba(255,255,255,.48); }
.newsletter-form button { min-height:46px; padding:0 18px; border:0; border-radius:var(--dd-pill); background:#fff; color:var(--dd-ink); font-weight:700; }
.newsletter-privacy { margin:9px 0 0; color:rgba(255,255,255,.42); font-size:.61rem; }
.site-footer { padding:78px 0 28px; background:#171815; color:#fff; }
.footer-main { width:min(var(--dd-max),100%); margin:auto; padding-inline:var(--dd-pad); display:grid; grid-template-columns:1.5fr repeat(3,.72fr); gap:46px; }
.footer-brand p { max-width:360px; margin:18px 0; color:rgba(255,255,255,.53); font-size:.76rem; line-height:1.65; }
.footer-brand-meta { display:flex; gap:14px; color:rgba(255,255,255,.35); font-size:.58rem; text-transform:uppercase; letter-spacing:.09em; }
.footer-column h3 { margin:5px 0 16px; color:rgba(255,255,255,.4); font-size:.6rem; text-transform:uppercase; letter-spacing:.12em; }
.footer-column nav { display:grid; gap:10px; }
.footer-column a { color:rgba(255,255,255,.74); font-size:.72rem; }
.footer-column a:hover { color:#fff; }
.footer-bottom { width:min(var(--dd-max),100%); margin:54px auto 0; padding:20px var(--dd-pad) 0; display:flex; justify-content:space-between; gap:20px; border-top:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.35); font-size:.59rem; }

/* ---------- Landing hero and search ---------- */
.hero-v6 { position:relative; min-height:820px; height:min(94svh,920px); display:flex; align-items:flex-end; overflow:hidden; background:#161714; color:#fff; }
.hero-v6-media,.hero-v6-shade { position:absolute; inset:0; }
.hero-v6-media img { width:100%; height:100%; object-fit:cover; }
.hero-v6-shade { background:linear-gradient(180deg,rgba(12,12,10,.22) 0%,rgba(12,12,10,.28) 42%,rgba(12,12,10,.78) 100%),linear-gradient(90deg,rgba(12,12,10,.48),transparent 66%); }
.hero-v6-inner { position:relative; z-index:2; padding-bottom:96px; }
.hero-v6-copy { width:min(760px,100%); }
.hero-v6-copy h1 { margin:12px 0 20px; font:400 clamp(5rem,8.2vw,8.2rem)/.83 var(--dd-font-display); letter-spacing:-.06em; }
.hero-v6-copy h1 em { color:var(--dd-accent-soft); font-weight:400; }
.hero-intro { max-width:610px; margin:0; color:rgba(255,255,255,.72); font-size:1rem; line-height:1.7; }
.hero-location-line { display:inline-flex; align-items:center; gap:7px; min-height:36px; padding:0; border:0; background:transparent; color:#fff; font-size:.72rem; font-weight:650; }
.hero-location-line svg { width:16px; height:16px; }
.search-console-v6 { position:absolute; z-index:6; left:var(--dd-pad); right:var(--dd-pad); bottom:24px; width:min(980px,calc(100% - (var(--dd-pad) * 2))); display:grid; grid-template-columns:1fr 1fr 1fr auto; align-items:center; margin-inline:auto; padding:7px; border:1px solid rgba(255,255,255,.18); border-radius:var(--dd-pill); background:rgba(255,253,249,.94); color:var(--dd-ink); box-shadow:var(--dd-shadow-lg); backdrop-filter:blur(20px); }
.search-field { position:relative; min-width:0; border-right:1px solid var(--dd-line); }
.search-trigger { width:100%; min-height:54px; display:flex; align-items:center; gap:12px; padding:0 16px; border:0; background:transparent; text-align:left; }
.search-trigger-copy { min-width:0; display:grid; gap:1px; }
.search-trigger small { color:var(--dd-muted); font-size:.55rem; text-transform:uppercase; letter-spacing:.08em; }
.search-trigger strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.72rem; }
.search-submit { min-height:54px; display:flex; align-items:center; gap:8px; padding:0 22px; border:0; border-radius:12px; background:var(--dd-ink); color:#fff; font-size:.72rem; font-weight:700; }
.search-popover { position:absolute; z-index:100; min-width:320px; padding:20px; border:1px solid var(--dd-line); border-radius:22px; background:var(--dd-surface); color:var(--dd-ink); box-shadow:var(--dd-shadow); visibility:hidden; opacity:0; pointer-events:none; transform:translateY(8px); transition:.18s var(--dd-ease); }
.search-popover.open { visibility:visible; opacity:1; pointer-events:auto; transform:translateY(0); }
.date-popover,.party-popover { left:0; bottom:calc(100% + 12px); }
.popover-title { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding-bottom:15px; border-bottom:1px solid var(--dd-line); }
.popover-title h3 { margin:0; font:400 2rem/1 var(--dd-font-display); }
.popover-title span { color:var(--dd-muted); font-size:.65rem; }
.date-grid { display:grid; gap:6px; margin-top:12px; }
.date-choice,.location-choice { width:100%; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:13px 0; border:0; border-bottom:1px solid var(--dd-line); background:transparent; text-align:left; }
.date-choice strong,.location-choice span { font-size:.78rem; }
.date-choice span,.location-choice small { color:var(--dd-muted); font-size:.65rem; }
.date-choice.active,.location-choice.active { color:var(--dd-accent-deep); }
.popover-section { padding-top:14px; }
.popover-section-label,.popover-kicker { display:block; margin-bottom:8px; color:var(--dd-muted); font-size:.57rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }
.popover-chips { display:flex; flex-wrap:wrap; gap:7px; }
.popover-chip { min-height:38px; padding:0 12px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); background:#fff; font-size:.65rem; }
.popover-chip.active { background:var(--dd-ink); color:#fff; border-color:var(--dd-ink); }
.party-row { display:flex; justify-content:space-between; align-items:center; padding:16px 0; }
.party-stepper { display:grid; grid-template-columns:38px 42px 38px; align-items:center; }
.party-stepper button { width:38px; height:38px; border:1px solid var(--dd-line); border-radius:50%; background:#fff; }
.party-stepper output { text-align:center; font-weight:700; }

/* Location is a true modal, always above home-page content and mobile navigation. */
.search-modal-backdrop { position:fixed; z-index:var(--dd-z-modal-backdrop); inset:0; width:100%; border:0; background:rgba(14,13,11,.54); backdrop-filter:blur(8px); }
.location-popover { position:fixed!important; z-index:var(--dd-z-popover)!important; top:50%!important; left:50%!important; right:auto!important; bottom:auto!important; width:min(620px,calc(100vw - 32px))!important; max-height:min(78dvh,720px); overflow:auto; padding:26px!important; border-radius:28px!important; transform:translate(-50%,calc(-50% + 8px))!important; }
.location-popover.open { transform:translate(-50%,-50%)!important; }
.popover-close { width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--dd-line); border-radius:50%; background:#fff; }
.popover-close svg { width:17px; height:17px; }
.location-modal-body { display:grid; gap:8px; padding-top:4px; }
.location-list { display:grid; }
body.location-modal-open .mobile-dock-wrap { opacity:0!important; pointer-events:none!important; }

.quick-discovery-v6 { position:relative; z-index:1; border-bottom:1px solid var(--dd-line); background:var(--dd-surface-2); }
.quick-discovery-shell { min-height:74px; display:flex; align-items:center; gap:8px; overflow-x:auto; scrollbar-width:none; }
.quick-discovery-shell::-webkit-scrollbar { display:none; }
.discovery-pill,.intent-pill { min-height:40px; flex:0 0 auto; display:flex; align-items:center; gap:7px; padding:0 15px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); background:var(--dd-surface); font-size:.67rem; font-weight:650; white-space:nowrap; }
.discovery-pill svg { width:15px; height:15px; }
.discovery-pill:hover,.intent-pill:hover { border-color:var(--dd-accent); background:#fff; }

/* ---------- Landing sections ---------- */
.section-v6 { padding:var(--dd-section) 0; }
.section-heading-v6 { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(280px,.55fr); gap:50px; align-items:end; margin-bottom:38px; }
.section-heading-v6 h2 { margin:8px 0 0; font:400 clamp(3.2rem,5.5vw,5.6rem)/.9 var(--dd-font-display); letter-spacing:-.05em; }
.section-heading-v6>p,.section-heading-v6>div:last-child>p { margin:0; color:var(--dd-muted); line-height:1.7; }
.section-heading-v6 .text-link { margin-top:14px; }
.cards-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.restaurant-card { position:relative; min-width:0; border:1px solid var(--dd-line); border-radius:18px; overflow:hidden; background:var(--dd-surface); box-shadow:var(--dd-shadow-xs); }
.restaurant-image { position:relative; display:block; aspect-ratio:4/3; overflow:hidden; background:var(--dd-surface-3); }
.restaurant-image img { width:100%; height:100%; object-fit:cover; transition:transform .45s var(--dd-ease); }
.restaurant-card:hover .restaurant-image img { transform:scale(1.025); }
.card-badge,.discover-badge { position:absolute; top:14px; left:14px; padding:7px 10px; border-radius:var(--dd-pill); background:rgba(255,253,249,.92); font-size:.58rem; font-weight:700; }
.card-save,.discover-save { position:absolute; z-index:3; top:12px; right:12px; width:42px; height:42px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.32); border-radius:50%; background:rgba(18,18,16,.55); color:#fff; backdrop-filter:blur(12px); }
.card-save svg,.discover-save svg,.ddx-card-save svg { width:18px; height:18px; }
.restaurant-copy { padding:18px; }
.restaurant-heading { display:flex; justify-content:space-between; gap:12px; align-items:start; }
.restaurant-heading h3 { margin:0; font:400 2rem/1 var(--dd-font-display); letter-spacing:-.03em; }
.rating { flex:0 0 auto; font-size:.64rem; font-weight:700; }
.restaurant-meta { display:flex; flex-wrap:wrap; gap:6px 10px; margin:9px 0; color:var(--dd-muted); font-size:.61rem; }
.restaurant-note { margin:0; color:var(--dd-muted); font-size:.72rem; line-height:1.65; }
.restaurant-tags,.discover-card-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.restaurant-tags span,.discover-card-tags span { padding:5px 8px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); color:var(--dd-muted); font-size:.55rem; }
.availability-row,.live-times,.detail-slots { display:flex; flex-wrap:wrap; gap:7px; margin-top:15px; }
.time-slot,.live-time,.time-chip,.slot-btn { min-height:36px; display:inline-flex; align-items:center; justify-content:center; padding:0 11px; border:1px solid var(--dd-line-strong); border-radius:var(--dd-pill); background:#fff; font-size:.62rem; font-weight:700; }
.time-slot.more { border-color:var(--dd-ink); background:var(--dd-ink); color:#fff; }
.view-restaurant-link { min-height:40px; padding:0 14px; border:1px solid var(--dd-ink); border-radius:10px; background:var(--dd-ink); color:#fff; font-size:.64rem; font-weight:700; }
.view-restaurant-link:hover { background:var(--dd-accent-deep); border-color:var(--dd-accent-deep); }
.loading-card,.loading-compact,.loading-feature { overflow:hidden; background:linear-gradient(105deg,#e7e1d7 25%,#f6f2ea 43%,#e7e1d7 62%); background-size:240% 100%; animation:dd-shimmer 1.35s linear infinite; }
.loading-card { min-height:480px; }
@keyframes dd-shimmer { to { background-position:-240% 0; } }

.feature-split { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(320px,.65fr); gap:18px; }
.feature-restaurant { position:relative; min-height:620px; overflow:hidden; border-radius:28px; background:var(--dd-dark); color:#fff; }
.feature-restaurant>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.feature-restaurant::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 30%,rgba(12,12,10,.84)); }
.feature-restaurant-content,.feature-loading-copy { position:absolute; z-index:2; left:28px; right:28px; bottom:28px; }
.feature-restaurant-content .eyebrow,.feature-loading-copy .eyebrow { color:rgba(255,255,255,.72); }
.feature-restaurant-content h3,.feature-loading-copy h3 { margin:7px 0 10px; font:400 clamp(2.8rem,4vw,4.6rem)/.9 var(--dd-font-display); }
.feature-restaurant-content>p { max-width:620px; color:rgba(255,255,255,.68); }
.feature-restaurant-footer { display:flex; justify-content:space-between; align-items:end; gap:20px; }
.feature-restaurant-footer .restaurant-meta { color:rgba(255,255,255,.6); }
.feature-restaurant-footer .text-link { color:#fff; }
.feature-side { display:grid; gap:12px; }
.compact-card { min-height:146px; display:grid; grid-template-columns:140px 1fr; gap:0; overflow:hidden; border:1px solid var(--dd-line); border-radius:20px; background:var(--dd-surface); }
.compact-card-image { overflow:hidden; }
.compact-card-image img { width:100%; height:100%; object-fit:cover; }
.compact-card-copy { display:grid; align-content:center; gap:8px; padding:16px; }
.compact-card h3 { margin:0; font:400 1.55rem var(--dd-font-display); }
.compact-card p { margin:4px 0 0; color:var(--dd-muted); font-size:.61rem; }
.compact-card .view-restaurant-link { display:inline-flex; min-height:auto; padding:0; border:0; background:transparent; color:var(--dd-ink); font-size:.61rem; }

.occasion-grid,.mood-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.occasion-card,.mood-card { position:relative; min-height:490px; overflow:hidden; border-radius:24px; background:#23231f; color:#fff; }
.occasion-card img,.mood-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .45s var(--dd-ease); }
.occasion-card::after,.mood-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 28%,rgba(14,14,12,.8)); }
.occasion-card:hover img,.mood-card:hover img { transform:scale(1.025); }
.occasion-content,.mood-copy { position:absolute; z-index:2; left:20px; right:20px; bottom:20px; }
.occasion-count,.mood-copy>span { color:rgba(255,255,255,.57); font-size:.58rem; text-transform:uppercase; letter-spacing:.08em; }
.occasion-content h3,.mood-copy h3 { margin:7px 0 6px; font:400 2.15rem/1 var(--dd-font-display); }
.occasion-content p,.mood-copy p { margin:0; color:rgba(255,255,255,.68); font-size:.69rem; }
.cuisine-panel { padding-top:0; }
.cuisine-panel>header { display:flex; justify-content:space-between; gap:20px; align-items:end; margin-bottom:22px; }
.cuisine-panel h2 { margin:6px 0 0; font:400 3.5rem var(--dd-font-display); }
.cuisine-cloud { display:flex; flex-wrap:wrap; gap:9px; }
.cuisine-chip { min-height:52px; display:flex; align-items:center; gap:10px; padding:0 18px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); background:var(--dd-surface); font-size:.72rem; font-weight:650; }
.cuisine-chip span { color:var(--dd-muted); font-size:.56rem; }

.edit-section-v6 { padding:var(--dd-section) 0; background:var(--dd-dark); color:#fff; }
.edit-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.72fr); gap:clamp(40px,7vw,100px); align-items:center; }
.edit-visual { position:relative; min-height:680px; }
.edit-main-image { position:absolute; inset:0 18% 8% 0; margin:0; overflow:hidden; border-radius:24px; }
.edit-side-image { position:absolute; right:0; bottom:0; width:36%; aspect-ratio:4/5; margin:0; overflow:hidden; border:10px solid var(--dd-dark); border-radius:20px; }
.edit-visual img { width:100%; height:100%; object-fit:cover; }
.edit-copy h2 { margin:10px 0 20px; font:400 clamp(3.5rem,5.5vw,6rem)/.9 var(--dd-font-display); letter-spacing:-.05em; }
.edit-copy h2 em { color:var(--dd-accent-soft); font-weight:400; }
.edit-copy>p:not(.eyebrow) { color:rgba(255,255,255,.65); line-height:1.75; }
.edit-facts { margin:30px 0; }
.edit-facts div { display:grid; grid-template-columns:90px 1fr; gap:16px; padding:13px 0; border-top:1px solid rgba(255,255,255,.12); }
.edit-facts dt { color:rgba(255,255,255,.42); font-size:.58rem; text-transform:uppercase; letter-spacing:.08em; }
.edit-facts dd { margin:0; color:rgba(255,255,255,.8); font-size:.72rem; }
.horizontal-track-wrap { overflow:hidden; }
.horizontal-track { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(300px,31%); gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-bottom:5px; }
.horizontal-track::-webkit-scrollbar { display:none; }
.horizontal-track>* { scroll-snap-align:start; }
.track-controls { display:flex; justify-content:flex-end; gap:8px; margin-top:16px; }
.track-controls .previous-icon { transform:rotate(225deg); }
.track-controls button:last-child svg { transform:rotate(45deg); }
.concierge-section-v6 { padding:var(--dd-section) 0; }
.concierge-panel { padding:clamp(32px,5vw,70px); border-radius:32px; background:var(--dd-dark); color:#fff; }
.concierge-panel { display:grid; grid-template-columns:1.2fr .7fr; gap:70px; }
.concierge-copy h2 { max-width:760px; margin:10px 0 18px; font:400 clamp(3.7rem,6vw,6rem)/.9 var(--dd-font-display); }
.concierge-copy>p:not(.eyebrow),.concierge-side p { color:rgba(255,255,255,.62); line-height:1.75; }
.concierge-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.concierge-actions button { min-height:44px; padding:0 13px; border:1px solid rgba(255,255,255,.18); border-radius:var(--dd-pill); background:transparent; color:#fff; font-size:.63rem; }
.concierge-side { align-self:end; }
.partner-section-v6 { padding:0 0 var(--dd-section); }
.partner-panel { display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:center; padding:54px; border:1px solid var(--dd-line); border-radius:30px; background:var(--dd-surface); }
.partner-copy h2 { margin:9px 0 16px; font:400 clamp(3rem,4.5vw,4.8rem)/.92 var(--dd-font-display); }
.partner-copy>p:not(.eyebrow) { color:var(--dd-muted); line-height:1.7; }
.partner-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:24px; }
.partner-preview { padding:18px; border-radius:22px; background:var(--dd-dark); color:#fff; }
.preview-bar,.preview-floor-head { display:flex; justify-content:space-between; gap:12px; color:rgba(255,255,255,.55); font-size:.59rem; }
.preview-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:15px 0; }
.preview-kpi { padding:14px; border:1px solid rgba(255,255,255,.1); border-radius:14px; }
.preview-kpi span,.preview-kpi strong { display:block; }
.preview-kpi span { color:rgba(255,255,255,.45); font-size:.55rem; }
.preview-kpi strong { margin-top:5px; font:400 2rem var(--dd-font-display); }
.preview-floor { padding:14px; border:1px solid rgba(255,255,255,.1); border-radius:14px; }
.preview-tables { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:12px; }
.preview-table { aspect-ratio:1; display:grid; place-items:center; border:1px solid rgba(255,255,255,.14); border-radius:12px; color:rgba(255,255,255,.55); font-size:.58rem; }
.preview-table.occupied { background:rgba(155,116,77,.2); color:#fff; }
.preview-table.held { border-color:var(--dd-accent-soft); color:var(--dd-accent-soft); }

/* ---------- Discover ---------- */
.discover-v6-head { padding:150px 0 48px; border-bottom:1px solid var(--dd-line); background:linear-gradient(180deg,#faf8f3,var(--dd-bg)); }
.discover-v6-head>.section-shell { display:grid; grid-template-columns:minmax(0,1fr) minmax(380px,.85fr); gap:60px; align-items:end; }
.discover-v6-copy h1 { margin:8px 0 15px; font:400 clamp(4rem,6.7vw,7rem)/.86 var(--dd-font-display); letter-spacing:-.055em; }
.discover-v6-copy h1 em { color:var(--dd-accent-deep); font-weight:400; }
.discover-v6-copy>p:not(.eyebrow) { max-width:650px; color:var(--dd-muted); }
.discover-search-v6 { min-height:58px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:9px; padding:6px 6px 6px 16px; border:1px solid var(--dd-line-strong); border-radius:var(--dd-pill); background:#fff; box-shadow:var(--dd-shadow-xs); }
.discover-search-v6 svg { width:18px; height:18px; color:var(--dd-accent-deep); }
.discover-search-v6 input { height:44px; border:0; padding:0 5px; box-shadow:none; }
.discover-search-v6 button { height:46px; padding:0 18px; border:0; border-radius:10px; background:var(--dd-ink); color:#fff; font-size:.68rem; font-weight:700; }
.discover-v6-head .intent-row { grid-column:2; display:flex; flex-wrap:wrap; gap:7px; margin-top:-36px; }
.discover-toolbar-v6 { position:sticky; z-index:var(--dd-z-toolbar); top:92px; border-bottom:1px solid var(--dd-line); background:rgba(244,241,234,.95); backdrop-filter:blur(18px); }
.discover-toolbar-v6-inner { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.filter-scroll { display:flex; gap:8px; min-width:0; }
.filter-control { min-width:160px; height:54px; display:flex; align-items:center; gap:10px; padding:0 12px; border:1px solid var(--dd-line); border-radius:14px; background:var(--dd-surface); }
.filter-control-copy { min-width:0; display:grid; flex:1; }
.filter-control small { color:var(--dd-muted); font-size:.53rem; text-transform:uppercase; letter-spacing:.08em; }
.filter-control select,.filter-control input { height:26px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; font-size:.67rem; font-weight:650; }
.filter-actions { display:flex; gap:7px; }
.more-filters-button,.clear-filters { min-height:44px; padding:0 15px; border:1px solid var(--dd-line); border-radius:10px; background:var(--dd-surface); font-size:.64rem; font-weight:700; }
.clear-filters { background:transparent; }
.filter-count { min-width:19px; height:19px; display:grid; place-items:center; border-radius:50%; background:var(--dd-ink); color:#fff; font-size:.52rem; }
.filter-modal-backdrop { position:fixed; z-index:var(--dd-z-backdrop); inset:0; width:100%; border:0; background:rgba(14,13,11,.48); backdrop-filter:blur(6px); }
.more-filters-panel { position:fixed; z-index:var(--dd-z-dialog); top:50%; left:50%; width:min(660px,calc(100vw - 32px)); max-height:min(78dvh,680px); overflow:auto; transform:translate(-50%,-50%); padding:24px; border:1px solid var(--dd-line); border-radius:28px; background:var(--dd-surface); box-shadow:var(--dd-shadow-lg); }
.more-filters-head { display:flex; justify-content:space-between; align-items:start; gap:20px; padding-bottom:18px; border-bottom:1px solid var(--dd-line); }
.more-filters-head h2 { margin:6px 0 0; font:400 2.8rem/1 var(--dd-font-display); }
.more-filters-head button { width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--dd-line); border-radius:50%; background:#fff; }
.more-filters-head svg { width:17px; height:17px; }
.more-filters-grid { display:grid; gap:12px; padding:20px 0; }
.advanced-filter { display:grid; gap:7px; font-size:.67rem; font-weight:650; }
.booking-filter { min-height:64px; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:12px 0; border-top:1px solid var(--dd-line); }
.booking-filter span { display:grid; gap:3px; }
.booking-filter small { color:var(--dd-muted); font-weight:400; }
.booking-filter input { width:20px; height:20px; }
.more-filters-footer { display:flex; justify-content:space-between; gap:10px; padding-top:16px; border-top:1px solid var(--dd-line); }
.discover-workspace-v6 { width:min(1500px,100%); min-height:760px; margin-inline:auto; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(430px,.85fr); }
.results-pane-v6 { min-width:0; padding:38px clamp(22px,3vw,48px) 90px; border-right:1px solid var(--dd-line); }
.results-header-v6 { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:16px; }
.results-header-v6 h2 { margin:4px 0 0; font:400 2.5rem var(--dd-font-display); }
.results-context { color:var(--dd-muted); font-size:.59rem; text-transform:uppercase; letter-spacing:.1em; }
.mobile-map-toggle { display:none; min-height:42px; align-items:center; gap:7px; padding:0 14px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); background:#fff; font-size:.65rem; font-weight:700; }
.active-filter-row { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 17px; }
.active-filter-row:empty { display:none; }
.active-filter-row button { min-height:32px; padding:0 10px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); background:transparent; color:var(--dd-muted); font-size:.58rem; }
.results-list-v6 { display:grid; gap:16px; }
.discover-card { position:relative; display:grid; grid-template-columns:minmax(220px,.78fr) minmax(0,1.22fr); min-height:270px; overflow:hidden; border:1px solid var(--dd-line); border-radius:22px; background:var(--dd-surface); }
.discover-card-image { position:relative; min-height:100%; overflow:hidden; }
.discover-card-image img { width:100%; height:100%; object-fit:cover; }
.discover-card-copy { min-width:0; display:flex; flex-direction:column; padding:20px; }
.discover-card-eyebrow { display:flex; flex-wrap:wrap; gap:8px; margin:0; color:var(--dd-muted); font-size:.58rem; }
.discover-rating { margin-top:8px; color:var(--dd-muted); font-size:.58rem; }
.discover-card h3 { margin:7px 0; font:400 2.3rem/1 var(--dd-font-display); }
.discover-card-note { margin:0; color:var(--dd-muted); font-size:.7rem; line-height:1.65; }
.card-bottom { margin-top:auto; display:flex; justify-content:space-between; align-items:end; gap:12px; }
.view-restaurant { min-width:42px; height:38px; display:grid; place-items:center; padding:0 12px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); font-size:.61rem; font-weight:700; }
.view-restaurant svg { display:none; }
.view-restaurant::after { content:"View"; }
.availability-pending { color:var(--dd-muted); font-size:.6rem; }
.load-more { margin-top:18px; }
.results-footnote { margin:22px 0 0; color:var(--dd-muted); font-size:.61rem; }
.map-pane-v6 { min-width:0; background:#dedbd2; }
.map-shell-v6 { position:sticky; top:174px; height:calc(100vh - 174px); min-height:620px; overflow:hidden; }
.restaurant-map { width:100%; height:100%; min-height:480px; background:#ddd8ce; }
.map-topbar-v6 { position:absolute; z-index:600; top:14px; left:14px; right:14px; display:flex; justify-content:space-between; gap:8px; pointer-events:none; }
.map-topbar-v6 button { min-height:42px; display:flex; align-items:center; gap:7px; padding:0 13px; border:1px solid rgba(23,23,20,.12); border-radius:var(--dd-pill); background:rgba(255,253,249,.94); box-shadow:var(--dd-shadow-xs); font-size:.62rem; font-weight:700; pointer-events:auto; }
.map-list-button { display:none!important; }
.map-credit { position:absolute; z-index:500; left:14px; bottom:14px; max-width:70%; margin:0; padding:8px 11px; border-radius:10px; background:rgba(255,253,249,.9); color:var(--dd-muted); font-size:.54rem; }
.map-popup { display:grid; min-width:190px; gap:4px; font-family:var(--dd-font-ui); }
.map-popup small,.map-popup span,.map-popup p { color:var(--dd-muted); font-size:.62rem; }
.map-popup strong { font:400 1.35rem var(--dd-font-display); }
.map-popup p { margin:2px 0; }
.map-popup a { margin-top:4px; font-size:.63rem; font-weight:700; }

/* ---------- Account ---------- */
.account-page { padding:138px 0 var(--dd-section); }
.account-page-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.55fr); gap:60px; align-items:end; margin-bottom:44px; }
.account-page-intro h1 { margin:8px 0 0; font:400 clamp(4.3rem,7vw,7rem)/.87 var(--dd-font-display); letter-spacing:-.055em; }
.account-page-intro h1 em { color:var(--dd-accent-deep); font-weight:400; }
.account-page-intro>p:last-child { color:var(--dd-muted); line-height:1.75; }
.account-guest { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(300px,.55fr); gap:20px; align-items:start; }
.account-auth-card { padding:28px; border:1px solid var(--dd-line); border-radius:20px; background:var(--dd-surface); box-shadow:var(--dd-shadow-xs); }
.account-auth-heading { display:flex; gap:16px; align-items:flex-start; }
.account-mark { width:50px; height:50px; flex:0 0 auto; display:grid; place-items:center; border-radius:16px; background:var(--dd-dark); color:#fff; font:400 1.4rem var(--dd-font-display); }
.account-auth-heading h2 { margin:4px 0 5px; font:400 2.4rem var(--dd-font-display); }
.account-auth-heading p:last-child { margin:0; color:var(--dd-muted); font-size:.7rem; }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; gap:5px; margin:24px 0 20px; padding:4px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); background:var(--dd-surface-2); }
.auth-tabs button { min-height:42px; border:0; border-radius:var(--dd-pill); background:transparent; font-size:.68rem; font-weight:700; }
.auth-tabs button.active { background:#fff; box-shadow:var(--dd-shadow-xs); }
.auth-form { display:grid; gap:14px; }
.auth-form .auth-submit { width:100%; margin-top:4px; }
.account-benefit-grid { display:grid; gap:10px; }
.account-benefit-grid article { display:grid; grid-template-columns:auto 1fr; gap:13px; padding:18px; border:1px solid var(--dd-line); border-radius:20px; background:var(--dd-surface); }
.benefit-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:var(--dd-surface-3); }
.benefit-icon svg { width:17px; height:17px; }
.account-benefit-grid strong { font-size:.73rem; }
.account-benefit-grid p { margin:3px 0 0; color:var(--dd-muted); font-size:.65rem; line-height:1.55; }
.account-profile { display:grid; gap:28px; }
.account-profile-header { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:24px 0; border-bottom:1px solid var(--dd-line); }
.account-identity { display:flex; gap:14px; align-items:center; }
.account-identity h2 { margin:3px 0; font:400 2.1rem var(--dd-font-display); }
.account-identity p:last-child { margin:0; color:var(--dd-muted); font-size:.75rem; overflow-wrap:anywhere; }
.account-quick-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.account-quick-grid>a { min-height:82px; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:12px; padding:16px; border:1px solid var(--dd-line); border-radius:18px; background:var(--dd-surface); }
.account-quick-grid>a>svg { width:18px; height:18px; color:var(--dd-accent-deep); }
.account-quick-grid .quick-arrow { display:none; }
.account-quick-grid strong,.account-quick-grid small { display:block; }
.account-quick-grid strong { font-size:.8rem; }
.account-quick-grid small { margin-top:2px; color:var(--dd-muted); font-size:.75rem; }
.account-owner-section,.account-team-section,.account-saved-section { padding:28px; border:1px solid var(--dd-line); border-radius:26px; background:var(--dd-surface); }
.account-team-section { background:var(--dd-dark); color:#fff; }
.account-section-heading { display:flex; justify-content:space-between; gap:20px; align-items:end; margin-bottom:22px; }
.account-section-heading h3 { margin:5px 0; font:400 2.5rem var(--dd-font-display); }
.account-section-heading p:last-child { margin:0; color:var(--dd-muted); font-size:.68rem; }
.account-team-section .account-section-heading p:last-child { color:rgba(255,255,255,.55); }
.account-stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:0 0 20px; }
.account-stat-grid div { padding:14px; border:1px solid var(--dd-line); border-radius:14px; }
.account-stat-grid dt { color:var(--dd-muted); font-size:.56rem; }
.account-stat-grid dd { margin:5px 0 0; font:400 2rem var(--dd-font-display); }
.owner-registration-list,.workspace-list-v4,.saved-grid { display:grid; gap:10px; }
.owner-registration,.workspace-entry,.saved-item { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:13px; align-items:center; padding:14px; border:1px solid var(--dd-line); border-radius:16px; }
.account-workspace-grid .workspace-entry>div {display:grid;gap:6px;min-width:0;}
.account-workspace-grid .workspace-entry strong {font-size:15px;overflow-wrap:anywhere;}
.account-workspace-grid .workspace-entry small {font-size:12px;color:rgba(255,253,248,.75);}
.account-workspace-grid .workspace-entry i {font:600 12px var(--dd-font-ui);font-style:normal;}
.registration-mark { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; background:var(--dd-surface-3); font:400 1.3rem var(--dd-font-display); }
.saved-item img { width:94px; height:74px; object-fit:cover; border-radius:12px; }
.saved-item h4,.owner-registration h4 { margin:3px 0; font:400 1.4rem var(--dd-font-display); }
.saved-item small,.owner-registration p { color:var(--dd-muted); font-size:.61rem; }

/* ---------- Diner dashboard ---------- */
.diner-page { padding-bottom:var(--dd-section); }
.diner-hero { padding:145px 0 60px; background:linear-gradient(160deg,#faf8f3,var(--dd-bg)); border-bottom:1px solid var(--dd-line); }
.diner-hero-inner { display:grid; grid-template-columns:1fr minmax(300px,.42fr); gap:50px; align-items:end; }
.diner-greeting h1 { margin:8px 0 14px; font:400 clamp(4rem,6.7vw,6.8rem)/.87 var(--dd-font-display); }
.diner-greeting h1 em { color:var(--dd-accent-deep); font-weight:400; }
.diner-greeting>p:not(.eyebrow) { max-width:630px; color:var(--dd-muted); }
.dashboard-discover-link { display:inline-flex; margin-top:18px; border-bottom:1px solid currentColor; font-size:.69rem; font-weight:700; }
.diner-wallet-card { padding:22px; border-radius:24px; background:var(--dd-dark); color:#fff; }
.diner-wallet-card-top,.diner-wallet-card-foot { display:flex; justify-content:space-between; gap:12px; color:rgba(255,255,255,.52); font-size:.6rem; }
.diner-wallet-card>strong { display:block; margin:18px 0 5px; font:400 4.2rem/.9 var(--dd-font-display); }
.diner-wallet-card>p { color:rgba(255,255,255,.56); font-size:.65rem; }
.diner-wallet-card-foot { padding-top:15px; border-top:1px solid rgba(255,255,255,.12); }
.diner-tab-wrap { position:sticky; z-index:var(--dd-z-toolbar); top:92px; padding:10px var(--dd-pad); background:rgba(244,241,234,.95); backdrop-filter:blur(16px); }
.diner-tabs { width:min(var(--dd-max),100%); margin:auto; display:flex; gap:5px; overflow-x:auto; padding:4px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); background:var(--dd-surface); scrollbar-width:none; }
.diner-tabs button { min-height:42px; flex:1 0 auto; padding:0 16px; border:0; border-radius:var(--dd-pill); background:transparent; font-size:.65rem; font-weight:700; }
.diner-tabs button.active { background:var(--dd-ink); color:#fff; }
.diner-body { padding-top:36px; }
.diner-view:not(.active) { display:none; }
.diner-section-heading { display:flex; justify-content:space-between; gap:30px; align-items:end; margin-bottom:20px; }
.diner-section-heading h2 { margin:5px 0; font:400 3.3rem var(--dd-font-display); }
.diner-section-heading p:last-child { margin:0; color:var(--dd-muted); font-size:.68rem; }
.diner-section-heading>a { font-size:.66rem; font-weight:700; }
.booking-timeline,.booking-history { display:grid; gap:9px; }
.diner-booking { display:grid; grid-template-columns:82px minmax(0,1fr) auto; gap:18px; align-items:center; padding:16px; border:1px solid var(--dd-line); border-radius:18px; background:var(--dd-surface); }
.diner-booking time { display:grid; justify-items:center; padding-right:15px; border-right:1px solid var(--dd-line); }
.diner-booking time strong { font:400 1.45rem var(--dd-font-display); }
.diner-booking time span { color:var(--dd-muted); font-size:.58rem; }
.diner-booking h3 { margin:2px 0; font:400 1.65rem var(--dd-font-display); }
.diner-booking p,.diner-booking small { margin:0; color:var(--dd-muted); font-size:.61rem; }
.diner-booking>div:last-child { display:flex; gap:8px; align-items:center; }
.diner-booking>div:last-child a,.diner-booking>div:last-child button { min-height:38px; padding:0 12px; border:1px solid var(--dd-line); border-radius:9px; background:transparent; font-size:.61rem; font-weight:700; }
.booking-state { display:inline-flex; padding:3px 7px; border-radius:var(--dd-pill); background:color-mix(in srgb,var(--dd-success) 12%,transparent); color:var(--dd-success); font-size:.55rem; }
.diner-insight-grid,.diner-credit-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:18px; }
.diner-insight { display:grid; grid-template-columns:auto 1fr; gap:12px; padding:18px; border:1px solid var(--dd-line); border-radius:18px; background:var(--dd-surface); }
.insight-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:var(--dd-surface-3); }
.insight-icon svg { width:17px; height:17px; }
.diner-insight p,.diner-insight small { margin:0; color:var(--dd-muted); font-size:.6rem; }
.diner-insight strong { display:block; margin:4px 0; font:400 2.1rem var(--dd-font-display); }
.diner-private-desk { padding:20px; border-radius:18px; background:var(--dd-dark); color:#fff; }
.diner-private-desk h3 { margin:6px 0; font:400 2rem var(--dd-font-display); }
.diner-private-desk>p:not(.eyebrow) { color:rgba(255,255,255,.55); font-size:.64rem; }
.diner-private-desk a { font-size:.62rem; font-weight:700; }
.dashboard-subsection { margin-top:28px; }
.subsection-title { display:flex; justify-content:space-between; gap:10px; margin-bottom:10px; }
.subsection-title span { font-weight:700; font-size:.68rem; }
.subsection-title small { color:var(--dd-muted); }
.wallet-balance { padding:26px; border-radius:24px; background:var(--dd-dark); color:#fff; }
.wallet-balance-top { display:flex; justify-content:space-between; }
.wallet-ledger-panel { margin-top:14px; padding:20px; border:1px solid var(--dd-line); border-radius:20px; background:var(--dd-surface); }
.ledger-row { display:grid; grid-template-columns:110px 1fr auto; gap:16px; padding:12px 0; border-top:1px solid var(--dd-line); font-size:.63rem; }
.ledger-row p { margin:0; color:var(--dd-muted); }
.diner-concierge-panel { padding:34px; border-radius:26px; background:var(--dd-dark); color:#fff; }
.diner-empty { padding:24px; border:1px dashed var(--dd-line-strong); border-radius:16px; color:var(--dd-muted); text-align:center; }

/* ---------- Restaurant detail ---------- */
.detail-loading { min-height:80vh; display:grid; place-items:center; align-content:center; gap:8px; }
.detail-loading span { font:400 3rem var(--dd-font-display); }
.detail-loading p { color:var(--dd-muted); }
.restaurant-v4-hero { position:relative; height:min(86svh,860px); min-height:620px; overflow:hidden; background:#1a1a17; color:#fff; }
.restaurant-v4-hero>img { width:100%; height:100%; object-fit:cover; }
.restaurant-v4-hero-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(11,11,10,.18),rgba(11,11,10,.72)); }
.restaurant-v4-hero-shell { position:absolute; z-index:2; left:0; right:0; bottom:0; width:min(var(--dd-max),100%); margin:auto; padding:0 var(--dd-pad) 62px; display:flex; justify-content:space-between; gap:30px; align-items:end; }
.restaurant-v4-hero h1 { margin:8px 0; font:400 clamp(5rem,8vw,8rem)/.84 var(--dd-font-display); letter-spacing:-.055em; }
.restaurant-v4-hero-meta { display:flex; flex-wrap:wrap; gap:10px; align-items:center; color:rgba(255,255,255,.68); }
.selection-mark { padding:6px 10px; border:1px solid rgba(255,255,255,.25); border-radius:var(--dd-pill); font-size:.57rem; }
.restaurant-v4-primary-book { min-height:48px; padding:0 19px; border:0; border-radius:var(--dd-pill); background:#fff; color:var(--dd-ink); font-size:.69rem; font-weight:700; }
.restaurant-v4-anchor { position:sticky; z-index:var(--dd-z-toolbar); top:92px; min-height:58px; display:flex; justify-content:center; gap:30px; border-bottom:1px solid var(--dd-line); background:rgba(255,253,249,.95); backdrop-filter:blur(18px); }
.restaurant-v4-anchor a { min-height:58px; display:flex; align-items:center; position:relative; color:var(--dd-muted); font-size:.65rem; font-weight:700; }
.restaurant-v4-anchor a.active { color:var(--dd-ink); }
.restaurant-v4-anchor a.active::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--dd-accent); }
.restaurant-v4-overview { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(340px,.55fr); gap:70px; padding-top:var(--dd-section); padding-bottom:var(--dd-section); align-items:start; }
.restaurant-v4-editorial h2 { margin:8px 0 18px; font:400 clamp(3.5rem,5vw,5.5rem)/.92 var(--dd-font-display); }
.detail-description { color:var(--dd-muted); font-size:.93rem; line-height:1.8; }
.best-for { display:flex; flex-wrap:wrap; gap:7px; margin:20px 0; }
.best-for span { padding:7px 10px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); font-size:.6rem; }
.detail-actions { display:flex; flex-wrap:wrap; gap:9px; margin:24px 0; }
.save-detail { min-height:48px; padding:0 18px; border:1px solid var(--dd-line-strong); border-radius:var(--dd-pill); background:transparent; font-weight:700; font-size:.7rem; }
.restaurant-v4-trust { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:34px; }
.restaurant-v4-trust>div { padding:17px; border:1px solid var(--dd-line); border-radius:16px; }
.restaurant-v4-trust strong { font-size:.69rem; }
.restaurant-v4-trust p { margin:5px 0 0; color:var(--dd-muted); font-size:.62rem; }
.restaurant-v4-booking { position:sticky; top:170px; padding:22px; border:1px solid var(--dd-line); border-radius:24px; background:var(--dd-surface); box-shadow:var(--dd-shadow-sm); }
.restaurant-v4-booking header { display:flex; justify-content:space-between; gap:12px; }
.restaurant-v4-booking h3 { margin:5px 0 0; font:400 2.4rem var(--dd-font-display); }
.live-indicator { display:flex; align-items:center; gap:6px; color:var(--dd-success); font-size:.58rem; font-weight:700; }
.live-indicator i { width:7px; height:7px; border-radius:50%; background:currentColor; box-shadow:0 0 0 4px color-mix(in srgb,currentColor 12%,transparent); }
.detail-slot-controls { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:18px 0; }
.detail-slot-controls label { display:grid; gap:6px; font-size:.61rem; font-weight:650; }
.restaurant-v4-availability-label { display:flex; justify-content:space-between; gap:8px; color:var(--dd-muted); font-size:.6rem; }
.detail-book-all { width:100%; margin-top:18px; }
.booking-card-fine { display:block; margin-top:10px; color:var(--dd-muted); font-size:.57rem; line-height:1.55; }
.restaurant-v4-locations,.restaurant-v4-gallery { padding-top:var(--dd-section); padding-bottom:var(--dd-section); }
.restaurant-v4-section-head { display:grid; grid-template-columns:1fr minmax(260px,.46fr); gap:40px; align-items:end; margin-bottom:32px; }
.restaurant-v4-section-head h2 { margin:7px 0 0; font:400 3.8rem var(--dd-font-display); }
.restaurant-v4-section-head>p { margin:0; color:var(--dd-muted); }
.branch-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.branch-card { padding:22px; border:1px solid var(--dd-line); border-radius:20px; background:var(--dd-surface); }
.branch-card h3 { margin:7px 0; font:400 2rem var(--dd-font-display); }
.branch-card address,.branch-card>p,.branch-card>small { color:var(--dd-muted); font-size:.64rem; font-style:normal; line-height:1.6; }
.restaurant-v4-menu { padding:var(--dd-section) 0; background:var(--dd-dark); color:#fff; }
.restaurant-v4-section-head.light>p { color:rgba(255,255,255,.55); }
.detail-menu-list { display:grid; gap:34px; }
.menu-block>header { display:flex; justify-content:space-between; gap:20px; padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,.15); }
.menu-block h3 { margin:0; font:400 2.7rem var(--dd-font-display); }
.menu-category { display:grid; grid-template-columns:minmax(180px,.35fr) 1fr; gap:40px; padding:26px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.menu-category h4 { margin:0; font:400 1.8rem var(--dd-font-display); }
.menu-category p { color:rgba(255,255,255,.5); font-size:.62rem; }
.menu-item { display:grid; grid-template-columns:1fr auto; gap:14px; padding:10px 0; }
.menu-item strong { font-size:.72rem; }
.menu-item p { margin:3px 0 0; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr 1fr; gap:10px; }
.detail-gallery img { width:100%; height:440px; object-fit:cover; border-radius:18px; }
.mobile-booking-cta-v4 { display:none; }

/* ---------- Partner page ---------- */
.partner-v6-hero { padding:150px 0 76px; background:radial-gradient(circle at 80% 18%,rgba(155,116,77,.18),transparent 28%),var(--dd-dark); color:#fff; }
.partner-v6-hero-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(400px,.66fr); gap:clamp(50px,7vw,100px); align-items:center; }
.partner-v6-hero-copy h1 { margin:9px 0 20px; font:400 clamp(4.8rem,7.2vw,7.6rem)/.85 var(--dd-font-display); letter-spacing:-.055em; }
.partner-v6-hero-copy h1 em { color:var(--dd-accent-soft); font-weight:400; }
.partner-v6-hero-copy>p:not(.eyebrow) { max-width:650px; color:rgba(255,255,255,.65); line-height:1.75; }
.partner-v6-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:26px; }
.partner-v6-proof { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:26px; color:rgba(255,255,255,.45); font-size:.59rem; }
.partner-v6-proof span { display:flex; align-items:center; gap:7px; }
.partner-v6-proof span::before { content:""; width:5px; height:5px; border-radius:50%; background:var(--dd-accent-soft); }
.partner-product-preview { padding:20px; border:1px solid rgba(255,255,255,.13); border-radius:26px; background:rgba(255,255,255,.05); box-shadow:0 28px 80px rgba(0,0,0,.18); backdrop-filter:blur(12px); }
.partner-product-preview>header { display:flex; justify-content:space-between; align-items:center; padding-bottom:15px; border-bottom:1px solid rgba(255,255,255,.12); }
.partner-product-preview>header>div { display:grid; gap:3px; }
.preview-brand { font:400 1.55rem var(--dd-font-display); }
.preview-brand span { color:var(--dd-accent-soft); }
.partner-product-preview small { color:rgba(255,255,255,.43); font-size:.56rem; }
.preview-status { padding:5px 8px; border-radius:var(--dd-pill); background:rgba(81,102,77,.25); color:#cfddca; font-size:.54rem; }
.partner-preview-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:16px 0; }
.partner-preview-metrics article { padding:14px; border:1px solid rgba(255,255,255,.1); border-radius:14px; }
.partner-preview-metrics small,.partner-preview-metrics strong,.partner-preview-metrics span { display:block; }
.partner-preview-metrics strong { margin:5px 0 1px; font:400 2.4rem var(--dd-font-display); }
.partner-preview-metrics span { color:rgba(255,255,255,.45); font-size:.54rem; }
.preview-list-head { display:grid; grid-template-columns:1fr auto; padding:8px 0; color:rgba(255,255,255,.38); font-size:.53rem; text-transform:uppercase; letter-spacing:.08em; }
.partner-preview-list p { display:grid; grid-template-columns:52px 1fr auto; gap:8px; align-items:center; margin:0; padding:12px 0; border-top:1px solid rgba(255,255,255,.09); font-size:.6rem; }
.partner-preview-list time { color:var(--dd-accent-soft); }
.partner-preview-list strong { font-weight:600; }
.partner-preview-list p>span { color:rgba(255,255,255,.5); }
.partner-product-preview>footer { display:grid; grid-template-columns:repeat(4,1fr); gap:5px; margin-top:12px; padding-top:12px; border-top:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.4); text-align:center; font-size:.52rem; }
.partner-value-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding-top:26px; padding-bottom:26px; }
.partner-value-strip article { display:grid; grid-template-columns:auto 1fr; gap:13px; padding:19px; border:1px solid var(--dd-line); border-radius:18px; background:var(--dd-surface); }
.partner-value-strip svg { width:19px; height:19px; color:var(--dd-accent-deep); }
.partner-value-strip h2 { margin:0; font-size:.75rem; }
.partner-value-strip p { margin:4px 0 0; color:var(--dd-muted); font-size:.63rem; line-height:1.55; }
.partner-platform-v6 { padding-top:var(--dd-section); padding-bottom:var(--dd-section); }
.partner-section-heading { display:grid; grid-template-columns:1fr minmax(300px,.5fr); gap:50px; align-items:end; margin-bottom:35px; }
.partner-section-heading h2 { margin:7px 0 0; font:400 clamp(3.5rem,5.3vw,5.5rem)/.91 var(--dd-font-display); }
.partner-section-heading>p { margin:0; color:var(--dd-muted); line-height:1.75; }
.partner-feature-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.partner-feature-grid article { min-height:260px; display:flex; flex-direction:column; padding:22px; border:1px solid var(--dd-line); border-radius:20px; background:var(--dd-surface); }
.feature-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:14px; background:var(--dd-surface-3); color:var(--dd-accent-deep); }
.partner-feature-grid h3 { margin:auto 0 8px; font:400 2rem var(--dd-font-display); }
.partner-feature-grid p { margin:0; color:var(--dd-muted); font-size:.66rem; line-height:1.65; }
.partner-edit-policy { display:grid; grid-template-columns:1fr minmax(300px,.52fr); gap:55px; align-items:end; padding-top:50px; padding-bottom:50px; border-top:1px solid var(--dd-line); border-bottom:1px solid var(--dd-line); }
.partner-edit-policy h2 { margin:7px 0 0; font:400 3.5rem/.95 var(--dd-font-display); }
.partner-edit-policy>p { margin:0; color:var(--dd-muted); line-height:1.7; }
.onboarding-v6 { padding-top:var(--dd-section); padding-bottom:var(--dd-section); }
.onboarding-v6-heading { display:grid; grid-template-columns:1fr minmax(300px,.52fr); gap:50px; align-items:end; margin-bottom:26px; }
.onboarding-v6-heading h2 { margin:6px 0 0; font:400 clamp(3.5rem,5vw,5rem)/.92 var(--dd-font-display); }
.onboarding-v6-heading>p { margin:0; color:var(--dd-muted); }
.onboarding-progress-v6 { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-bottom:12px; }
.onboarding-progress-v6 button { min-height:66px; display:grid; align-content:center; gap:2px; padding:12px 16px; border:1px solid var(--dd-line); border-radius:16px; background:var(--dd-surface); text-align:left; }
.onboarding-progress-v6 button span { font-size:.7rem; font-weight:700; }
.onboarding-progress-v6 button small { color:var(--dd-muted); font-size:.58rem; }
.onboarding-progress-v6 button.active { border-color:var(--dd-accent); box-shadow:0 0 0 1px var(--dd-accent); }
.restaurant-registration-form-v6 { display:grid; grid-template-columns:minmax(0,1.38fr) minmax(320px,.62fr); gap:18px; align-items:start; overflow:visible; border:0; background:transparent; box-shadow:none; }
.registration-form-main-v6 { padding:30px; display:grid; gap:0; border:1px solid var(--dd-line); border-radius:18px; background:var(--dd-surface); box-shadow:var(--dd-shadow-xs); }
.onboarding-fieldset { margin:0; padding:24px 0 30px; display:grid; gap:15px; border:0; border-bottom:1px solid var(--dd-line); border-radius:0; background:transparent; }
.onboarding-fieldset legend { width:100%; display:flex; justify-content:space-between; gap:18px; padding:0 0 16px; font:400 2rem var(--dd-font-display); }
.onboarding-fieldset legend small { max-width:280px; color:var(--dd-muted); font:400 .6rem/1.5 var(--dd-font-ui); text-align:right; }
.onboarding-fieldset label>small { color:var(--dd-muted); font-size:.56rem; font-weight:400; }
.registration-address-panel-v6 { position:sticky; top:104px; align-self:start; margin:0; padding:26px; display:flex; flex-direction:column; gap:24px; border-radius:18px; background:var(--dd-dark); color:#fff; box-shadow:0 18px 44px rgba(20,18,14,.12); }
.address-panel-copy h3 { margin:8px 0 12px; font:400 2.55rem/.96 var(--dd-font-display); }
.address-panel-copy>p:last-child { color:rgba(255,255,255,.55); font-size:.7rem; line-height:1.65; }
.domain-fieldset-v6 { margin-top:12px; }
.domain-fieldset-v6>label { display:block; margin-bottom:7px; color:rgba(255,255,255,.55); font-size:.58rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.domain-control { display:grid; grid-template-columns:1fr auto; align-items:center; min-height:52px; padding:0 11px; border:1px solid rgba(255,255,255,.18); border-radius:14px; background:rgba(255,255,255,.05); }
.domain-control input { height:48px; padding:0 3px; border:0; background:transparent; color:#fff; box-shadow:none; }
.domain-control span { color:rgba(255,255,255,.48); font-size:.6rem; }
.domain-fieldset-v6 i { display:block; margin-top:7px; color:rgba(255,255,255,.48); font-size:.57rem; font-style:normal; }
.domain-fieldset-v6 i.available { color:#a8c19f; }
.domain-fieldset-v6 i.unavailable { color:#e0aaa5; }
.domain-preview { margin:16px 0 0; color:var(--dd-accent-soft); font:400 1.55rem var(--dd-font-display); overflow-wrap:anywhere; }
.registration-address-assurance { margin:0; padding:18px 0 0; display:grid; gap:8px; border-top:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.52); font-size:.59rem; list-style:none; }
.registration-address-assurance li::before { content:"✓"; margin-right:8px; color:var(--dd-accent-soft); }
.registration-confirm-v6 { grid-column:1; padding:18px 22px 20px; border:1px solid var(--dd-line); border-radius:16px; background:var(--dd-surface); box-shadow:var(--dd-shadow-xs); }
.terms-check-v6 { display:flex!important; align-items:flex-start; gap:10px!important; padding:13px 0; font-size:.62rem!important; line-height:1.55; }
.terms-check-v6 input { width:18px; height:18px; flex:0 0 auto; margin-top:1px; }
.onboarding-actions-v6 { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-top:14px; border-top:1px solid var(--dd-line); }
.onboarding-actions-v6 p { margin:0; color:var(--dd-muted); font-size:.59rem; }
.membership-step-heading { display:grid; grid-template-columns:1fr minmax(280px,.48fr); gap:40px; align-items:end; padding:30px; border:1px solid var(--dd-line); border-radius:24px 24px 0 0; background:var(--dd-surface); }
.membership-step-heading h3 { margin:6px 0 0; font:400 3.2rem var(--dd-font-display); }
.membership-step-heading>p { margin:0; color:var(--dd-muted); }
.plan-grid-v6,.plan-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding:10px 0 0; }
.plan-card { min-height:420px; display:flex; flex-direction:column; padding:22px; border:1px solid var(--dd-line); border-radius:20px; background:var(--dd-surface); }
.plan-card.featured { background:var(--dd-dark); color:#fff; }
.plan-card h3 { margin:7px 0; font:400 2.4rem var(--dd-font-display); }
.plan-card>div>p:last-child,.plan-card li { color:var(--dd-muted); font-size:.63rem; }
.plan-card.featured>div>p:last-child,.plan-card.featured li { color:rgba(255,255,255,.55); }
.plan-price { margin:20px 0; font:400 2.2rem var(--dd-font-display); }
.plan-price small { color:var(--dd-muted); font:500 .6rem var(--dd-font-ui); }
.plan-card ul { margin:0 0 22px; padding-left:17px; display:grid; gap:7px; }
.plan-card button { width:100%; margin-top:auto; }
.plan-card.featured button { background:#fff; color:var(--dd-ink); }
.step-back-v6 { margin-top:15px; }
.partner-contact-v6 { padding:70px 0; background:var(--dd-dark); color:#fff; }
.partner-contact-v6>.section-shell { display:grid; grid-template-columns:1fr minmax(300px,.5fr); gap:50px; align-items:end; }
.partner-contact-v6 h2 { margin:7px 0 0; font:400 4rem var(--dd-font-display); }
.partner-contact-v6 p { color:rgba(255,255,255,.56); }

/* ---------- Memberships ---------- */
.memberships-v6-hero { padding:160px 0 82px; background:var(--dd-dark); color:#fff; }
.memberships-v6-hero>.section-shell { max-width:1000px; margin-left:max(0px,calc((100vw - var(--dd-max))/2)); }
.memberships-v6-hero h1 { margin:9px 0 18px; font:400 clamp(4.8rem,7vw,7.2rem)/.85 var(--dd-font-display); letter-spacing:-.055em; }
.memberships-v6-hero h1 em { color:var(--dd-accent-soft); font-weight:400; }
.memberships-v6-hero p:not(.eyebrow) { max-width:700px; color:rgba(255,255,255,.62); line-height:1.75; }
.memberships-v6-actions { display:flex; gap:9px; margin-top:25px; }
.memberships-collection-v6 { padding-top:var(--dd-section); padding-bottom:var(--dd-section); }
.memberships-v6-heading,.comparison-v6-heading { display:grid; grid-template-columns:1fr minmax(300px,.48fr); gap:50px; align-items:end; margin-bottom:32px; }
.memberships-v6-heading h2,.comparison-v6-heading h2 { margin:7px 0 0; font:400 4rem/.92 var(--dd-font-display); }
.memberships-v6-heading>p,.comparison-v6-heading>p { margin:0; color:var(--dd-muted); }
.membership-card-grid-v6 { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.membership-card-v6 { min-height:500px; display:flex; flex-direction:column; padding:24px; border:1px solid var(--dd-line); border-radius:22px; background:var(--dd-surface); }
.membership-card-v6.featured { background:var(--dd-dark); color:#fff; }
.membership-card-v6>header { min-height:28px; color:var(--dd-muted); font-size:.58rem; }
.membership-featured-label { display:inline-flex; padding:6px 9px; border-radius:var(--dd-pill); background:var(--dd-accent-soft); color:var(--dd-ink); font-size:.55rem; }
.membership-card-v6 h3 { margin:7px 0; font:400 2.7rem var(--dd-font-display); }
.membership-card-v6-copy>p:last-child { color:var(--dd-muted); font-size:.68rem; line-height:1.65; }
.membership-card-v6.featured .membership-card-v6-copy>p:last-child,.membership-card-v6.featured .membership-feature-list li { color:rgba(255,255,255,.56); }
.membership-price-v6 { margin:22px 0; font:400 2.2rem var(--dd-font-display); }
.membership-price-v6 small { display:block; margin-top:4px; color:var(--dd-muted); font:500 .59rem var(--dd-font-ui); }
.membership-feature-list>span { display:block; margin-bottom:8px; color:var(--dd-muted); font-size:.57rem; text-transform:uppercase; letter-spacing:.08em; }
.membership-feature-list ul { margin:0; padding-left:17px; display:grid; gap:7px; }
.membership-feature-list li { color:var(--dd-muted); font-size:.63rem; }
.membership-card-v6>a { width:100%; margin-top:auto; }
.membership-comparison-v6 { padding:var(--dd-section) 0; background:var(--dd-dark); color:#fff; }
.comparison-v6-heading>p { color:rgba(255,255,255,.55); }
.comparison-scroll-v6 { overflow:auto; border:1px solid rgba(255,255,255,.13); border-radius:18px; }
.comparison-scroll-v6 table { width:100%; min-width:320px; border-collapse:collapse; }
.comparison-scroll-v6 th,.comparison-scroll-v6 td { padding:14px 16px; border-bottom:1px solid rgba(255,255,255,.1); text-align:left; font-size:.78rem; line-height:1.5; }
.comparison-scroll-v6 thead th { min-width:140px; }
.comparison-scroll-v6 thead th:first-child { min-width:180px; }
.comparison-scroll-v6 thead th { color:rgba(255,255,255,.5); }
.comparison-scroll-v6 td.included { color:var(--dd-accent-soft); }
.membership-notes-v6 { display:grid; grid-template-columns:minmax(220px,.35fr) 1fr; gap:60px; padding-top:var(--dd-section); padding-bottom:var(--dd-section); }
.membership-notes-v6 h2 { margin:7px 0; font:400 3.5rem var(--dd-font-display); }
.membership-faqs-v6 details { border-top:1px solid var(--dd-line); }
.membership-faqs-v6 summary { min-height:62px; display:flex; justify-content:space-between; align-items:center; gap:16px; cursor:pointer; list-style:none; font-size:.72rem; font-weight:650; }
.membership-faqs-v6 summary::-webkit-details-marker { display:none; }
.membership-faqs-v6 details p { margin:0 0 18px; max-width:760px; color:var(--dd-muted); font-size:.68rem; line-height:1.7; }
.membership-faqs-v6 details[open] summary span { transform:rotate(45deg); }
.membership-cta-v6 { padding:66px 0; background:var(--dd-dark); color:#fff; }
.membership-cta-v6>.section-shell { display:flex; justify-content:space-between; gap:30px; align-items:end; }
.membership-cta-v6 h2 { margin:6px 0 0; font:400 3.7rem var(--dd-font-display); }

/* ---------- Payment ---------- */
body[data-page="partner-payment"] .floating-nav-wrap,body[data-page="partner-payment"] .site-footer,body[data-page="partner-payment"] .mobile-dock-wrap { display:none!important; }
.payment-v4 { min-height:100dvh; display:grid; grid-template-columns:minmax(360px,.72fr) minmax(0,1fr); background:var(--dd-bg); }
.payment-v4-summary { min-height:100dvh; padding:42px clamp(28px,4vw,58px); display:flex; flex-direction:column; background:var(--dd-dark); color:#fff; }
.payment-wordmark span { color:var(--dd-accent-soft); }
.payment-v4-summary-copy { margin:auto 0 32px; }
.payment-v4-summary-copy h1 { margin:8px 0; font:400 clamp(3rem,4.8vw,5rem)/.92 var(--dd-font-display); }
.payment-v4-summary-copy>p:last-child { color:rgba(255,255,255,.5); }
.payment-order-summary { margin:0; }
.payment-order-summary>div { display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-top:1px solid rgba(255,255,255,.12); }
.payment-order-summary dt { color:rgba(255,255,255,.48); font-size:.62rem; }
.payment-order-summary dd { margin:0; font-size:.68rem; font-weight:700; }
.payment-total dd { color:var(--dd-accent-soft); font:400 1.5rem var(--dd-font-display); }
.payment-v4-safety { margin-top:20px; padding:15px; border:1px solid rgba(255,255,255,.1); border-radius:15px; }
.payment-v4-safety strong { font-size:.64rem; }
.payment-v4-safety p { margin:5px 0 0; color:rgba(255,255,255,.48); font-size:.59rem; }
.payment-order-foot { display:flex; justify-content:space-between; margin-top:20px; color:rgba(255,255,255,.36); font-size:.56rem; }
.payment-v4-experience { display:grid; place-items:center; padding:50px; }
.payment-checkout-card,.payment-provisioning-card { width:min(620px,100%); padding:30px; border:1px solid var(--dd-line); border-radius:28px; background:var(--dd-surface); box-shadow:var(--dd-shadow-sm); }
.payment-checkout-head { display:flex; justify-content:space-between; align-items:start; gap:20px; }
.payment-checkout-head h2,.payment-provisioning-card h2 { margin:7px 0 0; font:400 3.4rem/.95 var(--dd-font-display); }
.payment-lock { padding:7px 10px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); color:var(--dd-muted); font-size:.56rem; }
.payment-lead,.payment-legal { color:var(--dd-muted); font-size:.66rem; line-height:1.65; }
.payment-recipient { display:flex; justify-content:space-between; gap:20px; padding:14px 0; border-top:1px solid var(--dd-line); border-bottom:1px solid var(--dd-line); font-size:.65rem; }
.payment-methods { display:flex; flex-wrap:wrap; gap:6px; margin:14px 0; }
.payment-methods span { padding:6px 8px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); color:var(--dd-muted); font-size:.54rem; }
.dedicated-pay-button { width:100%; justify-content:space-between; margin-top:10px; }
.payment-page-error,.provisioning-error { margin:12px 0; padding:12px; border-radius:12px; background:color-mix(in srgb,var(--dd-danger) 10%,#fff); color:var(--dd-danger); font-size:.64rem; }
.provisioning-mark { width:54px; height:54px; display:grid; place-items:center; border-radius:16px; background:var(--dd-dark); color:#fff; font:400 1.5rem var(--dd-font-display); }
.provisioning-stages { margin:24px 0; padding:0; list-style:none; }
.provisioning-stages li { display:grid; grid-template-columns:1fr; gap:12px; padding:14px 0; border-top:1px solid var(--dd-line); }
.provisioning-stages li>span { display:none; }
.provisioning-stages strong,.provisioning-stages small { display:block; }
.provisioning-stages strong { font-size:.67rem; }
.provisioning-stages small { margin-top:2px; color:var(--dd-muted); font-size:.57rem; }
.provisioning-stages li.active strong { color:var(--dd-accent-deep); }

/* ---------- Booking widget ---------- */
body[data-page="booking-widget"] { background:var(--dd-bg); }
.widget-shell { width:min(680px,100%); min-height:100dvh; margin:auto; padding:clamp(22px,5vw,42px); background:linear-gradient(180deg,#faf8f3,var(--dd-bg)); }
.widget-header { padding-bottom:24px; border-bottom:1px solid var(--dd-line); }
.widget-brand-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; }
.restaurant-mark { width:52px; height:52px; display:grid; place-items:center; overflow:hidden; border-radius:16px; background:var(--brand,var(--dd-dark)); color:#fff; font:400 1.4rem var(--dd-font-display); }
.restaurant-mark img { width:100%; height:100%; object-fit:cover; }
.widget-close { width:42px; height:42px; border:1px solid var(--dd-line); border-radius:50%; background:#fff; font-size:1.4rem; }
.widget-kicker { margin:0 0 8px; color:var(--dd-muted); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }
.widget-header h1,.step-heading h2,.result h2 { margin:0; font:400 clamp(38px,7vw,54px)/1 var(--dd-font-display); letter-spacing:-.045em; }
.widget-intro { max-width:500px; margin:16px 0 0; color:var(--dd-muted); font-size:15px; line-height:1.6; }
.widget-progress { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; margin:20px 0; padding:4px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); list-style:none; }
.widget-progress li { min-height:48px; display:flex; align-items:center; justify-content:center; gap:6px; border-radius:var(--dd-pill); color:var(--dd-muted); font-size:14px; }
.widget-progress button { width:100%; min-height:48px; padding:8px 4px; border:0; border-radius:var(--dd-pill); background:transparent; color:inherit; font-size:14px; font-weight:600; }
.widget-progress button:disabled { opacity:.65; }
.widget-progress li.complete { color:var(--dd-ink); }
.widget-progress li>span { display:none; }
.widget-progress li.active { background:var(--dd-ink); color:#fff; }
.step { display:none; }
.step.active { display:block; }
.step-heading { display:flex; justify-content:space-between; gap:20px; align-items:end; margin:22px 0 16px; }
.step-heading p { margin:0 0 8px; color:var(--dd-muted); font-size:13px; text-transform:uppercase; letter-spacing:.08em; }
.step-heading>span { color:var(--dd-muted); font-size:13px; }
body[data-page="booking-widget"] .step-heading { display:block; }
body[data-page="booking-widget"] .step-heading>span { display:none; }
body[data-page="booking-widget"] form label { display:grid; gap:8px; margin-top:18px; font-size:14px; font-weight:650; }
body[data-page="booking-widget"] form input,body[data-page="booking-widget"] form select,body[data-page="booking-widget"] form textarea,body[data-page="booking-widget"] .dd-picker-field > button[data-dd-picker-open] { font-size:16px; }
body[data-page="booking-widget"] form small { font-size:13px; font-weight:400; color:var(--dd-muted); }
body[data-page="booking-widget"] .dd-picker-field > span:first-child { font-size:14px; }
body[data-page="booking-widget"] h2[tabindex="-1"]:focus { outline:0; }
body[data-page="booking-widget"] input[readonly] { background:var(--dd-surface-2); color:var(--dd-muted); }
body[data-page="booking-widget"] [aria-invalid="true"] { border-color:var(--dd-danger); }
body[data-page="booking-widget"] .fine { font-size:13px; line-height:1.6; color:var(--dd-muted); }
.widget-error { padding:14px 16px; border:1px solid color-mix(in srgb,var(--dd-danger) 25%,transparent); border-radius:14px; background:var(--dd-surface); font-size:15px; line-height:1.5; }
.widget-account-note { margin:16px 0 4px; color:var(--dd-success); font-size:14px; line-height:1.6; }
.widget-security { margin:20px 0; padding:14px; border:1px solid var(--dd-line); border-radius:16px; background:var(--dd-surface-2); }
.widget-security-note { margin:0; color:var(--dd-muted); font-size:13px; line-height:1.5; }
.widget-security [data-booking-security] { margin-top:8px; min-width:0; }
.widget-security [data-booking-security]:empty { margin-top:0; }
.availability-fieldset { margin:18px 0; padding:0; border:0; }
.availability-fieldset legend { width:100%; display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 12px; margin-bottom:12px; font-size:14px; }
.availability-fieldset small { color:var(--dd-muted); }
.slot-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }
.slot-grid button { min-height:46px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); background:#fff; font-size:15px; font-weight:650; }
.slot-grid button.active,.slot-grid button[aria-pressed="true"] { background:var(--brand,var(--dd-ink)); color:#fff; border-color:var(--brand,var(--dd-ink)); }
body[data-page="booking-widget"] .primary { width:100%; min-height:52px; margin-top:18px; font-size:16px; }
body[data-page="booking-widget"] .back { min-height:44px; font-size:14px; }
.back,.result-close { min-height:38px; padding:0; border:0; background:transparent; color:var(--dd-muted); font-size:.63rem; font-weight:700; }
.back-icon { display:none; }
.selection { padding:14px 16px; border:1px solid var(--dd-line); border-radius:14px; background:var(--dd-surface-2); font-size:15px; line-height:1.6; }
.trap { position:absolute!important; left:-9999px!important; }
.result { padding:40px 0; text-align:center; }
.result-mark { width:58px; height:58px; display:grid; place-items:center; margin:0 auto 18px; border-radius:50%; background:var(--dd-success); color:#fff; }
.widget-shell>footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin-top:28px; padding-top:16px; border-top:1px solid var(--dd-line); color:var(--dd-muted); font-size:13px; }

/* Dedicated editorial and request pages share the two brand font families. */
.dd-editorial-page,.dd-concierge-page { padding-top:clamp(120px,12vw,180px); padding-bottom:var(--dd-section); }
.dd-editorial-intro { margin-bottom:48px; max-width:760px; }
.dd-editorial-intro h1 { margin:14px 0 24px; font:400 clamp(3.4rem,6vw,6rem)/.95 var(--dd-font-display); letter-spacing:-.035em; }
.dd-editorial-intro h1 em { color:var(--dd-accent-deep); }
.dd-editorial-intro>p:not(.eyebrow) { color:var(--dd-muted); font-size:1.05rem; line-height:1.7; max-width:560px; }
.dd-edit-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 28px; }
.dd-edit-card { min-width:0; }
.dd-edit-card img { width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:24px; background:var(--dd-bg-alt); }
.dd-edit-card-copy { padding:24px 4px; }
.dd-edit-card h2,.dd-editorial-empty h2 { margin:10px 0 16px; font:400 2.8rem/1.05 var(--dd-font-display); }
.dd-edit-card-copy>p:not(.eyebrow) { line-height:1.75; color:var(--dd-muted); font-size:1rem; }
.dd-edit-card .text-link { display:inline-flex; min-height:44px; align-items:center; margin-top:12px; }
.dd-editorial-empty { grid-column:1/-1; padding:32px; border:1px solid var(--dd-line); border-radius:24px; background:var(--dd-surface); }
.dd-editorial-empty p { font-size:1rem; color:var(--dd-muted); }
.dd-concierge-page { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1fr); gap:clamp(28px,6vw,80px); align-items:start; }
.dd-concierge-expectations { margin-top:36px; padding-top:24px; border-top:1px solid var(--dd-line); }
.dd-concierge-expectations h2 { font:600 1rem/1.5 var(--dd-font-ui); }
.dd-concierge-expectations p { color:var(--dd-muted); font-size:.95rem; line-height:1.7; }
.dd-concierge-request { padding:clamp(22px,3vw,38px); background:var(--dd-surface); border:1px solid var(--dd-line); border-radius:28px; }
.dd-concierge-request h2 { margin:0 0 24px; font:400 2.5rem/1.1 var(--dd-font-display); }
.dd-concierge-request .sheet-form { gap:24px; }
.dd-concierge-request .form-field { font-size:.875rem; }
.dd-concierge-request .form-field input,.dd-concierge-request .form-field select,.dd-concierge-request .form-field textarea { font:400 1rem/1.5 var(--dd-font-ui); min-width:0; width:100%; }
.dd-concierge-request .form-section legend { font-size:.95rem; }
.dd-concierge-request .form-note { font-size:.875rem; line-height:1.6; }
.dd-request-error { color:var(--dd-danger); font-size:.95rem; line-height:1.5; }
.dd-request-success p { font-size:1rem; line-height:1.7; }
@media(max-width:980px) { .dd-concierge-page { grid-template-columns:1fr; } .dd-concierge-page .dd-editorial-intro { margin-bottom:0; } }
@media(max-width:600px) { .dd-edit-grid { grid-template-columns:1fr; gap:22px; } .dd-concierge-request .form-row { grid-template-columns:1fr; } .dd-concierge-expectations { margin-top:24px; } .dd-editorial-intro { margin-bottom:28px; } }

/* ---------- Global booking / concierge overlays ---------- */
.dialog-backdrop { position:fixed; z-index:var(--dd-z-backdrop); inset:0; visibility:hidden; opacity:0; background:rgba(12,12,10,.52); backdrop-filter:blur(8px); transition:.18s; }
.dialog-backdrop.open,.dialog-backdrop[aria-hidden="false"] { visibility:visible; opacity:1; }
.booking-sheet,.concierge-dialog { position:fixed; z-index:var(--dd-z-sheet); top:0; right:0; width:min(560px,100%); max-width:none; height:100dvh; max-height:none; margin:0; padding:30px; overflow:auto; border:0; border-left:1px solid var(--dd-line); background:var(--dd-surface); box-shadow:var(--dd-shadow-lg); transform:translateX(104%); transition:transform .25s var(--dd-ease); }
.booking-sheet.open,.booking-sheet[aria-hidden="false"],.concierge-dialog[open] { transform:translateX(0); }
.concierge-dialog::backdrop { background:rgba(12,12,10,.52); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.sheet-close { float:right; width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--dd-line); border-radius:50%; background:#fff; }
.sheet-close svg { width:17px; height:17px; }
.sheet-header { padding:55px 0 20px; }
.sheet-kicker-row { display:flex; justify-content:space-between; gap:12px; }
.sheet-live,.sheet-service-status { color:var(--dd-success); font-size:.58rem; font-weight:700; }
.sheet-header h2 { margin:7px 0 9px; font:400 3.8rem/.92 var(--dd-font-display); }
.sheet-lead { margin:0; color:var(--dd-muted); line-height:1.65; }
.sheet-form { display:grid; gap:13px; }
.form-section { margin:0; padding:16px 0; border:0; border-top:1px solid var(--dd-line); }
.form-section legend { margin-bottom:10px; font-size:.64rem; font-weight:700; }
.booking-submit,.concierge-submit { width:100%; }
.sheet-assurance,.concierge-assurance { display:flex; flex-wrap:wrap; gap:6px; }
.sheet-assurance span,.concierge-assurance span { padding:6px 8px; border:1px solid var(--dd-line); border-radius:var(--dd-pill); color:var(--dd-muted); font-size:.54rem; }
.concierge-float { position:fixed; z-index:var(--dd-z-concierge-float); right:18px; bottom:18px; width:44px; height:44px; min-height:44px; display:grid; place-items:center; padding:0; border:1px solid var(--dd-line-strong); border-radius:var(--dd-pill); background:rgba(255,253,249,.96); color:var(--dd-muted); box-shadow:var(--dd-shadow-xs); font:600 1rem/1 var(--dd-font-ui); }
.concierge-float:hover { color:var(--dd-ink); border-color:var(--dd-accent); }
.dd-confirm-dialog { width:min(460px,calc(100vw - 28px)); padding:24px; border:1px solid var(--dd-line); border-radius:24px; background:var(--dd-surface); box-shadow:var(--dd-shadow-lg); }
.dd-confirm-dialog::backdrop { background:rgba(12,12,10,.5); backdrop-filter:blur(6px); }
.dd-confirm-mark { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; background:var(--dd-dark); color:#fff; font:400 1.2rem var(--dd-font-display); }
.dd-confirm-copy h2 { margin:7px 0; font:400 2.5rem var(--dd-font-display); }
.dd-confirm-copy>p:last-child { color:var(--dd-muted); }
.dd-confirm-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:18px; }
.dd-confirm-danger { background:var(--dd-danger); border-color:var(--dd-danger); }
.toast { position:fixed; z-index:var(--dd-z-toast); left:50%; bottom:22px; min-width:min(420px,calc(100vw - 28px)); max-width:560px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; padding:10px; border:1px solid var(--dd-line); border-radius:16px; background:var(--dd-surface); box-shadow:var(--dd-shadow); transform:translateX(-50%); }
.toast-mark { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; background:var(--dd-dark); color:#fff; font:400 .95rem var(--dd-font-display); }
.toast p { margin:0; font-size:.65rem; }
.toast button { width:34px; height:34px; display:grid; place-items:center; border:0; background:transparent; }
.toast svg { width:15px; height:15px; }


/* ---------- Shared application states generated by JavaScript ---------- */
.empty-state,.landing-empty { grid-column:1/-1; min-height:240px; display:grid; align-content:center; justify-items:start; gap:10px; padding:30px; border:1px solid var(--dd-line); border-radius:16px; background:var(--dd-surface); }
.empty-state h2,.landing-empty h3 { margin:0; font:400 clamp(2rem,4vw,3rem)/1 var(--dd-font-display); letter-spacing:-.035em; }
.empty-state>p,.landing-empty p { max-width:560px; margin:0; color:var(--dd-muted); font-size:.72rem; line-height:1.7; }
.empty-mark { display:block; color:var(--dd-accent-deep); font:400 1.8rem var(--dd-font-display); }
.account-empty-note { margin:0; padding:24px 0; border-top:1px solid var(--dd-line); color:var(--dd-muted); font-size:.7rem; }
.registration-status { display:inline-flex; align-items:center; min-height:26px; padding:0 8px; border:1px solid var(--dd-line); border-radius:7px; background:var(--dd-surface-2); color:var(--dd-muted); font-size:.54rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.registration-status.status-active,.registration-status.status-complete { border-color:color-mix(in srgb,var(--dd-success) 30%,transparent); color:var(--dd-success); }
.registration-status.status-failed,.registration-status.status-error { border-color:color-mix(in srgb,var(--dd-danger) 30%,transparent); color:var(--dd-danger); }
.time-pill { min-height:34px; display:inline-flex; align-items:center; justify-content:center; padding:0 10px; border:1px solid var(--dd-line-strong); border-radius:var(--dd-pill); background:#fff; font-size:.6rem; font-weight:700; }
.location-card-link { min-height:34px; display:inline-flex; align-items:center; padding:0 2px; border-bottom:1px solid currentColor; font-size:.6rem; font-weight:700; }
.booking-loading { display:inline-flex; align-items:center; min-height:36px; color:var(--dd-muted); font-size:.62rem; }

/* ---------- Dashboard session ---------- */
.dashboard-session { min-height:100dvh; display:grid; place-items:center; align-content:center; gap:13px; padding:30px; text-align:center; background:var(--dd-bg); }
.dashboard-session h1 { margin:0; font:400 3rem var(--dd-font-display); }
.dashboard-session p { max-width:430px; margin:0; color:var(--dd-muted); }
.dashboard-session button { min-height:44px; padding:0 16px; border:0; border-radius:var(--dd-pill); background:var(--dd-ink); color:#fff; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .nav-links { gap:16px; }
  .nav-location { display:none; }
  .partner-v6-hero-inner { grid-template-columns:1fr minmax(350px,.7fr); }
  .partner-feature-grid { grid-template-columns:repeat(2,1fr); }
  .occasion-grid,.mood-grid { grid-template-columns:repeat(2,1fr); }
  .membership-card-grid-v6,.plan-grid-v6,.plan-grid { grid-template-columns:repeat(2,1fr); }
  .discover-workspace-v6 { grid-template-columns:minmax(0,1fr) minmax(380px,.72fr); }
}

@media (max-width: 920px) {
  :root { --dd-header-h:60px; }
  .floating-nav { width:min(720px,100%); grid-template-columns:1fr auto; padding-left:17px; }
  .nav-links,.nav-location,.nav-signout { display:none; }
  .nav-menu-button { display:grid; }
  .floating-nav .brand { font-size:1.9rem; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .newsletter-shell { grid-template-columns:1fr; gap:28px; }
  .hero-v6 { min-height:760px; height:90svh; }
  .hero-v6-inner { padding-bottom:122px; }
  .hero-v6-copy h1 { font-size:clamp(4.5rem,11vw,6.5rem); }
  .search-console-v6 { grid-template-columns:repeat(3,1fr) auto; }
  .section-heading-v6,.partner-section-heading,.onboarding-v6-heading,.partner-edit-policy,.memberships-v6-heading,.comparison-v6-heading { grid-template-columns:1fr; gap:18px; }
  .cards-grid { grid-template-columns:repeat(2,1fr); }
  .feature-split { grid-template-columns:1fr; }
  .feature-side { grid-template-columns:repeat(3,1fr); }
  .compact-card { grid-template-columns:1fr; min-height:250px; }
  .compact-card-image { min-height:145px; }
  .edit-layout { grid-template-columns:1fr; }
  .edit-visual { min-height:520px; }
  .concierge-panel { grid-template-columns:1fr; gap:26px; }
  .partner-panel { grid-template-columns:1fr; }
  .discover-v6-head>.section-shell { grid-template-columns:1fr; gap:26px; }
  .discover-v6-head .intent-row { grid-column:1; margin-top:0; }
  .discover-toolbar-v6 { top:84px; }
  .discover-workspace-v6 { display:block; min-height:0; }
  .results-pane-v6 { padding:28px var(--dd-pad) 100px; border-right:0; }
  .mobile-map-toggle { display:flex; }
  .map-pane-v6 { display:none; position:fixed; z-index:var(--dd-z-map); inset:0; background:#dedbd2; padding-top:82px; padding-bottom:82px; }
  .discover-workspace.mobile-map .map-pane-v6 { display:block; }
  .discover-workspace.mobile-map .results-pane-v6 { visibility:hidden; }
  .map-shell-v6 { position:relative; top:auto; height:100%; min-height:0; }
  .map-list-button { display:flex!important; }
  .map-credit { bottom:14px; }
  .restaurant-registration-form-v6 { grid-template-columns:1fr; }
  .registration-address-panel-v6 { position:relative; top:auto; min-height:auto; }
  .registration-confirm-v6 { grid-column:1; }
  .partner-v6-hero-inner { grid-template-columns:1fr; }
  .partner-product-preview { max-width:620px; }
  .partner-value-strip { grid-template-columns:1fr; }
  .restaurant-v4-overview { grid-template-columns:1fr; gap:36px; }
  .restaurant-v4-booking { position:relative; top:auto; }
  .branch-grid { grid-template-columns:repeat(2,1fr); }
  .account-page-intro,.account-guest,.diner-hero-inner { grid-template-columns:1fr; gap:24px; }
  .diner-wallet-card { max-width:500px; }
  .payment-v4 { grid-template-columns:1fr; }
  .payment-v4-summary { min-height:auto; padding:28px var(--dd-pad); }
  .payment-v4-summary-copy { margin:24px 0 18px; }
  .payment-v4-experience { padding:32px var(--dd-pad) 60px; }
}

@media (max-width: 760px) {
  :root { --dd-pad:18px; --dd-section:70px; }
  body:not([data-page="partner-payment"]):not([data-page="booking-widget"]) { padding-bottom:84px; }
  .floating-nav-wrap { top:10px; padding-inline:10px; }
  .floating-nav { height:58px; min-height:58px; border-radius:22px; padding:0 6px 0 16px; }
  .nav-account,.nav-menu-button { width:44px; height:44px; }
  .mobile-menu-panel { width:min(360px,86vw); padding:16px 18px calc(20px + env(safe-area-inset-bottom)); }
  .mobile-dock-wrap { position:fixed; z-index:var(--dd-z-dock); left:10px; right:10px; bottom:max(9px,env(safe-area-inset-bottom)); display:block; transition:opacity .18s; }
  .mobile-dock { width:100%; height:64px; }
  body[data-page="partner-payment"] .mobile-dock-wrap,body[data-page="booking-widget"] .mobile-dock-wrap { display:none!important; }
  .site-footer { padding-bottom:94px; }
  .newsletter-strip { padding:56px 0; }
  .newsletter-form { grid-template-columns:1fr; border-radius:20px; }
  .newsletter-form button { width:100%; }
  .footer-main { grid-template-columns:1fr 1fr; gap:30px 20px; }
  .footer-brand { grid-column:1/-1; }
  .footer-bottom { flex-direction:column; margin-top:35px; }
  .hero-v6 { min-height:710px; height:88svh; }
  .hero-v6-inner { padding-bottom:194px; }
  .hero-v6-copy h1 { font-size:clamp(4rem,18vw,5.7rem); }
  .hero-intro { font-size:.86rem; }
  .search-console-v6 { left:12px; right:12px; bottom:16px; width:auto; grid-template-columns:1fr 1fr; gap:0; padding:7px; border-radius:24px; }
  .search-field { border-right:0; border-bottom:1px solid var(--dd-line); }
  .search-field:nth-child(2) { border-left:1px solid var(--dd-line); }
  .search-field:nth-child(3) { grid-column:1/-1; border-bottom:0; }
  .search-trigger { min-height:52px; padding:0 11px; }
  .search-submit { grid-column:1/-1; min-height:48px; justify-content:center; margin-top:4px; }
  .date-popover,.party-popover { position:fixed; z-index:var(--dd-z-popover); left:10px!important; right:10px!important; bottom:84px!important; top:auto!important; min-width:0; max-height:70dvh; overflow:auto; border-radius:24px; }
  .location-popover { top:auto!important; left:10px!important; right:10px!important; bottom:10px!important; width:auto!important; max-height:82dvh; padding:20px!important; border-radius:26px!important; transform:translateY(20px)!important; }
  .location-popover.open { transform:translateY(0)!important; }
  .quick-discovery-shell { padding-inline:18px; }
  .section-heading-v6 h2 { font-size:3.4rem; }
  .cards-grid { grid-template-columns:1fr; }
  .feature-restaurant { min-height:510px; }
  .feature-side { grid-template-columns:1fr; }
  .compact-card { grid-template-columns:118px 1fr; min-height:130px; }
  .compact-card-image { min-height:130px; }
  .occasion-grid,.mood-grid { grid-template-columns:1fr 1fr; gap:9px; }
  .occasion-card,.mood-card { min-height:360px; }
  .occasion-content,.mood-copy { left:15px; right:15px; bottom:15px; }
  .occasion-content h3,.mood-copy h3 { font-size:1.75rem; }
  .cuisine-panel>header { align-items:start; flex-direction:column; }
  .cuisine-cloud { flex-wrap:nowrap; overflow-x:auto; margin-right:-18px; padding-right:18px; scrollbar-width:none; }
  .edit-visual { min-height:430px; }
  .edit-main-image { right:12%; }
  .edit-side-image { width:38%; }
  .edit-copy h2 { font-size:3.6rem; }
  .horizontal-track { grid-auto-columns:82%; }
  .concierge-panel { padding:28px 22px; border-radius:24px; }
  .concierge-copy h2 { font-size:3.6rem; }
  .partner-panel { padding:26px 20px; border-radius:24px; gap:28px; }
  .preview-tables { grid-template-columns:repeat(4,1fr); }
  .discover-v6-head { padding:118px 0 32px; }
  .discover-v6-copy h1 { font-size:clamp(3.8rem,16vw,5.4rem); }
  .discover-toolbar-v6 { top:78px; }
  .discover-toolbar-v6-inner { min-height:70px; padding-top:8px; padding-bottom:8px; overflow:hidden; }
  .filter-scroll { overflow-x:auto; flex:1; scrollbar-width:none; }
  .filter-control { min-width:132px; height:50px; }
  .filter-actions { flex:0 0 auto; }
  .clear-filters { display:none; }
  .more-filters-button { padding:0 12px; }
  .more-filters-panel { top:auto; left:10px; right:10px; bottom:10px; width:auto; max-height:80dvh; transform:none; border-radius:24px; }
  .discover-card { grid-template-columns:1fr; }
  .discover-card-image { aspect-ratio:16/10; }
  .discover-card-copy { padding:17px; }
  .discover-card h3 { font-size:2.05rem; }
  .map-pane-v6 { padding-top:78px; padding-bottom:84px; }
  .map-topbar-v6 { top:12px; }
  .partner-v6-hero { padding:116px 0 52px; }
  .partner-v6-hero-copy h1 { font-size:clamp(4rem,16vw,5.8rem); }
  .partner-preview-metrics { grid-template-columns:repeat(3,1fr); }
  .partner-preview-list p { grid-template-columns:46px 1fr; }
  .partner-preview-list p>span { grid-column:2; }
  .partner-feature-grid { grid-template-columns:1fr; }
  .partner-edit-policy h2,.onboarding-v6-heading h2 { font-size:3.4rem; }
  .onboarding-progress-v6 { grid-template-columns:1fr; }
  .registration-form-main-v6 { padding:15px; }
  .onboarding-fieldset { padding:22px 0 26px; }
  .onboarding-fieldset legend { display:grid; gap:4px; font-size:1.75rem; }
  .onboarding-fieldset legend small { text-align:left; }
  .form-pair,.form-row,.form-trio { grid-template-columns:1fr; }
  .registration-address-panel-v6 { margin:0; padding:24px 18px; }
  .address-panel-copy h3 { font-size:2.25rem; }
  .registration-confirm-v6 { padding:15px 18px 18px; }
  .onboarding-actions-v6 { align-items:stretch; flex-direction:column; }
  .onboarding-actions-v6 .solid-button { width:100%; }
  .membership-step-heading { grid-template-columns:1fr; padding:22px 18px; }
  .plan-grid-v6,.plan-grid,.membership-card-grid-v6 { grid-template-columns:1fr; }
  .partner-contact-v6>.section-shell,.membership-cta-v6>.section-shell { display:grid; grid-template-columns:1fr; }
  .memberships-v6-hero { padding:118px 0 58px; }
  .memberships-v6-hero h1 { font-size:clamp(4rem,16vw,5.6rem); }
  .memberships-v6-actions { align-items:stretch; flex-direction:column; }
  .membership-notes-v6 { grid-template-columns:1fr; gap:22px; }
  .account-page { padding-top:118px; }
  .account-page-intro h1,.diner-greeting h1 { font-size:clamp(4rem,16vw,5.5rem); }
  .account-quick-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .account-quick-grid>a {grid-template-columns:1fr;justify-items:center;text-align:center;gap:6px;padding:12px 6px;min-height:76px;}
  .account-quick-grid small {display:none;}
  .account-workspace-grid .workspace-entry i {grid-column:2;}
  .account-profile-header,.account-section-heading,.diner-section-heading { align-items:flex-start; flex-direction:column; }
  .account-stat-grid { grid-template-columns:repeat(2,1fr); }
  .owner-registration,.workspace-entry,.saved-item { grid-template-columns:auto 1fr; }
  .owner-registration>a,.saved-item>button { grid-column:1/-1; }
  .diner-hero { padding-top:118px; }
  .diner-tab-wrap { top:78px; padding-inline:10px; }
  .diner-body { padding-top:25px; }
  .diner-booking { grid-template-columns:68px 1fr; gap:12px; }
  .diner-booking>div:last-child { grid-column:1/-1; padding-left:80px; }
  .diner-insight-grid,.diner-credit-grid { grid-template-columns:1fr; }
  .ledger-row { grid-template-columns:1fr auto; }
  .ledger-row p { grid-column:1/-1; }
  .restaurant-v4-hero { min-height:570px; height:78svh; }
  .restaurant-v4-hero-shell { padding-bottom:34px; align-items:flex-start; flex-direction:column; }
  .restaurant-v4-hero h1 { font-size:clamp(4.5rem,18vw,6rem); }
  .restaurant-v4-primary-book { width:100%; }
  .restaurant-v4-anchor { top:78px; justify-content:flex-start; gap:20px; overflow-x:auto; padding-inline:18px; scrollbar-width:none; }
  .restaurant-v4-overview { padding-top:60px; padding-bottom:60px; }
  .restaurant-v4-editorial h2 { font-size:3.5rem; }
  .restaurant-v4-trust { grid-template-columns:1fr; }
  .branch-grid { grid-template-columns:1fr; }
  .restaurant-v4-section-head { grid-template-columns:1fr; gap:12px; }
  .restaurant-v4-section-head h2 { font-size:3.3rem; }
  .menu-category { grid-template-columns:1fr; gap:12px; }
  .detail-gallery { grid-template-columns:1fr 1fr; }
  .detail-gallery img { height:280px; }
  .detail-gallery img:first-child { grid-column:1/-1; }
  .mobile-booking-cta-v4 { position:fixed; z-index:var(--dd-z-mobile-cta); left:10px; right:10px; bottom:82px; min-height:60px; display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; padding:7px 7px 7px 14px; border:1px solid var(--dd-line); border-radius:22px; background:rgba(255,253,249,.96); box-shadow:var(--dd-shadow-sm); }
  .mobile-booking-cta-v4 strong,.mobile-booking-cta-v4 small { display:block; }
  .mobile-booking-cta-v4 small { color:var(--dd-muted); font-size:.56rem; }
  .mobile-booking-cta-v4 .solid-button { min-height:46px; }
  body[data-page="restaurant"] .site-footer { padding-bottom:160px; }
  .concierge-float { display:none; }
  .booking-sheet,.concierge-dialog { width:100%; padding:22px 18px calc(22px + env(safe-area-inset-bottom)); border-left:0; }
  .toast { bottom:86px; }
  .payment-v4-summary { padding:22px 18px; }
  .payment-v4-summary-copy h1 { font-size:3rem; }
  .payment-v4-experience { padding:24px 14px 40px; }
  .payment-checkout-card,.payment-provisioning-card { padding:22px 18px; border-radius:22px; }
  .payment-checkout-head h2,.payment-provisioning-card h2 { font-size:3rem; }
  .widget-shell { padding:18px; }
  .widget-progress li strong { font-size:14px; }
  .slot-grid { grid-template-columns:repeat(3,1fr); }
  .widget-shell>footer { flex-direction:column; text-align:center; }
}

@media (max-width: 480px) {
  .occasion-grid,.mood-grid { grid-template-columns:1fr; }
  .occasion-card,.mood-card { min-height:390px; }
  .partner-preview-metrics { grid-template-columns:1fr 1fr; }
  .partner-preview-metrics article:last-child { grid-column:1/-1; }
  .footer-main { grid-template-columns:1fr; }
  .footer-brand { grid-column:auto; }
  .mobile-menu-panel { width:92vw; }
  .mobile-dock a,.mobile-dock button { font-size:.53rem; }
}

@supports not ((backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px))) {
  .floating-nav.on-light,.mobile-dock,.discover-toolbar-v6 { background:#fffdf9; }
  .floating-nav.on-dark { background:#171815; }
  .search-modal-backdrop,.filter-modal-backdrop,.dialog-backdrop { background:rgba(12,12,10,.72); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}

@media (prefers-contrast: more) {
  :root { --dd-line:rgba(23,23,20,.24); --dd-line-strong:rgba(23,23,20,.4); --dd-muted:#4f4b45; }
}

@media print {
  .floating-nav-wrap,.mobile-dock-wrap,.concierge-float,.site-footer,.newsletter-strip,.booking-sheet,.concierge-dialog,.toast,.search-modal-backdrop,.filter-modal-backdrop { display:none!important; }
  body { background:#fff; color:#000; }
}

/* ===========================================================================
   PUBLIC PRODUCT CONTRACTS
   Final component rules for the supplied consumer and restaurant pages.
   ========================================================================== */

body.discovery-map-open { overflow: hidden; }

/* Keep modal chrome isolated from page content. */
body.location-modal-open .quick-discovery-v6,
body.location-modal-open .quick-discovery,
body.location-modal-open .concierge-float {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
.search-modal-backdrop { z-index:var(--dd-z-backdrop); }
.location-popover { z-index:var(--dd-z-popover)!important; }

/* Search and discovery. */
.discover-search-cluster { display: grid; gap: 12px; align-self: end; }
.discover-search-cluster .intent-row { margin: 0; }
.view-restaurant,
.view-restaurant-link,
.location-card-link {
  width: auto;
  min-width: 0;
  min-height: 34px;
  height: auto;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 0 2px;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
  background: transparent;
  color: var(--dd-ink);
  font-size: .64rem;
  font-weight: 700;
  line-height: 1.2;
  box-shadow: none;
}
.view-restaurant::after { content: none; }
.view-restaurant:hover,
.view-restaurant-link:hover,
.location-card-link:hover { color: var(--dd-accent-deep); background: transparent; }
.card-bottom { align-items: center; }

/* Partner product page. */
.partner-feature-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.partner-feature-grid article {
  min-height: 220px;
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  align-items: start;
  gap: 18px;
  padding: 26px;
  border-radius: 18px;
}
.partner-feature-grid article > div { align-self: end; }
.partner-feature-grid h3 { margin: 0 0 8px; font-size: 2.15rem; }
.partner-feature-grid p { font-size: .7rem; line-height: 1.7; }

.partner-operation-flow { padding-top: 34px; padding-bottom: var(--dd-section); }
.partner-operation-flow .compact-heading { margin-bottom: 28px; }
.partner-flow-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.partner-flow-grid article {
  min-height: 235px;
  display: flex;
  flex-direction: column;
  padding: 24px;
  border-top: 1px solid var(--dd-line-strong);
  background: linear-gradient(180deg,rgba(255,253,249,.62),rgba(255,253,249,.94));
}
.partner-flow-grid article > span {
  color: var(--dd-accent-deep);
  font-size: .59rem;
  font-weight: 750;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.partner-flow-grid h3 { margin: auto 0 10px; font: 400 2.05rem/1 var(--dd-font-display); letter-spacing: -.025em; }
.partner-flow-grid p { margin: 0; color: var(--dd-muted); font-size: .67rem; line-height: 1.68; }

/* Registration should feel like an application form, not a black marketing panel. */
.restaurant-registration-form-v6 { grid-template-columns: minmax(0,1.45fr) minmax(290px,.55fr); gap: 18px; }
.registration-form-main-v6 { padding: clamp(22px,3vw,36px); border-radius: 20px; }
.registration-address-panel-v6 {
  position: sticky;
  top: 104px;
  min-height: 0;
  padding: 24px;
  border: 1px solid var(--dd-line);
  border-radius: 20px;
  background: var(--dd-surface-2);
  color: var(--dd-ink);
  box-shadow: var(--dd-shadow-xs);
}
.registration-address-panel-v6 .eyebrow { color: var(--dd-muted); }
.address-panel-copy h3 { margin: 7px 0 10px; font-size: 2.15rem; }
.address-panel-copy > p:last-child { color: var(--dd-muted); font-size: .68rem; }
.domain-fieldset-v6 > label { color: var(--dd-muted); }
.domain-control { border-color: var(--dd-line-strong); background: #fff; }
.domain-control input { color: var(--dd-ink); }
.domain-control span { color: var(--dd-muted); }
.domain-fieldset-v6 i { color: var(--dd-muted); }
.domain-fieldset-v6 i.available { color: var(--dd-success); }
.domain-fieldset-v6 i.unavailable { color: var(--dd-danger); }
.domain-preview { color: var(--dd-accent-deep); font-size: 1.42rem; }
.registration-address-assurance { border-color: var(--dd-line); color: var(--dd-muted); }
.registration-address-assurance li::before { color: var(--dd-success); }
.registration-confirm-v6 { margin-top: 8px; border: 0; border-top: 1px solid var(--dd-line); border-radius: 0; padding: 20px 0 0; box-shadow: none; }

/* Accounts. */
.account-page { padding-top: 132px; }
.account-page-intro { grid-template-columns: minmax(0,1.1fr) minmax(280px,.48fr); margin-bottom: 34px; }
.account-page-intro h1 { font-size: clamp(3.8rem,6.2vw,6.2rem); }
.account-auth-card { padding: clamp(22px,3vw,32px); border-radius: 20px; }
.auth-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 24px 0 22px; border-bottom: 1px solid var(--dd-line); }
.auth-tabs button {
  min-height: 46px;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--dd-muted);
  font-size: .68rem;
  font-weight: 700;
}
.auth-tabs button.active { border-bottom-color: var(--dd-ink); background: transparent; color: var(--dd-ink); }
.account-benefit-grid article { border-radius: 16px; box-shadow: none; }
.account-owner-section,.account-team-section,.account-saved-section { border-radius: 20px; }

/* Diner area uses tabs as navigation, not pill buttons. */
.diner-tab-wrap { border-bottom: 1px solid var(--dd-line); background: rgba(244,241,234,.94); }
.diner-tabs { gap: 24px; padding: 0; border: 0; border-radius: 0; background: transparent; }
.diner-tabs button {
  position: relative;
  min-height: 52px;
  padding: 0 2px;
  border-radius: 0;
  color: var(--dd-muted);
}
.diner-tabs button.active { background: transparent; color: var(--dd-ink); }
.diner-tabs button.active::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--dd-ink); }
.diner-wallet-card { border-radius: 18px; }
.diner-booking,.diner-insight,.diner-private-desk { border-radius: 16px; }

/* Restaurant profile. */
.restaurant-v4-hero { height: min(78svh,790px); min-height: 580px; }
.restaurant-v4-hero-shell { padding-bottom: 48px; }
.restaurant-v4-hero h1 { font-size: clamp(4.6rem,7.3vw,7.2rem); }
.restaurant-v4-primary-book { border-radius: 12px; }
.restaurant-v4-booking { border-radius: 18px; box-shadow: var(--dd-shadow-xs); }
.restaurant-v4-trust > div { border-radius: 14px; }
.branch-card { border-radius: 18px; }
.detail-gallery img { border-radius: 14px; }

/* Memberships and checkout. */
.membership-card-v6 { border-radius: 18px; box-shadow: none; }
.membership-card-v6.featured { box-shadow: 0 0 0 1px var(--dd-accent),var(--dd-shadow-xs); }
.membership-featured-label { border-radius: 8px; }
.comparison-scroll-v6 { border-radius: 18px; }
.payment-checkout-card,.payment-provisioning-card { border-radius: 20px; box-shadow: var(--dd-shadow-xs); }
.payment-lock,.payment-methods span { border-radius: 8px; }
.dedicated-pay-button { width: 100%; justify-content: space-between; }

/* Booking widget. */
.widget-progress { grid-template-columns: repeat(3,1fr); gap: 0; padding: 0; border: 0; border-bottom: 1px solid var(--dd-line); border-radius: 0; }
.widget-progress li { position: relative; min-height: 46px; border-radius: 0; }
.widget-progress li.active { background: transparent; color: var(--dd-ink); }
.widget-progress li.active::after { content: ""; position: absolute; left: 15%; right: 15%; bottom: -1px; height: 2px; background: var(--dd-ink); }
body[data-page="booking-widget"] .back { min-height: 44px; padding: 0; border: 0; border-bottom: 1px solid currentColor; border-radius: 0; background: transparent; }

/* Every mobile bottom navigation is the same physical component. */
@media (max-width: 920px) {
  .partner-feature-grid { grid-template-columns: 1fr 1fr; }
  .partner-flow-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .floating-nav-wrap { padding-inline: 12px; }
  .floating-nav { width: 100%; max-width: none; }
  .mobile-menu-panel { right: 0; left: auto; width: min(360px,88vw); }
  .mobile-dock-wrap { left: 10px; right: 10px; }
  .mobile-dock { width: 100%; height: 64px; min-height: 64px; padding: 5px; border-radius: 22px; }
  .mobile-dock a,.mobile-dock button { min-height: 52px; border-radius: 17px; }

  .location-popover { bottom: calc(84px + env(safe-area-inset-bottom)) !important; max-height: calc(100dvh - 112px) !important; }
  .search-modal-backdrop { background: rgba(12,12,10,.68); }

  .discover-search-cluster { gap: 10px; }
  .discover-v6-head .intent-row { margin: 0; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
  .discover-v6-head .intent-row::-webkit-scrollbar { display: none; }
  .map-pane-v6 { z-index:var(--dd-z-map); }
  .discover-workspace.mobile-map .results-pane-v6 { visibility: hidden; pointer-events: none; }

  .partner-feature-grid { grid-template-columns: 1fr; }
  .partner-feature-grid article { min-height: 180px; }
  .partner-operation-flow { padding-top: 16px; }
  .partner-flow-grid article { min-height: 180px; }
  .restaurant-registration-form-v6 { grid-template-columns: 1fr; }
  .registration-address-panel-v6 { position: static; order: -1; padding: 20px 18px; background: var(--dd-surface-2); }
  .onboarding-progress-v6 { grid-template-columns: 1fr 1fr; gap: 6px; }
  .onboarding-progress-v6 button { min-height: 52px; padding: 10px 12px; }
  .onboarding-progress-v6 button small { display: none; }

  .diner-tabs { gap: 18px; overflow-x: auto; scrollbar-width: none; }
  .diner-tabs button { flex: 0 0 auto; }
  .restaurant-v4-primary-book { width: auto; }

  .widget-progress li { min-height: 48px; }
}

@media (max-width: 480px) {
  .partner-feature-grid { grid-template-columns: 1fr; }
  .onboarding-progress-v6 button { font-size: .64rem; }
  .registration-address-panel-v6 { margin-inline: 0; }
}

/* ==========================================================================
   DOTDINE OPERATIONAL UI
   Restaurant operator and platform administration surfaces.
   Scoped to body[data-surface="dashboard"].
   ========================================================================== */

body[data-surface="dashboard"] {
  --ops-bg: #f2efe8;
  --ops-bg-2: #ebe6dc;
  --ops-surface: #fffdf8;
  --ops-surface-2: #f7f3ec;
  --ops-surface-3: #eee9df;
  --ops-ink: var(--dd-ink, #181816);
  --ops-ink-soft: var(--dd-ink-soft, #272720);
  --ops-muted: var(--dd-muted, #706c64);
  --ops-muted-2: var(--dd-muted-2, #989187);
  --ops-accent: var(--dd-accent, #a47b52);
  --ops-accent-deep: var(--dd-accent-deep, #76563a);
  --ops-accent-soft: color-mix(in srgb, var(--ops-accent) 13%, transparent);
  --ops-success: var(--dd-success, #52684d);
  --ops-warning: var(--dd-warning, #9a6d2d);
  --ops-danger: var(--dd-danger, #874c47);
  --ops-info: #556d7d;
  --ops-line: rgba(24,24,22,.10);
  --ops-line-strong: rgba(24,24,22,.18);
  --ops-line-dark: rgba(255,255,255,.13);
  --ops-shadow-xs: 0 1px 2px rgba(24,20,14,.03), 0 4px 14px rgba(24,20,14,.035);
  --ops-shadow-sm: 0 12px 30px rgba(24,20,14,.055);
  --ops-shadow: 0 24px 60px rgba(24,20,14,.09);
  --ops-shadow-lg: 0 36px 100px rgba(15,13,10,.16);
  --ops-r-xs: 8px;
  --ops-r-sm: 12px;
  --ops-r-md: 18px;
  --ops-r-lg: 24px;
  --ops-r-xl: 32px;
  --ops-pill: 999px;
  --ops-sidebar: 272px;
  --ops-sidebar-collapsed: 84px;
  --ops-topbar: 76px;
  --ops-content-max: 1680px;
  --ops-pad: clamp(18px, 2.35vw, 38px);
  --ops-gap: 20px;
  --ops-control: 42px;
  --ops-control-lg: 48px;
  --ops-ease: cubic-bezier(.2,.75,.2,1);
  --ops-font-ui: var(--dd-font-ui, "Inter", system-ui, sans-serif);
  --ops-font-display: var(--dd-font-display, "Instrument Serif", Georgia, serif);
  --ops-z-selection: 160;
  --ops-z-topbar: 250;
  --ops-z-sidebar: 320;
  --ops-z-popover: 1200;
  --ops-z-backdrop: 1300;
  --ops-z-dialog: 1310;
  --ops-z-command: 1410;
  --ops-z-connectivity: 1700;
  --ops-z-tooltip: 1800;
  --ops-z-skip: 5100;

  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 92% -10%, color-mix(in srgb, var(--ops-accent) 8%, transparent), transparent 28rem),
    var(--ops-bg);
  color: var(--ops-ink);
  font-family: var(--ops-font-ui);
  font-size: 14px;
  line-height: 1.5;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body[data-surface="dashboard"][data-density="compact"] {
  --ops-gap: 14px;
  --ops-control: 36px;
  --ops-control-lg: 42px;
}

body[data-surface="dashboard"].dd-layer-open,
body[data-surface="dashboard"].dd-mobile-nav-open {
  overflow: hidden;
}

body[data-surface="dashboard"] *,
body[data-surface="dashboard"] *::before,
body[data-surface="dashboard"] *::after { box-sizing: border-box; }

body[data-surface="dashboard"] :where(button,input,select,textarea) { font: inherit; }
body[data-surface="dashboard"] :where(button,a,[role="button"]) { -webkit-tap-highlight-color: transparent; }
body[data-surface="dashboard"] :where(button,[role="button"]):not(:disabled) { cursor: pointer; }
body[data-surface="dashboard"] :where(img,svg) { max-width: 100%; }
body[data-surface="dashboard"] [hidden] { display: none !important; }

body[data-surface="dashboard"] :focus-visible {
  outline: 3px solid color-mix(in srgb, var(--ops-accent) 46%, transparent);
  outline-offset: 3px;
}

body[data-surface="dashboard"] ::selection {
  background: color-mix(in srgb, var(--ops-accent) 24%, transparent);
}

/* ---------- Accessibility ------------------------------------------------ */
.dd-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.dd-skip-link {
  position: fixed;
  z-index: var(--ops-z-skip);
  top: 12px;
  left: 12px;
  transform: translateY(-150%);
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  padding: 0 16px;
  border-radius: var(--ops-pill);
  background: var(--ops-ink);
  color: #fff;
  text-decoration: none;
  box-shadow: var(--ops-shadow);
}
.dd-skip-link:focus { transform: translateY(0); }

/* ---------- Shell -------------------------------------------------------- */
.dd-dashboard {
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  grid-template-columns: var(--ops-sidebar) minmax(0,1fr);
  transition: grid-template-columns .28s var(--ops-ease);
}

.dd-dashboard[data-sidebar="collapsed"] {
  grid-template-columns: var(--ops-sidebar-collapsed) minmax(0,1fr);
}

.dd-sidebar {
  position: sticky;
  top: 0;
  z-index: var(--ops-z-sidebar);
  height: 100vh;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border-right: 1px solid var(--ops-line-dark);
  background:
    radial-gradient(circle at 15% 0%, rgba(164,123,82,.17), transparent 20rem),
    linear-gradient(180deg,#1a1b18 0%,#151613 100%);
  color: #f8f4eb;
}

.dd-sidebar-head {
  min-height: var(--ops-topbar);
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 18px;
  border-bottom: 1px solid var(--ops-line-dark);
}

.dd-dashboard-brand {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  color: inherit;
  text-decoration: none;
}

.dd-dashboard-brand-mark {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 12px;
  background: rgba(255,255,255,.06);
  color: var(--dd-accent-light,#d8c4a8);
  font: 400 1.2rem var(--ops-font-display);
}
.dd-dashboard-brand-mark img { width: 100%; height: 100%; object-fit: cover; }

.dd-dashboard-brand-copy { min-width: 0; display: grid; gap: 1px; }
.dd-dashboard-brand-copy strong {
  overflow: hidden;
  color: #fff;
  font-size: 1.03rem;
  font-weight: 650;
  letter-spacing: -.03em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dd-dashboard-brand-copy small {
  overflow: hidden;
  color: rgba(255,255,255,.48);
  font-size: .55rem;
  font-weight: 650;
  letter-spacing: .13em;
  text-transform: uppercase;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dd-sidebar-collapse {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  display: grid;
  place-items: center;
  margin-left: auto;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 11px;
  background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.7);
}
.dd-sidebar-collapse:hover { background: rgba(255,255,255,.08); color: #fff; }
.dd-sidebar-collapse svg { width: 17px; height: 17px; }

.dd-sidebar-scroll {
  min-height: 0;
  flex: 1;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.16) transparent;
  padding: 18px 12px;
}

.dd-nav-group + .dd-nav-group { margin-top: 22px; }
.dd-nav-label {
  display: block;
  padding: 0 10px 8px;
  color: rgba(255,255,255,.34);
  font-size: .53rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.dd-nav-list { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.dd-nav-item { min-width: 0; }
.dd-nav-link,
.dd-nav-button {
  width: 100%;
  min-height: 43px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 11px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: rgba(255,255,255,.67);
  font-size: .76rem;
  font-weight: 560;
  text-align: left;
  text-decoration: none;
  transition: background .16s ease,color .16s ease,transform .16s ease;
}
.dd-nav-link:hover,
.dd-nav-button:hover { background: rgba(255,255,255,.055); color: #fff; }
.dd-nav-link.active,
.dd-nav-link[aria-current="page"] {
  background: rgba(255,255,255,.09);
  color: #fff;
  box-shadow: inset 2px 0 0 var(--ops-accent);
}
.dd-nav-link > svg,
.dd-nav-button > svg {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  opacity: .82;
}
.dd-nav-link.active > svg,
.dd-nav-link[aria-current="page"] > svg { color: var(--dd-accent-light,#d8c4a8); opacity: 1; }
.dd-nav-link-copy { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dd-nav-badge {
  min-width: 21px;
  height: 21px;
  display: inline-grid;
  place-items: center;
  padding: 0 6px;
  border-radius: var(--ops-pill);
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.7);
  font-size: .58rem;
  font-weight: 700;
}

.dd-sidebar-foot {
  padding: 12px;
  border-top: 1px solid var(--ops-line-dark);
}
.dd-user-rail {
  min-height: 54px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 7px;
  border-radius: 14px;
  color: inherit;
  text-decoration: none;
}
.dd-user-rail:hover { background: rgba(255,255,255,.05); }
.dd-avatar {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 50%;
  background: rgba(255,255,255,.07);
  color: #fff;
  font: 500 1rem var(--ops-font-display);
}
.dd-avatar img { width: 100%; height: 100%; object-fit: cover; }
.dd-user-rail-copy { min-width: 0; display: grid; }
.dd-user-rail-copy strong,
.dd-user-rail-copy span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dd-user-rail-copy strong { font-size: .7rem; color: #fff; }
.dd-user-rail-copy span { color: rgba(255,255,255,.42); font-size: .59rem; }

.dd-dashboard[data-sidebar="collapsed"] .dd-dashboard-brand-copy,
.dd-dashboard[data-sidebar="collapsed"] .dd-nav-label,
.dd-dashboard[data-sidebar="collapsed"] .dd-nav-link-copy,
.dd-dashboard[data-sidebar="collapsed"] .dd-nav-badge,
.dd-dashboard[data-sidebar="collapsed"] .dd-user-rail-copy { display: none; }
.dd-dashboard[data-sidebar="collapsed"] .dd-sidebar-head { justify-content: center; padding-inline: 12px; }
.dd-dashboard[data-sidebar="collapsed"] .dd-sidebar-collapse { display: none; }
.dd-dashboard[data-sidebar="collapsed"] .dd-dashboard-brand { justify-content: center; }
.dd-dashboard[data-sidebar="collapsed"] .dd-nav-link,
.dd-dashboard[data-sidebar="collapsed"] .dd-nav-button { justify-content: center; padding-inline: 0; }
.dd-dashboard[data-sidebar="collapsed"] .dd-user-rail { justify-content: center; }

.dd-workspace { min-width: 0; min-height: 100vh; min-height: 100dvh; }

.dd-topbar {
  position: sticky;
  top: 0;
  z-index: var(--ops-z-topbar);
  min-height: var(--ops-topbar);
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px var(--ops-pad);
  border-bottom: 1px solid var(--ops-line);
  background: rgba(247,244,237,.86);
  -webkit-backdrop-filter: blur(20px) saturate(130%);
  backdrop-filter: blur(20px) saturate(130%);
}

.dd-mobile-nav-toggle { display: none; }
.dd-topbar-context { min-width: 0; display: grid; gap: 2px; }
.dd-topbar-context small {
  color: var(--ops-muted);
  font-size: .54rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.dd-topbar-context strong { overflow: hidden; font-size: .78rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.dd-topbar-spacer { flex: 1; }
.dd-topbar-actions { display: flex; align-items: center; gap: 8px; }

.dd-topbar-icon,
.dd-icon-button {
  width: var(--ops-control);
  height: var(--ops-control);
  min-width: var(--ops-control);
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--ops-line);
  border-radius: 12px;
  background: rgba(255,253,248,.74);
  color: var(--ops-ink-soft);
  box-shadow: var(--ops-shadow-xs);
}
.dd-topbar-icon:hover,
.dd-icon-button:hover { border-color: var(--ops-line-strong); background: var(--ops-surface); }
.dd-topbar-icon svg,
.dd-icon-button svg { width: 17px; height: 17px; }

.dd-topbar-search {
  width: min(360px,32vw);
  min-height: var(--ops-control);
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 13px;
  border: 1px solid var(--ops-line);
  border-radius: 12px;
  background: rgba(255,253,248,.72);
  color: var(--ops-muted);
  box-shadow: var(--ops-shadow-xs);
}
.dd-topbar-search:hover { background: var(--ops-surface); }
.dd-topbar-search svg { width: 16px; height: 16px; }
.dd-topbar-search span { flex: 1; overflow: hidden; font-size: .68rem; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.dd-kbd {
  min-width: 27px;
  min-height: 23px;
  display: inline-grid;
  place-items: center;
  padding: 0 6px;
  border: 1px solid var(--ops-line);
  border-bottom-color: var(--ops-line-strong);
  border-radius: 6px;
  background: var(--ops-surface-2);
  color: var(--ops-muted);
  font-size: .57rem;
  font-weight: 650;
}

/* ---------- Branch / organisation context switcher ---------------------- */
.dd-context-switcher { position: relative; min-width: 0; }
.dd-context-trigger {
  min-height: var(--ops-control);
  max-width: 280px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 12px;
  border: 1px solid var(--ops-line);
  border-radius: 12px;
  background: var(--ops-surface);
  color: var(--ops-ink);
  box-shadow: var(--ops-shadow-xs);
}
.dd-context-trigger-copy { min-width: 0; display: grid; text-align: left; }
.dd-context-trigger-copy small { color: var(--ops-muted); font-size: .5rem; text-transform: uppercase; letter-spacing: .08em; }
.dd-context-trigger-copy strong { overflow: hidden; max-width: 190px; font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.dd-context-trigger > svg:last-child { width: 14px; height: 14px; color: var(--ops-muted); }

/* ---------- Page structure ---------------------------------------------- */
.dd-page {
  width: min(var(--ops-content-max),100%);
  margin: 0 auto;
  padding: clamp(26px,3.5vw,48px) var(--ops-pad) clamp(70px,8vw,110px);
}

.dd-page-header {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: end;
  gap: 22px;
  margin-bottom: clamp(24px,3vw,38px);
}
.dd-page-heading { min-width: 0; }
.dd-eyebrow {
  display: block;
  margin-bottom: 7px;
  color: var(--ops-accent-deep);
  font-size: .56rem;
  font-weight: 750;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.dd-page-heading h1 {
  margin: 0;
  color: var(--ops-ink);
  font: 400 clamp(2.65rem,4.5vw,4.6rem)/.9 var(--ops-font-display);
  letter-spacing: -.045em;
}
.dd-page-heading > p {
  max-width: 720px;
  margin: 12px 0 0;
  color: var(--ops-muted);
  font-size: .76rem;
  line-height: 1.7;
}
.dd-page-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }

.dd-section { margin-top: clamp(28px,3vw,44px); }
.dd-section:first-child { margin-top: 0; }
.dd-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}
.dd-section-title { min-width: 0; }
.dd-section-title h2,
.dd-section-title h3 { margin: 0; color: var(--ops-ink); font-size: .9rem; font-weight: 680; letter-spacing: -.015em; }
.dd-section-title p { margin: 4px 0 0; color: var(--ops-muted); font-size: .66rem; line-height: 1.55; }
.dd-section-actions { display: flex; gap: 7px; }

/* ---------- Buttons ----------------------------------------------------- */
.dd-button,
.dd-button-secondary,
.dd-button-quiet,
.dd-button-danger,
.dd-button-success {
  min-height: var(--ops-control);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 15px;
  border-radius: 11px;
  font-size: .66rem;
  font-weight: 680;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: transform .15s ease,background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;
}
.dd-button { border: 1px solid var(--ops-ink); background: var(--ops-ink); color: #fff; box-shadow: 0 8px 18px rgba(23,24,21,.10); }
.dd-button:hover { background: #292a25; transform: translateY(-1px); }
.dd-button-secondary { border: 1px solid var(--ops-line-strong); background: var(--ops-surface); color: var(--ops-ink); }
.dd-button-secondary:hover { border-color: color-mix(in srgb,var(--ops-ink) 28%,transparent); background: #fff; }
.dd-button-quiet { border: 1px solid transparent; background: transparent; color: var(--ops-muted); }
.dd-button-quiet:hover { background: var(--ops-surface-3); color: var(--ops-ink); }
.dd-button-danger { border: 1px solid color-mix(in srgb,var(--ops-danger) 30%,transparent); background: color-mix(in srgb,var(--ops-danger) 8%,var(--ops-surface)); color: var(--ops-danger); }
.dd-button-danger:hover { background: var(--ops-danger); color: #fff; }
.dd-button-success { border: 1px solid var(--ops-success); background: var(--ops-success); color: #fff; }
.dd-button svg,.dd-button-secondary svg,.dd-button-quiet svg,.dd-button-danger svg,.dd-button-success svg { width: 15px; height: 15px; }
.dd-button:disabled,.dd-button-secondary:disabled,.dd-button-quiet:disabled,.dd-button-danger:disabled,.dd-button-success:disabled { opacity: .48; cursor: not-allowed; transform: none; }
.dd-button[data-size="small"],.dd-button-secondary[data-size="small"],.dd-button-quiet[data-size="small"] { min-height: 34px; padding-inline: 11px; font-size: .6rem; }

/* ---------- Cards / panels ---------------------------------------------- */
.dd-card,
.dd-panel {
  min-width: 0;
  border: 1px solid var(--ops-line);
  border-radius: var(--ops-r-lg);
  background: rgba(255,253,248,.90);
  box-shadow: var(--ops-shadow-xs);
}
.dd-card { padding: clamp(18px,2.1vw,28px); }
.dd-panel { overflow: hidden; }
.dd-card[data-tone="dark"] { border-color: rgba(255,255,255,.10); background: var(--ops-ink); color: #fff; box-shadow: var(--ops-shadow); }
.dd-card[data-tone="accent"] { border-color: color-mix(in srgb,var(--ops-accent) 22%,transparent); background: linear-gradient(145deg,color-mix(in srgb,var(--ops-accent) 10%,var(--ops-surface)),var(--ops-surface)); }
.dd-card[data-tone="danger"] { border-color: color-mix(in srgb,var(--ops-danger) 22%,transparent); background: color-mix(in srgb,var(--ops-danger) 5%,var(--ops-surface)); }

.dd-card-head,
.dd-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.dd-panel-head { min-height: 66px; align-items: center; padding: 14px 18px; border-bottom: 1px solid var(--ops-line); }
.dd-card-head h2,.dd-card-head h3,.dd-panel-head h2,.dd-panel-head h3 { margin: 0; font-size: .78rem; font-weight: 680; }
.dd-card-head p,.dd-panel-head p { margin: 3px 0 0; color: var(--ops-muted); font-size: .62rem; }
.dd-card-body { margin-top: 18px; }
.dd-panel-body { padding: 18px; }
.dd-panel-foot { padding: 13px 18px; border-top: 1px solid var(--ops-line); background: var(--ops-surface-2); }

.dd-grid { display: grid; gap: var(--ops-gap); }
.dd-grid[data-columns="2"] { grid-template-columns: repeat(2,minmax(0,1fr)); }
.dd-grid[data-columns="3"] { grid-template-columns: repeat(3,minmax(0,1fr)); }
.dd-grid[data-columns="4"] { grid-template-columns: repeat(4,minmax(0,1fr)); }
.dd-grid[data-columns="5"] { grid-template-columns: repeat(5,minmax(0,1fr)); }
.dd-grid[data-columns="auto"] { grid-template-columns: repeat(auto-fit,minmax(min(260px,100%),1fr)); }

/* ---------- KPI cards --------------------------------------------------- */
.dd-kpi-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--ops-gap); }
.dd-kpi {
  position: relative;
  min-height: 152px;
  overflow: hidden;
  padding: 20px;
  border: 1px solid var(--ops-line);
  border-radius: var(--ops-r-lg);
  background: rgba(255,253,248,.92);
  box-shadow: var(--ops-shadow-xs);
}
.dd-kpi::after {
  content: "";
  position: absolute;
  right: -42px;
  bottom: -62px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: color-mix(in srgb,var(--ops-accent) 7%,transparent);
  pointer-events: none;
}
.dd-kpi-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.dd-kpi-label { color: var(--ops-muted); font-size: .58rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.dd-kpi-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; background: var(--ops-surface-2); color: var(--ops-accent-deep); }
.dd-kpi-icon svg { width: 15px; height: 15px; }
.dd-kpi-value { position: relative; z-index: 1; display: block; margin-top: 19px; font: 400 clamp(2.2rem,3.4vw,3.35rem)/.9 var(--ops-font-display); letter-spacing: -.045em; }
.dd-kpi-meta { position: relative; z-index: 1; display: flex; align-items: center; gap: 8px; margin-top: 11px; color: var(--ops-muted); font-size: .61rem; }
.dd-trend { display: inline-flex; align-items: center; gap: 4px; font-weight: 700; }
.dd-trend[data-direction="up"] { color: var(--ops-success); }
.dd-trend[data-direction="down"] { color: var(--ops-danger); }
.dd-trend[data-direction="flat"] { color: var(--ops-muted); }

/* ---------- Stats / definition lists ----------------------------------- */
.dd-stat-list { display: grid; gap: 0; margin: 0; }
.dd-stat-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px; padding: 13px 0; border-bottom: 1px solid var(--ops-line); }
.dd-stat-row:last-child { border-bottom: 0; }
.dd-stat-row dt { color: var(--ops-muted); font-size: .65rem; }
.dd-stat-row dd { margin: 0; font-size: .67rem; font-weight: 680; text-align: right; }

/* ---------- Charts ------------------------------------------------------ */
.dd-chart-card { min-width: 0; min-height: 360px; }
.dd-chart-wrap { position: relative; min-height: 260px; margin-top: 18px; }
.dd-chart-wrap canvas,.dd-chart-wrap svg { width: 100% !important; max-width: 100%; }
.dd-chart-empty { min-height: 240px; display: grid; place-items: center; color: var(--ops-muted); text-align: center; }
.dd-chart-legend { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 13px; color: var(--ops-muted); font-size: .6rem; }
.dd-chart-legend span { display: inline-flex; align-items: center; gap: 6px; }
.dd-chart-legend i { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }

/* ---------- Tables ------------------------------------------------------ */
.dd-table-card { min-width: 0; overflow: hidden; border: 1px solid var(--ops-line); border-radius: var(--ops-r-lg); background: rgba(255,253,248,.94); box-shadow: var(--ops-shadow-xs); }
.dd-table-toolbar {
  min-height: 65px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 11px 14px;
  border-bottom: 1px solid var(--ops-line);
}
.dd-table-toolbar-title { min-width: 0; margin-right: auto; }
.dd-table-toolbar-title strong { display: block; font-size: .72rem; }
.dd-table-toolbar-title span { color: var(--ops-muted); font-size: .58rem; }
.dd-table-search { position: relative; width: min(320px,34vw); }
.dd-table-search > svg { position: absolute; top: 50%; left: 12px; width: 15px; height: 15px; transform: translateY(-50%); color: var(--ops-muted); pointer-events: none; }
.dd-table-search input { padding-left: 36px !important; }
.dd-table-scroll { width: 100%; overflow: auto; overscroll-behavior-inline: contain; }
.dd-table { width: 100%; min-width: 760px; border-collapse: separate; border-spacing: 0; font-size: .66rem; }
.dd-table th,.dd-table td { height: 54px; padding: 10px 15px; border-bottom: 1px solid var(--ops-line); text-align: left; vertical-align: middle; }
.dd-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  height: 42px;
  background: #f8f5ee;
  color: var(--ops-muted);
  font-size: .53rem;
  font-weight: 740;
  letter-spacing: .07em;
  text-transform: uppercase;
  white-space: nowrap;
}
.dd-table tr:last-child td { border-bottom: 0; }
.dd-table tbody tr { transition: background .14s ease; }
.dd-table tbody tr:hover { background: color-mix(in srgb,var(--ops-accent) 3.5%,transparent); }
.dd-table tbody tr[aria-selected="true"] { background: color-mix(in srgb,var(--ops-accent) 7%,transparent); }
.dd-table td[data-label="Actions"] { white-space: nowrap; text-align: right; }
.dd-table-primary { display: grid; min-width: 0; }
.dd-table-primary strong { overflow: hidden; font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.dd-table-primary span { margin-top: 2px; color: var(--ops-muted); font-size: .57rem; }
.dd-table-number { font-variant-numeric: tabular-nums; text-align: right !important; }
.dd-table-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 5px; }
.dd-table-checkbox { width: 17px; height: 17px; accent-color: var(--ops-accent-deep); }
.dd-table-empty { min-height: 280px; display: grid; place-items: center; padding: 36px; text-align: center; }
.dd-table-empty > div { max-width: 420px; }

.dd-selection-bar {
  position: sticky;
  bottom: 16px;
  z-index: var(--ops-z-selection);
  width: fit-content;
  max-width: calc(100% - 24px);
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 12px auto 0;
  padding: 7px 8px 7px 15px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: var(--ops-pill);
  background: rgba(23,24,21,.94);
  color: #fff;
  box-shadow: var(--ops-shadow-lg);
  backdrop-filter: blur(18px);
}
.dd-selection-bar span { font-size: .62rem; color: rgba(255,255,255,.7); }
.dd-selection-bar strong { color: #fff; }

/* ---------- Filters ----------------------------------------------------- */
.dd-filter-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}
.dd-filter-chip {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 11px;
  border: 1px solid var(--ops-line);
  border-radius: var(--ops-pill);
  background: rgba(255,253,248,.84);
  color: var(--ops-muted);
  font-size: .6rem;
  font-weight: 630;
}
.dd-filter-chip:hover { border-color: var(--ops-line-strong); color: var(--ops-ink); }
.dd-filter-chip.active,.dd-filter-chip[aria-pressed="true"] { border-color: color-mix(in srgb,var(--ops-accent) 45%,transparent); background: var(--ops-accent-soft); color: var(--ops-accent-deep); }
.dd-filter-chip svg { width: 13px; height: 13px; }
.dd-active-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.dd-active-filter { min-height: 30px; display: inline-flex; align-items: center; gap: 6px; padding: 0 9px; border-radius: var(--ops-pill); background: var(--ops-surface-3); color: var(--ops-ink-soft); font-size: .56rem; }
.dd-active-filter button { width: 20px; height: 20px; display: grid; place-items: center; padding: 0; border: 0; background: transparent; color: var(--ops-muted); }

/* ---------- Forms ------------------------------------------------------- */
.dd-form { display: grid; gap: 20px; }
.dd-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px; }
.dd-form-grid[data-columns="3"] { grid-template-columns: repeat(3,minmax(0,1fr)); }
.dd-field { min-width: 0; display: grid; gap: 7px; }
.dd-field[data-span="2"] { grid-column: span 2; }
.dd-field[data-span="3"] { grid-column: span 3; }
.dd-field > label,
.dd-label { color: var(--ops-ink-soft); font-size: .6rem; font-weight: 680; }
.dd-field > label small,.dd-label small { color: var(--ops-muted); font-weight: 500; }
.dd-field-help { margin: 0; color: var(--ops-muted); font-size: .57rem; line-height: 1.55; }
.dd-field-error { margin: 0; color: var(--ops-danger); font-size: .58rem; line-height: 1.45; }

body[data-surface="dashboard"] :where(.dd-input,.dd-select,.dd-textarea,.dd-field input:not([type="checkbox"]):not([type="radio"]),.dd-field select,.dd-field textarea) {
  width: 100%;
  min-width: 0;
  min-height: var(--ops-control);
  padding: 0 12px;
  border: 1px solid var(--ops-line-strong);
  border-radius: 11px;
  outline: 0;
  background: #fffefa;
  color: var(--ops-ink);
  font-size: 16px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
  transition: border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
body[data-surface="dashboard"] :where(.dd-textarea,.dd-field textarea) { min-height: 112px; resize: vertical; padding-top: 10px; padding-bottom: 10px; line-height: 1.55; }
body[data-surface="dashboard"] :where(.dd-input,.dd-select,.dd-textarea,.dd-field input:not([type="checkbox"]):not([type="radio"]),.dd-field select,.dd-field textarea):focus {
  border-color: color-mix(in srgb,var(--ops-accent) 70%,#0000);
  box-shadow: 0 0 0 3px color-mix(in srgb,var(--ops-accent) 11%,transparent);
}
body[data-surface="dashboard"] :where(.dd-input,.dd-select,.dd-textarea,.dd-field input,.dd-field select,.dd-field textarea)[aria-invalid="true"] {
  border-color: color-mix(in srgb,var(--ops-danger) 66%,transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb,var(--ops-danger) 9%,transparent);
}
body[data-surface="dashboard"] :where(.dd-input,.dd-select,.dd-textarea,.dd-field input,.dd-field select,.dd-field textarea):disabled { opacity: .65; background: var(--ops-surface-3); cursor: not-allowed; }

.dd-input-group { display: flex; align-items: stretch; }
.dd-input-group > :first-child { border-radius: 11px 0 0 11px !important; }
.dd-input-group > :last-child { border-radius: 0 11px 11px 0 !important; }
.dd-input-addon { min-width: var(--ops-control); display: grid; place-items: center; padding: 0 11px; border: 1px solid var(--ops-line-strong); border-left: 0; background: var(--ops-surface-2); color: var(--ops-muted); font-size: .61rem; }

.dd-check,
.dd-radio { display: flex; align-items: flex-start; gap: 9px; color: var(--ops-ink-soft); font-size: .63rem; line-height: 1.45; }
.dd-check input,.dd-radio input { width: 17px; height: 17px; flex: 0 0 17px; margin: 1px 0 0; accent-color: var(--ops-accent-deep); }

.dd-switch { display: inline-flex; align-items: center; gap: 9px; font-size: .63rem; }
.dd-switch input { position: absolute; opacity: 0; pointer-events: none; }
.dd-switch-track { width: 38px; height: 22px; position: relative; border: 1px solid var(--ops-line-strong); border-radius: var(--ops-pill); background: var(--ops-surface-3); transition: .16s ease; }
.dd-switch-track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: var(--ops-muted); transition: .16s ease; }
.dd-switch input:checked + .dd-switch-track { border-color: var(--ops-success); background: color-mix(in srgb,var(--ops-success) 18%,transparent); }
.dd-switch input:checked + .dd-switch-track::after { transform: translateX(16px); background: var(--ops-success); }
.dd-switch input:focus-visible + .dd-switch-track { outline: 3px solid color-mix(in srgb,var(--ops-accent) 35%,transparent); outline-offset: 3px; }

.dd-form-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 18px; border-top: 1px solid var(--ops-line); }

/* ---------- Status / chips --------------------------------------------- */
.dd-status,
.dd-badge {
  min-height: 25px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 8px;
  border: 1px solid var(--ops-line);
  border-radius: var(--ops-pill);
  background: var(--ops-surface-2);
  color: var(--ops-muted);
  font-size: .52rem;
  font-weight: 720;
  letter-spacing: .03em;
  text-transform: uppercase;
  white-space: nowrap;
}
.dd-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .75; }
.dd-status[data-tone="success"] { border-color: color-mix(in srgb,var(--ops-success) 25%,transparent); background: color-mix(in srgb,var(--ops-success) 8%,var(--ops-surface)); color: var(--ops-success); }
.dd-status[data-tone="warning"] { border-color: color-mix(in srgb,var(--ops-warning) 27%,transparent); background: color-mix(in srgb,var(--ops-warning) 8%,var(--ops-surface)); color: var(--ops-warning); }
.dd-status[data-tone="danger"] { border-color: color-mix(in srgb,var(--ops-danger) 26%,transparent); background: color-mix(in srgb,var(--ops-danger) 8%,var(--ops-surface)); color: var(--ops-danger); }
.dd-status[data-tone="info"] { border-color: color-mix(in srgb,var(--ops-info) 27%,transparent); background: color-mix(in srgb,var(--ops-info) 8%,var(--ops-surface)); color: var(--ops-info); }
.dd-status[data-tone="neutral"] { color: var(--ops-muted); }
.dd-badge { min-height: 23px; text-transform: none; letter-spacing: 0; }

/* ---------- Tabs -------------------------------------------------------- */
.dd-tabs {
  display: flex;
  gap: 4px;
  width: max-content;
  max-width: 100%;
  overflow-x: auto;
  padding: 4px;
  border: 1px solid var(--ops-line);
  border-radius: 12px;
  background: var(--ops-surface-3);
  scrollbar-width: none;
}
.dd-tabs::-webkit-scrollbar { display: none; }
.dd-tab {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 11px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ops-muted);
  font-size: .6rem;
  font-weight: 650;
  white-space: nowrap;
}
.dd-tab:hover { color: var(--ops-ink); }
.dd-tab.active,.dd-tab[aria-selected="true"] { background: var(--ops-surface); color: var(--ops-ink); box-shadow: var(--ops-shadow-xs); }
.dd-tab-panel { margin-top: 18px; }

/* ---------- Dropdowns / popovers --------------------------------------- */
.dd-popover {
  position: fixed;
  z-index: var(--ops-z-popover);
  width: min(320px,calc(100vw - 24px));
  max-height: min(520px,calc(100vh - 24px));
  overflow: auto;
  padding: 7px;
  border: 1px solid var(--ops-line);
  border-radius: 15px;
  background: rgba(255,253,248,.98);
  color: var(--ops-ink);
  box-shadow: var(--ops-shadow-lg);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
}
.dd-popover-head { padding: 9px 10px 11px; border-bottom: 1px solid var(--ops-line); }
.dd-popover-head strong { display: block; font-size: .69rem; }
.dd-popover-head span { color: var(--ops-muted); font-size: .57rem; }
.dd-menu { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.dd-menu-item,
.dd-menu a,
.dd-menu button {
  width: 100%;
  min-height: 39px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 10px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--ops-ink-soft);
  font-size: .62rem;
  text-align: left;
  text-decoration: none;
}
.dd-menu a:hover,.dd-menu button:hover,.dd-menu-item:hover { background: var(--ops-surface-3); }
.dd-menu svg { width: 15px; height: 15px; color: var(--ops-muted); }
.dd-menu [data-tone="danger"] { color: var(--ops-danger); }
.dd-menu-separator { height: 1px; margin: 5px 2px; background: var(--ops-line); }

/* ---------- Dialogs / drawers ------------------------------------------ */
.dd-layer-backdrop {
  position: fixed;
  inset: 0;
  z-index: var(--ops-z-backdrop);
  background: rgba(17,17,15,.46);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
.dd-layer-backdrop.open { opacity: 1; pointer-events: auto; }

.dd-dialog {
  position: fixed;
  z-index: var(--ops-z-dialog);
  top: 50%;
  left: 50%;
  width: min(620px,calc(100vw - 24px));
  max-height: min(780px,calc(100dvh - 24px));
  overflow: auto;
  transform: translate(-50%,-48%) scale(.985);
  opacity: 0;
  pointer-events: none;
  border: 1px solid var(--ops-line);
  border-radius: var(--ops-r-xl);
  background: var(--ops-surface);
  box-shadow: var(--ops-shadow-lg);
  transition: opacity .2s ease,transform .2s var(--ops-ease);
}
.dd-dialog.open { transform: translate(-50%,-50%) scale(1); opacity: 1; pointer-events: auto; }
.dd-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 24px 24px 18px; border-bottom: 1px solid var(--ops-line); }
.dd-dialog-head h2 { margin: 0; font: 400 2.4rem/.94 var(--ops-font-display); letter-spacing: -.04em; }
.dd-dialog-head p { max-width: 470px; margin: 7px 0 0; color: var(--ops-muted); font-size: .64rem; line-height: 1.55; }
.dd-dialog-body { padding: 22px 24px; }
.dd-dialog-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 24px 20px; border-top: 1px solid var(--ops-line); }

.dd-drawer {
  position: fixed;
  z-index: var(--ops-z-dialog);
  inset: 0 0 0 auto;
  width: min(540px,100vw);
  display: flex;
  flex-direction: column;
  transform: translateX(102%);
  border-left: 1px solid var(--ops-line);
  background: var(--ops-surface);
  box-shadow: -30px 0 100px rgba(15,13,10,.16);
  transition: transform .26s var(--ops-ease);
}
.dd-drawer.open { transform: translateX(0); }
.dd-drawer-head { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 20px; border-bottom: 1px solid var(--ops-line); }
.dd-drawer-head h2 { margin: 0; font: 400 2rem/.95 var(--ops-font-display); letter-spacing: -.035em; }
.dd-drawer-body { min-height: 0; flex: 1; overflow: auto; padding: 20px; }
.dd-drawer-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 13px 20px; border-top: 1px solid var(--ops-line); background: var(--ops-surface-2); }

/* ---------- Command palette -------------------------------------------- */
.dd-command {
  position: fixed;
  z-index: var(--ops-z-command);
  top: min(14vh,120px);
  left: 50%;
  width: min(680px,calc(100vw - 24px));
  max-height: min(660px,72dvh);
  display: grid;
  grid-template-rows: auto minmax(0,1fr) auto;
  transform: translate(-50%,-10px) scale(.99);
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
  border: 1px solid var(--ops-line);
  border-radius: 22px;
  background: rgba(255,253,248,.99);
  box-shadow: 0 40px 120px rgba(12,10,8,.25);
  transition: opacity .18s ease,transform .18s var(--ops-ease);
}
.dd-command.open { transform: translate(-50%,0) scale(1); opacity: 1; pointer-events: auto; }
.dd-command-search { min-height: 66px; display: flex; align-items: center; gap: 11px; padding: 0 18px; border-bottom: 1px solid var(--ops-line); }
.dd-command-search svg { width: 18px; height: 18px; color: var(--ops-muted); }
.dd-command-search input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; color: var(--ops-ink); font-size: 16px; }
.dd-command-results { min-height: 0; overflow: auto; padding: 8px; }
.dd-command-group-label { display: block; padding: 8px 10px 5px; color: var(--ops-muted-2); font-size: .5rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.dd-command-item { width: 100%; min-height: 48px; display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 6px 9px; border: 0; border-radius: 11px; background: transparent; color: var(--ops-ink); text-align: left; }
.dd-command-item:hover,.dd-command-item.active,[aria-selected="true"].dd-command-item { background: var(--ops-surface-3); }
.dd-command-icon { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--ops-line); border-radius: 9px; background: var(--ops-surface); color: var(--ops-muted); }
.dd-command-icon svg { width: 14px; height: 14px; }
.dd-command-copy { min-width: 0; display: grid; }
.dd-command-copy strong { overflow: hidden; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.dd-command-copy span { overflow: hidden; margin-top: 1px; color: var(--ops-muted); font-size: .55rem; text-overflow: ellipsis; white-space: nowrap; }
.dd-command-shortcut { color: var(--ops-muted); font-size: .54rem; }
.dd-command-foot { min-height: 40px; display: flex; align-items: center; gap: 14px; padding: 0 15px; border-top: 1px solid var(--ops-line); color: var(--ops-muted); font-size: .53rem; }

/* ---------- Empty / error / loading ------------------------------------ */
.dd-state {
  min-height: 300px;
  display: grid;
  place-items: center;
  padding: 40px 24px;
  text-align: center;
}
.dd-state-inner { max-width: 500px; }
.dd-state-mark { width: 54px; height: 54px; display: grid; place-items: center; margin: 0 auto 18px; border: 1px solid var(--ops-line); border-radius: 17px; background: var(--ops-surface-2); color: var(--ops-accent-deep); }
.dd-state-mark svg { width: 21px; height: 21px; }
.dd-state h2,.dd-state h3 { margin: 0; font: 400 clamp(2rem,3.4vw,3.1rem)/.95 var(--ops-font-display); letter-spacing: -.04em; }
.dd-state p { max-width: 430px; margin: 10px auto 0; color: var(--ops-muted); font-size: .67rem; line-height: 1.65; }
.dd-state-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 19px; }

.dd-alert { display: flex; align-items: flex-start; gap: 11px; padding: 13px 14px; border: 1px solid var(--ops-line); border-radius: 13px; background: var(--ops-surface-2); color: var(--ops-ink-soft); }
.dd-alert > svg { width: 17px; height: 17px; flex: 0 0 17px; margin-top: 1px; }
.dd-alert strong { display: block; margin-bottom: 2px; font-size: .64rem; }
.dd-alert p { margin: 0; font-size: .59rem; line-height: 1.5; }
.dd-alert[data-tone="danger"] { border-color: color-mix(in srgb,var(--ops-danger) 25%,transparent); background: color-mix(in srgb,var(--ops-danger) 6%,var(--ops-surface)); color: var(--ops-danger); }
.dd-alert[data-tone="success"] { border-color: color-mix(in srgb,var(--ops-success) 25%,transparent); background: color-mix(in srgb,var(--ops-success) 6%,var(--ops-surface)); color: var(--ops-success); }
.dd-alert[data-tone="warning"] { border-color: color-mix(in srgb,var(--ops-warning) 25%,transparent); background: color-mix(in srgb,var(--ops-warning) 6%,var(--ops-surface)); color: var(--ops-warning); }

.dd-skeleton { position: relative; overflow: hidden; background: #e9e4da; color: transparent !important; border-color: transparent !important; }
.dd-skeleton::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent); animation: dd-ops-shimmer 1.4s linear infinite; }
.dd-skeleton-line { height: 10px; border-radius: var(--ops-pill); }
.dd-skeleton-line + .dd-skeleton-line { margin-top: 8px; }
@keyframes dd-ops-shimmer { to { transform: translateX(100%); } }

.dd-progress { width: 100%; height: 7px; overflow: hidden; border-radius: var(--ops-pill); background: var(--ops-surface-3); }
.dd-progress > span { display: block; height: 100%; width: var(--progress,0%); border-radius: inherit; background: var(--ops-accent); transition: width .3s var(--ops-ease); }

/* ---------- Timeline / activity ---------------------------------------- */
.dd-timeline { position: relative; display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.dd-timeline::before { content: ""; position: absolute; top: 17px; bottom: 17px; left: 17px; width: 1px; background: var(--ops-line); }
.dd-timeline-item { position: relative; display: grid; grid-template-columns: 35px minmax(0,1fr); gap: 12px; padding: 10px 0; }
.dd-timeline-dot { z-index: 1; width: 35px; height: 35px; display: grid; place-items: center; border: 1px solid var(--ops-line); border-radius: 50%; background: var(--ops-surface); color: var(--ops-accent-deep); }
.dd-timeline-dot svg { width: 14px; height: 14px; }
.dd-timeline-copy { min-width: 0; padding-top: 1px; }
.dd-timeline-copy strong { display: block; font-size: .63rem; }
.dd-timeline-copy p { margin: 3px 0 0; color: var(--ops-muted); font-size: .58rem; line-height: 1.55; }
.dd-timeline-copy time { display: block; margin-top: 5px; color: var(--ops-muted-2); font-size: .51rem; }

/* ---------- Pagination -------------------------------------------------- */
.dd-pagination { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 15px; border-top: 1px solid var(--ops-line); }
.dd-pagination-summary { color: var(--ops-muted); font-size: .58rem; }
.dd-pagination-controls { display: flex; align-items: center; gap: 5px; }
.dd-page-button { min-width: 33px; height: 33px; display: grid; place-items: center; padding: 0 8px; border: 1px solid var(--ops-line); border-radius: 9px; background: var(--ops-surface); color: var(--ops-muted); font-size: .58rem; text-decoration: none; }
.dd-page-button:hover { border-color: var(--ops-line-strong); color: var(--ops-ink); }
.dd-page-button.active,.dd-page-button[aria-current="page"] { border-color: var(--ops-ink); background: var(--ops-ink); color: #fff; }
.dd-page-button:disabled { opacity: .45; cursor: not-allowed; }

/* ---------- Session/access gates --------------------------------------- */
body[data-surface="dashboard"] .dashboard-session,
.dd-session-gate {
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 16px;
  padding: 32px;
  text-align: center;
  background:
    radial-gradient(circle at 50% 0%, color-mix(in srgb,var(--ops-accent) 11%,transparent), transparent 28rem),
    var(--ops-bg);
  color: var(--ops-ink);
  font-family: var(--ops-font-ui);
}
body[data-surface="dashboard"] .dashboard-session[hidden],.dd-session-gate[hidden] { display: none !important; }
body[data-surface="dashboard"] .dashboard-session .session-wordmark,.dd-session-wordmark { color: var(--ops-ink); }
body[data-surface="dashboard"] .dashboard-session h1,.dd-session-gate h1 { margin: 0; font: 400 clamp(2.5rem,6vw,4.2rem)/.9 var(--ops-font-display); letter-spacing: -.05em; }
body[data-surface="dashboard"] .dashboard-session p,.dd-session-gate p { max-width: 440px; margin: 0; color: var(--ops-muted); font-size: .7rem; line-height: 1.65; }
body[data-surface="dashboard"] .dashboard-session button { min-height: 44px; border: 0; border-radius: 11px; padding: 0 18px; color: #fff; background: var(--ops-ink); font: 650 .65rem var(--ops-font-ui); }

/* ---------- Offline / connectivity ------------------------------------- */
.dd-connectivity {
  position: fixed;
  z-index: var(--ops-z-connectivity);
  right: 18px;
  bottom: 18px;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 11px;
  border: 1px solid var(--ops-line);
  border-radius: var(--ops-pill);
  background: rgba(23,24,21,.94);
  color: #fff;
  box-shadow: var(--ops-shadow);
  font-size: .57rem;
}
.dd-connectivity::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #e0b165; }
.dd-connectivity[data-state="online"] { display: none; }

/* ---------- Tooltip ----------------------------------------------------- */
.dd-tooltip {
  position: fixed;
  z-index: var(--ops-z-tooltip);
  max-width: 260px;
  padding: 7px 9px;
  border-radius: 8px;
  background: rgba(23,24,21,.96);
  color: #fff;
  box-shadow: var(--ops-shadow-sm);
  font-size: .55rem;
  line-height: 1.4;
  pointer-events: none;
}

/* ---------- Responsive -------------------------------------------------- */
@media (max-width: 1280px) {
  .dd-kpi-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dd-grid[data-columns="4"],.dd-grid[data-columns="5"] { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 1024px) {
  body[data-surface="dashboard"] { --ops-sidebar: 280px; }
  .dd-dashboard,.dd-dashboard[data-sidebar="collapsed"] { grid-template-columns: 1fr; }
  .dd-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: min(var(--ops-sidebar),86vw);
    transform: translateX(-102%);
    box-shadow: 30px 0 90px rgba(0,0,0,.24);
    transition: transform .26s var(--ops-ease);
  }
  body.dd-mobile-nav-open .dd-sidebar,.dd-sidebar.open { transform: translateX(0); }
  .dd-dashboard[data-sidebar="collapsed"] .dd-dashboard-brand-copy,
  .dd-dashboard[data-sidebar="collapsed"] .dd-nav-label,
  .dd-dashboard[data-sidebar="collapsed"] .dd-nav-link-copy,
  .dd-dashboard[data-sidebar="collapsed"] .dd-nav-badge,
  .dd-dashboard[data-sidebar="collapsed"] .dd-user-rail-copy { display: initial; }
  .dd-dashboard[data-sidebar="collapsed"] .dd-sidebar-head { justify-content: flex-start; padding-inline: 18px; }
  .dd-dashboard[data-sidebar="collapsed"] .dd-dashboard-brand { justify-content: flex-start; }
  .dd-dashboard[data-sidebar="collapsed"] .dd-nav-link,.dd-dashboard[data-sidebar="collapsed"] .dd-nav-button { justify-content: flex-start; padding-inline: 11px; }
  .dd-dashboard[data-sidebar="collapsed"] .dd-user-rail { justify-content: flex-start; }
  .dd-sidebar-collapse { display: none !important; }
  .dd-mobile-nav-toggle { width: var(--ops-control); height: var(--ops-control); display: grid; place-items: center; flex: 0 0 var(--ops-control); padding: 0; border: 1px solid var(--ops-line); border-radius: 11px; background: var(--ops-surface); color: var(--ops-ink); }
  .dd-mobile-nav-toggle svg { width: 18px; height: 18px; }
  .dd-topbar-search { width: min(300px,36vw); }
}

@media (max-width: 780px) {
  body[data-surface="dashboard"] { --ops-topbar: 66px; --ops-pad: 16px; --ops-gap: 14px; }
  .dd-topbar { padding-inline: 12px; }
  .dd-topbar-context { display: none; }
  .dd-topbar-search { flex: 0 0 var(--ops-control); width: var(--ops-control); padding: 0; justify-content: center; }
  .dd-topbar-search span,.dd-topbar-search .dd-kbd { display: none; }
  .dd-context-trigger-copy small { display: none; }
  .dd-context-trigger-copy strong { max-width: 128px; }
  .dd-page { padding-top: 24px; }
  .dd-page-header { grid-template-columns: 1fr; align-items: start; }
  .dd-page-actions { justify-content: flex-start; }
  .dd-page-heading h1 { font-size: clamp(2.65rem,12vw,4rem); }
  .dd-kpi-grid,.dd-grid[data-columns="2"],.dd-grid[data-columns="3"],.dd-grid[data-columns="4"],.dd-grid[data-columns="5"] { grid-template-columns: 1fr; }
  .dd-form-grid,.dd-form-grid[data-columns="3"] { grid-template-columns: 1fr; }
  .dd-field[data-span="2"],.dd-field[data-span="3"] { grid-column: auto; }
  .dd-table-toolbar { align-items: stretch; flex-wrap: wrap; }
  .dd-table-toolbar-title { width: 100%; }
  .dd-table-search { width: 100%; order: 3; }
  .dd-filter-bar { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
  .dd-filter-bar::-webkit-scrollbar { display: none; }
  .dd-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); border-radius: 22px; }
  .dd-dialog-head,.dd-dialog-body { padding-left: 18px; padding-right: 18px; }
  .dd-dialog-foot { padding-left: 18px; padding-right: 18px; }
  .dd-drawer { width: 100vw; }
  .dd-command { top: 8px; width: calc(100vw - 16px); max-height: calc(100dvh - 16px); border-radius: 18px; }
  .dd-pagination { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 520px) {
  .dd-topbar-actions > :not(.dd-context-switcher):not([data-dashboard-user-menu]):not([data-dashboard-notifications]) { display: none; }
  .dd-context-trigger { max-width: 170px; }
  .dd-kpi { min-height: 136px; }
  .dd-page-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; }
  .dd-page-actions > :only-child { grid-column: 1 / -1; }
  .dd-page-actions :where(.dd-button,.dd-button-secondary,.dd-button-quiet) { width: 100%; }
  .dd-section-head { align-items: flex-start; flex-direction: column; }
  .dd-form-actions { flex-direction: column-reverse; }
  .dd-form-actions > * { width: 100%; }
  .dd-selection-bar { left: 12px; right: 12px; width: auto; max-width: none; margin-inline: 0; }
}

/* ---------- Motion / contrast / print ---------------------------------- */
@media (prefers-reduced-motion: reduce) {
  body[data-surface="dashboard"] *,
  body[data-surface="dashboard"] *::before,
  body[data-surface="dashboard"] *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

@media (prefers-contrast: more) {
  body[data-surface="dashboard"] { --ops-line: rgba(24,24,22,.22); --ops-line-strong: rgba(24,24,22,.42); }
  .dd-nav-link.active,.dd-nav-link[aria-current="page"] { outline: 1px solid rgba(255,255,255,.4); }
}

@media print {
  body[data-surface="dashboard"] { background: #fff !important; color: #000; }
  .dd-sidebar,.dd-topbar,.dd-page-actions,.dd-section-actions,.dd-filter-bar,.dd-table-toolbar,.dd-selection-bar,.dd-connectivity,.dd-layer-backdrop,.dd-dialog,.dd-drawer,.dd-command { display: none !important; }
  .dd-dashboard,.dd-dashboard[data-sidebar="collapsed"] { display: block; }
  .dd-page { width: 100%; max-width: none; padding: 0; }
  .dd-card,.dd-panel,.dd-table-card,.dd-kpi { break-inside: avoid; box-shadow: none; background: #fff; }
}


/* ==========================================================================
   DOTDINE TEMPLATE INTEGRATION - PRODUCTION HARDENING
   Final integration layer for the canonical 2026 public templates.
   Keep this block last. It intentionally resolves template/runtime edge cases

/* ==========================================================================
   RELEASE RESPONSIVE CONTRACTS
   These rules intentionally come after all public component refinements so
   narrow-screen behavior cannot be undone by later desktop declarations.
   ========================================================================== */

/* Icons inside utility actions never inherit browser/SVG intrinsic dimensions. */
.mobile-map-toggle svg,
.map-topbar-v6 svg,
.map-topbar svg,
.more-filters-button svg,
.clear-filters svg,
.view-mode-button svg,
.footer-action svg {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
}

/* Footer text actions use link styling without pretending to be form buttons. */
.footer-action {
  min-height: 28px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.footer-action:hover { color: #fff; }

/* Discover map controls remain compact on every viewport. */
.mobile-map-toggle,
.map-topbar-v6 button,
.map-topbar button {
  width: auto;
  min-width: 0;
}
.mobile-map-toggle {
  min-height: 44px;
  display: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 15px;
  border: 1px solid var(--dd-line-strong);
  border-radius: 11px;
  background: var(--dd-surface);
  font-size: .67rem;
  font-weight: 700;
}
.map-topbar-v6,
.map-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.map-topbar-v6 button,
.map-topbar button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 14px;
  border: 1px solid var(--dd-line);
  border-radius: 11px;
  background: rgba(255,253,249,.94);
  color: var(--dd-ink);
  font-size: .63rem;
  font-weight: 700;
  box-shadow: var(--dd-shadow-xs);
}

/* Account introduction is a normal editorial header, not a viewport-sized poster. */
.account-page-intro {
  min-height: 0;
  align-items: end;
}
.account-page-intro > .eyebrow { grid-column: 1; align-self: end; }
.account-page-intro > h1 { grid-column: 1; }
.account-page-intro > p:last-child {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: end;
  margin: 0 0 9px;
  max-width: 430px;
}

@media (max-width: 920px) {
  /* Account page becomes a single readable column before tablet widths get cramped. */
  .account-page-intro,
  .account-guest {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .account-page-intro > .eyebrow,
  .account-page-intro > h1,
  .account-page-intro > p:last-child {
    grid-column: 1;
    grid-row: auto;
  }
  .account-page-intro > p:last-child {
    max-width: 620px;
    margin: 0;
  }
  .account-benefit-grid {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }

  /* Discover keeps list/map switching explicit on touch layouts. */
  .mobile-map-toggle { display: inline-flex; }
}

@media (max-width: 760px) {
  body:not([data-page="partner-payment"]):not([data-page="booking-widget"]) {
    padding-bottom: calc(84px + env(safe-area-inset-bottom));
  }

  /* The account hero was previously re-expanded by a later desktop rule. */
  .account-page { padding-top: 108px; }
  .account-page-intro {
    display: block;
    margin-bottom: 26px;
  }
  .account-page-intro .eyebrow { margin-bottom: 10px; }
  .account-page-intro h1 {
    margin: 0;
    max-width: 100%;
    font-size: clamp(3.55rem,15.5vw,5rem);
    line-height: .9;
  }
  .account-page-intro > p:last-child {
    margin-top: 18px;
    max-width: 33rem;
    font-size: .92rem;
    line-height: 1.65;
  }
  .account-guest { gap: 14px; }
  .account-benefit-grid { grid-template-columns: 1fr; }
  .account-auth-heading { align-items: start; }
  .account-auth-heading h2 { font-size: clamp(2rem,10vw,2.75rem); }

  /* Discover filters use one controlled two-row layout rather than clipping Date. */
  .discover-toolbar-v6-inner {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 8px;
    overflow: visible;
  }
  .filter-scroll {
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 6px;
    overflow: visible;
  }
  .filter-control {
    min-width: 0;
    width: 100%;
    height: 50px;
    gap: 7px;
    padding: 0 9px;
  }
  .filter-control-icon { display: none; }
  .filter-control-copy { min-width: 0; }
  .filter-control-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .49rem;
  }
  .filter-control-copy select,
  .filter-control-copy input {
    max-width: 100%;
    min-width: 0;
    font-size: .62rem;
  }
  .filter-actions { min-width: 0; }
  .more-filters-button {
    min-height: 50px;
    padding: 0 11px;
    white-space: nowrap;
  }
  .results-header-v6,
  .results-header {
    min-width: 0;
    align-items: end;
  }
  .results-header-v6 > div,
  .results-header > div { min-width: 0; }
  .results-header-v6 h2,
  .results-header h2 { overflow-wrap: anywhere; }
  .mobile-map-toggle { flex: 0 0 auto; }

  /* Mobile map is a true application view between global top/bottom navigation. */
  body.discovery-map-open .map-pane-v6,
  .discover-workspace.mobile-map .map-pane-v6 {
    position: fixed;
    z-index: var(--dd-z-map);
    inset: 0;
    display: block;
    padding: 84px 10px 84px;
    background: var(--dd-bg);
  }
  body.discovery-map-open .map-shell-v6,
  .discover-workspace.mobile-map .map-shell-v6 {
    height: 100%;
    min-height: 0;
    border-radius: 20px;
    overflow: hidden;
  }
  body.discovery-map-open .restaurant-map,
  .discover-workspace.mobile-map .restaurant-map { min-height: 100%; }
  body.discovery-map-open .mobile-dock-wrap,
  .discover-workspace.mobile-map ~ .mobile-dock-wrap { z-index: var(--dd-z-dock); }

  /* All mobile navigation uses exactly one geometry contract. */
  .mobile-dock-wrap {
    position: fixed;
    z-index:var(--dd-z-dock);
    left: 10px;
    right: 10px;
    bottom: max(9px,env(safe-area-inset-bottom));
  }
  .mobile-dock {
    width: 100%;
    height: 64px;
    min-height: 64px;
    padding: 5px;
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 2px;
    border-radius: 22px;
  }
  .mobile-dock a,
  .mobile-dock button {
    width: 100%;
    min-width: 0;
    min-height: 52px;
    height: 52px;
    padding: 5px 2px;
    border-radius: 17px;
  }
  .mobile-dock svg { width: 17px; height: 17px; flex: 0 0 17px; }

  /* Partner registration keeps the link card useful without making it dominate. */
  .registration-address-panel-v6 {
    padding: 19px 16px;
    border-radius: 16px;
  }
  .address-panel-copy h3 { font-size: 2rem; }
  .domain-preview { font-size: 1.22rem; }

  /* Restaurant details and diner tabs must clear the shared mobile dock. */
  body[data-page="restaurant"] .mobile-booking-cta-v4 { bottom: 82px; }
  .diner-page { padding-bottom: 92px; }
}

@media (max-width: 430px) {
  .discover-toolbar-v6-inner {
    grid-template-columns: 1fr;
  }
  .filter-actions { display: grid; grid-template-columns: 1fr; }
  .more-filters-button { width: 100%; }
  .account-auth-card { padding: 20px; }
}

/* ==========================================================================
   DOTDINE BRAND RESTORATION — V3
   Restores the original DotDine editorial identity on top of the hardened V2
   interaction/layout contract. Keep this layer last.
   ========================================================================== */

:root {
  --dd-bg:#f5f2eb;
  --dd-bg-2:#ece7de;
  --dd-surface:#fffdf8;
  --dd-surface-2:#f1ede5;
  --dd-surface-3:#e7e1d7;
  --dd-ink:#181816;
  --dd-ink-2:#272720;
  --dd-muted:#706c64;
  --dd-muted-2:#989187;
  --dd-line:rgba(24,24,22,.10);
  --dd-line-strong:rgba(24,24,22,.18);
  --dd-accent:#a47b52;
  --dd-accent-deep:#76563a;
  --dd-accent-soft:#d8c4a8;
  --dd-success:#52684d;
  --dd-warning:#9a6d2d;
  --dd-danger:#874c47;
  --dd-dark:#171815;
  --dd-dark-2:#22231f;
  --dd-white:#fffdf8;
  --dd-shadow-xs:0 6px 20px rgba(19,17,14,.055);
  --dd-shadow-sm:0 12px 34px rgba(19,17,14,.08);
  --dd-shadow:0 24px 70px rgba(19,17,14,.12);
  --dd-shadow-lg:0 38px 110px rgba(8,8,7,.21);
  --dd-radius-sm:14px;
  --dd-radius-md:20px;
  --dd-radius-lg:28px;
  --dd-radius-xl:36px;
  --dd-pill:999px;
  --dd-max:1440px;
  --dd-pad:clamp(18px,4vw,64px);
  --dd-section:clamp(80px,8.5vw,140px);
}

body[data-surface="public"],
body[data-surface="widget"] {
  background:var(--dd-bg);
  color:var(--dd-ink);
}

.section-shell,
.container {
  width:min(var(--dd-max),100%);
}

.eyebrow {
  color:var(--dd-muted);
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.eyebrow.light,
.eyebrow-light {
  color:rgba(255,255,255,.66);
}

.brand-dot,
.mobile-menu-mark > span,
.payment-wordmark > span {
  color:var(--dd-accent);
}

/* Shared action language: deliberate pills for CTAs, not for content cards. */
.solid-button,
.primary-button,
.secondary-button,
.outline-button,
.light-button,
.form-submit,
.primary,
.filter-apply,
.filter-reset,
.dedicated-pay-button {
  min-height:48px;
  padding-inline:20px;
  border-radius:var(--dd-pill);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.02em;
  box-shadow:none;
}

.solid-button:hover,
.primary-button:hover,
.form-submit:hover,
.primary:hover,
.dedicated-pay-button:hover {
  transform:translateY(-1px);
  background:var(--dd-ink-2);
  border-color:var(--dd-ink-2);
  box-shadow:0 10px 28px rgba(20,18,14,.11);
}

.outline-button:hover,
.secondary-button:hover,
.filter-reset:hover {
  background:rgba(255,255,255,.56);
}

.text-link {
  min-height:36px;
  padding:0;
  border-bottom:1px solid currentColor;
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.035em;
}

.view-restaurant-link,
.view-restaurant {
  min-height:34px;
  width:auto;
  padding:0;
  border:0;
  border-bottom:1px solid currentColor;
  border-radius:0;
  background:transparent;
  color:var(--dd-ink);
  box-shadow:none;
  font-size:.62rem;
  font-weight:700;
}

.view-restaurant-link:hover,
.view-restaurant:hover {
  background:transparent;
  color:var(--dd-accent-deep);
  border-color:currentColor;
}

.view-restaurant::after { content:"View restaurant"; }

input,
select,
textarea {
  border-color:var(--dd-line-strong);
  background:rgba(255,255,255,.86);
}

input:focus,
select:focus,
textarea:focus {
  border-color:color-mix(in srgb,var(--dd-accent) 62%,var(--dd-line-strong));
  box-shadow:0 0 0 4px color-mix(in srgb,var(--dd-accent) 9%,transparent);
}

/* ---------- Floating navigation ---------- */
.floating-nav-wrap {
  top:16px;
  padding-inline:clamp(12px,2vw,24px);
}

.floating-nav {
  width:min(1240px,100%);
  min-height:64px;
  height:64px;
  grid-template-columns:minmax(188px,1fr) auto minmax(188px,1fr);
  gap:clamp(12px,1.45vw,24px);
  padding:0 10px 0 20px;
  border-radius:var(--dd-pill);
  box-shadow:0 14px 42px rgba(10,9,7,.14);
}

.floating-nav.on-dark {
  color:#fff;
  background:rgba(19,19,17,.58);
  border-color:rgba(255,255,255,.14);
  -webkit-backdrop-filter:blur(24px) saturate(135%);
  backdrop-filter:blur(24px) saturate(135%);
}

.floating-nav.on-light,
.floating-nav.inner-header.on-light {
  color:var(--dd-ink);
  background:rgba(250,248,243,.86);
  border-color:rgba(23,23,21,.10);
  box-shadow:0 14px 42px rgba(10,9,7,.10);
  -webkit-backdrop-filter:blur(24px) saturate(125%);
  backdrop-filter:blur(24px) saturate(125%);
}

.floating-nav .brand {
  min-height:44px;
  display:inline-flex;
  align-items:center;
  font-size:1.92rem;
  line-height:1;
}

.nav-links { gap:clamp(12px,1.35vw,22px); }
.nav-links a {
  min-height:44px;
  height:44px;
  padding-inline:3px;
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.075em;
}
.nav-links a::after {
  left:3px;
  right:100%;
  bottom:7px;
  background:var(--dd-accent);
}
.nav-links a:hover::after,
.nav-links a.active::after { right:3px; }
.nav-account { background:rgba(255,255,255,.10); }
.on-light .nav-account { background:rgba(255,255,255,.55); }

/* Right-side mobile menu stays from V2; visual treatment returns to original brand. */
.mobile-menu-panel {
  border-left:1px solid rgba(255,255,255,.10);
  background:rgba(20,20,18,.975);
  color:#fff;
  box-shadow:-22px 0 80px rgba(0,0,0,.28);
}
.mobile-menu-mark { font-size:2rem; }
.mobile-menu-nav a {
  min-height:66px;
  border-bottom-color:rgba(255,255,255,.10);
  color:rgba(255,255,255,.82);
}
.mobile-menu-nav strong { font-weight:600; }
.mobile-menu-nav a.active { color:var(--dd-accent-soft); }
.mobile-menu-auth a { background:var(--dd-surface); }

/* Unified bottom navigation. This geometry is intentionally identical everywhere. */
.mobile-dock {
  height:64px;
  min-height:64px;
  padding:5px;
  border:1px solid rgba(24,24,22,.11);
  border-radius:24px;
  background:rgba(250,248,243,.94);
  box-shadow:0 18px 48px rgba(15,13,10,.16);
  -webkit-backdrop-filter:blur(22px) saturate(120%);
  backdrop-filter:blur(22px) saturate(120%);
}
.mobile-dock a,
.mobile-dock button {
  min-height:52px;
  height:52px;
  border-radius:19px;
  color:var(--dd-muted);
  font-size:.54rem;
  font-weight:650;
}
.mobile-dock a.active,
.mobile-dock a[aria-current="page"],
.mobile-dock button.active {
  background:color-mix(in srgb,var(--dd-accent) 11%,transparent);
  color:var(--dd-ink);
}

/* ---------- Landing: original editorial composition ---------- */
.hero-v6 {
  position:relative;
  min-height:860px;
  height:max(820px,100svh);
  align-items:stretch;
  background:#151513;
  color:#fff;
  isolation:isolate;
}
.hero-v6-media { z-index:-3; }
.hero-v6-media img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 52%;
  transform:scale(1.02);
  animation:dd-brand-hero-drift 18s ease-in-out alternate infinite;
  opacity:1;
  transition:opacity 320ms ease;
}
.hero-v6-media img[data-active="false"] { opacity:0; }
.dd-home-hero-console { position:absolute; z-index:6; left:50%; bottom:42px; transform:translateX(-50%); width:min(1120px,calc(100% - (var(--dd-pad) * 2))); display:flex; align-items:center; }
.dd-home-hero-controls {
  position:absolute; inset:0; z-index:3; pointer-events:none;
  color:white; font:500 .75rem/1.3 var(--dd-font-ui);
}
.dd-home-hero-controls[hidden],.hero-v6-copy [hidden] { display:none; }
.dd-home-hero-controls button { position:absolute; border:0; color:inherit; background:rgba(23,24,21,.42); cursor:pointer; opacity:0; transition:opacity 160ms ease; }
.dd-home-hero-edge { top:50%; transform:translateY(-50%); width:56px; height:144px; padding:16px; pointer-events:auto; touch-action:manipulation; }
.dd-home-hero-edge.is-prev { left:0; border-radius:0 100% 100% 0 / 0 50% 50% 0; }
.dd-home-hero-edge.is-next { right:0; border-radius:100% 0 0 100% / 50% 0 0 50%; }
.dd-home-hero-edge:hover,.dd-home-hero-edge:active,.dd-home-hero-controls button:focus-visible { opacity:1; }
.dd-home-hero-controls button:focus-visible { outline:2px solid white; outline-offset:-4px; }
/* Keep the motion control available to keyboard and assistive-technology users without a visible toolbar. */
.dd-home-hero-pause { top:calc(50% + 88px); right:12px; width:44px; height:44px; padding:12px; border-radius:50%; }
.dd-home-hero-pause:focus-visible { pointer-events:auto; }
.dd-home-hero-visit:focus-visible { outline:2px solid white; outline-offset:3px; }
.dd-home-hero-controls svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.dd-home-hero-controls .dd-hero-play-icon,.dd-home-hero-controls [aria-pressed="true"] .dd-hero-pause-icon { display:none; }
.dd-home-hero-controls [aria-pressed="true"] .dd-hero-play-icon { display:block; }
.dd-home-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; margin-top:24px; }
.dd-home-hero-visit { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:12px 22px; border:1px solid rgba(255,255,255,.5); border-radius:999px; color:white; background:rgba(23,24,21,.18); font:600 .875rem/1.3 var(--dd-font-ui); text-decoration:none; }
.dd-home-hero-visit:hover { background:rgba(255,255,255,.12); }
.dd-home-hero-meta { margin:16px 0 0; color:rgba(255,255,255,.76); font:.875rem/1.6 var(--dd-font-ui); }
.hero-v6[data-hero-featured="true"] .hero-v6-copy h1 { font-size:clamp(3.5rem,6.5vw,6.5rem); line-height:.95; overflow-wrap:anywhere; }
.hero-v6[data-hero-featured="true"] .hero-v6-copy h1 em { margin:12px 0 0; font-size:clamp(2rem,3.5vw,3.5rem); letter-spacing:-.03em; }
.hero-v6[data-hero-featured="true"] .hero-intro { margin:22px 0 0; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.dd-home-location-note { margin:8px 0; color:var(--dd-muted); font:.875rem/1.5 var(--dd-font-ui); }
.dd-card-distance { display:block; margin-top:6px; color:var(--dd-muted); font:.8125rem/1.4 var(--dd-font-ui); }
@media(max-width:430px) {
  .dd-home-hero-actions { gap:8px 12px; }
  .dd-home-hero-visit { padding-inline:16px; }
  .hero-v6[data-hero-featured="true"] .hero-v6-copy h1 { font-size:clamp(3rem,14vw,4rem); }
}
@media(max-width:760px) {
  .dd-home-hero-console { left:12px; right:12px; bottom:16px; width:auto; transform:none; }
  .dd-home-hero-edge { width:44px; height:112px; padding:12px; }
  .dd-home-hero-pause { top:calc(50% + 68px); }
}
@keyframes dd-brand-hero-drift {
  from { transform:scale(1.02); }
  to { transform:scale(1.055) translate3d(-.45%,-.25%,0); }
}
.hero-v6-shade {
  z-index:-2;
  background:
    linear-gradient(90deg,rgba(9,8,7,.82) 0%,rgba(9,8,7,.54) 35%,rgba(9,8,7,.14) 72%),
    linear-gradient(0deg,rgba(8,8,7,.72) 0%,rgba(8,8,7,.06) 55%),
    radial-gradient(circle at 74% 36%,rgba(175,137,94,.13),transparent 30%);
}
.hero-v6-inner {
  position:relative;
  z-index:2;
  min-height:inherit;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding-top:clamp(130px,18vh,190px);
  padding-bottom:180px;
}
.hero-v6-copy {
  width:min(820px,72vw);
  margin-left:clamp(0px,5vw,72px);
}
.hero-v6-copy .eyebrow { margin-top:12px; }
.hero-v6-copy h1 {
  max-width:800px;
  margin:12px 0 0;
  font-size:clamp(4.8rem,7.5vw,8.1rem);
  line-height:.82;
  letter-spacing:-.062em;
}
.hero-v6-copy h1 em {
  display:block;
  margin-left:clamp(30px,7vw,120px);
  color:#f0e9de;
}
.hero-v6 .hero-intro {
  max-width:520px;
  margin:28px 0 0 clamp(30px,7vw,120px);
  color:rgba(255,255,255,.70);
  font-size:1rem;
  line-height:1.75;
}
.hero-location-line {
  color:rgba(255,255,255,.72);
  letter-spacing:.06em;
}
.search-console-v6 {
  position:relative;
  left:auto;
  right:auto;
  bottom:auto;
  width:auto;
  margin-inline:0;
  min-width:0;
  flex:1;
  transform:none;
  grid-template-columns:1.45fr 1.05fr .9fr auto;
  gap:0;
  padding:7px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:var(--dd-pill);
  background:rgba(255,255,255,.16);
  color:#fff;
  box-shadow:0 20px 70px rgba(0,0,0,.28);
  -webkit-backdrop-filter:blur(24px) saturate(140%);
  backdrop-filter:blur(24px) saturate(140%);
}
.search-console-v6 .search-field {
  border-right:0;
}
.search-console-v6 .search-field + .search-field::before {
  content:"";
  position:absolute;
  left:0;
  top:18%;
  bottom:18%;
  border-left:1px solid rgba(255,255,255,.17);
}
.search-console-v6 .search-trigger {
  min-height:66px;
  padding:0 20px;
  color:#fff;
}
.search-console-v6 .search-trigger small { color:rgba(255,255,255,.54); }
.search-console-v6 .search-trigger strong { color:#fff; font-size:.7rem; }
.search-console-v6 .search-submit {
  min-height:58px;
  align-self:center;
  margin-right:3px;
  border-radius:var(--dd-pill);
  background:var(--dd-surface);
  color:var(--dd-ink);
}
.search-console-v6 .search-submit:hover { background:#fff; }
.search-console-v6 .search-popover { color:var(--dd-ink); }

.quick-discovery-v6 {
  border-bottom:1px solid var(--dd-line);
  background:var(--dd-surface);
}
.quick-discovery-shell { min-height:86px; gap:9px; }
.discovery-pill,
.intent-pill {
  min-height:38px;
  border-color:var(--dd-line);
  background:transparent;
  color:var(--dd-ink);
}
.discovery-pill:hover,
.intent-pill:hover,
.discovery-pill.active {
  border-color:var(--dd-ink);
  background:var(--dd-ink);
  color:#fff;
}

.section-v6 { padding:var(--dd-section) 0; }
.section-heading-v6 {
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.46fr);
  gap:clamp(36px,7vw,100px);
  margin-bottom:46px;
}
.section-heading-v6 h2 {
  font-size:clamp(3.6rem,6vw,6.4rem);
  line-height:.88;
  letter-spacing:-.055em;
}
.section-heading-v6>p,
.section-heading-v6>div:last-child>p {
  max-width:440px;
  font-size:.86rem;
  line-height:1.75;
}

.cards-grid { gap:clamp(18px,2vw,28px); }
.restaurant-card {
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.restaurant-card:hover { transform:none; box-shadow:none; }
.restaurant-image {
  overflow:hidden;
  border-radius:var(--dd-radius-md);
  background:var(--dd-bg-2);
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset;
}
.restaurant-copy { padding:17px 2px 0; }
.restaurant-heading h3 {
  font-size:clamp(2rem,2.7vw,2.7rem);
  line-height:.94;
}
.restaurant-note {
  max-width:95%;
  font-family:var(--dd-font-display);
  font-size:.98rem;
  line-height:1.48;
}
.restaurant-tags span { background:rgba(255,255,255,.35); }

.feature-restaurant {
  border-radius:var(--dd-radius-lg);
  box-shadow:none;
}
.compact-card {
  border-color:var(--dd-line);
  background:rgba(255,253,248,.74);
}
.occasion-card,
.mood-card {
  border-radius:var(--dd-radius-md);
}
.cuisine-panel {
  border-top:1px solid var(--dd-line-strong);
  border-bottom:1px solid var(--dd-line-strong);
}
.edit-section { background:var(--dd-bg); }
.edit-layout { border-top:1px solid var(--dd-line); padding-top:40px; }
.concierge-panel {
  background:
    radial-gradient(circle at 85% 15%,rgba(216,196,168,.12),transparent 24%),
    var(--dd-dark);
}
.partner-panel {
  background:var(--dd-surface);
  border-color:var(--dd-line);
}

/* ---------- Location modal ---------- */
.search-modal-backdrop {
  background:rgba(14,13,11,.50);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
}
.location-popover {
  width:min(650px,calc(100vw - 32px))!important;
  padding:28px!important;
  border-radius:30px!important;
  background:rgba(255,253,248,.985)!important;
  box-shadow:0 35px 110px rgba(10,9,7,.26)!important;
}
.location-popover .popover-title h3 {
  font-size:clamp(2.7rem,5vw,4.1rem);
  line-height:.94;
  letter-spacing:-.045em;
}
.location-choice {
  min-height:55px;
  padding:14px 2px;
}
.location-choice span {
  font-family:var(--dd-font-display);
  font-size:1.35rem;
}

/* ---------- Discover ---------- */
.discover-v6-head {
  padding:154px 0 52px;
  background:
    radial-gradient(circle at 80% 8%,rgba(164,123,82,.09),transparent 28%),
    linear-gradient(180deg,#faf8f3 0%,var(--dd-bg) 100%);
}
.discover-v6-head>.section-shell {
  grid-template-columns:minmax(0,1.15fr) minmax(360px,.58fr);
  gap:clamp(40px,7vw,110px);
}
.discover-v6-copy h1 {
  max-width:820px;
  font-size:clamp(4.2rem,7.2vw,7.4rem);
  line-height:.84;
  letter-spacing:-.06em;
}
.discover-v6-copy h1 em {
  display:block;
  margin-left:.72em;
  color:var(--dd-accent-deep);
}
.discover-v6-copy>p:not(.eyebrow) {
  max-width:560px;
  font-size:.9rem;
  line-height:1.76;
}
.discover-search-v6 {
  min-height:64px;
  padding:7px 7px 7px 20px;
  border-radius:var(--dd-pill);
  background:rgba(255,253,248,.86);
  box-shadow:0 16px 42px rgba(31,27,20,.07);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.discover-search-v6 button { border-radius:var(--dd-pill); }
.discover-toolbar-v6 {
  background:rgba(245,242,235,.92);
  border-bottom-color:var(--dd-line);
}
.filter-control {
  border-radius:var(--dd-pill);
  background:rgba(255,253,248,.78);
}
.more-filters-button,
.clear-filters { border-radius:var(--dd-pill); }
.discover-workspace-v6 { width:min(1540px,100%); }
.results-pane-v6 { padding-top:44px; }
.results-header-v6 h2 { font-size:2.9rem; line-height:.95; }
.discover-card {
  min-height:260px;
  grid-template-columns:minmax(210px,37%) minmax(0,63%);
  border-radius:24px;
  background:rgba(255,253,249,.76);
  transition:transform .22s var(--dd-ease),box-shadow .22s,border-color .22s;
}
.discover-card:hover,
.discover-card.highlighted {
  transform:translateY(-2px);
  border-color:rgba(164,123,82,.42);
  box-shadow:0 18px 46px rgba(28,24,18,.10);
}
.discover-card h3 {
  font-size:clamp(1.9rem,2.5vw,2.55rem);
  line-height:.94;
}
.discover-card-note {
  font-family:var(--dd-font-display);
  font-size:.98rem;
  line-height:1.48;
}
.map-pane-v6 { background:#ded9cf; }
.map-shell-v6 { border-left:1px solid var(--dd-line); }
.map-topbar-v6 button,
.map-topbar button {
  border-radius:var(--dd-pill);
  background:rgba(255,253,249,.94);
}

/* ---------- Account and diner ---------- */
.account-page { padding-top:140px; }
.account-page-intro {
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.45fr);
  gap:clamp(40px,8vw,110px);
  margin-bottom:50px;
}
.account-page-intro h1 {
  max-width:820px;
  font-size:clamp(4.3rem,7.2vw,7.4rem);
  line-height:.85;
  letter-spacing:-.058em;
}
.account-auth-card {
  padding:30px;
  border-radius:var(--dd-radius-lg);
  background:rgba(255,253,248,.82);
  box-shadow:0 18px 60px rgba(24,20,14,.07);
}
.account-mark,
.provisioning-mark,
.restaurant-mark {
  background:var(--dd-dark);
  color:#fff;
}
.account-benefit-grid article {
  background:transparent;
  border-top:1px solid var(--dd-line-strong);
}
.diner-hero {
  background:
    radial-gradient(circle at 78% 20%,rgba(164,123,82,.10),transparent 30%),
    var(--dd-bg);
}
.diner-greeting h1 {
  font-size:clamp(4.2rem,7vw,7.2rem);
  line-height:.86;
}
.diner-wallet-card,
.diner-private-desk,
.diner-concierge-panel {
  background:
    radial-gradient(circle at 82% 18%,rgba(216,196,168,.10),transparent 24%),
    var(--dd-dark);
}
.diner-tabs {
  background:rgba(255,253,248,.82);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}

/* ---------- Restaurant detail ---------- */
.restaurant-v4-hero {
  min-height:720px;
  height:84svh;
}
.restaurant-v4-hero-shade {
  background:
    linear-gradient(180deg,rgba(10,10,9,.14),rgba(10,10,9,.04) 34%,rgba(10,10,9,.76) 100%),
    linear-gradient(90deg,rgba(10,10,9,.34),transparent 62%);
}
.restaurant-v4-hero h1 {
  font-size:clamp(5rem,9vw,9rem);
  line-height:.8;
  letter-spacing:-.07em;
}
.restaurant-v4-anchor {
  background:rgba(245,242,235,.91);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.restaurant-v4-overview {
  grid-template-columns:minmax(0,1.12fr) minmax(360px,.55fr);
  gap:clamp(56px,8vw,120px);
}
.restaurant-v4-editorial h2 {
  font-size:clamp(3.8rem,6vw,6.5rem);
  line-height:.88;
}
.restaurant-v4-booking {
  border-radius:var(--dd-radius-lg);
  background:rgba(255,253,248,.86);
  box-shadow:0 18px 60px rgba(24,20,14,.08);
}
.restaurant-v4-menu {
  background:var(--dd-dark);
}
.restaurant-v4-gallery-grid img { border-radius:var(--dd-radius-md); }

/* ---------- Restaurant partners: restore the original hospitality brand ---------- */
.partner-v6-hero {
  min-height:780px;
  padding:154px 0 74px;
  background:
    radial-gradient(circle at 78% 24%,rgba(164,123,82,.19),transparent 30%),
    radial-gradient(circle at 20% 82%,rgba(216,196,168,.06),transparent 28%),
    var(--dd-dark);
  color:#fff;
}
.partner-v6-hero-inner {
  grid-template-columns:minmax(0,1fr) minmax(380px,.62fr);
  gap:clamp(50px,8vw,120px);
  align-items:end;
}
.partner-v6-hero-copy h1 {
  max-width:880px;
  margin-top:8px;
  font-size:clamp(5rem,8vw,8.6rem);
  line-height:.82;
  letter-spacing:-.062em;
}
.partner-v6-hero-copy h1 em {
  color:var(--dd-accent-soft);
}
.partner-v6-hero-copy>p:not(.eyebrow) {
  max-width:620px;
  margin-top:26px;
  color:rgba(255,255,255,.62);
  font-size:.92rem;
  line-height:1.75;
}
.partner-v6-actions { gap:12px; margin-top:26px; }
.partner-v6-proof {
  margin-top:28px;
  color:rgba(255,255,255,.42);
}
.partner-product-preview {
  padding:22px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:var(--dd-radius-lg);
  background:rgba(255,255,255,.055);
  box-shadow:none;
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
}
.partner-preview-metrics article {
  border-color:rgba(255,255,255,.10);
  background:rgba(255,255,255,.025);
}
.partner-preview-metrics strong {
  font-family:var(--dd-font-display);
  font-size:2.35rem;
  font-weight:400;
}
.partner-preview-list p { border-top-color:rgba(255,255,255,.10); }

.partner-value-strip {
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  padding:0;
  border-left:1px solid var(--dd-line);
  border-right:1px solid var(--dd-line);
  background:var(--dd-line);
}
.partner-value-strip article {
  min-height:128px;
  padding:26px;
  border:0;
  border-radius:0;
  background:var(--dd-bg);
}
.partner-platform-v6,
.partner-operation-flow,
.onboarding-v6 { padding-top:var(--dd-section); padding-bottom:var(--dd-section); }
.partner-section-heading {
  grid-template-columns:minmax(0,.82fr) minmax(320px,.44fr);
  gap:clamp(44px,8vw,112px);
  margin-bottom:44px;
}
.partner-section-heading h2,
.partner-edit-policy h2,
.onboarding-v6-heading h2 {
  font-size:clamp(3.8rem,6vw,6.4rem);
  line-height:.88;
  letter-spacing:-.052em;
}
.partner-feature-grid {
  grid-template-columns:repeat(2,1fr);
  gap:0;
  border-top:1px solid var(--dd-line-strong);
  border-left:1px solid var(--dd-line);
}
.partner-feature-grid article {
  min-height:230px;
  padding:28px;
  border:0;
  border-right:1px solid var(--dd-line);
  border-bottom:1px solid var(--dd-line);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.partner-feature-grid h3 {
  margin-top:34px;
  font-size:2.15rem;
}
.feature-icon {
  width:38px;
  height:38px;
  border-radius:50%;
  background:transparent;
  border:1px solid var(--dd-line-strong);
}
.partner-flow-grid {
  gap:1px;
  border-top:1px solid var(--dd-line);
  border-bottom:1px solid var(--dd-line);
  background:var(--dd-line);
}
.partner-flow-grid article {
  min-height:190px;
  border:0;
  border-radius:0;
  background:var(--dd-bg);
}
.partner-edit-policy {
  border-top:1px solid var(--dd-line-strong);
  border-bottom:1px solid var(--dd-line-strong);
}

.onboarding-v6-heading {
  grid-template-columns:minmax(0,1fr) minmax(320px,.46fr);
  gap:clamp(40px,7vw,96px);
  margin-bottom:38px;
}
.onboarding-progress-v6 {
  border-radius:var(--dd-radius-md);
  background:transparent;
}
.restaurant-registration-form-v6 {
  gap:0;
  border:1px solid var(--dd-line);
  border-radius:var(--dd-radius-lg);
  overflow:hidden;
  background:var(--dd-surface);
  box-shadow:0 18px 58px rgba(22,19,15,.07);
}
.registration-form-main-v6 {
  padding:34px;
  background:var(--dd-surface);
}
.onboarding-fieldset {
  border-color:var(--dd-line);
}
.onboarding-fieldset legend {
  font-family:var(--dd-font-display);
  font-size:2.1rem;
  font-weight:400;
  letter-spacing:-.025em;
}
.registration-address-panel-v6 {
  top:112px;
  margin:0;
  padding:34px 30px;
  border:0;
  border-left:1px solid rgba(255,255,255,.10);
  border-radius:0;
  background:
    radial-gradient(circle at 86% 14%,rgba(216,196,168,.08),transparent 25%),
    var(--dd-dark);
  color:#fff;
  box-shadow:none;
}
.registration-address-panel-v6 .eyebrow { color:rgba(255,255,255,.5); }
.address-panel-copy h3 {
  font-size:clamp(2.7rem,4vw,4.2rem);
  line-height:.93;
}
.address-panel-copy p { color:rgba(255,255,255,.56); }
.domain-control {
  border-color:rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
}
.domain-control input { color:#fff; background:transparent; }
.domain-control span { color:rgba(255,255,255,.48); }
.domain-preview { color:var(--dd-accent-soft); }
.registration-address-assurance {
  border-top-color:rgba(255,255,255,.13);
  color:rgba(255,255,255,.48);
}
.registration-confirm-v6 {
  border-top:1px solid var(--dd-line);
  background:var(--dd-surface);
}
.onboarding-actions-v6 {
  border-top:1px solid var(--dd-line);
  background:var(--dd-surface);
}
.partner-contact-v6 {
  background:
    radial-gradient(circle at 82% 20%,rgba(216,196,168,.08),transparent 24%),
    var(--dd-dark);
}

/* ---------- Memberships ---------- */
.memberships-v6-hero {
  min-height:700px;
  padding:148px 0 52px;
  background:
    radial-gradient(circle at 82% 22%,rgba(164,123,82,.20),transparent 28%),
    var(--dd-dark);
}
.memberships-v6-hero h1 {
  max-width:1000px;
  font-size:clamp(4.8rem,8vw,8.3rem);
  line-height:.82;
  letter-spacing:-.06em;
}
.memberships-v6-hero h1 em { color:var(--dd-accent-soft); }
.memberships-v6-hero p:not(.eyebrow) { max-width:700px; line-height:1.75; }
.memberships-v6-rail {
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.13);
}
.memberships-v6-rail span {
  border-color:rgba(255,255,255,.14);
  color:rgba(255,255,255,.55);
  background:transparent;
}
.memberships-v6-heading,
.comparison-v6-heading {
  grid-template-columns:minmax(0,1fr) minmax(300px,.46fr);
  gap:44px;
}
.memberships-v6-heading h2,
.comparison-v6-heading h2,
.membership-notes-v6 h2,
.membership-cta-v6 h2 {
  font-size:clamp(3.7rem,6vw,6.3rem);
  line-height:.88;
}
.membership-card-grid-v6 { gap:12px; }
.membership-card-v6 {
  min-height:610px;
  padding:28px;
  border-radius:var(--dd-radius-lg);
  background:var(--dd-surface);
}
.membership-card-v6.featured {
  background:var(--dd-dark);
  border-color:var(--dd-dark);
  box-shadow:var(--dd-shadow);
}
.membership-card-v6 h3 { font-size:clamp(2.8rem,4vw,4rem); line-height:.9; }
.membership-price-v6 { font-size:3rem; }
.membership-comparison-v6 { background:var(--dd-dark); }

/* ---------- Payment ---------- */
.payment-v4-summary {
  background:
    radial-gradient(circle at 78% 18%,rgba(216,196,168,.09),transparent 24%),
    var(--dd-dark);
}
.payment-wordmark { font-size:2.05rem; }
.payment-v4-summary-copy h1 {
  font-size:clamp(3.5rem,5.3vw,5.8rem);
  line-height:.88;
}
.payment-checkout-card,
.payment-provisioning-card {
  border-radius:var(--dd-radius-lg);
  background:rgba(255,253,248,.9);
  box-shadow:0 24px 70px rgba(20,18,14,.10);
}
.payment-checkout-head h2,
.payment-provisioning-card h2 {
  font-size:clamp(3rem,4.5vw,4.6rem);
  line-height:.92;
}

/* ---------- First-party booking widget ---------- */
body[data-page="booking-widget"] .widget-shell {
  background:
    radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--brand,var(--dd-accent)) 8%,transparent),transparent 30%),
    linear-gradient(180deg,#faf8f3,var(--dd-bg));
}
.widget-header h1,
.step-heading h2,
.result h2 {
  line-height:.9;
  letter-spacing:-.05em;
}
.widget-progress {
  border-radius:var(--dd-pill);
  background:rgba(255,255,255,.46);
}
.slot-grid button { border-radius:var(--dd-pill); }

/* ---------- Footer ---------- */
.newsletter-strip { background:#24231f; }
.newsletter-copy h2 {
  font-size:clamp(3.3rem,5.4vw,5.4rem);
  line-height:.9;
}
.site-footer { background:var(--dd-dark); }
.site-footer .brand { font-size:2.2rem; }
.footer-column h3 { letter-spacing:.13em; }

/* ---------- Dashboard inherits the brand tokens without losing density ---------- */
body[data-surface="dashboard"] {
  --dd-bg:#f5f2eb;
  --dd-surface:#fffdf8;
  --dd-accent:#a47b52;
  --dd-accent-deep:#76563a;
  --dd-dark:#171815;
}

/* ---------- Brand-responsive tuning ---------- */
@media (max-width:1100px) {
  .partner-v6-hero-inner { grid-template-columns:1fr minmax(350px,.58fr); }
}

@media (min-width:761px) and (max-width:920px) {
  .dd-home-hero-console { bottom:calc(96px + env(safe-area-inset-bottom)); }
}

@media (max-width:920px) {
  .floating-nav { grid-template-columns:1fr auto; width:min(720px,100%); }
  .hero-v6-copy { width:min(760px,86vw); margin-left:0; }
  .hero-v6-copy h1 em,
  .hero-v6 .hero-intro { margin-left:clamp(20px,7vw,80px); }
  .search-console-v6 {
    grid-template-columns:repeat(3,minmax(0,1fr)) auto;
  }
  .section-heading-v6,
  .partner-section-heading,
  .onboarding-v6-heading,
  .memberships-v6-heading,
  .comparison-v6-heading {
    grid-template-columns:1fr;
    gap:20px;
  }
  .partner-v6-hero-inner { grid-template-columns:1fr; }
  .partner-product-preview { max-width:640px; }
  .registration-address-panel-v6 {
    position:relative;
    top:auto;
    border-left:0;
    border-top:1px solid rgba(255,255,255,.1);
  }
}

@media (max-width:760px) {
  :root { --dd-pad:18px; --dd-section:72px; }

  .floating-nav-wrap { top:10px; padding-inline:10px; }
  .floating-nav {
    min-height:58px;
    height:58px;
    padding:0 6px 0 16px;
    border-radius:22px;
  }
  .floating-nav .brand { font-size:1.82rem; }

  .mobile-dock-wrap {
    left:10px;
    right:10px;
    bottom:max(9px,env(safe-area-inset-bottom));
  }
  .mobile-dock {
    width:100%;
    height:64px;
    min-height:64px;
    padding:5px;
    border-radius:22px;
  }
  .mobile-dock a,
  .mobile-dock button {
    width:100%;
    min-height:52px;
    height:52px;
    padding:5px 2px;
    border-radius:17px;
  }

  .hero-v6 {
    min-height:730px;
    height:92svh;
  }
  .hero-v6-inner {
    justify-content:flex-start;
    padding-top:132px;
    padding-bottom:202px;
  }
  .hero-v6-copy { width:100%; margin-left:0; }
  .hero-v6-copy h1 {
    font-size:clamp(4rem,18vw,5.8rem);
    line-height:.84;
  }
  .hero-v6-copy h1 em {
    margin-left:clamp(20px,8vw,42px);
  }
  .hero-v6 .hero-intro {
    margin:20px 0 0 clamp(20px,8vw,42px);
    max-width:88%;
    font-size:.86rem;
    line-height:1.66;
  }
  .search-console-v6 {
    left:auto;
    right:auto;
    bottom:auto;
    width:auto;
    transform:none;
    grid-template-columns:1fr 1fr;
    gap:0;
    border-color:rgba(255,255,255,.15);
    border-radius:24px;
    background:rgba(250,248,243,.96);
    color:var(--dd-ink);
  }
  .search-console-v6 .search-field + .search-field::before { display:none; }
  .search-console-v6 .search-field {
    border-bottom:1px solid var(--dd-line);
  }
  .search-console-v6 .search-field:nth-child(2) { border-left:1px solid var(--dd-line); }
  .search-console-v6 .search-field:nth-child(3) { grid-column:1/-1; border-bottom:0; }
  .search-console-v6 .search-trigger {
    min-height:52px;
    padding:0 11px;
    color:var(--dd-ink);
  }
  .search-console-v6 .search-trigger small { color:var(--dd-muted); }
  .search-console-v6 .search-trigger strong { color:var(--dd-ink); }
  .search-console-v6 .search-submit {
    grid-column:1/-1;
    min-height:48px;
    margin:4px 0 0;
    justify-content:center;
    background:var(--dd-ink);
    color:#fff;
  }

  .location-popover {
    left:10px!important;
    right:10px!important;
    bottom:10px!important;
    top:auto!important;
    width:auto!important;
    max-height:82dvh;
    padding:22px!important;
    border-radius:28px!important;
    transform:translateY(20px)!important;
  }
  .location-popover.open { transform:translateY(0)!important; }
  .location-popover .popover-title h3 { font-size:2.8rem; }
  .location-choice span { font-size:1.2rem; }

  .section-heading-v6 h2 { font-size:clamp(3.35rem,14vw,4.5rem); }
  .restaurant-card { border-radius:0; }
  .restaurant-image { border-radius:18px; }
  .restaurant-copy { padding-top:14px; }

  .discover-v6-head { padding:118px 0 36px; }
  .discover-v6-copy h1 { font-size:clamp(3.9rem,16vw,5.5rem); }
  .discover-v6-copy h1 em { margin-left:.4em; }
  .discover-card { grid-template-columns:1fr; border-radius:20px; }
  .discover-card-image { aspect-ratio:16/10; }
  .discover-card-note { font-size:.94rem; }

  .account-page-intro h1,
  .diner-greeting h1 { font-size:clamp(3.8rem,16vw,5.4rem); }

  .restaurant-v4-hero { min-height:590px; height:80svh; }
  .restaurant-v4-hero h1 { font-size:clamp(4.5rem,18vw,6rem); }
  .restaurant-v4-overview { grid-template-columns:1fr; }

  .partner-v6-hero {
    min-height:auto;
    padding:122px 0 56px;
  }
  .partner-v6-hero-copy h1 {
    font-size:clamp(4rem,16vw,5.8rem);
    line-height:.83;
  }
  .partner-value-strip { grid-template-columns:1fr; }
  .partner-value-strip article { min-height:0; }
  .partner-feature-grid { grid-template-columns:1fr; }
  .partner-feature-grid article { min-height:190px; }
  .partner-section-heading h2,
  .partner-edit-policy h2,
  .onboarding-v6-heading h2 { font-size:clamp(3.3rem,13vw,4.5rem); }
  .restaurant-registration-form-v6 { border-radius:22px; }
  .registration-form-main-v6 { padding:20px 18px; }
  .registration-address-panel-v6 {
    padding:26px 20px;
    border-radius:0;
  }
  .address-panel-copy h3 { font-size:2.55rem; }

  .memberships-v6-hero {
    min-height:630px;
    padding:120px 0 48px;
  }
  .memberships-v6-hero h1 { font-size:clamp(4rem,16vw,5.8rem); }
  .membership-card-v6 { min-height:auto; }

  .payment-v4-summary-copy h1 { font-size:3.2rem; }
  .payment-checkout-head h2,
  .payment-provisioning-card h2 { font-size:3rem; }

  body[data-page="booking-widget"] .widget-shell { padding:20px 18px; }
}

@media (max-width:480px) {
  .partner-product-preview { padding:18px; }
  .partner-preview-metrics { grid-template-columns:1fr 1fr; }
  .partner-preview-metrics article:last-child { grid-column:1/-1; }
  .mobile-menu-panel { width:min(360px,86vw); }
}

@media (prefers-reduced-motion:reduce) {
  .hero-v6-media img { animation:none!important; transform:none!important; }
}

/* Account access is deliberately compact: the eyebrow and headline are one
   editorial unit, and the access choices are buttons rather than underlined
   navigation tabs. */
.account-page { padding-top:108px; }
.account-page-intro {
  column-gap:clamp(36px,7vw,96px);
  row-gap:12px;
  margin-bottom:24px;
  grid-template-columns:1fr;
}
.account-page-intro h1 {font-size:clamp(2.3rem,4vw,3.4rem);line-height:1.1;letter-spacing:-.035em}
.account-page-intro>p:last-child {grid-column:1;grid-row:auto;max-width:none;font-size:.9rem}
.restaurant-main-link {font:600 .75rem/1.4 var(--dd-font-ui);color:var(--dd-muted);min-height:44px;display:inline-flex;align-items:center;margin-left:12px;text-decoration:none}
.feature-restaurant-links {display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.landing-times {display:inline-flex;flex-wrap:wrap;align-items:center;gap:7px}
.feature-restaurant-links .restaurant-main-link {margin-left:0;color:var(--dd-white)}
.account-auth-tabs {
  gap:4px;
  padding:4px;
  border:0;
  border-radius:var(--dd-pill);
  background:var(--dd-surface-2);
}
.account-auth-tabs button,
.account-auth-tabs button.active {
  border:0;
  border-radius:var(--dd-pill);
}
.account-auth-tabs button.active {
  background:#fff;
  box-shadow:var(--dd-shadow-xs);
}

@media (max-width:760px) {
  .account-page { padding-top:88px; }
  .account-page-intro { margin-bottom:22px; }
}

/* V3 release corrections */
.view-restaurant::after { content:none; }

@media (max-width:920px) {
  .discover-v6-head > .section-shell {
    grid-template-columns:1fr;
    gap:26px;
  }
  .discover-search-cluster {
    min-width:0;
    width:100%;
  }
  .discover-v6-head .intent-row {
    grid-column:1;
    margin-top:0;
  }
}

@media (max-width:760px) {
  .discover-v6-head > .section-shell {
    display:block;
  }
  .discover-v6-copy,
  .discover-search-cluster {
    width:100%;
    min-width:0;
  }
  .discover-v6-copy h1,
  .discover-v6-copy > p {
    max-width:100%;
  }
  .discover-search-cluster {
    margin-top:24px;
  }
  .discover-search-v6 {
    width:100%;
    min-width:0;
  }
  .discover-v6-head .intent-row {
    display:flex;
    flex-wrap:nowrap;
    gap:7px;
    margin-top:12px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scrollbar-width:none;
    padding-bottom:2px;
  }
  .discover-v6-head .intent-row::-webkit-scrollbar { display:none; }
  .discover-v6-head .intent-pill { flex:0 0 auto; }
}

/* ========================================================================== */
/* DISCOVER V4 — isolated production redesign                                */
/* Everything in this section is scoped to the Discover page.                */
/* ========================================================================== */

body[data-page="discover"] {
  --discover-nav-clearance: 104px;
  --discover-filter-h: 76px;
  background: var(--dd-bg);
  overflow-x: clip;
}

body[data-page="discover"] .dd-app-main {
  min-height: 100vh;
  background: var(--dd-bg);
}

/* Hero */
body[data-page="discover"] .dd-discover-hero {
  position: relative;
  overflow: hidden;
  padding: 152px 0 54px;
  border-bottom: 1px solid var(--dd-line);
  background:
    radial-gradient(circle at 86% 2%, rgba(164,123,82,.10), transparent 27%),
    linear-gradient(180deg, #fbf9f4 0%, var(--dd-bg) 100%);
}

body[data-page="discover"] .dd-discover-hero::after {
  content: "";
  position: absolute;
  right: -8vw;
  bottom: -21vw;
  width: 42vw;
  height: 42vw;
  min-width: 520px;
  min-height: 520px;
  border: 1px solid rgba(164,123,82,.08);
  border-radius: 50%;
  pointer-events: none;
}

body[data-page="discover"] .dd-discover-hero-inner {
  position: relative;
  z-index: 1;
}

body[data-page="discover"] .dd-discover-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, .48fr);
  align-items: end;
  gap: clamp(36px, 7vw, 104px);
}

body[data-page="discover"] .dd-discover-heading .eyebrow {
  grid-column: 1 / -1;
  margin-bottom: -20px;
}

body[data-page="discover"] .dd-discover-heading h1 {
  margin: 0;
  max-width: 1040px;
  font: 400 clamp(4.8rem, 7.6vw, 8rem)/.83 var(--dd-font-display);
  letter-spacing: -.064em;
  text-wrap: balance;
}

body[data-page="discover"] .dd-discover-heading h1 em {
  display: block;
  margin-left: .7em;
  color: var(--dd-accent-deep);
  font-weight: 400;
}

body[data-page="discover"] .dd-discover-intro {
  max-width: 430px;
  margin: 0 0 6px;
  color: var(--dd-muted);
  font-size: .94rem;
  line-height: 1.78;
}

body[data-page="discover"] .dd-discover-search-zone {
  display: grid;
  grid-template-columns: minmax(0, 840px) minmax(270px, 1fr);
  align-items: center;
  gap: clamp(20px, 4vw, 54px);
  margin-top: 42px;
}

body[data-page="discover"] .dd-discover-search {
  min-width: 0;
  min-height: 66px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 7px 7px 7px 20px;
  border: 1px solid var(--dd-line-strong);
  border-radius: var(--dd-radius-pill);
  background: rgba(255,253,248,.90);
  box-shadow: 0 18px 48px rgba(31,27,20,.075);
  -webkit-backdrop-filter: blur(18px) saturate(120%);
  backdrop-filter: blur(18px) saturate(120%);
  transition: border-color .18s var(--dd-ease), box-shadow .18s var(--dd-ease), background .18s var(--dd-ease);
}

body[data-page="discover"] .dd-discover-search:focus-within {
  border-color: color-mix(in srgb, var(--dd-accent-deep) 38%, var(--dd-line-strong));
  background: var(--dd-surface);
  box-shadow: 0 18px 54px rgba(31,27,20,.09), 0 0 0 4px rgba(164,123,82,.06);
}

body[data-page="discover"] .dd-discover-search > svg {
  width: 19px;
  height: 19px;
  color: var(--dd-accent-deep);
}

body[data-page="discover"] .dd-discover-search input {
  min-width: 0;
  height: 50px;
  padding: 0 3px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-size: .92rem;
}

body[data-page="discover"] .dd-discover-search input::placeholder {
  color: var(--dd-muted-2);
}

body[data-page="discover"] .dd-discover-search input::-webkit-search-cancel-button {
  opacity: .55;
}

body[data-page="discover"] .dd-discover-search-submit {
  min-width: 112px;
  height: 52px;
  padding: 0 20px;
  border: 1px solid var(--dd-ink);
  border-radius: var(--dd-radius-pill);
  background: var(--dd-ink);
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  transition: background .16s, border-color .16s, transform .16s;
}

body[data-page="discover"] .dd-discover-search-submit:hover {
  transform: translateY(-1px);
  border-color: var(--dd-accent-deep);
  background: var(--dd-accent-deep);
}

body[data-page="discover"] .dd-discover-shortcuts {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

body[data-page="discover"] .dd-discover-shortcuts > span {
  margin-right: 2px;
  color: var(--dd-muted);
  font-size: .57rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}

body[data-page="discover"] .dd-discover-shortcuts button {
  min-height: 39px;
  padding: 0 13px;
  border: 1px solid var(--dd-line);
  border-radius: var(--dd-radius-pill);
  background: rgba(255,253,248,.58);
  color: var(--dd-ink-soft);
  font-size: .64rem;
  font-weight: 650;
  white-space: nowrap;
  transition: border-color .16s, background .16s, color .16s;
}

body[data-page="discover"] .dd-discover-shortcuts button:hover,
body[data-page="discover"] .dd-discover-shortcuts button:focus-visible {
  border-color: var(--dd-ink);
  background: var(--dd-ink);
  color: #fff;
}

/* Sticky filter bar */
body[data-page="discover"] .dd-discover-filterbar {
  position: sticky;
  z-index: var(--dd-z-toolbar);
  top: 94px;
  border-bottom: 1px solid var(--dd-line);
  background: rgba(245,242,235,.93);
  -webkit-backdrop-filter: blur(22px) saturate(125%);
  backdrop-filter: blur(22px) saturate(125%);
  transition: box-shadow .2s var(--dd-ease), background .2s var(--dd-ease);
}

body[data-page="discover"] .dd-discover-filterbar.is-stuck {
  background: rgba(245,242,235,.975);
  box-shadow: 0 14px 36px rgba(20,18,14,.07);
}

body[data-page="discover"] .dd-discover-filterbar-inner {
  min-height: var(--discover-filter-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

body[data-page="discover"] .dd-discover-primary-filters {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

body[data-page="discover"] .dd-discover-filter-control {
  width: auto;
  min-width: 170px;
  height: 52px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 12px;
  border: 1px solid var(--dd-line);
  border-radius: 14px;
  background: rgba(255,253,248,.78);
  box-shadow: none;
  transition: border-color .16s, background .16s, box-shadow .16s;
}

body[data-page="discover"] .dd-discover-filter-control:hover,
body[data-page="discover"] .dd-discover-filter-control:focus-within,
body[data-page="discover"] .dd-discover-filter-control.has-value {
  border-color: color-mix(in srgb, var(--dd-accent-deep) 32%, var(--dd-line));
  background: var(--dd-surface);
}

body[data-page="discover"] .dd-discover-filter-control .filter-control-icon {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: var(--dd-surface-2);
  color: var(--dd-accent-deep);
}

body[data-page="discover"] .dd-discover-filter-control .filter-control-icon svg {
  width: 15px;
  height: 15px;
}

body[data-page="discover"] .dd-discover-filter-control .filter-control-copy {
  min-width: 0;
  display: grid;
  flex: 1;
  gap: 0;
}

body[data-page="discover"] .dd-discover-filter-control small {
  color: var(--dd-muted);
  font-size: .49rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

body[data-page="discover"] .dd-discover-filter-control select,
body[data-page="discover"] .dd-discover-filter-control input {
  width: 100%;
  min-width: 0;
  height: 25px;
  padding: 0 18px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-size: .67rem;
  font-weight: 650;
}

body[data-page="discover"] .dd-discover-filter-control input[type="date"] {
  padding-right: 0;
}

body[data-page="discover"] .dd-discover-filter-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
}

body[data-page="discover"] .dd-discover-more-filters {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  border: 1px solid var(--dd-line-strong);
  border-radius: 12px;
  background: var(--dd-surface);
  color: var(--dd-ink);
  font-size: .64rem;
  font-weight: 700;
}

body[data-page="discover"] .dd-discover-more-filters svg {
  width: 15px;
  height: 15px;
}

body[data-page="discover"] .dd-discover-more-filters[aria-expanded="true"] {
  border-color: var(--dd-ink);
  background: var(--dd-ink);
  color: #fff;
}

body[data-page="discover"] .dd-discover-more-filters .filter-count {
  min-width: 19px;
  height: 19px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--dd-accent-deep);
  color: #fff;
  font-size: .52rem;
}

body[data-page="discover"] .dd-discover-more-filters[aria-expanded="true"] .filter-count {
  background: #fff;
  color: var(--dd-ink);
}

body[data-page="discover"] .dd-discover-clear {
  min-height: 44px;
  padding: 0 8px;
  border: 0;
  background: transparent;
  color: var(--dd-muted);
  font-size: .63rem;
  font-weight: 650;
}

body[data-page="discover"] .dd-discover-clear:hover {
  color: var(--dd-ink);
}

/* More filters */
body[data-page="discover"] .dd-discover-filter-backdrop {
  position: fixed;
  z-index: var(--dd-z-modal-backdrop);
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: rgba(14,13,11,.46);
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
}

body[data-page="discover"] .dd-discover-filter-panel {
  position: fixed;
  z-index: var(--dd-z-modal);
  top: 0;
  right: 0;
  left: auto;
  width: min(470px, 100vw);
  height: 100dvh;
  max-height: none;
  display: grid;
  grid-template-rows: auto 1fr auto;
  overflow: auto;
  padding: 30px;
  border: 0;
  border-left: 1px solid rgba(255,255,255,.08);
  border-radius: 0;
  background: var(--dd-dark);
  color: #fff;
  box-shadow: -24px 0 80px rgba(8,8,7,.22);
  transform: none;
  overscroll-behavior: contain;
}

body[data-page="discover"] .dd-discover-filter-panel:focus-visible {
  outline: none;
}

body[data-page="discover"] .dd-discover-filter-panel-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  padding-bottom: 26px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}

body[data-page="discover"] .dd-discover-filter-panel-head .eyebrow {
  color: rgba(255,255,255,.52);
}

body[data-page="discover"] .dd-discover-filter-panel-head h2 {
  margin: 8px 0 10px;
  color: #fff;
  font: 400 clamp(2.8rem, 4vw, 4rem)/.9 var(--dd-font-display);
  letter-spacing: -.045em;
}

body[data-page="discover"] .dd-discover-filter-panel-head p:last-child {
  max-width: 330px;
  color: rgba(255,255,255,.54);
  font-size: .7rem;
  line-height: 1.65;
}

body[data-page="discover"] .dd-discover-filter-close {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  background: rgba(255,255,255,.04);
  color: #fff;
}

body[data-page="discover"] .dd-discover-filter-close svg {
  width: 17px;
  height: 17px;
}

body[data-page="discover"] .dd-discover-filter-fields {
  align-content: start;
  display: grid;
  gap: 0;
  padding: 18px 0;
}

body[data-page="discover"] .dd-discover-advanced-filter {
  display: grid;
  gap: 8px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(255,255,255,.10);
  color: rgba(255,255,255,.7);
  font-size: .62rem;
  font-weight: 650;
}

body[data-page="discover"] .dd-discover-advanced-filter > span {
  color: rgba(255,255,255,.48);
  font-size: .55rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

body[data-page="discover"] .dd-discover-advanced-filter select {
  height: 50px;
  border-color: rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  color: #fff;
}

body[data-page="discover"] .dd-discover-advanced-filter select option {
  color: var(--dd-ink);
  background: #fff;
}

body[data-page="discover"] .dd-discover-booking-filter {
  min-height: 84px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 0;
  border-top: 0;
  border-bottom: 1px solid rgba(255,255,255,.10);
}

body[data-page="discover"] .dd-discover-booking-filter span {
  display: grid;
  gap: 4px;
}

body[data-page="discover"] .dd-discover-booking-filter strong {
  color: #fff;
  font-size: .72rem;
}

body[data-page="discover"] .dd-discover-booking-filter small {
  max-width: 280px;
  color: rgba(255,255,255,.45);
  font-size: .62rem;
  font-weight: 400;
  line-height: 1.5;
}

body[data-page="discover"] .dd-discover-booking-filter input {
  width: 44px;
  height: 24px;
  flex: 0 0 44px;
  appearance: none;
  position: relative;
  border: 0;
  border-radius: var(--dd-radius-pill);
  background: rgba(255,255,255,.20);
  cursor: pointer;
  transition: background .16s;
}

body[data-page="discover"] .dd-discover-booking-filter input::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  transition: transform .18s var(--dd-ease);
}

body[data-page="discover"] .dd-discover-booking-filter input:checked {
  background: var(--dd-accent);
}

body[data-page="discover"] .dd-discover-booking-filter input:checked::after {
  transform: translateX(20px);
}

body[data-page="discover"] .dd-discover-filter-panel-footer {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,.12);
}

body[data-page="discover"] .dd-discover-filter-panel-footer .filter-reset,
body[data-page="discover"] .dd-discover-filter-panel-footer .filter-apply {
  min-height: 48px;
  border-radius: 12px;
  font-size: .68rem;
  font-weight: 700;
}

body[data-page="discover"] .dd-discover-filter-panel-footer .filter-reset {
  padding-inline: 16px;
  border-color: rgba(255,255,255,.18);
  color: #fff;
}

body[data-page="discover"] .dd-discover-filter-panel-footer .filter-apply {
  border-color: #fff;
  background: #fff;
  color: var(--dd-ink);
}

/* Results and map */
body[data-page="discover"] .dd-discover-workspace {
  width: min(1680px, 100%);
  min-height: 860px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(600px, 54%) minmax(440px, 46%);
  align-items: stretch;
}

body[data-page="discover"] .dd-discover-results-pane {
  min-width: 0;
  padding: 46px clamp(28px, 3.4vw, 56px) 110px max(var(--dd-pad), calc((100vw - 1680px) / 2 + var(--dd-pad)));
  border-right: 1px solid var(--dd-line);
}

body[data-page="discover"] .dd-discover-results-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin: 0;
  padding: 0 0 22px;
  border-bottom: 1px solid var(--dd-line-strong);
}

body[data-page="discover"] .dd-discover-results-header .results-context {
  color: var(--dd-muted);
  font-size: .57rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

body[data-page="discover"] .dd-discover-results-header h2 {
  margin: 7px 0 0;
  color: var(--dd-ink);
  font: 400 clamp(2.5rem, 3.4vw, 3.7rem)/.93 var(--dd-font-display);
  letter-spacing: -.045em;
}

body[data-page="discover"] .dd-discover-mobile-map-toggle {
  display: none;
  min-height: 44px;
  align-items: center;
  gap: 7px;
  padding: 0 14px;
  border: 1px solid var(--dd-line-strong);
  border-radius: 12px;
  background: var(--dd-surface);
  color: var(--dd-ink);
  font-size: .65rem;
  font-weight: 700;
}

body[data-page="discover"] .dd-discover-mobile-map-toggle svg {
  width: 15px;
  height: 15px;
}

body[data-page="discover"] .dd-discover-active-filters {
  min-height: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 16px 0 2px;
}

body[data-page="discover"] .dd-discover-active-filters[hidden],
body[data-page="discover"] .dd-discover-active-filters:empty {
  display: none;
}

body[data-page="discover"] .dd-discover-active-filters button {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 10px;
  border: 1px solid var(--dd-line);
  border-radius: var(--dd-radius-pill);
  background: var(--dd-surface);
  color: var(--dd-muted);
  font-size: .57rem;
}

body[data-page="discover"] .dd-discover-active-filters button strong {
  color: var(--dd-ink);
  font-weight: 650;
}

body[data-page="discover"] .dd-discover-active-filters button b {
  color: var(--dd-muted-2);
  font-size: .8rem;
  font-weight: 400;
}

body[data-page="discover"] .dd-discover-results-list {
  display: grid;
  gap: 0;
  margin-top: 10px;
}

/* Runtime-generated restaurant result cards */
body[data-page="discover"] .discover-card {
  position: relative;
  min-height: 244px;
  display: grid;
  grid-template-columns: minmax(220px, 39%) minmax(0, 61%);
  gap: 22px;
  overflow: visible;
  padding: 22px 0;
  border: 0;
  border-bottom: 1px solid var(--dd-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
  transition: none;
}

body[data-page="discover"] .discover-card:first-child {
  border-top: 0;
}

body[data-page="discover"] .discover-card:hover,
body[data-page="discover"] .discover-card.highlighted {
  border-color: color-mix(in srgb, var(--dd-accent) 35%, var(--dd-line));
  box-shadow: none;
  transform: none;
}

body[data-page="discover"] .discover-card-media {
  position: relative;
  min-width: 0;
  display: block;
}

body[data-page="discover"] .discover-card-media > .discover-card-image {
  display: block;
  width: 100%;
  height: 100%;
}

body[data-page="discover"] .discover-card-image {
  position: relative;
  min-height: 200px;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 18px;
  background: var(--dd-surface-3);
}

body[data-page="discover"] .discover-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s var(--dd-ease), filter .45s var(--dd-ease);
}

body[data-page="discover"] .discover-card:hover .discover-card-image img {
  transform: scale(1.025);
}

body[data-page="discover"] .discover-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  padding: 0 9px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: var(--dd-radius-pill);
  background: rgba(20,20,18,.56);
  color: #fff;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  font-size: .52rem;
  font-weight: 700;
}

body[data-page="discover"] .discover-save {
  position: absolute;
  z-index: 3;
  top: 12px;
  right: 12px;
  left: auto;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.30);
  border-radius: 50%;
  background: rgba(20,20,18,.50);
  color: #fff;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

body[data-page="discover"] .discover-save span {
  font-size: 1rem;
  line-height: 1;
}

body[data-page="discover"] .discover-save.saved,
body[data-page="discover"] .discover-save[aria-pressed="true"] {
  background: var(--dd-accent-deep);
}

body[data-page="discover"] .discover-card-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 6px 0 4px;
}

body[data-page="discover"] .discover-card-eyebrow {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin: 0;
  color: var(--dd-muted);
  font-size: .56rem;
  font-weight: 650;
  letter-spacing: .06em;
  text-transform: uppercase;
}

body[data-page="discover"] .discover-card-eyebrow span {
  color: var(--dd-accent-deep);
}

body[data-page="discover"] .discover-rating {
  margin-top: 8px;
  color: var(--dd-muted);
  font-size: .57rem;
}

body[data-page="discover"] .discover-card h3 {
  margin: 8px 0 7px;
  font: 400 clamp(2.15rem, 3vw, 3rem)/.92 var(--dd-font-display);
  letter-spacing: -.045em;
}

body[data-page="discover"] .discover-card h3 a:hover {
  color: var(--dd-accent-deep);
}

body[data-page="discover"] .discover-card-note {
  max-width: 500px;
  margin: 0;
  color: #5f5a52;
  font: 400 1rem/1.52 var(--dd-font-display);
}

body[data-page="discover"] .discover-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
}

body[data-page="discover"] .discover-card-tags span {
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  padding: 0 8px;
  border: 1px solid var(--dd-line);
  border-radius: var(--dd-radius-pill);
  color: var(--dd-muted);
  background: rgba(255,253,248,.48);
  font-size: .53rem;
}

body[data-page="discover"] .card-bottom {
  margin-top: auto;
  padding-top: 16px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}

body[data-page="discover"] .live-times {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: none;
}

body[data-page="discover"] .live-times::-webkit-scrollbar {
  display: none;
}

body[data-page="discover"] .live-time {
  min-height: 35px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  border: 1px solid var(--dd-accent-light);
  border-radius: var(--dd-radius-pill);
  background: var(--dd-surface);
  color: var(--dd-ink);
  font-size: .59rem;
  font-weight: 700;
}

body[data-page="discover"] .live-time:hover,
body[data-page="discover"] .live-time:focus-visible {
  border-color: var(--dd-ink);
  background: var(--dd-ink);
  color: #fff;
}

body[data-page="discover"] .availability-pending,
body[data-page="discover"] .live-times > span {
  color: var(--dd-muted);
  font-size: .59rem;
}

body[data-page="discover"] .view-restaurant {
  min-width: 0;
  height: auto;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--dd-ink);
  font-size: .61rem;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}

body[data-page="discover"] .view-restaurant::after {
  content: none !important;
}

body[data-page="discover"] .view-restaurant svg {
  display: none;
}

body[data-page="discover"] .dd-discover-load-more {
  margin-top: 24px;
}

body[data-page="discover"] .dd-discover-results-footnote {
  margin: 30px 0 0;
  padding-top: 15px;
  border-top: 1px solid var(--dd-line);
  color: var(--dd-muted);
  font-size: .58rem;
  line-height: 1.6;
}

/* Loading and failure states */
body[data-page="discover"] .dd-discover-results-list[aria-busy="true"] {
  min-height: 360px;
}

body[data-page="discover"] .dd-discover-results-list[aria-busy="true"]:empty {
  display: grid;
  grid-template-columns: 1fr;
}

body[data-page="discover"] .dd-discover-results-list[aria-busy="true"]:empty::before,
body[data-page="discover"] .dd-discover-results-list[aria-busy="true"]:empty::after {
  content: "";
  display: block;
  min-height: 230px;
  border-bottom: 1px solid var(--dd-line);
  background:
    linear-gradient(90deg, rgba(231,225,215,.45), rgba(255,253,248,.85), rgba(231,225,215,.45));
  background-size: 220% 100%;
  animation: dd-discover-shimmer 1.4s linear infinite;
}

@keyframes dd-discover-shimmer {
  to { background-position: -220% 0; }
}

body[data-page="discover"] .dd-discover-results-list .empty-state {
  min-height: 380px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 56px 0;
  border: 0;
  border-bottom: 1px solid var(--dd-line);
  border-radius: 0;
  background: transparent;
  text-align: left;
}

body[data-page="discover"] .dd-discover-results-list .empty-state .eyebrow {
  margin-bottom: 12px;
}

body[data-page="discover"] .dd-discover-results-list .empty-state h2 {
  max-width: 620px;
  margin: 0;
  color: var(--dd-ink);
  font: 400 clamp(3rem, 5.3vw, 5rem)/.9 var(--dd-font-display);
  letter-spacing: -.05em;
}

body[data-page="discover"] .dd-discover-results-list .empty-state p {
  max-width: 520px;
  margin: 16px 0 0;
  color: var(--dd-muted);
  line-height: 1.7;
}

body[data-page="discover"] .dd-discover-results-list .empty-state button {
  margin-top: 20px;
}

/* Map */
body[data-page="discover"] .dd-discover-map-pane {
  min-width: 0;
  padding: 20px 20px 20px 0;
  background: var(--dd-bg);
}

body[data-page="discover"] .dd-discover-map-shell {
  position: sticky;
  top: calc(94px + var(--discover-filter-h) + 14px);
  height: calc(100dvh - 94px - var(--discover-filter-h) - 28px);
  min-height: 540px;
  overflow: hidden;
  border: 1px solid var(--dd-line);
  border-radius: 24px;
  background: #dedbd2;
  box-shadow: var(--dd-shadow-xs);
}

body[data-page="discover"] .dd-discover-map {
  width: 100%;
  height: 100%;
  min-height: 100%;
  background:
    radial-gradient(circle at 34% 28%, rgba(164,123,82,.08), transparent 24%),
    #e6e1d8;
}

body[data-page="discover"] .dd-discover-map-toolbar {
  position: absolute;
  z-index: 600;
  top: 14px;
  left: 14px;
  right: 14px;
  display: flex;
  justify-content: space-between;
  gap: 8px;
  pointer-events: none;
}

body[data-page="discover"] .dd-discover-map-toolbar button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 13px;
  border: 1px solid rgba(23,23,20,.12);
  border-radius: var(--dd-radius-pill);
  background: rgba(255,253,249,.94);
  color: var(--dd-ink);
  box-shadow: 0 10px 26px rgba(20,18,14,.09);
  font-size: .61rem;
  font-weight: 700;
  pointer-events: auto;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

body[data-page="discover"] .dd-discover-map-toolbar button svg {
  width: 15px;
  height: 15px;
}

body[data-page="discover"] .dd-discover-map-toolbar .map-list-button {
  display: none !important;
}

body[data-page="discover"] .dd-discover-map-status {
  position: absolute;
  z-index: 500;
  left: 14px;
  right: auto;
  bottom: 14px;
  max-width: 72%;
  margin: 0;
  padding: 8px 10px;
  border: 1px solid rgba(23,23,20,.08);
  border-radius: 10px;
  background: rgba(255,253,249,.91);
  color: var(--dd-muted);
  font-size: .53rem;
  line-height: 1.4;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

body[data-page="discover"] .leaflet-container {
  background: #e4dfd6;
  font-family: var(--dd-font-ui);
}

body[data-page="discover"] .leaflet-tile-pane {
  filter: saturate(.60) contrast(.92) brightness(1.035);
}

body[data-page="discover"] .leaflet-control-zoom {
  margin: 72px 12px 0 0 !important;
  overflow: hidden;
  border: 1px solid rgba(23,23,20,.10) !important;
  border-radius: 12px !important;
  box-shadow: 0 10px 28px rgba(20,18,14,.10) !important;
}

body[data-page="discover"] .leaflet-control-zoom a {
  width: 38px !important;
  height: 38px !important;
  line-height: 38px !important;
  border: 0 !important;
  background: rgba(255,253,249,.96) !important;
  color: var(--dd-ink) !important;
}

body[data-page="discover"] .leaflet-popup-content-wrapper,
body[data-page="discover"] .leaflet-popup-tip {
  background: var(--dd-surface);
  color: var(--dd-ink);
}

body[data-page="discover"] .leaflet-popup-content-wrapper {
  border-radius: 16px;
  box-shadow: 0 18px 50px rgba(20,18,14,.17);
}

body[data-page="discover"] .leaflet-popup-content {
  margin: 14px 16px;
}

body[data-page="discover"] .map-popup {
  min-width: 190px;
  display: grid;
  gap: 4px;
  font-family: var(--dd-font-ui);
}

body[data-page="discover"] .map-popup small,
body[data-page="discover"] .map-popup span,
body[data-page="discover"] .map-popup p {
  color: var(--dd-muted);
  font-size: .61rem;
}

body[data-page="discover"] .map-popup strong {
  color: var(--dd-ink);
  font: 400 1.45rem/1 var(--dd-font-display);
}

body[data-page="discover"] .map-popup p {
  margin: 3px 0;
  line-height: 1.45;
}

body[data-page="discover"] .map-popup a {
  width: max-content;
  margin-top: 5px;
  border-bottom: 1px solid currentColor;
  color: var(--dd-ink);
  font-size: .61rem;
  font-weight: 700;
}

/* Tablet */
@media (max-width: 1180px) {
  body[data-page="discover"] .dd-discover-heading {
    grid-template-columns: minmax(0, 1fr) minmax(270px, .45fr);
    gap: 44px;
  }

  body[data-page="discover"] .dd-discover-heading h1 {
    font-size: clamp(4.4rem, 7.4vw, 6.6rem);
  }

  body[data-page="discover"] .dd-discover-search-zone {
    grid-template-columns: minmax(0, 1fr) minmax(240px, .52fr);
  }

  body[data-page="discover"] .dd-discover-filter-control {
    min-width: 154px;
  }

  body[data-page="discover"] .dd-discover-workspace {
    grid-template-columns: minmax(560px, 58%) minmax(390px, 42%);
  }

  body[data-page="discover"] .discover-card {
    grid-template-columns: minmax(190px, 36%) minmax(0, 64%);
  }

}

/* Switch to list/map mode */
@media (max-width: 920px) {
  body[data-page="discover"] {
    --discover-filter-h: 72px;
  }

  body[data-page="discover"] .dd-discover-hero {
    padding-top: 126px;
  }

  body[data-page="discover"] .dd-discover-heading {
    display: block;
  }

  body[data-page="discover"] .dd-discover-heading .eyebrow {
    margin-bottom: 10px;
  }

  body[data-page="discover"] .dd-discover-heading h1 {
    max-width: 760px;
    font-size: clamp(4rem, 10vw, 6rem);
  }

  body[data-page="discover"] .dd-discover-heading h1 em {
    margin-left: .45em;
  }

  body[data-page="discover"] .dd-discover-intro {
    max-width: 580px;
    margin-top: 20px;
  }

  body[data-page="discover"] .dd-discover-search-zone {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-top: 30px;
  }

  body[data-page="discover"] .dd-discover-shortcuts {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: none;
  }

  body[data-page="discover"] .dd-discover-shortcuts::-webkit-scrollbar {
    display: none;
  }

  body[data-page="discover"] .dd-discover-shortcuts > span,
  body[data-page="discover"] .dd-discover-shortcuts button {
    flex: 0 0 auto;
  }

  body[data-page="discover"] .dd-discover-filterbar {
    top: 82px;
  }

  body[data-page="discover"] .dd-discover-filterbar-inner {
    overflow: hidden;
  }

  body[data-page="discover"] .dd-discover-primary-filters {
    flex: 1;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }

  body[data-page="discover"] .dd-discover-primary-filters::-webkit-scrollbar {
    display: none;
  }

  body[data-page="discover"] .dd-discover-filter-control {
    min-width: 158px;
    flex: 0 0 158px;
  }

  body[data-page="discover"] .dd-discover-clear {
    display: none;
  }

  body[data-page="discover"] .dd-discover-workspace {
    display: block;
    min-height: 0;
  }

  body[data-page="discover"] .dd-discover-results-pane {
    padding: 34px var(--dd-pad) 118px;
    border-right: 0;
  }

  body[data-page="discover"] .dd-discover-mobile-map-toggle {
    display: inline-flex;
  }

  body[data-page="discover"] .dd-discover-map-pane {
    display: none;
  }

  body[data-page="discover"] .discover-workspace.mobile-map .dd-discover-results-pane {
    visibility: hidden;
    pointer-events: none;
  }

  body[data-page="discover"] .discover-workspace.mobile-map .dd-discover-map-pane {
    position: fixed;
    z-index: var(--dd-z-map);
    inset: 0;
    display: block;
    padding: 88px 0 82px;
    background: var(--dd-bg);
  }

  body[data-page="discover"] .discover-workspace.mobile-map .dd-discover-map-shell {
    position: relative;
    top: auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  body[data-page="discover"] .discover-workspace.mobile-map .dd-discover-map {
    min-height: 100%;
  }

  body[data-page="discover"] .discover-workspace.mobile-map .dd-discover-map-toolbar {
    top: 12px;
  }

  body[data-page="discover"] .discover-workspace.mobile-map .dd-discover-map-toolbar .map-list-button {
    display: inline-flex !important;
  }

  body[data-page="discover"] .discover-workspace.mobile-map .leaflet-control-zoom {
    margin-top: 66px !important;
  }

  body[data-page="discover"] .discover-workspace.mobile-map .dd-discover-map-status {
    bottom: 14px;
  }
}

/* Mobile */
@media (max-width: 700px) {
  body[data-page="discover"] {
    --discover-filter-h: 68px;
  }

  body[data-page="discover"] .dd-discover-hero {
    padding: 112px 0 30px;
  }

  body[data-page="discover"] .dd-discover-hero::after {
    display: none;
  }

  body[data-page="discover"] .dd-discover-heading h1 {
    font-size: clamp(3.65rem, 15.5vw, 5.2rem);
    line-height: .84;
  }

  body[data-page="discover"] .dd-discover-heading h1 em {
    margin-left: 0;
  }

  body[data-page="discover"] .dd-discover-intro {
    margin-top: 18px;
    font-size: .86rem;
    line-height: 1.68;
  }

  body[data-page="discover"] .dd-discover-search-zone {
    margin-top: 24px;
  }

  body[data-page="discover"] .dd-discover-search {
    min-height: 58px;
    gap: 8px;
    padding: 5px 5px 5px 14px;
    border-radius: 18px;
  }

  body[data-page="discover"] .dd-discover-search input {
    height: 46px;
    font-size: .82rem;
  }

  body[data-page="discover"] .dd-discover-search-submit {
    min-width: 86px;
    height: 46px;
    padding: 0 14px;
  }

  body[data-page="discover"] .dd-discover-shortcuts {
    margin-inline: calc(var(--dd-pad) * -1);
    padding-inline: var(--dd-pad);
  }

  body[data-page="discover"] .dd-discover-filterbar {
    top: 78px;
  }

  body[data-page="discover"] .dd-discover-filterbar-inner {
    padding-top: 7px;
    padding-bottom: 7px;
  }

  body[data-page="discover"] .dd-discover-filter-control {
    min-width: 146px;
    flex-basis: 146px;
    height: 50px;
    padding-inline: 10px;
  }

  body[data-page="discover"] .dd-discover-filter-control .filter-control-icon {
    width: 26px;
    height: 26px;
    flex-basis: 26px;
  }

  body[data-page="discover"] .dd-discover-filter-control small {
    font-size: .46rem;
  }

  body[data-page="discover"] .dd-discover-filter-control select,
  body[data-page="discover"] .dd-discover-filter-control input {
    font-size: .62rem;
  }

  body[data-page="discover"] .dd-discover-more-filters {
    width: 44px;
    min-width: 44px;
    height: 44px;
    justify-content: center;
    padding: 0;
    border-radius: 12px;
  }

  body[data-page="discover"] .dd-discover-more-filters > span:not(.filter-count) {
    display: none;
  }

  body[data-page="discover"] .dd-discover-more-filters .filter-count {
    position: absolute;
    transform: translate(13px, -14px);
    min-width: 18px;
    height: 18px;
    border: 2px solid var(--dd-bg);
  }

  body[data-page="discover"] .dd-discover-filter-panel {
    top: auto;
    right: 8px;
    bottom: 8px;
    left: 8px;
    width: auto;
    height: min(78dvh, 700px);
    padding: 22px 18px max(18px, env(safe-area-inset-bottom));
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 28px;
  }

  body[data-page="discover"] .dd-discover-filter-panel-head h2 {
    font-size: 3rem;
  }

  body[data-page="discover"] .dd-discover-results-pane {
    padding-top: 28px;
  }

  body[data-page="discover"] .dd-discover-results-header {
    padding-bottom: 18px;
  }

  body[data-page="discover"] .dd-discover-results-header h2 {
    font-size: 2.7rem;
  }

  body[data-page="discover"] .discover-card {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 20px 0 24px;
  }

  body[data-page="discover"] .discover-card-image {
    min-height: 0;
    aspect-ratio: 16 / 10;
    border-radius: 16px;
  }

  body[data-page="discover"] .discover-save {
    top: 12px;
    right: 12px;
    left: auto;
  }

  body[data-page="discover"] .discover-card-copy {
    padding-top: 15px;
  }

  body[data-page="discover"] .discover-card h3 {
    font-size: clamp(2.4rem, 11vw, 3.25rem);
  }

  body[data-page="discover"] .discover-card-note {
    font-size: .98rem;
  }

  body[data-page="discover"] .card-bottom {
    align-items: center;
    margin-top: 2px;
  }

  body[data-page="discover"] .dd-discover-results-list .empty-state {
    min-height: 310px;
    padding: 40px 0;
  }

  body[data-page="discover"] .dd-discover-results-list .empty-state h2 {
    font-size: clamp(3rem, 13vw, 4.3rem);
  }

  body[data-page="discover"] .discover-workspace.mobile-map .dd-discover-map-pane {
    padding-top: 78px;
    padding-bottom: calc(78px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 420px) {
  body[data-page="discover"] .dd-discover-search {
    grid-template-columns: auto minmax(0, 1fr);
    padding: 8px 12px;
  }

  body[data-page="discover"] .dd-discover-search-submit {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 44px;
    border-radius: 12px;
  }

  body[data-page="discover"] .dd-discover-filter-control {
    min-width: 140px;
    flex-basis: 140px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body[data-page="discover"] .discover-card-image img,
  body[data-page="discover"] .dd-discover-search-submit {
    transition: none;
  }

  body[data-page="discover"] .dd-discover-results-list[aria-busy="true"]:empty::before,
  body[data-page="discover"] .dd-discover-results-list[aria-busy="true"]:empty::after {
    animation: none;
  }
}

/* Discover V4 filter sheet containment correction. */
body[data-page="discover"] .dd-discover-filter-panel {
  overflow: hidden;
}
body[data-page="discover"] .dd-discover-filter-fields {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

/* Discover V4 mobile control density. Keep all primary booking filters visible. */
@media (max-width: 480px) {
  body[data-page="discover"] .dd-discover-filterbar-inner {
    gap: 6px;
    padding-inline: 12px;
  }

  body[data-page="discover"] .dd-discover-primary-filters {
    flex: 1 1 auto;
    gap: 6px;
    overflow: visible;
  }

  body[data-page="discover"] .dd-discover-filter-control {
    min-width: 0;
    height: 48px;
    padding-inline: 8px;
  }

  body[data-page="discover"] .dd-discover-filter-control:nth-child(1) { flex: 0 1 90px; }
  body[data-page="discover"] .dd-discover-filter-control:nth-child(2) { flex: 0 1 108px; }
  body[data-page="discover"] .dd-discover-filter-control:nth-child(3) { flex: 0 1 78px; }

  body[data-page="discover"] .dd-discover-filter-control .filter-control-icon {
    display: none;
  }

  body[data-page="discover"] .dd-discover-filter-control small {
    font-size: .43rem;
  }

  body[data-page="discover"] .dd-discover-filter-control select,
  body[data-page="discover"] .dd-discover-filter-control input {
    padding-right: 12px;
    font-size: .58rem;
  }

  body[data-page="discover"] .dd-discover-filter-actions {
    gap: 0;
  }

  body[data-page="discover"] .dd-discover-more-filters {
    flex: 0 0 44px;
  }

  body[data-page="discover"] .dd-discover-mobile-map-toggle {
    position: fixed;
    z-index: var(--dd-z-mobile-cta);
    right: 18px;
    bottom: calc(86px + env(safe-area-inset-bottom));
    min-height: 46px;
    display: inline-flex;
    border-color: rgba(255,255,255,.12);
    border-radius: var(--dd-radius-pill);
    background: rgba(23,24,21,.92);
    color: #fff;
    box-shadow: 0 12px 34px rgba(20,18,14,.20);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
  }
}

/* ========================================================================== */
/* Unified DotDine date / party picker                                         */
/* ========================================================================== */
.dd-picker-field {
  min-width: 0;
  display: grid;
  gap: 7px;
}

.dd-picker-field > span:first-child {
  color: inherit;
  font-size: .69rem;
  font-weight: 650;
}

.dd-picker-field > button[data-dd-picker-open] {
  width: 100%;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 14px;
  border: 1px solid var(--dd-line-strong);
  border-radius: 13px;
  background: #fff;
  color: var(--dd-ink);
  text-align: left;
  font-size: .78rem;
  font-weight: 600;
  transition: border-color .16s, box-shadow .16s, background .16s;
}

.dd-picker-field > button[data-dd-picker-open]::after {
  content: "";
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  opacity: .6;
}

.dd-picker-field > button[data-dd-picker-open]:hover,
.dd-picker-field > button[data-dd-picker-open]:focus-visible {
  border-color: color-mix(in srgb,var(--dd-accent) 50%,var(--dd-line-strong));
  background: var(--dd-surface);
  box-shadow: 0 0 0 4px color-mix(in srgb,var(--dd-accent) 10%,transparent);
}

.dd-picker-dialog {
  width: min(560px, calc(100vw - 32px));
  max-height: min(82dvh, 760px);
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--dd-line);
  border-radius: 28px;
  background: var(--dd-surface);
  color: var(--dd-ink);
  box-shadow: 0 36px 120px rgba(8,8,7,.28);
}

.dd-picker-dialog::backdrop {
  background: rgba(15,14,12,.58);
  -webkit-backdrop-filter: blur(9px);
  backdrop-filter: blur(9px);
}

.dd-picker-dialog-inner {
  max-height: min(82dvh, 760px);
  overflow: auto;
  overscroll-behavior: contain;
  padding: 28px;
}

.dd-picker-dialog-head {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 20px;
  align-items: start;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--dd-line);
}

.dd-picker-dialog-kicker {
  margin: 0 0 8px;
  color: var(--dd-muted);
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.dd-picker-dialog h2 {
  margin: 0;
  font: 400 clamp(3rem,6vw,4.6rem)/.88 var(--dd-font-display);
  letter-spacing: -.05em;
}

.dd-picker-dialog-close {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--dd-line);
  border-radius: 50%;
  background: transparent;
}

.dd-picker-dialog-close svg {
  width: 17px;
  height: 17px;
}

.dd-picker-dialog-body {
  padding: 18px 0 4px;
}

.dd-picker-date-presets,
.dd-picker-choice-list {
  display: grid;
}

.dd-picker-date-option,
.dd-picker-choice-option {
  width: 100%;
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 0 2px;
  border: 0;
  border-bottom: 1px solid var(--dd-line);
  background: transparent;
  color: var(--dd-ink);
  text-align: left;
}

.dd-picker-date-option strong,
.dd-picker-choice-option strong {
  font-size: .82rem;
  font-weight: 650;
}

.dd-picker-date-option span,
.dd-picker-choice-option span {
  color: var(--dd-muted);
  font-size: .67rem;
}

.dd-picker-date-option.is-selected,
.dd-picker-choice-option.is-selected {
  color: var(--dd-accent-deep);
}

.dd-picker-section {
  padding-top: 20px;
}

.dd-picker-section-label {
  display: block;
  margin-bottom: 9px;
  color: var(--dd-muted);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.dd-picker-date-input {
  height: 56px;
  padding: 0 15px;
  border-radius: 13px;
  background: #fff;
  font-size: .82rem;
}

.dd-picker-party-line {
  min-height: 92px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--dd-line);
}

.dd-picker-party-line > span {
  font: 400 1.7rem/1 var(--dd-font-display);
}

.dd-picker-stepper {
  display: grid;
  grid-template-columns: 48px 54px 48px;
  align-items: center;
}

.dd-picker-stepper button {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid var(--dd-line);
  border-radius: 50%;
  background: #fff;
  font-size: 1.15rem;
}

.dd-picker-stepper output {
  text-align: center;
  font-size: 1.05rem;
  font-weight: 700;
}

.dd-picker-quick {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dd-picker-quick button {
  min-width: 44px;
  min-height: 42px;
  padding: 0 12px;
  border: 1px solid var(--dd-line);
  border-radius: 999px;
  background: #fff;
  font-size: .68rem;
  font-weight: 650;
}

.dd-picker-quick button.is-selected {
  border-color: var(--dd-ink);
  background: var(--dd-ink);
  color: #fff;
}

.dd-picker-dialog-footer {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  padding-top: 24px;
}

.dd-picker-dialog-footer button {
  min-height: 48px;
  padding: 0 18px;
  border-radius: 12px;
  font-size: .7rem;
  font-weight: 700;
}

.dd-picker-dialog-cancel {
  border: 1px solid var(--dd-line);
  background: transparent;
}

.dd-picker-dialog-apply {
  border: 1px solid var(--dd-ink);
  background: var(--dd-ink);
  color: #fff;
}

body.dd-picker-open .mobile-dock-wrap {
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Landing already has the right interaction model; promote its date and party
   panels to the same centred modal treatment used elsewhere. */
body[data-page="landing"] #date-popover,
body[data-page="landing"] #party-popover {
  position: fixed !important;
  z-index: var(--dd-z-popover) !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  width: min(520px, calc(100vw - 32px)) !important;
  min-width: 0 !important;
  max-height: min(80dvh, 720px) !important;
  overflow: auto !important;
  padding: 26px !important;
  border-radius: 28px !important;
  transform: translate(-50%, calc(-50% + 8px)) !important;
  box-shadow: 0 36px 120px rgba(8,8,7,.28) !important;
}

body[data-page="landing"] #date-popover.open,
body[data-page="landing"] #party-popover.open {
  transform: translate(-50%, -50%) !important;
}

@media (max-width: 700px) {
  .dd-picker-dialog {
    width: calc(100vw - 20px);
    border-radius: 24px;
  }
  .dd-picker-dialog-inner {
    padding: 22px;
  }
  .dd-picker-dialog h2 {
    font-size: clamp(2.8rem,13vw,3.8rem);
  }
  .dd-picker-dialog-footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .dd-picker-dialog-footer button {
    width: 100%;
  }
  body[data-page="landing"] #date-popover,
  body[data-page="landing"] #party-popover {
    width: calc(100vw - 20px) !important;
    max-height: 82dvh !important;
    padding: 22px !important;
    border-radius: 24px !important;
  }
}

/* Context parity for controls upgraded from native date/party inputs. */
.detail-slot-controls .dd-picker-field {
  display: grid;
  gap: 6px;
  font-size: .61rem;
  font-weight: 650;
}

body[data-page="booking-widget"] form .dd-picker-field {
  display: grid;
  gap: 6px;
  margin-top: 12px;
  font-size: 14px;
  font-weight: 650;
}

body[data-page="booking-widget"] .pair .dd-picker-field {
  min-width: 0;
}

/* Progressive enhancement: native controls remain usable if JavaScript fails. */
.dd-picker-source-enhanced {
  display: none !important;
}

/* Keep touch targets comfortably operable without changing the established
   desktop proportions or visual language. */
@media (max-width: 820px) {
  .hero-location-line,
  .discovery-pill,
  .text-link,
  .time-slot.more,
  .dd-footer-newsletter input,
  .dd-footer-newsletter button,
  .dd-footer-wordmark,
  .dd-footer-group nav a,
  .dd-footer-group nav button,
  .toast button {
    min-height: 44px;
  }

  .toast button {
    min-width: 44px;
  }

  .dd-footer-wordmark,
  .dd-footer-group nav a,
  .dd-footer-group nav button {
    display: inline-flex;
    align-items: center;
  }
}
.booking-other-locations{padding:14px 0;border-top:1px solid rgba(17,17,15,.12)}.booking-other-locations>small{display:block;margin-bottom:8px;color:#74736e;font-size:.62rem;text-transform:uppercase;letter-spacing:.08em}.booking-other-locations>div{display:flex;flex-wrap:wrap;gap:7px}.booking-other-locations a{display:inline-flex;min-height:34px;align-items:center;padding:0 11px;border:1px solid rgba(17,17,15,.15);border-radius:999px;color:inherit;font-size:.68rem}.booking-other-locations a:hover{border-color:#722f2f;color:#722f2f}
.dd-picker-calendar{margin-top:18px;padding-top:16px;border-top:1px solid rgba(17,17,15,.12)}.dd-picker-calendar header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.dd-picker-calendar header strong{font-size:.82rem}.dd-picker-calendar header div{display:flex;gap:7px}.dd-picker-calendar header button{width:34px;height:34px;border:1px solid rgba(17,17,15,.14);border-radius:50%;background:#fff;color:#151512}.dd-picker-calendar-week,.dd-picker-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.dd-picker-calendar-week span{padding:6px 0;text-align:center;color:#74736e;font-size:.56rem;font-weight:700;text-transform:uppercase}.dd-picker-calendar-grid button{aspect-ratio:1;border:0;border-radius:50%;background:transparent;color:#151512;font-size:.7rem}.dd-picker-calendar-grid button:hover:not(:disabled){background:#e8e1d7}.dd-picker-calendar-grid button.is-selected{background:#722f2f;color:#fff}.dd-picker-calendar-grid button.is-today:not(.is-selected){box-shadow:inset 0 0 0 1px #722f2f}.dd-picker-calendar-grid button.is-outside{color:#aaa7a0}.dd-picker-calendar-grid button:disabled{opacity:.24}
.floating-nav.on-dark .nav-location{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.24);color:#fff;opacity:1;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}.floating-nav.on-dark .nav-location:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.38)}.floating-nav.on-light .nav-location{background:rgba(255,253,248,.82);border-color:rgba(17,17,15,.14);color:#151512;opacity:1}.floating-nav.on-light .nav-location:hover{border-color:rgba(114,47,47,.42);color:#722f2f}
.dd-picker-calendar header button{display:grid;place-items:center}.dd-picker-calendar header button svg{width:16px;height:16px}

/* One signed-in account surface for bookings, saved places and restaurant access. */
.account-dining{overflow:hidden;border:1px solid var(--dd-line);border-radius:26px;background:var(--dd-surface)}
.account-dining-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 30px 22px}
.account-dining-header h3{margin:0;font:400 clamp(2rem,4vw,3.25rem)/1.05 var(--dd-font-display)}
.account-credit-summary{min-width:150px;display:grid;grid-template-columns:1fr auto;gap:2px 16px;align-items:baseline;padding-left:22px;border-left:1px solid var(--dd-line)}
.account-credit-summary span{grid-column:1/-1;color:var(--dd-muted);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase}
.account-credit-summary strong{font:400 2rem/1 var(--dd-font-display)}
.account-credit-summary small{color:var(--dd-accent-deep);font-size:.62rem}
.account-dining .account-tab-wrap{position:static;padding:10px 28px;border-top:1px solid var(--dd-line)}
.account-dining .diner-view{padding:32px 30px 36px}
.account-dining .diner-section-heading h2{font-size:clamp(1.75rem,5vw,2.5rem);line-height:1.1}
.account-dining [data-account-communications] .dashboard-subsection{padding:0;margin:0}
.account-dining .account-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.saved-item-actions{display:flex;align-items:center;gap:10px}
.saved-item-actions .outline-button{min-height:38px;padding:0 14px}
.account-profile-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.account-profile-actions .solid-button,.account-profile-actions .outline-button{min-height:44px;padding:0 18px}
@media (max-width:720px){
  .account-dining{border-radius:20px}
  .account-dining-header{align-items:flex-start;padding:22px 18px 18px}
  .account-credit-summary{min-width:112px;padding-left:14px}
  .account-dining .account-tab-wrap{padding-inline:10px}
  .account-dining .diner-tabs button{font-size:.75rem;min-height:44px}
  .account-dining .diner-view{padding:24px 18px 28px}
  .account-dining .account-insight-grid{grid-template-columns:1fr}
  .saved-item-actions{align-items:flex-end;flex-direction:column}
  .account-profile-actions{width:100%;justify-content:space-between;flex-wrap:wrap}
}

/* Shared public reservation controls and recommendation cards. */
.booking-time-pills {display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 16px}
.booking-time-pills .time-pill,.compact-card .time-pill {min-height:44px;padding:10px 15px;border:1px solid var(--dd-line-strong);border-radius:var(--dd-pill);background:var(--dd-surface);color:var(--dd-ink);font:600 .8rem/1 var(--dd-font-ui);cursor:pointer}
.booking-time-pills .time-pill[aria-pressed="true"] {background:var(--dd-ink);color:var(--dd-white);border-color:var(--dd-ink)}
.booking-guest-details {margin:14px 0 0;padding:18px 0 0;border:0;border-top:1px solid var(--dd-line);display:grid;gap:14px;min-width:0}
.booking-guest-details[hidden] {display:none}
.booking-guest-details legend {font-weight:600;padding-top:14px}
.booking-guest-details .booking-trap {position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
[data-booking-security] {font:400 .8rem/1.5 var(--dd-font-ui);color:var(--dd-muted);overflow-wrap:anywhere}
.feature-restaurant-links button.text-link {min-height:44px;min-width:64px;padding:12px 18px;background:rgba(255,253,248,.16);border:1px solid rgba(255,253,248,.5);border-radius:var(--dd-pill);color:var(--dd-white);font:600 .85rem/1 var(--dd-font-ui);backdrop-filter:blur(8px);cursor:pointer}
.compact-card {overflow:hidden;box-shadow:var(--dd-shadow-xs)}
.compact-card-copy {min-width:0;gap:12px}
.compact-card-copy h3 a {color:inherit;text-decoration:none}
.compact-card-copy p {line-height:1.5;font-size:.75rem}
.compact-card .availability-row {display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.compact-card .restaurant-main-link {min-height:44px;display:inline-flex;align-items:center;font-size:.75rem}
.compact-card .restaurant-main-link svg {width:16px;height:16px;margin-left:4px}
.widget-brand-row .restaurant-mark:has(.brand) {width:auto;height:auto;background:none;color:var(--dd-ink)}
.widget-reference code {display:block;overflow-wrap:anywhere;user-select:all;margin-top:6px}
[data-widget-contact] {display:flex;gap:16px;flex-wrap:wrap}
[data-widget-contact] a {display:inline-flex;align-items:center;min-height:44px;color:var(--dd-accent-deep)}
.booking-receipt {display:grid;gap:16px;padding-top:20px}
.booking-receipt[hidden],[data-booking-form][hidden] {display:none!important}
.booking-receipt h3 {font:400 2rem/1.1 var(--dd-font-display);margin:0}
.booking-receipt p {margin:0;color:var(--dd-muted);line-height:1.5}
.booking-receipt code {display:block;overflow-wrap:anywhere;color:var(--dd-ink);font-size:.8rem;margin-top:8px;user-select:all}
.booking-receipt [data-booking-result-contact] {display:flex;gap:16px;flex-wrap:wrap}
.booking-receipt a {min-height:44px;display:inline-flex;align-items:center;color:var(--dd-accent-deep)}
