/* Paired contact actions retain a consistent size and clear hierarchy. */
.faq-help .faq-help-actions {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px;
  width: min(100%, 340px); margin: 28px auto 0;
}
.faq-help .faq-help-actions a {
  display: flex; align-items: center; justify-content: center;
  box-sizing: border-box; width: 100%; min-height: 48px; padding: 12px 16px;
  border: 1px solid #183024; border-radius: 999px; opacity: 1;
  font: 500 14px/1.4 Inter, sans-serif; letter-spacing: .01em;
  text-transform: none; text-decoration: none; color: #183024;
}
.faq-help .faq-help-actions a:first-child { background: #183024; color: #f4efe5; }
.faq-help .faq-help-actions a:focus-visible { outline: 2px solid #183024; outline-offset: 4px; }
/* Mobile footer: subtle date and location around the centered continuation link. */
.mobile-next-link, .mobile-note-next, .mobile-footer-detail, .mobile-footer-utility, .mobile-footer-meta { display: none; }
@media ((max-width: 800px) or ((max-width: 1000px) and (max-height: 500px) and (pointer: coarse) and (hover: none))) {
  /* Keep scroll-end bounce from exposing an ivory canvas beyond green footers. */
  html:has(body > footer .mobile-next-link) { background: #183024; overscroll-behavior-y: none; }
  html:has(body.travel-compact-page) { background: #183024; }
  body[class]:has(> footer .mobile-next-link) { overscroll-behavior-y: none; background-color: #183024; }
  /* Keep the content canvas ivory while the document/safe-area canvas is green. */
  body:has(> footer .mobile-next-link) > main { background-color: var(--ivory, #f3eee4); }
  .rsvp-form-page .rsvp-closing-image { display: none; }
  .rsvp-form-page .rsvp-form [hidden] { display: none !important; }
  .rsvp-form-page .rsvp-form input,
  .rsvp-form-page .rsvp-form select { scroll-margin-block: 90px; }

  :root { --mobile-footer-height: calc(56px + env(safe-area-inset-bottom, 0px)); }
  /* Match the 56px header bar; safe-area padding belongs to its own edge. */
  body:has(> footer .mobile-next-link) { min-height: 100dvh; padding-bottom: 0; margin-bottom: 0; display: flex; flex-direction: column; }
  body:has(> footer .mobile-next-link) > footer { margin-top: auto; }
  .note-page .note-wrap { padding-bottom: 0; }
  .note-page .note-letter { margin-bottom: 0; }

  body[class] > footer {
    display: grid; grid-template-columns: minmax(48px, 1fr) minmax(0, 2.8fr) minmax(48px, 1fr);
    column-gap: 8px; row-gap: 0; align-items: center; justify-items: center; justify-content: stretch;
    box-sizing: border-box; flex: 0 0 auto; height: auto; min-height: var(--mobile-footer-height);
    margin: 0; padding: 6px 16px calc(6px + env(safe-area-inset-bottom, 0px));
    background: #183024; color: #f4efe5;
  }
  body > footer > span { display: none; }
  body[class] > footer > .mobile-footer-detail {
    display: block; width: 100%; margin: 0; padding: 0;
    align-self: center; justify-self: center;
    color: rgba(244,239,229,.82); text-align: center;
    font: 400 10px/1.45 "Cormorant Garamond", Georgia, serif;
    letter-spacing: .03em;
  }

  body .mobile-next-link {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    box-sizing: border-box; min-height: 44px; max-width: 100%; width: fit-content; justify-self: center;
    position: relative; padding: 6px 14px; margin: 0; border: 0; border-radius: 999px;
    background: transparent; color: rgba(244,239,229,.86);
    font: 400 14px/1.35 "Cormorant Garamond", Georgia, serif;
    letter-spacing: .01em; text-transform: none; text-align: center;
    text-decoration-line: none;
    text-decoration-style: dotted;
    text-decoration-color: currentColor;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
  }
  /* A 32px visual frame, centered inside the unchanged 44px tap area. */
  body .mobile-next-link::before {
    content: ""; position: absolute; inset: 6px 0;
    border: 1px solid rgba(244,239,229,.38); border-radius: 999px;
    pointer-events: none;
  }
  body .mobile-next-link span { display: inline; flex: 0 0 auto; font: inherit; font-size: 14px; letter-spacing: 0; }
  body .mobile-next-link:focus-visible { outline: 2px solid #f4efe5; outline-offset: 4px; }
  body .mobile-next-link:active { background: transparent; color: #d5ba84; }
  .note-page .note-letter { padding-bottom: 0; }
  .note-page .note-reading-screen {
    box-sizing: border-box; min-height: calc(var(--mobile-screen) - var(--mobile-footer-height));
    display: flex; flex-direction: column; justify-content: center;
    padding: 15px 0 11px;
  }
  .note-page .note-letter .note-body { min-height: 0; padding: 0; }
  .note-page .note-signoff { margin-top: 22px; padding-bottom: 0; }
  .note-page .mobile-note-next {
    display: flex; align-items: center; justify-content: center;
    margin: 18px -24px 0; padding: 16px 24px calc(24px + env(safe-area-inset-bottom, 0px));
    background: #183024; color: #f4efe5; text-align: center;
  }
  .note-page .note-next { display: none; }
  body.travel-compact-page > footer { position: relative; border-top: 0; }
  body.travel-compact-page > footer::before {
    content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
    width: 52px; height: 1px; background: rgba(213,186,132,.35);
    pointer-events: none;
  }
  .weekend-story-page main {
    height: calc(var(--mobile-screen) - var(--mobile-footer-height));
    min-height: min-content;
  }
}

/* Small visual control with a full 44px touch target; SVG avoids font offsets. */
.dress-guide-lightbox .dress-guide-lightbox-close {
  display: grid; place-items: center; box-sizing: border-box;
  width: 44px; height: 44px; padding: 0;
  border: 0; border-radius: 50%; background: transparent;
  color: #f4efe5; font-size: 0; line-height: 1;
}
.dress-guide-lightbox .dress-guide-lightbox-close::before {
  content: ""; position: absolute; inset: 5px;
  border: 1px solid rgba(244,239,229,.5); border-radius: 50%;
  pointer-events: none;
}
.dress-guide-lightbox .dress-guide-lightbox-close svg {
  display: block; width: 14px; height: 14px; margin: 0;
  grid-area: 1 / 1; pointer-events: none;
}
@media ((max-width: 800px) or ((max-width: 1000px) and (max-height: 500px) and (pointer: coarse) and (hover: none))) {
  /* Option 1: a close invitation pair and equal gaps around the names. */
  .home-page .v6-hero-title > p { margin: 0 auto 12px; line-height: 1.2; }
  .home-page .hero-invitation-detail { margin-top: 2px; line-height: 1.2; }
  .home-page .v6-hero-title h1 { margin: 0; }
  .home-page .v6-hero-meta { margin-top: 12px; font-size: clamp(14px, 3.9vw, 17px); font-weight: 500; }
}
