/* Phase 1A: scoped public shell. Legacy pages and studio canvases are untouched. */
body[data-wedding-navigation="vnext"] {
  --zw-nav-bg: #fbf8f3; --zw-nav-panel: #fff; --zw-nav-ink: #2b211d;
  --zw-nav-muted: #6f6158; --zw-nav-copper: #8a533b; --zw-nav-brown: #4b2717;
  --zw-nav-line: #e5d8cc; --zw-nav-soft: #f1e8df;
  padding-top: 0 !important;
}
[data-zi-theme="dark"] body[data-wedding-navigation="vnext"] {
  --zw-nav-bg: #211b18; --zw-nav-panel: #2b2420; --zw-nav-ink: #fbf8f3;
  --zw-nav-muted: #d0c3b9; --zw-nav-copper: #efb595; --zw-nav-brown: #4b2717;
  --zw-nav-line: #635044; --zw-nav-soft: #382c25;
}
body[data-wedding-navigation="vnext"] #main-content { display: flow-root; margin-top: 0 !important; }
.zw-nav-header, .zw-nav-bottom, .zw-nav-more, .zw-nav-dialog { box-sizing: border-box; font-family: 'DM Sans', sans-serif; color: var(--zw-nav-ink); }
.zw-nav-header *, .zw-nav-bottom *, .zw-nav-more * { box-sizing: border-box; }
.zw-nav-header { position: relative; z-index: 100; background: var(--zw-nav-bg); border-bottom: 1px solid var(--zw-nav-line); transform: none !important; }
.zw-nav-header-inner { max-width: 1320px; min-height: 88px; margin: auto; padding: 12px 24px; display: flex; align-items: center; gap: 20px; }
.zw-nav-brand { display: flex; align-items: center; gap: 8px; color: var(--zw-nav-ink); text-decoration: none; flex-shrink: 0; }
.zw-nav-brand img { object-fit: contain; }
.zw-nav-brand span { font-family: 'Cormorant Garamond', serif; font-size: 29px; line-height: 1; }
.zw-nav-brand small { display: block; font-family: 'DM Sans', sans-serif; font-size: 9px; letter-spacing: .25em; margin-top: 6px; }
.zw-nav-desktop, .zw-nav-actions { display: flex; align-items: center; gap: 4px; }
.zw-nav-desktop { margin: auto; }
.zw-nav-link, .zw-nav-disclosure summary { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 12px; color: var(--zw-nav-ink); font-size: 14px; line-height: 1.4; font-weight: 500; text-decoration: none; border-radius: 10px; }
.zw-nav-link:hover, .zw-nav-link[aria-current="page"], .zw-nav-disclosure summary:hover { color: var(--zw-nav-copper); background: var(--zw-nav-soft); }
.zw-nav-header .zi-icon, .zw-nav-bottom .zi-icon, .zw-nav-more .zi-icon { width: 21px; height: 21px; flex: 0 0 21px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.zw-nav-desktop > .zw-nav-link > .zi-icon { display: none; }
.zw-nav-disclosure { position: relative; }
.zw-nav-disclosure summary { list-style: none; cursor: pointer; white-space: nowrap; }
.zw-nav-disclosure summary::-webkit-details-marker { display: none; }
.zw-nav-flyout { position: absolute; top: calc(100% + 8px); left: 0; width: 240px; padding: 8px; background: var(--zw-nav-panel); border: 1px solid var(--zw-nav-line); border-radius: 16px; box-shadow: 0 12px 32px #00000014; }
.zw-nav-actions .zw-nav-flyout { left: auto; right: 0; }
.zw-nav-cta { padding: 13px 17px; background: var(--zw-nav-brown); color: #fff; border: 1px solid var(--zw-nav-brown); border-radius: 12px; text-decoration: none; font-size: 13px; white-space: nowrap; }
.zw-nav-cta:hover { color: #fff; text-decoration: underline; }
.zw-nav-icon-button { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; min-width: 44px; border: 1px solid var(--zw-nav-line); background: var(--zw-nav-panel); color: var(--zw-nav-ink); border-radius: 50%; cursor: pointer; }
.zw-nav-icon-button[hidden] { display: none; }
.zw-nav-header :focus-visible, .zw-nav-bottom :focus-visible, .zw-nav-more :focus-visible { outline: 3px solid var(--zw-nav-copper); outline-offset: 3px; }
.zw-nav-bottom { display: none; }
.zw-nav-more { padding: 24px; background: var(--zw-nav-bg); max-width: 900px; margin: 20px auto; border: 1px solid var(--zw-nav-line); border-radius: 24px; scroll-margin: 16px; }
.zw-nav-more-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 20px; }
.zw-nav-eyebrow { font-size: 10px; letter-spacing: .18em; color: var(--zw-nav-copper); }
.zw-nav-more h2 { margin: 8px 0 0; font: 500 36px/1.1 'Cormorant Garamond', serif; color: var(--zw-nav-ink); }
.zw-nav-more-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.zw-nav-more-grid .zw-nav-link { background: var(--zw-nav-panel); border: 1px solid var(--zw-nav-line); min-height: 56px; overflow-wrap: anywhere; }
.zw-nav-preferences { display: flex; gap: 10px; align-items: center; min-height: 44px; padding: 10px 0; margin-top: 20px; color: var(--zw-nav-muted); background: transparent; border: 0; font: inherit; text-align: left; cursor: pointer; }
.zw-nav-dialog { position: fixed; inset: auto 0 0; margin: 0 auto; padding: 0; width: min(680px, 100%); max-width: 100%; max-height: 88vh; max-height: 88dvh; background: var(--zw-nav-bg); border: 0; border-radius: 24px 24px 0 0; overflow: auto; overscroll-behavior: contain; }
.zw-nav-dialog::backdrop { background: #211b1880; }
.zw-nav-dialog .zw-nav-more { border: 0; border-radius: 0; margin: 0; padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)); }
@media (min-width: 1024px) and (max-width: 1190px) {
  .zw-nav-header-inner { gap: 10px; padding-inline: 16px; }
  .zw-nav-desktop .zw-nav-link, .zw-nav-disclosure summary { padding-inline: 8px; }
  .zw-nav-actions > .zw-nav-cta { display: none; }
}
@media (max-width: 1023px) {
  body[data-wedding-navigation="vnext"] { padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px)) !important; }
  .zw-nav-header { display: none !important; height: 0; margin: 0; padding: 0; }
  body[data-wedding-navigation="vnext"] #main-content { padding-top: 0 !important; }
  .zw-nav-bottom { position: fixed; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); bottom: 0; left: 0; right: 0; z-index: 100; gap: 2px; padding: 10px 8px calc(10px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--zw-nav-line); background: var(--zw-nav-bg); }
  @supports (backdrop-filter: blur(16px)) { .zw-nav-bottom { background: color-mix(in srgb, var(--zw-nav-bg) 92%, transparent); backdrop-filter: blur(16px); } }
  .zw-nav-bottom .zw-nav-link { flex-direction: column; justify-content: center; gap: 5px; font-size: 11px; padding: 7px 2px; text-align: center; min-height: 58px; min-width: 0; border-radius: 13px; overflow-wrap: anywhere; }
  .zw-nav-bottom .zw-nav-studios { background: var(--zw-nav-brown); color: #fff; }
  .zw-nav-more { margin: 16px; padding: 20px; }
  .zw-nav-more-grid { gap: 8px; }
  .zw-nav-more-grid .zw-nav-link { padding: 10px; font-size: 13px; }
  .zw-nav-more h2 { font-size: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  .zw-nav-header *, .zw-nav-bottom *, .zw-nav-more * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
