/* v4.33 - responsive couple/gallery and coherent three-column mobile sheets.
   The site and a couple continue to own separate destinations and permissions. */

body.v3 :is(.zw-nav-dialog .zw-nav-more-grid,.zi-couple-nav-dialog .zi-couple-menu-grid) {
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:9px!important;
  align-items:stretch!important;
  min-width:0;
  margin:0 0 18px!important;
}
body.v3 .zw-nav-dialog .zw-nav-more-grid > .zw-nav-link,
body.v3 .zi-couple-nav-dialog .zi-couple-menu-grid > a {
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
  position:relative;
  width:100%;
  min-width:0!important;
  min-height:104px!important;
  gap:8px!important;
  margin:0!important;
  padding:14px 7px 12px!important;
  border:1px solid var(--zi-shared-nav-line)!important;
  border-radius:15px!important;
  background:color-mix(in srgb,var(--zi-shared-nav-paper) 88%,var(--zi-shared-nav-accent))!important;
  text-align:center!important;
  box-shadow:none!important;
  text-decoration:none;
  overflow-wrap:anywhere;
  word-break:normal;
}
body.v3 .zw-nav-dialog .zw-nav-more-grid > .zw-nav-link:hover,
body.v3 .zi-couple-nav-dialog .zi-couple-menu-grid > a:hover {
  border-color:var(--zi-shared-nav-accent)!important;
  background:color-mix(in srgb,var(--zi-shared-nav-paper) 76%,var(--zi-shared-nav-accent))!important;
  transform:translateY(-2px);
}
body.v3 .zw-nav-dialog .zw-nav-more-grid .zw-nav-menu-entry {
  display:flex!important;
  grid-template-columns:none!important;
}
body.v3 .zw-nav-dialog .zw-nav-menu-symbol,
body.v3 .zi-couple-nav-dialog .zi-menu-icon {
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:38px!important;
  height:38px!important;
  margin:0!important;
  border:1px solid var(--zi-shared-nav-line);
  border-radius:12px;
  padding:9px;
  background:color-mix(in srgb,var(--zi-shared-nav-paper) 68%,var(--zi-shared-nav-accent));
  color:var(--zi-shared-nav-accent);
  box-sizing:border-box;
}
body.v3 .zw-nav-dialog .zw-nav-menu-symbol .zi-icon {
  width:20px;
  height:20px;
}
body.v3 .zw-nav-dialog .zw-nav-menu-copy,
body.v3 .zi-couple-nav-dialog .zi-couple-menu-grid > a > span {
  flex:none!important;
  display:block;
  min-width:0;
  width:100%;
  margin:0;
  color:var(--zi-shared-nav-ink);
  text-align:center;
  font:600 11px/1.3 "DM Sans",Arial,sans-serif!important;
}
body.v3 .zw-nav-dialog .zw-nav-menu-copy strong {
  display:block;
  color:var(--zi-shared-nav-ink);
  font:600 11px/1.3 "DM Sans",Arial,sans-serif!important;
}
body.v3 .zw-nav-dialog .zw-nav-menu-copy small {display:none;}
body.v3 .zw-nav-dialog .zw-nav-menu-arrow,
body.v3 .zi-couple-nav-dialog .zi-menu-arrow {
  display:block;
  position:absolute;
  width:13px!important;
  height:13px!important;
  right:7px;
  top:7px;
  color:var(--zi-shared-nav-accent);
  stroke-width:1.75;
}
body.v3 .zw-nav-dialog .zw-nav-more-grid>.zw-nav-link:not(.zw-nav-menu-entry)>.zi-icon {
  flex:0 0 auto!important;
  width:20px;
  height:20px;
  padding:9px;
  margin:0;
  box-sizing:content-box;
}
body.v3 .zw-nav-dialog .zw-nav-more-grid>.zw-nav-link:not(.zw-nav-menu-entry)>span {
  flex:none!important;
  font:600 11px/1.3 "DM Sans",Arial,sans-serif!important;
  color:var(--zi-shared-nav-ink);
  text-align:center;
}
body.v3 .zw-nav-dialog .zw-nav-more-grid>.zw-nav-link:not(.zw-nav-menu-entry)::after {
  content:none!important;
}
body.v3 .zi-couple-nav-dialog .zi-couple-menu-settings {
  display:flex;
  width:100%;
  justify-content:flex-start;
  gap:13px;
  padding:15px 6px;
  border-top:1px solid var(--zi-shared-nav-line);
  color:var(--zi-shared-nav-ink);
}
body.v3 .zi-couple-nav-dialog .zi-couple-menu-settings > .zi-icon:first-child {
  width:22px;
  height:22px;
  flex:0 0 22px;
  color:var(--zi-shared-nav-accent);
}
body.v3 .zi-couple-nav-dialog .zi-couple-menu-settings > .zi-icon:last-child {
  width:17px;height:17px;margin-left:auto;color:var(--zi-shared-nav-accent);
}
body.v3 .zi-couple-nav-dialog .zi-couple-menu-settings > span {flex:1;}
body.v3 .zw-nav-dialog .zw-nav-more-heading,
body.v3 .zi-couple-nav-dialog .zi-nav-sheet-heading {margin-bottom:19px;}
body.v3 :is(.zw-nav-dialog,.zi-couple-nav-dialog) {overflow-x:hidden;}
@media(max-width:450px) {
  body.v3 :is(.zw-nav-dialog .zw-nav-more,.zi-couple-nav-dialog .zi-nav-sheet) {
    padding-inline:clamp(12px,4vw,20px)!important;
  }
  body.v3 :is(.zw-nav-dialog .zw-nav-more-grid,.zi-couple-nav-dialog .zi-couple-menu-grid) {
    gap:7px!important;
  }
  body.v3 .zw-nav-dialog .zw-nav-more-grid > .zw-nav-link,
  body.v3 .zi-couple-nav-dialog .zi-couple-menu-grid > a {
    min-height:98px!important;
    padding:13px 4px 10px!important;
    border-radius:12px!important;
  }
  body.v3 .zw-nav-dialog .zw-nav-menu-copy strong,
  body.v3 .zi-couple-nav-dialog .zi-couple-menu-grid > a > span,
  body.v3 .zw-nav-dialog .zw-nav-more-grid>.zw-nav-link:not(.zw-nav-menu-entry)>span {
    font-size:clamp(9px,2.8vw,11px)!important;
  }
}
@media(max-width:320px) {
  body.v3 :is(.zw-nav-dialog .zw-nav-more-grid,.zi-couple-nav-dialog .zi-couple-menu-grid) {
    gap:5px!important;
  }
  body.v3 .zw-nav-dialog .zw-nav-more-grid > .zw-nav-link,
  body.v3 .zi-couple-nav-dialog .zi-couple-menu-grid > a {min-height:92px!important;padding-inline:2px!important;}
}

/* Prevent side-scrolling and layout thrash on the cinematic profiles.
   Natural vertical scrolling, image composition and story interaction remain. */
body.v3.zi-couple-emotion {width:100%;max-width:100%;overflow-x:clip;}
body.v3.zi-couple-emotion #main-content {min-width:0;max-width:100%;overflow-x:clip;}
body.v3.zi-couple-emotion #main-content > :where(section,div) {min-width:0;max-width:100%;}
body.v3.zi-couple-emotion :is(.zw-container,.container,.zw-program-grid,.zw-info-grid,.zw-gallery,
  .zw-partners,.zw-partner,.zw-program-card,.zw-program-card > div,.zw-story,.gallery-masonry,
  .zi-gallery-immersive,.zi-gallery-immersive-copy,.zi-book,.zi-book-content) {
  min-width:0;
  max-width:100%;
}
body.v3.zi-couple-emotion :is(img,picture,video,iframe) {max-width:100%;}
body.v3.zi-couple-emotion :is(.zw-rsvp-callout,.zw-program-card,.zw-info-grid article,.zw-status-strip) {
  overflow-wrap:anywhere;
}
body.v3.zi-couple-emotion :is(#souls,#events,#gallery,#presence,#information,#messages,#story,#rsvp,#photos,#forever) {
  scroll-margin-top:24px;
}
body.v3.zi-couple-emotion .zw-couple-hero {overflow:hidden;}
body.v3.zi-couple-emotion .zw-couple-hero .zw-hero-copy {min-width:0;max-width:100%;}
body.v3.zi-couple-emotion .zw-gallery-item {min-width:0;}
body.v3.zi-couple-emotion .zw-gallery-item :is(.zi-image-shell,picture,img) {
  max-width:100%;min-width:0;
}
body.v3 .gallery-signature.zi-gallery-unified {max-width:100%;min-width:0;overflow-x:clip;}
body.v3 .zi-gallery-unified .zi-gallery-immersive {
  width:100%;max-width:100%;min-width:0;
  overflow:hidden;
}
body.v3 .zi-gallery-unified .zi-gallery-immersive-copy {max-width:100%;min-width:0;overflow-wrap:anywhere;}
body.v3 .zi-gallery-unified .gallery-masonry {
  width:min(1180px,calc(100% - 32px));
  max-width:100%;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px!important;
  columns:auto!important;
  column-gap:unset!important;
  align-items:start;
  margin-inline:auto;
}
body.v3 .zi-gallery-unified .gallery-masonry .gallery-tile {
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  padding:0;
  margin:0!important;
  aspect-ratio:4/5;
  height:auto!important;
  border-radius:12px!important;
  border:3px solid var(--zi-shared-nav-paper)!important;
  box-sizing:border-box;
  overflow:hidden;
  break-inside:auto;
  touch-action:manipulation;
}
body.v3 .zi-gallery-unified .gallery-tile :is(.zi-image-shell,picture,img) {
  display:block;
  width:100%;
  height:100%;
  min-width:0;
  max-width:100%;
  object-fit:cover;
}
body.v3.zi-couple-emotion .zi-gallery-unified .infinite-loader {min-width:0;max-width:100%;}
@media (max-width:1023px) {
  body.v3.zi-couple-emotion :is(.zi-couple-bottom-nav,.zw-couple-bottom-nav).is-hidden {
    transform:none!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
  body.v3.zi-couple-emotion .zw-couple-hero {
    min-height:min(650px,100svh);
  }
  body.v3.zi-couple-emotion .zw-couple .zw-container {max-width:calc(100% - 32px);}
  body.v3.zi-couple-emotion .zw-countdown {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;min-width:0;}
  body.v3.zi-couple-emotion .zw-countdown > div {min-width:0;padding:10px 2px;}
  body.v3.zi-couple-emotion .zw-countdown b {font-size:clamp(19px,5vw,31px);}
  body.v3.zi-couple-emotion .zw-countdown span {font-size:clamp(8px,2vw,10px);}
  body.v3.zi-couple-emotion .zw-status-strip {gap:10px;padding-inline:12px;}
  body.v3.zi-couple-emotion .zw-rsvp-callout {min-width:0;max-width:calc(100% - 32px);}
  body.v3 .zi-gallery-unified .gallery-masonry {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px!important;
    width:calc(100% - 26px);
  }
  body.v3 .zi-gallery-unified .zi-gallery-immersive {
    height:clamp(390px,70svh,610px);
  }
  body.v3 .zi-gallery-unified .zi-gallery-immersive-copy {
    width:calc(100% - 34px);
    margin-inline:auto;
    padding-bottom:calc(96px + env(safe-area-inset-bottom,0px));
  }
  body.v3 .zi-gallery-unified .gallery-masonry .gallery-tile {border-width:2px!important;}
}
@media (max-width:380px) {
  body.v3.zi-couple-emotion .zw-hero-copy h1 {font-size:clamp(38px,11vw,48px);}
  body.v3.zi-couple-emotion .zw-hero-copy .zw-actions {width:100%;}
  body.v3.zi-couple-emotion .zw-hero-copy .zw-actions .zw-button {padding:11px 12px;font-size:12px;}
  body.v3 .zi-gallery-unified .gallery-masonry {gap:7px!important;}
  body.v3 .zi-gallery-unified .zi-gallery-immersive-copy h1 {font-size:clamp(45px,12vw,60px);}
}
@media (hover:none) {
  body.v3 .zi-gallery-unified .gallery-masonry .gallery-tile:hover img {transform:none;}
}
@media print {
  body.v3.zi-couple-emotion .zi-couple-nav-dialog {display:none!important;}
}

/* Feedback is immediate on pointer/touch/keyboard activation, without blocking UI. */
body.v3 :is(.zw-nav-bottom,.zi-bottom-nav,.zw-nav-dialog,.zi-nav-dialog) a,
body.v3 :is(.zw-nav-bottom,.zi-bottom-nav,.zw-nav-dialog,.zi-nav-dialog) button {
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
body.v3 .zi-nav-pressed {transform:scale(.95)!important;filter:brightness(1.1);}
body.v3 .zi-nav-is-loading {position:relative;}
body.v3 .zi-nav-is-loading .zi-icon:first-child {opacity:.38;}
body.v3 .zi-nav-is-loading::before {
  content:"";
  position:absolute;
  width:19px;height:19px;
  top:11px;left:50%;
  margin-left:-9.5px;
  border:2px solid var(--zi-shared-nav-line);
  border-top-color:var(--zi-shared-nav-accent);
  border-radius:50%;
  animation:zi-nav-spin .65s linear infinite;
  pointer-events:none;
  z-index:3;
}
.zi-nav-progress-toast {
  position:fixed;
  z-index:14010;
  top:calc(14px + env(safe-area-inset-top,0px));
  left:50%;
  display:flex;align-items:center;gap:10px;
  max-width:min(90vw,360px);
  padding:11px 17px;
  border-radius:999px;
  color:var(--zi-shared-nav-ink,#38271e);
  background:var(--zi-shared-nav-paper,#fffaf4);
  border:1px solid var(--zi-shared-nav-line,#dfd3c5);
  box-shadow:0 12px 38px rgba(30,20,14,.19);
  font:500 12px/1.3 "DM Sans",Arial,sans-serif;
  text-align:center;
  transform:translateX(-50%);
  pointer-events:none;
}
.zi-nav-progress-toast .zi-nav-progress-wheel {
  width:16px;height:16px;flex:0 0 16px;
  border:2px solid var(--zi-shared-nav-line,#dfd3c5);
  border-top-color:var(--zi-shared-nav-accent,#8a533b);
  border-radius:50%;
  animation:zi-nav-spin .7s linear infinite;
}
.zi-nav-target-flash {
  outline:2px solid color-mix(in srgb,var(--zi-shared-nav-accent,#8a533b) 55%,transparent);
  outline-offset:-2px;
  animation:zi-nav-reveal .8s ease-out both;
}
@keyframes zi-nav-spin {to{transform:rotate(360deg);}}
@keyframes zi-nav-reveal {
  from {filter:brightness(1.045);}
  to {filter:none;}
}
@media (prefers-reduced-motion:reduce) {
  body.v3 .zi-nav-pressed,
  body.v3 .zi-nav-is-loading,
  .zi-nav-target-flash {transform:none!important;animation:none!important;}
  body.v3 .zi-nav-is-loading::before,.zi-nav-progress-toast .zi-nav-progress-wheel {animation:none!important;}
}
