/* One shared visible-browser screen. Content can grow for zoom or open answers. */
:root {
  --iphone-safe-top: env(safe-area-inset-top, 0px);
  --mobile-header-height: calc(56px + var(--iphone-safe-top));
  --mobile-screen: calc(100dvh - var(--mobile-header-height));
}
body header.topbar {
  box-sizing: border-box;
  height: var(--mobile-header-height); min-height: var(--mobile-header-height);
  max-height: none; padding: var(--iphone-safe-top) 22px 0;
}
html { scroll-padding-top: var(--mobile-header-height); }
.home-page .v6-hero,
.home-page .v6-rsvp,
.home-page .mobile-intro-directory,
.travel-compact-page .v6-travel-hero {
  box-sizing: border-box; height: var(--mobile-screen); min-height: 0;
  scroll-margin-top: var(--mobile-header-height);
}
.home-page .mobile-intro-directory { padding: 18px 24px; }
.home-page .mobile-directory-intro h2 { font-size: clamp(28px,8vw,34px); }
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel { min-height: 64px; }
.home-page .mobile-intro-directory .home-featured-directory .v8-tile-art { max-height: 68px; }
.travel-compact-page .travel-value {
  height: var(--mobile-screen); min-height: min-content;
  padding: 22px 24px; scroll-margin-top: var(--mobile-header-height);
}
.travel-compact-page .travel-benefit-grid { grid-template-rows: repeat(3,minmax(88px,1fr)); }
.travel-compact-page .travel-benefit-grid button:nth-child(n) { min-height: 88px; }
.travel-compact-page .travel-booking-compact {
  --booking-space: 16px;
  display: grid; grid-template-rows: minmax(110px,1fr) auto auto;
  height: var(--mobile-screen); min-height: min-content;
  gap: var(--booking-space); padding: 16px 24px;
  scroll-margin-top: var(--mobile-header-height);
}
.travel-compact-page .travel-booking-image {
  height: 100%; min-height: 110px; width: 100%; margin: 0;
}
.travel-compact-page .travel-booking-facts article {
  grid-template-rows: 16px 26px minmax(48px,auto);
  padding: 8px !important;
}
.travel-compact-page .travel-booking-facts article strong { margin: 0; }
.travel-compact-page .travel-booking-facts .travel-book-button { margin-top: var(--booking-space); }
.travel-compact-page .travel-booking-facts .journey-inline { margin-top: var(--booking-space); }
body.weekend-story-page { min-height: 100dvh; }
.weekend-story-page main {
  flex: none; height: var(--mobile-screen); min-height: min-content;
  padding: 0; display: flex; flex-direction: column;
}
.weekend-story-page .ws-intro { padding: 10px 20px; }
.weekend-story-page .ws-intro h1 { font-size: 32px; }
.weekend-story-page .ws-stage { flex: 1; min-height: 0; margin-bottom: 12px; }
.weekend-story-page .ws-panel.is-active { flex: 1; min-height: 0; }
.weekend-story-page .ws-panel figure {
  aspect-ratio: auto; flex: 1 1 0; height: 0; min-height: 110px; max-height: none;
}
.weekend-story-page .ws-copy { padding: 12px 14px; }
.weekend-story-page .ws-copy h2,
.weekend-story-page .ws-panel[data-panel="1"] .ws-copy h2 { font-size: 26px; }
.weekend-story-page .ws-copy li,
.weekend-story-page .ws-panel[data-panel="1"] .ws-copy li {
  font-size: 16px; line-height: 1.25; padding-block: 7px;
}
.weekend-story-page .ws-dress { margin: 8px 0; }
.weekend-story-page .ws-guide { margin-top: 4px; }
.faq-topic-screen {
  box-sizing: border-box; height: var(--mobile-screen); min-height: min-content;
  display: flex; flex-direction: column;
}
.faq-directory .faq-intro { padding: 24px 24px 20px; }
.faq-directory .faq-intro h1 { font-size: 36px; }
.faq-directory .faq-topics { flex: 1; display: flex; flex-direction: column; padding-bottom: 24px; }
.faq-directory .faq-topic-grid { flex: 1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: repeat(3,minmax(64px,1fr)); }
.faq-directory .faq-topic { border-radius: 0; justify-content: center; }
.faq-directory .faq-topic strong { white-space: normal; }
.faq-directory .faq-results { box-sizing: border-box; min-height: var(--mobile-screen); padding: 20px 24px; }
.faq-directory .faq-results-head,
.faq-directory .faq-results.has-selection .faq-results-head {
  position: static; width: auto; height: auto; overflow: visible; clip-path: none;
  display: flex; justify-content: space-between; align-items: baseline; padding: 0 0 14px;
}
.faq-directory .faq-accordions summary { min-height: 48px; padding: 12px 0; }
.faq-help { box-sizing: border-box; min-height: var(--mobile-screen); display: flex; flex-direction: column; justify-content: center; }
.rsvp-form-page .rsvp-form-wrap {
  box-sizing: border-box; min-height: var(--mobile-screen); padding: 20px 24px;
  display: flex; flex-direction: column;
}
.rsvp-form-page .rsvp-form-intro { position: static; padding-bottom: 12px; }
.rsvp-form-page .rsvp-form-intro h1 { font-size: 30px; }
.rsvp-form-page .rsvp-form-intro > p:last-child { font-size: 16px; line-height: 1.3; margin: 8px 0; }
.rsvp-form-page .rsvp-later-step .rsvp-form-intro > p:last-child { display: none; }
.rsvp-form-page .rsvp-form { flex: 1; }
.rsvp-form-page .rsvp-form fieldset { padding: 12px; }
.rsvp-form-page .rsvp-phone-note { font-size: 13px; line-height: 1.3; }
.rsvp-form-page .rsvp-closing-image { height: var(--mobile-screen); min-height: 0; }
.note-page .note-letter { padding-top: 0; }
.note-page .note-opening-screen {
  box-sizing: border-box;
  height: calc(100lvh - var(--mobile-header-height) + 72px + env(safe-area-inset-bottom, 0px));
  min-height: calc(100lvh - var(--mobile-header-height) + 72px + env(safe-area-inset-bottom, 0px));
  padding-top: 20px; display: flex; flex-direction: column;
}
.note-page .note-opening-screen .note-opening-inline {
  font: 400 17px/1.4 "Cormorant Garamond",Georgia,serif !important;
  margin: 0 0 20px;
}
.note-page .note-opening-screen .note-photo {
  flex: 1; order: initial; width: calc(100% + 48px); margin: 0 -24px;
  height: 0; min-height: 220px; position: relative;
}
.note-page .note-opening-screen .note-photo img { width: 100%; height: 100%; object-fit: cover; }
.note-page .note-letter .note-body {
  box-sizing: border-box; min-height: var(--mobile-screen); padding: 28px 0;
  display: flex; flex-direction: column; justify-content: center;
}
.note-page .note-next {
  box-sizing: border-box; min-height: 0; height: auto;
  padding: 26px 24px 20px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.note-page .note-next p { margin-bottom: 12px; }
.note-page footer {
  box-sizing: border-box; min-height: 0;
  padding: 14px 24px calc(14px + env(safe-area-inset-bottom, 0px));
}
.dress-guide-main { padding-top: 0; }
.dress-guide-summary { box-sizing: border-box; min-height: var(--mobile-screen); padding: 24px; }
.dress-guide-summary h1 { font-size: 36px; }
.dress-guide-days article { padding: 12px 0; }
.dress-guide-days h2 { font-size: 24px; }
.dress-guide-visual { min-height: var(--mobile-screen); display: flex; flex-direction: column; justify-content: center; }
.thanks-page main { box-sizing: border-box; min-height: 100dvh; padding: 24px; }
@media (max-height: 700px) {
  .home-page .mobile-intro-directory .v6-statement { padding-bottom: 12px; }
  .travel-compact-page .travel-booking-compact { --booking-space: 12px; }
  .travel-compact-page .travel-booking-heading h2 { font-size: 26px; }
  .travel-compact-page .travel-benefits-heading { font-size: 28px; margin-bottom: 16px; }
  .rsvp-form-page .rsvp-form-intro h1 br { display: none; }
}

/* These heroes sit behind the navigation: reserve the whole viewport once. */
.home-page .v6-hero,
.travel-compact-page .v6-travel-hero {
  height: 100lvh; min-height: 100lvh; max-height: none;
}
.travel-compact-page .v6-travel-title {
  bottom: calc(32px + 100lvh - 100dvh);
}
.travel-compact-page .travel-value {
  height: calc(100dvh - 56px);
  min-height: calc(100dvh - 56px);
}

/* Two calm, continuous RSVP steps instead of seven boxed screens. */
.rsvp-form-page .rsvp-form-intro h1 { font-size: 34px; }
.rsvp-form-page .rsvp-form-intro > p:last-child { max-width: 34ch; margin: 10px auto; }
.rsvp-form-page .rsvp-form fieldset {
  width: 100%; min-width: 0; box-sizing: border-box;
  border: 0; border-top: 1px solid #a8afa2; background: transparent;
  padding: 18px 0 6px; margin: 0 0 22px;
}
.rsvp-form-page .rsvp-form legend {
  width: auto; padding: 0 10px 0 0; margin: 0 0 12px;
  font: 400 24px/1.15 "Cormorant Garamond",Georgia,serif;
}
.rsvp-form-page .rsvp-form legend span { display: none; }
.rsvp-form-page .rsvp-form label,
.rsvp-form-page .rsvp-input-label {
  font: 400 16px/1.3 "Cormorant Garamond",Georgia,serif;
  text-transform: none; letter-spacing: 0;
}
.rsvp-form-page .rsvp-form input:not([type="radio"]):not([type="checkbox"]),
.rsvp-form-page .rsvp-form select,
.rsvp-form-page .rsvp-form textarea {
  box-sizing: border-box; width: 100%; min-height: 44px;
  padding: 10px 12px; font-size: 16px; line-height: 1.3;
}
.rsvp-form-page .rsvp-form input:not([type="radio"]):not([type="checkbox"]),
.rsvp-form-page .rsvp-form select { height: 44px; }
.rsvp-form-page .rsvp-form textarea { height: 66px; }
.rsvp-form-page .rsvp-form .rsvp-check-grid,
.rsvp-form-page .rsvp-form .rsvp-choice-row { gap: 8px; }
.rsvp-form-page .rsvp-step-count { font-size: 16px; margin: 8px 0 22px; scroll-margin-top: calc(var(--mobile-header-height) + 16px); }
.rsvp-form-page .rsvp-step-nav { justify-content: space-between; }
.rsvp-form-page .rsvp-step-nav button:last-child { margin-left: auto; }

/* Full-width, centered introductions instead of intrinsic-width flex children. */
.rsvp-form-page .rsvp-form-wrap { align-items: stretch; }
.rsvp-form-page .rsvp-form-intro,
.faq-directory .faq-intro {
  box-sizing: border-box; width: 100%; max-width: none;
  align-self: stretch; text-align: center; margin-inline: auto;
}
.rsvp-form-page .rsvp-form-intro h1,
.faq-directory .faq-intro h1 { width: 100%; text-align: center; }
.rsvp-form-page .rsvp-form-intro > p:last-child,
.faq-directory .faq-intro > p:not(.faq-eyebrow) {
  width: 100%; max-width: none; margin-inline: auto; text-align: center;
}
.travel-compact-page .travel-booking-heading .travel-booking-summary {
  width: 100%; max-width: none;
}
.travel-compact-page .travel-booking-compact { padding-top: 24px; }

/* Include the edge-to-edge browser's bottom inset in the photographic area. */
.home-page .v6-hero,
.travel-compact-page .v6-travel-hero {
  height: calc(100lvh + 56px + env(safe-area-inset-bottom, 0px));
  min-height: calc(100lvh + 56px + env(safe-area-inset-bottom, 0px));
}
.travel-compact-page .v6-travel-title {
  bottom: calc(88px + env(safe-area-inset-bottom, 0px) + 100lvh - 100dvh);
}
.note-page .note-opening-screen { padding: 0; }
.note-page .note-opening-screen .note-photo { min-height: 0; flex: 1; }
.note-page .note-opening-screen .note-photo h1 {
  position: absolute; top: 28px; left: 16px; right: 16px; z-index: 2;
  margin: 0; text-align: center; color: #183024;
  font: 400 clamp(34px,9vw,42px)/1.1 "Cormorant Garamond",Georgia,serif;
}
.note-page .note-opening-screen .note-photo::before {
  content: ""; position: absolute; inset: 0 0 auto; height: 130px; z-index: 1;
  background: linear-gradient(rgba(244,239,229,.85),rgba(244,239,229,0));
  pointer-events: none;
}
.note-page #note-opening { scroll-margin-top: calc(var(--mobile-header-height) + 24px); }

/* Selected booking concept: photo and two essential facts. */
.travel-compact-page .booking-desktop-summary { display: none; }
.travel-compact-page .booking-mobile-summary { display: inline; }
.travel-compact-page .travel-booking-compact {
  --booking-space: 22px;
  grid-template-rows: minmax(200px,1fr) auto auto;
  padding: 20px 24px 24px;
}
.travel-compact-page .travel-booking-image { min-height: 200px; }
.travel-compact-page .travel-booking-heading h2::after { display: none; }
.travel-compact-page .travel-booking-heading .travel-booking-summary {
  font-size: 17px; line-height: 1.35; border: 0; padding: 0;
  background: transparent;
}
.travel-compact-page .travel-booking-facts article:nth-child(2),
.travel-compact-page .travel-booking-facts article:nth-child(4),
.travel-compact-page .travel-booking-facts article p { display: none; }
.travel-compact-page .travel-booking-facts article:nth-child(n) {
  border: 0; grid-template-rows: 18px 32px;
  padding: 4px 8px !important;
}
.travel-compact-page .travel-booking-facts article:nth-child(3) {
  border-left: 1px solid rgba(244,239,229,.55);
}
.travel-compact-page .travel-booking-facts article strong { font-size: 21px; }
.travel-compact-page .travel-booking-facts article:nth-child(3) strong::after {
  content: none;
}
.travel-compact-page .travel-booking-facts .booking-mobile-terms {
  display: block; grid-column: 1/-1; color: #f4efe5;
  font: 400 13px/1.35 "Cormorant Garamond",Georgia,serif;
  margin: var(--booking-space) 0 0; text-align: center;
}
@media (max-height: 700px) {
  .travel-compact-page .travel-booking-compact { --booking-space: 16px; }
}

/* Approved sky composition: names lead, with a quiet italic ampersand. */
.home-page .v6-hero {
  height: calc(100lvh + 56px + env(safe-area-inset-bottom, 0px));
  min-height: calc(100lvh + 56px + env(safe-area-inset-bottom, 0px));
  max-height: none; flex-shrink: 0; background: #eeeae6;
}
.home-page .v6-hero-bg {
  inset: auto 0 0; height: 82%; width: 100%;
  object-fit: cover; object-position: 51% 50%; transform: none;
  mask-image: linear-gradient(to bottom, transparent, #000 12%);
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 12%);
}
.home-page .v6-hero-title {
  top: calc(var(--mobile-header-height) + 28px);
  left: 20px; right: 20px; bottom: auto; transform: none;
  color: #183024;
}
.home-page .v6-hero-title > p {
  width: max-content; max-width: 100%; margin: 0 auto 18px;
  font: 500 clamp(14px,calc(2.55vw + 5px),19px)/1.45 "Cormorant Garamond",Georgia,serif;
  letter-spacing: .08em; text-align: center;
}
.home-page .hero-invitation-detail { display: block; }
.home-page .v6-hero-title h1 {
  display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: center; align-items: center;
  gap: .18em; margin: 0; text-transform: none;
  font: 500 clamp(45px,calc(13.5vw + 5px),89px)/1.05 "Cormorant Garamond",Georgia,serif;
  letter-spacing: -.035em;
}
.home-page .v6-hero-title h1 > span { white-space: nowrap; }
.home-page .v6-hero-title h1 i {
  flex: none; font-size: .35em; line-height: 1;
  font-style: italic; font-weight: 400; letter-spacing: 0;
}
.home-page .v6-hero-meta {
  margin-top: 20px; display: flex; flex-direction: column;
  align-items: center; gap: 9px; text-transform: none;
  font: 400 clamp(18px,calc(3.5vw + 5px),23px)/1.2 "Cormorant Garamond",Georgia,serif;
  letter-spacing: 0;
}
.home-page .v6-hero-meta > span:last-child { font-style: italic; }
@media (max-height: 700px) {
  .home-page .v6-hero-title { top: calc(var(--mobile-header-height) + 16px); }
  .home-page .v6-hero-title > p { margin-bottom: 12px; }
  .home-page .v6-hero-meta { margin-top: 14px; gap: 7px; }
}

/* Stronger mobile masthead and explicit contrast on the green booking panel. */
.home-page .v6-hero-title h1 {
  color: #10291d;
  text-shadow: 0 1px 0 rgba(255,255,255,.7), 0 3px 10px rgba(16,41,29,.28);
}
.home-page .v6-hero-title > p { color: #10251a; font-weight: 600; }
.travel-compact-page .travel-booking-heading .travel-booking-summary.travel-rate-callout {
  color: #f4efe5 !important; opacity: 1;
}
.travel-compact-page .travel-booking-heading .booking-mobile-summary { color: inherit; opacity: 1; }

/* Keep the enlarged invitation inside the width of the names. */
.home-page .hero-invitation-detail {
  font-size: .8em; letter-spacing: .035em; white-space: nowrap;
}
.home-page .v6-hero-title h1 { gap: .12em; }

/* Matched invitation lines and a calm sky area for the note title. */
.home-page .v6-hero-title > p {
  width: 100%; max-width: 360px;
  font-size: 1rem; font-weight: 600;
  line-height: 1.5; letter-spacing: .12em;
  text-transform: uppercase; text-wrap: balance;
}
.home-page .hero-invitation-detail {
  display: inline; white-space: normal;
  font-size: 1em; font-weight: inherit; letter-spacing: inherit;
}
.note-page .note-opening-screen .note-photo {
  box-sizing: border-box; padding-top: 70px; background: #fff;
}
.note-page .note-opening-screen .note-photo img {
  height: 100%; object-position: 51% top;
}
.note-page .note-opening-screen .note-photo h1 { top: 38px; }
.note-page .note-opening-screen .note-photo::before {
  height: 100px; background: linear-gradient(#fff 65%,rgba(255,255,255,0));
}

/* Reserve room for the signature within the letter's mobile screen. */
.note-page .note-letter .note-body {
  min-height: calc(var(--mobile-screen) - 96px);
  padding: 20px 0 0;
}
.note-page .note-body p { font-size: 16px; line-height: 1.35; margin-bottom: 14px; }
.note-page .note-body .note-opening-inline {
  font-size: 16px !important; line-height: 1.35 !important; margin-bottom: 18px;
}
.note-page .note-body p:last-child { margin-bottom: 0; }
.note-page .note-signoff { margin-top: 16px; padding-bottom: 18px; }
.note-page .note-signoff strong { margin-top: 3px; font-size: 30px; line-height: 1.1; }

/* Selected directory introduction: ivory typography on forest green. */
.home-page .mobile-intro-directory { padding: 0 24px 18px; }
.home-page .mobile-intro-directory .v6-statement {
  margin: 0 -24px 10px; padding: 24px 20px;
  background: #183024; color: #f4efe5;
}
.home-page .mobile-directory-intro h2 {
  color: #f4efe5; font-size: clamp(32px,9vw,38px);
  font-weight: 400; line-height: 1.08; margin: 0 0 18px;
}
.home-page .mobile-directory-intro h2 em {
  display: block; margin-top: 8px; color: inherit;
  font-size: clamp(24px,6.5vw,29px); font-weight: 400;
  line-height: 1.15; letter-spacing: -.025em;
}
.home-page .mobile-directory-intro p { color: #f4efe5; font-size: 15px; line-height: 1.3; }
@media (max-height: 700px) {
  .home-page .mobile-intro-directory .v6-statement { padding-block: 16px; }
  .home-page .mobile-directory-intro h2 { margin-bottom: 12px; }
}

/* A continuous directory screen, including the translucent browser edge. */
.home-page .mobile-intro-directory {
  height: calc(100lvh - 56px + env(safe-area-inset-bottom, 0px));
  min-height: min-content;
  padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px));
}
.home-page .mobile-intro-directory .v6-statement {
  margin-bottom: 0;
  border-bottom: 1px solid rgba(244,239,229,.4);
}
.home-page .mobile-intro-directory .home-featured-directory { border-top: 0; }

/* Quiet editorial directory: selected option three. */
.home-page .mobile-intro-directory {
  background: #f4efe5;
  padding: 0 24px calc(24px + env(safe-area-inset-bottom, 0px));
}
.home-page .mobile-intro-directory .v6-statement {
  margin: 0; padding: 30px 0 24px; border: 0;
  background: #f4efe5; color: #183024;
}
.home-page .mobile-directory-intro h2 {
  color: #183024; font-size: clamp(25px,7vw,34px);
  font-weight: 500; line-height: 1.12; letter-spacing: -.02em;
  margin: 0 0 22px;
}
.home-page .mobile-directory-intro h2 span { display: block; }
.home-page .mobile-directory-intro p {
  color: #183024; font-size: 15px; line-height: 1.3;
}
.home-page .mobile-directory-intro::after {
  content: ""; display: block; width: 36px; height: 1px;
  margin: 20px auto 0; background: #183024;
}
.home-page .mobile-intro-directory .home-featured-directory {
  border-top: 1px solid #b2b9aa;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel > div:last-child::after {
  background: transparent; color: #183024; border-color: #6b7b68;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel h3 em {
  font-style: normal; color: inherit;
}
@media (max-height: 700px) {
  .home-page .mobile-intro-directory .v6-statement { padding-block: 20px; }
  .home-page .mobile-directory-intro h2 { margin-bottom: 16px; }
  .home-page .mobile-directory-intro::after { margin-top: 16px; }
}

/* Date-led mobile itinerary with consistent event and venue columns. */
.weekend-story-page .ws-days {
  display: grid; grid-template-columns: repeat(3,1fr);
  height: 76px; min-height: 76px; padding: 0 0 12px;
  margin-bottom: 12px; border: 0; border-bottom: 1px solid #b2b9aa;
  background: transparent; box-shadow: none;
}
.weekend-story-page .ws-day,
.weekend-story-page .ws-day.is-active {
  height: 62px; min-height: 62px; padding: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 3px; border: 0; background: transparent; color: #183024;
  box-shadow: none;
}
.weekend-story-page .ws-day + .ws-day { border-left: 1px solid #b2b9aa; }
.weekend-story-page .ws-day b { font: 400 16px/1.1 "Cormorant Garamond",Georgia,serif; margin: 0; }
.weekend-story-page .ws-day .ws-full-day { display: none; }
.weekend-story-page .ws-day .ws-short-day { display: inline; font-style: normal; }
.weekend-story-page .ws-day > span {
  display: grid; place-items: center; width: 36px; height: 36px;
  margin: 0; border-radius: 50%; font: 500 21px/1 "Cormorant Garamond",Georgia,serif;
}
.weekend-story-page .ws-day.is-active > span { background: #183024; color: #f4efe5; }
.weekend-story-page .ws-panel { border: 0; }
.weekend-story-page .ws-copy h2 { text-align: center; margin-bottom: 12px; }
.weekend-story-page .ws-copy li,
.weekend-story-page .ws-panel[data-panel="1"] .ws-copy li {
  display: grid; grid-template-columns: 76px minmax(0,1fr); gap: 12px;
  align-items: center; min-height: 52px; padding: 8px 0;
  font-size: 16px; line-height: 1.15;
}
.weekend-story-page .ws-copy li b,
.weekend-story-page .ws-panel[data-panel="1"] .ws-copy li b {
  font: 400 14px/1.2 "Cormorant Garamond",Georgia,serif;
  letter-spacing: 0;
}
.weekend-story-page .ws-copy li > span {
  border-left: 1px solid #b2b9aa; padding-left: 12px;
}
.weekend-story-page .ws-event-name { display: block; }
.weekend-story-page .ws-event-venue {
  display: block; margin-top: 3px; font-size: 14px; line-height: 1.15;
}
.weekend-story-page .ws-dress,
.weekend-story-page .ws-sunday-note span {
  font: 400 14px/1.25 "Cormorant Garamond",Georgia,serif;
  letter-spacing: 0; text-transform: none;
}

.weekend-story-page .ws-event-venue .ws-full-day { display: none; }

/* Keep all day labels visible; only the selected number receives a circle. */
.weekend-story-page .ws-days {
  box-sizing: border-box; height: 82px; min-height: 82px;
  padding: 8px 0 12px; align-items: center;
}
.weekend-story-page .ws-day,
.weekend-story-page .ws-day.is-active {
  box-sizing: border-box; height: 61px; min-height: 61px;
  margin: 0; padding: 0; border: 0; border-radius: 0;
  background: transparent; color: #183024;
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  gap: 4px; transform: none; text-align: center;
}
.weekend-story-page .ws-day + .ws-day { border-left: 1px solid #b2b9aa; }
.weekend-story-page .ws-day b,
.weekend-story-page .ws-day.is-active b,
.weekend-story-page .ws-day b .ws-short-day,
.weekend-story-page .ws-day.is-active b .ws-short-day {
  color: #183024; opacity: 1; margin: 0; padding: 0;
  font: 400 16px/20px "Cormorant Garamond",Georgia,serif;
  letter-spacing: 0; text-transform: none; transform: none;
}
.weekend-story-page .ws-day > span,
.weekend-story-page .ws-day.is-active > span {
  flex: 0 0 36px; width: 36px; height: 36px; min-height: 36px;
  margin: 0; padding: 0; display: grid; place-items: center;
  border-radius: 50%; background: transparent; color: #183024;
  font: 500 21px/1 "Cormorant Garamond",Georgia,serif;
  transform: none; opacity: 1;
}
.weekend-story-page .ws-day.is-active > span { background: #183024; color: #f4efe5; }

/* Larger mobile names, pale-gold booking accents, and more room for itinerary photos. */
.home-page .v6-hero-title { left: 12px; right: 12px; }
.home-page .v6-hero-title h1 {
  font-size: clamp(54px,17vw,112px); gap: .08em; letter-spacing: -.045em;
}
.home-page .v6-hero-title h1 i { font-size: .30em; }
.travel-compact-page .travel-booking-facts .travel-book-button {
  background: #d5ba84 !important; color: #183024 !important; border-color: #d5ba84;
}
.travel-compact-page .travel-booking-heading h2 em,
.travel-compact-page .travel-booking-facts article > span {
  color: #d5ba84 !important;
}
.travel-compact-page .travel-booking-heading::after { background: #d5ba84; }
.weekend-story-page .ws-intro { padding-block: 8px; }
.weekend-story-page .ws-copy { padding: 8px 14px; }
.weekend-story-page .ws-copy h2,
.weekend-story-page .ws-panel[data-panel="1"] .ws-copy h2 {
  font-size: 25px; line-height: 1.05; margin: 0 0 8px;
}
.weekend-story-page .ws-copy li,
.weekend-story-page .ws-panel[data-panel="1"] .ws-copy li {
  box-sizing: border-box; min-height: 44px; padding-block: 5px;
}
.weekend-story-page .ws-event-venue { margin-top: 2px; }
.weekend-story-page .ws-dress { margin: 6px 0; }
.weekend-story-page .ws-sunday-note { margin: 6px 0; gap: 3px; }
.weekend-story-page .ws-guide { min-height: 40px; padding: 6px 18px; margin-top: 4px; }
.weekend-story-page .ws-panel figure {
  flex: 1 1 0; height: 0; min-height: 140px; max-height: none;
}

/* Featured story mobile homepage: one introduction and photographic directory screen. */
.home-page .mobile-intro-directory {
  padding: 16px 16px calc(20px + env(safe-area-inset-bottom,0px));
}
.home-page .mobile-intro-directory .v6-statement { padding: 8px 0 16px; }
.home-page .mobile-directory-intro h2 { font-size: clamp(27px,7.4vw,34px); margin-bottom: 12px; }
.home-page .mobile-directory-intro::after { margin-top: 12px; }
.home-page .mobile-intro-directory .home-featured-directory {
  display: grid; grid-template-columns: repeat(2,minmax(0,1fr));
  grid-template-rows: 1.2fr 1fr 1fr; gap: 8px; border: 0; padding: 0;
  flex: 1 1 0; min-height: 330px;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel {
  position: relative; display: block; width: auto; height: 100%; min-height: 0;
  padding: 0; border: 0; border-radius: 3px; overflow: hidden; background: #183024;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel:first-child { grid-column: 1 / -1; }
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel .v8-tile-art {
  position: absolute; inset: 0; width: 100%; height: 100%; max-height: none;
  object-fit: cover; transform: none;
}
.home-page .mobile-intro-directory .home-featured-directory .v8-tile-shade {
  display: block; position: absolute; inset: 0;
  background: linear-gradient(transparent 30%,rgba(8,23,15,.8));
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel > div:last-child {
  position: absolute; inset: auto 10px 12px; width: auto; padding: 0;
  display: flex; align-items: center; justify-content: space-between; gap: 4px;
  color: #f4efe5; z-index: 2;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel h3 {
  font-size: clamp(17px,4.6vw,23px); color: #f4efe5; line-height: 1.1;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel:first-child h3 { font-size: 25px; }
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel > div:last-child::after {
  color: #f4efe5; border-color: #f4efe5; background: transparent;
  width: 25px; height: 25px; flex: 0 0 25px;
}
.home-page .v6-rsvp { height: calc(100lvh - 56px); min-height: var(--mobile-screen); }
.travel-compact-page .v6-travel-title { left: 18px; right: 18px; }
.travel-compact-page .v6-travel-title h1 { font-size: clamp(50px,14.5vw,78px); line-height: 1.02; }
.travel-compact-page .v6-travel-title .v6-outline-button {
  background: transparent; color: #f4efe5; border-color: #f4efe5;
}

/* Reset the former five-row named grid for the featured-photo layout. */
.home-page .mobile-intro-directory .home-featured-directory {
  grid-template-areas: "note note" "weekend travel" "faq rsvp";
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel:nth-child(1) { grid-area: note; }
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel:nth-child(2) { grid-area: weekend; }
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel:nth-child(3) { grid-area: travel; }
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel:nth-child(4) { grid-area: faq; }
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel:nth-child(5) { grid-area: rsvp; }
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel .v8-tile-art {
  mask-image: none; -webkit-mask-image: none; opacity: 1; filter: none;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel > div:last-child { margin: 0; }
.note-page .note-opening-screen .note-photo h1 {
  font-size: clamp(43px,11.4vw,52px); line-height: 1.08;
}

/* A restrained forest wash unifies the mobile directory photographs. */
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel .v8-tile-art {
  filter: saturate(.65);
}
.home-page .mobile-intro-directory .home-featured-directory .v8-tile-shade {
  background: linear-gradient(180deg,rgba(24,48,36,.25) 0%,rgba(24,48,36,.32) 45%,rgba(10,30,20,.85) 100%);
  pointer-events: none;
}

/* Soft local contrast keeps mobile hero copy clear over moving footage. */
.travel-compact-page .v6-travel-title { isolation: isolate; }
.travel-compact-page .v6-travel-title::before {
  content: "";
  position: absolute;
  inset: -42px -18px -28px;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(9,27,18,.24) 0%, rgba(9,27,18,.14) 48%, transparent 74%);
}
.travel-compact-page .v6-travel-title > p,
.travel-compact-page .v6-travel-title h1 {
  color: #fffaf1;
  text-shadow: 0 1px 3px rgba(4,16,10,.45), 0 3px 14px rgba(4,16,10,.2);
}
.travel-compact-page .v6-travel-title h1 em { color: inherit; }

/* Repeat the booking gold as restrained accents through the benefits. */
.travel-compact-page .travel-benefit-grid button:nth-child(n) {
  border-color: rgba(164,135,84,.5);
}
.travel-compact-page .travel-benefit-grid button > span {
  color: #806336;
}
.travel-compact-page .travel-benefit-grid button::after {
  position: static;
  align-self: flex-end;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  color: #183024;
  background:
    linear-gradient(currentColor,currentColor) center / 10px 1px no-repeat,
    linear-gradient(currentColor,currentColor) center / 1px 10px no-repeat,
    #d5ba84;
}
.travel-compact-page .travel-benefit-grid button.is-active {
  border-color: #d5ba84;
}
.travel-compact-page .travel-benefit-grid button.is-active > span {
  color: #d5ba84;
}

/* Keep the plus in the tile flow, below the complete benefit label. */
.travel-compact-page .travel-benefit-grid {
  grid-template-rows: repeat(3, minmax(min-content, 1fr));
}
.travel-compact-page .travel-benefit-grid button:nth-child(n) {
  box-sizing: border-box;
  padding: 10px;
  gap: 6px;
}
.travel-compact-page .travel-benefit-grid button > span,
.travel-compact-page .travel-benefit-grid button > h3 {
  flex-shrink: 0;
  max-width: 100%;
}

/* Give the benefits introduction a distinct editorial hierarchy. */
.travel-compact-page .travel-benefits-heading {
  font-size: clamp(25px, 6.6vw, 32px);
  line-height: 1.12;
  font-weight: 500;
  margin-bottom: 20px;
}
.travel-compact-page .travel-benefits-heading > span { display: inline-block; }
.travel-compact-page .travel-benefits-heading > em {
  display: inline-block;
  font-size: 1.3em;
  font-weight: 400;
  line-height: 1.05;
  margin-top: 5px;
  color: #183024;
}
.travel-compact-page .travel-benefits-heading::after {
  content: "";
  display: block;
  width: 38px;
  height: 1px;
  background: #d5ba84;
  margin: 14px auto 0;
}

/* Show a clean still while iOS pauses or blocks decorative video playback. */
.travel-compact-page .video-hero {
  background: #10271d url("assets/images/xcaret-hero-first-frame.jpg") 58% center / cover no-repeat;
}
.travel-compact-page .v6-travel-video {
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease-out;
}
.travel-compact-page .v6-travel-video.is-playing { opacity: 1; }
.travel-compact-page .v6-travel-video::-webkit-media-controls,
.travel-compact-page .v6-travel-video::-webkit-media-controls-start-playback-button {
  display: none !important;
}

/* Three equal mobile day sections with live text and original outfit artwork. */
.dress-guide-lightbox > img,
.dress-guide-visual > img { display: none; }
.dress-guide-lightbox.is-open {
  display: block;
  box-sizing: border-box;
  height: 100dvh;
  padding: calc(56px + env(safe-area-inset-top, 0px)) 18px calc(12px + env(safe-area-inset-bottom, 0px));
  background: #0e2016;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.dress-guide-lightbox .dress-guide-lightbox-close {
  top: calc(6px + env(safe-area-inset-top, 0px));
  right: 12px;
}
.dress-mobile-stack {
  display: grid;
  grid-template-rows: repeat(3, minmax(min-content, 1fr));
  gap: 0;
  width: 100%;
  height: 100%;
  max-width: 520px;
  margin-inline: auto;
}
.dress-mobile-day {
  display: grid;
  grid-template-columns: minmax(0, .44fr) minmax(0, .56fr);
  grid-template-rows: auto 1fr;
  align-items: center;
  column-gap: 12px;
  row-gap: 6px;
  box-sizing: border-box;
  min-height: 0;
  padding: 10px 0;
  background: #0e2016;
  color: #f4efe5;
}
.dress-mobile-day + .dress-mobile-day { border-top: 1px solid rgba(213,186,132,.4); }
.dress-mobile-heading { grid-column: 1 / -1; text-align: center; }
.dress-mobile-heading h2 {
  margin: 0 0 3px;
  color: #d5ba84;
  font: 500 23px/1.05 "Cormorant Garamond", Georgia, serif;
  letter-spacing: .03em;
}
.dress-mobile-heading p {
  margin: 0;
  font: 400 16px/1.1 "Cormorant Garamond", Georgia, serif;
}
.dress-mobile-art {
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: 180px;
  aspect-ratio: 512 / 408;
  justify-self: center;
}
.dress-mobile-stack .dress-mobile-art img {
  position: absolute;
  display: block;
  top: -71.078431%;
  left: 0;
  width: 300%;
  height: 250.980392%;
  min-height: 0;
  max-width: none;
  max-height: none;
  aspect-ratio: auto;
  object-fit: fill;
  filter: none;
  box-shadow: none;
}
.dress-mobile-stack .dress-mobile-saturday img { left: -100%; }
.dress-mobile-stack .dress-mobile-sunday img { left: -200%; }
.dress-mobile-copy { display: grid; gap: 7px; }
.dress-mobile-copy p { margin: 0; font: 400 14px/1.2 "Cormorant Garamond", Georgia, serif; }
.dress-mobile-copy strong { font-weight: 500; color: #d5ba84; }
.dress-guide-visual {
  box-sizing: border-box;
  height: var(--mobile-screen);
  min-height: min-content;
  padding: 12px 18px;
}
.dress-guide-visual::after { display: none; }
.dress-guide-visual .dress-guide-expand { display: none; }
@media (max-height: 700px) {
  .dress-mobile-day { padding-block: 6px; row-gap: 4px; }
  .dress-mobile-heading h2 { font-size: 21px; }
  .dress-mobile-heading p { font-size: 14px; }
  .dress-mobile-copy { gap: 5px; }
  .dress-mobile-art { max-width: 130px; }
}

/* Approved warm gallery: photographs above quiet ivory captions. */
.home-page .mobile-intro-directory { background: #f3eee3; }
.home-page .mobile-intro-directory .v6-statement { background: transparent; }
.home-page .mobile-directory-intro::after { background: #a67c3d; }
.home-page .mobile-intro-directory .home-featured-directory {
  grid-template-rows: 1.35fr 1fr 1fr; gap: 10px; min-height: 360px;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel {
  display: grid; grid-template-rows: minmax(0,1fr) auto;
  background: transparent; border-radius: 0; overflow: visible;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel .v8-tile-art {
  position: relative; inset: auto; display: block; grid-row: 1;
  width: 100%; height: 100%; min-height: 0; border-radius: 3px;
  filter: saturate(.85) sepia(.1); object-position: center;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel:first-child .v8-tile-art,
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel:last-child .v8-tile-art { filter: none; object-position: 50% 68%; }
.home-page .mobile-intro-directory .home-featured-directory .v8-tile-shade { display: none; }
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel > div:last-child {
  position: relative; inset: auto; grid-row: 2; padding: 7px 0 2px;
  color: #183024; min-height: 28px; box-sizing: border-box;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel h3 {
  color: #183024; font-size: clamp(17px,4.5vw,21px); text-shadow: none;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel:first-child h3 { font-size: 25px; }
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel > div:last-child::after {
  color: #a0783d; border: 0; font-size: 23px; width: 23px; height: 23px; flex-basis: 23px;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel:focus-visible { outline: 2px solid #a0783d; outline-offset: 3px; }
.travel-compact-page .travel-booking-heading .travel-booking-summary.travel-rate-callout {
  color: #f4efe5 !important; font-size: 16px !important; line-height: 1.3;
}
.travel-compact-page .travel-booking-compact { --booking-space: 18px; grid-template-rows: minmax(160px,1fr) auto auto; }
.travel-compact-page .travel-booking-image { min-height: 160px; }

/* Keep both faces inside the featured directory photograph. */
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel:first-child .v8-tile-art {
  object-position: 50% 15%;
}
.travel-compact-page .travel-booking-facts .booking-block-footnote {
  display: block; margin: 14px 0 0; padding-top: 12px;
  color: #f4efe5; font-size: 14px; line-height: 1.3; text-align: center;
}

/* Clear question and answer hierarchy in the mobile FAQ. */
.faq-directory .faq-accordions summary {
  font: 600 1.125rem/1.4 "Cormorant Garamond", Georgia, serif;
  padding: 18px 0;
  color: #183024;
}
.faq-directory .faq-accordions summary b { color: #8a6936; }
.faq-directory .faq-accordions details[open] summary { padding-bottom: 14px; }
.faq-directory .faq-accordions details p {
  font: 400 1rem/1.6 "Cormorant Garamond", Georgia, serif;
  color: #394b40;
  margin: 0 0 18px;
  padding: 0 0 0 14px;
  border-left: 2px solid #b08b50;
}
.faq-directory .faq-accordions details p:last-child { margin-bottom: 24px; }

/* Approved mobile hero: classic invitation with inline event details. */
.home-page .v6-hero-title { left: 18px; right: 18px; }
.home-page .v6-hero-title > p {
  width: auto; max-width: 100%; margin: 0 auto 16px;
  font-size: 1.0625rem; font-weight: 500; line-height: 1.4;
  letter-spacing: .16em; text-shadow: none;
}
.home-page .hero-invitation-detail {
  display: block; margin-top: 6px; white-space: normal;
  font-size: 1.125rem; font-style: italic; font-weight: 400;
  letter-spacing: .015em; text-transform: lowercase;
}
.home-page .v6-hero-title h1 {
  font-size: clamp(43px,calc(12.8vw + 3px),83px); font-weight: 500;
  line-height: 1.08; letter-spacing: -.035em; gap: .12em;
  text-shadow: none;
}
.home-page .v6-hero-title h1 i { font-size: .8em; }
.home-page .v6-hero-meta {
  display: flex; flex-direction: row; justify-content: center;
  flex-wrap: wrap; column-gap: 8px; row-gap: 4px; margin-top: 14px;
  font-size: 1.0625rem; line-height: 1.4; text-shadow: none;
}
.home-page .v6-hero-meta > span { white-space: nowrap; }
.home-page .v6-hero-meta > span:last-child { font-style: normal; }
.home-page .v6-hero-meta > span + span::before { content: "·"; margin-right: 8px; }

/* Floating navigation and stronger mobile invitation composition. */
body.home-page header.topbar:not(.scrolled) {
  background: transparent; border: 0; box-shadow: none;
  backdrop-filter: none; -webkit-backdrop-filter: none;
}
body .topbar .menu {
  min-width: 44px; width: 44px; min-height: 44px; height: 44px;
  padding: 0; border: 0; border-radius: 0; background: transparent;
  font-size: 0; position: relative;
}
body .topbar .menu[aria-expanded="false"]::before {
  content: ""; position: absolute; width: 25px; height: 2px;
  top: 21px; left: 10px; background: currentColor;
  box-shadow: 0 -8px currentColor, 0 8px currentColor;
}
body.navigation-open .topbar .menu { font-size: 32px; }
.home-page .v6-hero-title h1 {
  font-size: clamp(44px,calc(13.4vw + 3px),87px);
  gap: .08em;
}
.home-page .v6-hero-title > p { margin-bottom: 12px; }
.home-page .v6-hero-meta { margin-top: 12px; }

/* Preserve compact mobile sections and clear selected-day navigation. */

body .topbar .menu:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
/* Size the homepage chapters to the visible phone viewport. */
.home-page .v6-hero { height: var(--mobile-screen); min-height: var(--mobile-screen); }
.home-page .mobile-intro-directory { height: var(--mobile-screen); min-height: var(--mobile-screen); }
.home-page .v6-rsvp { height: var(--mobile-screen); min-height: var(--mobile-screen); }

/* Full mobile hero and benefits viewport; retain date-only selection. */
/* Extend the photo beneath Safari's translucent bottom controls. */
.home-page .v6-hero {
  height: calc(100lvh + 56px + env(safe-area-inset-bottom, 0px));
  min-height: calc(100lvh + 56px + env(safe-area-inset-bottom, 0px));
}
.travel-compact-page .travel-value {
  height: calc(100dvh - var(--mobile-header-height));
  min-height: calc(100dvh - var(--mobile-header-height));
  padding-block: 16px;
}
.travel-compact-page .travel-benefits-group { flex: 1; min-height: 0; }
.travel-compact-page .travel-benefit-grid { flex: 1; min-height: 0; }
.travel-compact-page .travel-benefits-heading { margin-bottom: 16px; }

.note-page .note-opening-screen .note-photo img[src*="hendrys-note-170"] { object-position: 52% center; filter: none; }
.rsvp-form-page .rsvp-closing-image img[src*="hendrys-rsvp-176"] { object-fit: contain; object-position: center; filter: none; }
.registry-image img[src*="hendrys-registry-119"] { object-fit: contain; object-position: center; filter: none; }

/* Approved mobile hero: a soft shadow lifts the names from the sky. */
.home-page .v6-hero-title h1 {
  text-shadow: 0 1px 0 rgba(255, 250, 239, .55), 0 2px 6px rgba(24, 48, 36, .22);
}

/* Mobile benefit gallery with one concise inline description. */
.travel-benefit-reveal.is-mobile-open {
  top: max(12px,env(safe-area-inset-top,0px)); bottom: max(12px,env(safe-area-inset-bottom,0px));
  height: auto; max-height: none; overflow-y: auto;
}
.travel-benefit-reveal .travel-benefit-image { display: none; }
.travel-benefit-reveal .travel-benefit-detail { padding: 18px 18px 20px; text-align: center; }
.travel-benefit-reveal #travelBenefitTitle { font: 400 28px/1.1 "Cormorant Garamond",Georgia,serif; }
.travel-benefit-reveal .travel-benefit-circles {
  display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px 8px;
  border: 0; margin: 20px 0 0; padding: 0;
}
.travel-benefit-circles .travel-photo-circle {
  display: flex; flex-direction: column; align-items: center; gap: 5px; min-width: 0;
  padding: 0; border: 0; background: transparent; color: #183024;
  font: 400 16px/1.15 "Cormorant Garamond",Georgia,serif; cursor: pointer;
}
.travel-benefit-circles .travel-photo-circle:last-child:nth-child(3n+1) { grid-column: 2; }
.travel-benefit-circles .travel-photo-circle img {
  display: block; width: min(100%,84px); height: auto; aspect-ratio: 1;
  object-fit: cover; border-radius: 50%; padding: 3px; box-sizing: border-box;
  border: 1px solid #ae8a4e;
}
.travel-photo-circle.is-selected img { outline: 2px solid #ae8a4e; outline-offset: 2px; }
.travel-photo-circle:focus-visible { outline: 2px solid #183024; outline-offset: 4px; }
.travel-benefit-reveal .travel-inline-detail:not([hidden]) { display: block; border-top: 1px solid #ae8a4e; margin-top: 18px; padding-top: 12px; }
.travel-inline-detail h4 { font: 400 24px/1.15 "Cormorant Garamond",Georgia,serif; color: #183024; margin: 0 0 6px; }
.travel-inline-detail p { font: 400 16px/1.35 "Cormorant Garamond",Georgia,serif; color: #183024; margin: 0; }
.travel-benefit-reveal .travel-circle-note { display: block; font: 400 13px/1.3 "Cormorant Garamond",Georgia,serif; color: #465648; margin: 16px 0 0; }
@media(max-height:700px){
 .travel-benefit-reveal .travel-benefit-detail { padding-top: 12px; }
 .travel-benefit-reveal .travel-benefit-circles { gap: 10px 8px; margin-top: 14px; }
 .travel-benefit-circles .travel-photo-circle img { width: 64px; }
}

/* Balanced groups: seven in 2–2–3, smaller collections with larger photos. */
.travel-benefit-reveal .travel-benefit-circles {
  grid-template-columns: repeat(6,minmax(0,1fr)); gap: 14px 8px;
}
.travel-benefit-circles .travel-photo-circle,
.travel-benefit-circles .travel-photo-circle:last-child:nth-child(3n+1) { grid-column: span 2; }
.travel-benefit-circles[data-count="7"] .travel-photo-circle:nth-child(1),
.travel-benefit-circles[data-count="7"] .travel-photo-circle:nth-child(3) { grid-column: 2 / span 2; }
.travel-benefit-circles[data-count="7"] .travel-photo-circle:nth-child(2),
.travel-benefit-circles[data-count="7"] .travel-photo-circle:nth-child(4) { grid-column: 4 / span 2; }
.travel-benefit-circles .travel-photo-circle img { width: min(100%,100px); padding: 2px; filter: none; opacity: 1; }
.travel-benefit-circles[data-count="2"] .travel-photo-circle,
.travel-benefit-circles[data-count="3"] .travel-photo-circle { grid-column: span 3; }
.travel-benefit-circles[data-count="3"] .travel-photo-circle:last-child { grid-column: 2 / span 4; }
.travel-benefit-circles[data-count="2"] .travel-photo-circle img,
.travel-benefit-circles[data-count="3"] .travel-photo-circle img { width: min(100%,138px); }
.travel-benefit-reveal .travel-inline-detail .travel-selected-photo {
  display: block; width: 100%; height: clamp(130px,23dvh,200px); object-fit: contain;
  background: #e9e4d9; border-radius: 3px; margin: 0 auto 12px;
  filter: none; opacity: 1;
}
@media(max-height:700px){
 .travel-benefit-circles[data-count="7"] .travel-photo-circle img { width: min(100%,82px); }
 .travel-benefit-circles[data-count="2"] .travel-photo-circle img,
 .travel-benefit-circles[data-count="3"] .travel-photo-circle img { width: min(100%,112px); }
}

/* Leave the complete selected description clear of the dialog's lower edge. */
.travel-benefit-reveal .travel-benefit-detail {
  padding-bottom: calc(32px + env(safe-area-inset-bottom, 0px));
}
.travel-benefit-reveal .travel-inline-detail { scroll-margin-top: 76px; }

/* Compact circles leave room for the photo and copy without advancing the panel. */
.travel-benefit-reveal .travel-benefit-detail { padding: 10px 18px 16px; }
.travel-benefit-reveal #travelBenefitTitle { font-size: 24px; margin-bottom: 6px; }
.travel-benefit-reveal .travel-benefit-circles { gap: 8px 10px; margin-top: 12px; }
.travel-benefit-circles .travel-photo-circle { gap: 3px; font-size: 14px; line-height: 1.15; }
.travel-benefit-circles[data-count="7"] .travel-photo-circle img { width: clamp(44px,7.8dvh,64px); }
.travel-benefit-circles[data-count="2"] .travel-photo-circle img,
.travel-benefit-circles[data-count="3"] .travel-photo-circle img { width: clamp(64px,11dvh,92px); }
.travel-benefit-reveal .travel-inline-detail:not([hidden]) { margin-top: 10px; padding-top: 8px; }
.travel-benefit-reveal .travel-inline-detail .travel-selected-photo { height: clamp(90px,18dvh,150px); margin-bottom: 8px; }
.travel-inline-detail h4 { font-size: 24px; margin-bottom: 4px; }
.travel-inline-detail p { font-size: 16px; line-height: 1.3; }
.travel-benefit-reveal .travel-circle-note { margin-top: 10px; }

/* A selected experience leads the popup; selectors remain in a stable position. */
.travel-benefit-reveal.is-mobile-open { display: flex; flex-direction: column; }
.travel-benefit-reveal .benefit-mobile-toolbar { flex: 0 0 auto; }
.travel-benefit-reveal .travel-benefit-detail {
  flex: 1; min-height: min-content; display: grid;
  grid-template-columns: minmax(0,1fr);
  grid-template-rows: auto minmax(205px,1fr) auto auto;
  gap: 10px; padding: 12px 18px 16px;
}
.travel-benefit-reveal #travelBenefitTitle { grid-row: 1; margin: 0; }
.travel-benefit-reveal #travelBenefitCopy { display: none; }
.travel-benefit-reveal .travel-inline-detail:not([hidden]) {
  grid-row: 2; display: grid; grid-template-rows: minmax(90px,1fr) auto auto;
  gap: 6px; margin: 0; padding: 0; border: 0; min-height: 0;
}
.travel-benefit-reveal .travel-inline-detail .travel-selected-photo {
  height: 100%; min-height: 0; width: 100%; margin: 0; object-fit: contain;
}
.travel-benefit-reveal .travel-inline-detail h4 { margin: 0; }
.travel-benefit-reveal .travel-inline-detail p { min-height: 3.9em; margin: 0; }
.travel-benefit-reveal .travel-benefit-circles { grid-row: 3; margin: 0; gap: 8px 10px; }
.travel-benefit-reveal .travel-circle-note { grid-row: 4; margin: 0; }
.travel-benefit-circles[data-count="7"] .travel-photo-circle img { width: clamp(44px,7dvh,60px); }
.travel-benefit-circles[data-count="2"] .travel-photo-circle img,
.travel-benefit-circles[data-count="3"] .travel-photo-circle img { width: clamp(60px,9dvh,78px); }

/* Guided mobile gallery: photo and text occupy separate, bounded rows. */
.travel-benefit-reveal.is-mobile-open { height: calc(100dvh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)); }
.travel-benefit-reveal .travel-benefit-detail {
  display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0;
  padding: 14px 18px 18px; gap: 12px;
}
.travel-benefit-reveal #travelBenefitTitle { flex: 0 0 auto; font-size: 26px; }
.travel-benefit-reveal .travel-benefit-circles,
.travel-benefit-reveal .travel-inline-detail:not([hidden]),
.travel-benefit-reveal .travel-circle-note { display: none; }
.travel-benefit-reveal .benefit-guided {
  display: grid; flex: 1 1 auto; min-height: 440px;
  grid-template-rows: auto minmax(160px,1fr) auto auto; gap: 14px;
  color: #183024; text-align: left;
}
.benefit-guided select { width: 100%; min-height: 44px; padding: 8px 12px; background: #f4efe5; color: #183024; border: 1px solid #778374; border-radius: 4px; font: 400 20px/1.2 "Cormorant Garamond",Georgia,serif; }
.travel-benefit-reveal .benefit-guided figure { position: relative; margin: 0; min-height: 0; height: auto; overflow: hidden; background: #e9e4d9; border-radius: 3px; }
.travel-benefit-reveal .benefit-guided figure img { position: absolute; inset: 0; width: 100%; height: 100%; max-height: 100%; min-height: 0; object-fit: cover; object-position: center; filter: none; }
.benefit-guided .guided-copy { position: relative; background: #f4efe5; padding: 0; color: #183024; }
.benefit-guided .guided-copy h4 { margin: 0 0 8px; font: 400 26px/1.1 "Cormorant Garamond",Georgia,serif; color: #183024; }
.benefit-guided .guided-copy p { margin: 0; font: 400 16px/1.35 "Cormorant Garamond",Georgia,serif; color: #183024; }
.guided-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; }
.guided-nav button { min-height: 44px; border: 1px solid #183024; border-radius: 4px; padding: 8px; background: transparent; color: #183024; font: 400 16px/1.2 "Cormorant Garamond",Georgia,serif; }
.guided-nav .guided-next { background: #183024; color: #f4efe5; }
.guided-nav button:disabled { opacity: .4; }
.guided-nav span { font: 400 14px/1.2 "Cormorant Garamond",Georgia,serif; }
.benefit-guided :is(button,select):focus-visible { outline: 2px solid #a67c3d; outline-offset: 3px; }

/* Visual directory: generous image cards, then a separate detail view. */
.travel-benefit-reveal .travel-benefit-detail { gap: 8px; }
.travel-benefit-reveal #travelBenefitCopy { display: block; font-size: 16px; }
.travel-benefit-reveal .travel-benefit-circles {
  display: grid; flex: 1 1 auto; min-height: 360px;
  grid-template-columns: repeat(2,minmax(0,1fr));
  grid-template-rows: repeat(4,minmax(0,1fr)); gap: 8px; margin: 6px 0 0;
}
.travel-benefit-reveal .travel-benefit-circles .travel-photo-circle:nth-child(n) {
  position: relative; display: grid; grid-template-rows: minmax(0,1fr) auto;
  grid-column: auto; gap: 0; min-height: 0; overflow: hidden;
  border: 1px solid #b1aa97; border-radius: 4px; text-align: left; background: #f4efe5;
}
.travel-benefit-reveal .travel-benefit-circles[data-count="7"] .travel-photo-circle:last-child { grid-column: 1 / -1; }
.travel-benefit-reveal .travel-benefit-circles .travel-photo-circle:nth-child(n) img {
  width: 100%; height: 100%; min-height: 0; min-width: 0; max-height: 100%;
  aspect-ratio: auto; object-fit: cover; border: 0; border-radius: 0; padding: 0; outline: 0;
}
.travel-benefit-reveal .travel-photo-circle span { width: 100%; box-sizing: border-box; padding: 6px 8px; font-size: 16px; line-height: 1.1; color: #183024; background: #f4efe5; }
.travel-benefit-reveal .travel-photo-circle span::after { content: ' →'; color: #8a6936; }
.travel-benefit-reveal .travel-benefit-circles[data-count="2"] { grid-template-rows: minmax(0,1fr); }
.travel-benefit-reveal .travel-benefit-circles[data-count="3"] { grid-template-rows: repeat(2,minmax(0,1fr)); }
.travel-benefit-reveal .travel-benefit-circles[data-count="3"] .travel-photo-circle:last-child { grid-column: 1 / -1; }
.travel-benefit-reveal.is-directory-detail .travel-benefit-circles,
.travel-benefit-reveal.is-directory-detail #travelBenefitCopy { display: none; }
.travel-benefit-reveal.is-directory-detail .travel-inline-detail:not([hidden]) {
  display: grid; flex: 1 1 auto; min-height: 340px;
  grid-template-rows: auto minmax(140px,1fr) auto auto; gap: 12px;
  border: 0; margin: 0; padding: 0; background: #f4efe5;
}
.travel-benefit-reveal .benefit-directory-back {
  display: block; justify-self: start; min-height: 44px; padding: 8px 0; border: 0;
  background: transparent; color: #183024; font: 400 17px/1.2 "Cormorant Garamond",Georgia,serif;
}
.travel-benefit-reveal .directory-detail-photo { position: relative; height: auto; min-height: 0; margin: 0; overflow: hidden; background: #e9e4d9; }
.travel-benefit-reveal .travel-inline-detail .directory-detail-photo .travel-selected-photo {
  position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; margin: 0; object-fit: contain;
}
.travel-benefit-reveal .travel-inline-detail h4 { color: #183024; background: #f4efe5; margin: 0; font-size: 24px; }
.travel-benefit-reveal .travel-inline-detail p { min-height: 0; color: #183024; background: #f4efe5; margin: 0; font-size: 16px; }

/* Photo proportions follow the content rather than stretching sparse directories. */
.travel-benefit-reveal .travel-benefit-circles[data-count="2"],
.travel-benefit-reveal .travel-benefit-circles[data-count="3"] {
  grid-template-columns: minmax(0,1fr);
  grid-template-rows: repeat(2,minmax(0,1fr));
  min-height: 0;
}
.travel-benefit-reveal .travel-benefit-circles[data-count="3"] {
  grid-template-rows: repeat(3,minmax(0,1fr));
}
.travel-benefit-reveal .travel-benefit-circles[data-count="2"] .travel-photo-circle:nth-child(n),
.travel-benefit-reveal .travel-benefit-circles[data-count="3"] .travel-photo-circle:nth-child(n) {
  grid-column: 1 / -1;
}
/* Center content-sized details inside the mobile safe viewport. */
.travel-benefit-reveal.is-mobile-open.is-directory-detail {
  height: auto;
  max-height: calc(100dvh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));
  top: calc((100dvh + env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)) / 2);
  bottom: auto;
  margin-block: 0;
  transform: translateY(-50%);
}
.travel-benefit-reveal.is-directory-detail .travel-benefit-detail { flex: 0 0 auto; }
.travel-benefit-reveal.is-directory-detail .travel-inline-detail:not([hidden]) {
  display: flex; flex-direction: column; flex: 0 0 auto;
  min-height: 0; gap: 10px;
}
.travel-benefit-reveal .benefit-directory-back { align-self: flex-start; }
.travel-benefit-reveal .directory-detail-photo {
  display: flex; justify-content: center; align-items: flex-start;
  flex: 0 0 auto; height: auto; background: transparent;
}
.travel-benefit-reveal .travel-inline-detail .directory-detail-photo .travel-selected-photo {
  position: static; display: block; inset: auto;
  width: auto; height: auto; max-width: 100%; max-height: 46dvh;
  min-height: 0; object-fit: contain;
}
.travel-benefit-reveal .travel-inline-detail h4,
.travel-benefit-reveal .travel-inline-detail p { flex: 0 0 auto; }

/* A full canvas beneath Safari chrome, with a clean chapter landing. */
html:has(body.travel-compact-page) {
  scroll-snap-type: y proximity;
  scroll-padding-top: var(--mobile-header-height);
}
.travel-compact-page .travel-value {
  box-sizing: border-box;
  height: 100lvh;
  min-height: 100lvh;
  padding-top: 24px;
  padding-bottom: max(24px, env(safe-area-inset-bottom, 0px));
  scroll-margin-top: 0;
  scroll-snap-align: start;
}
.travel-compact-page .travel-benefit-grid {
  grid-template-rows: repeat(3, minmax(88px, 1fr));
}

/* A focused detail heading is an announcement target, not a button. */
.travel-benefit-reveal .travel-inline-detail h4:focus {
  outline: none;
  box-shadow: none;
}
/* Lift the note without changing the approved section or tile heights. */
.travel-compact-page .travel-value > .travel-fineprint {
  position: relative;
  top: -24px;
}

/* One mobile gallery: visible selectors and a persistent photo/description. */
.travel-benefit-reveal.is-inline-gallery.is-mobile-open {
  top: max(16px,env(safe-area-inset-top,0px));
  bottom: max(16px,env(safe-area-inset-bottom,0px));
  height: calc(100dvh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));
  max-height: none; margin-block: 0; transform: none;
}
.travel-benefit-reveal.is-inline-gallery .travel-benefit-detail { gap: 12px; }
.travel-benefit-reveal.is-inline-gallery #travelBenefitTitle { font-size: 24px; }
.travel-benefit-reveal.is-inline-gallery #travelBenefitCopy { display: none; }
.travel-benefit-reveal.is-inline-gallery .travel-benefit-circles {
  display: flex; flex: 0 0 auto; width: 100%; min-height: 0;
  gap: 10px; overflow-x: auto; margin: 0; padding: 3px 2px 8px;
  scroll-snap-type: x proximity; overscroll-behavior-x: contain;
}
.travel-benefit-reveal.is-inline-gallery .travel-benefit-circles .travel-photo-circle:nth-child(n) {
  display: flex; flex-direction: column; flex: 0 0 92px;
  min-width: 0; height: auto; border: 1px solid #b1aa97;
  scroll-snap-align: start; overflow: hidden;
}
.travel-benefit-reveal.is-inline-gallery .travel-benefit-circles .travel-photo-circle:nth-child(n) img {
  width: 100%; height: 60px; max-height: none; flex: 0 0 60px; object-fit: cover;
}
.travel-benefit-reveal.is-inline-gallery .travel-photo-circle span {
  padding: 5px 4px; font-size: 14px; line-height: 1.1; text-align: center;
}
.travel-benefit-reveal.is-inline-gallery .travel-photo-circle span::after { content: none; }
.travel-benefit-reveal.is-inline-gallery .travel-benefit-circles .travel-photo-circle.is-selected {
  border-color: #8a6936; box-shadow: 0 0 0 2px #b99a60;
}
.travel-benefit-reveal.is-inline-gallery .travel-photo-circle.is-selected span { background: #183024; color: #f4efe5; }
.travel-benefit-reveal.is-inline-gallery .travel-inline-detail:not([hidden]) {
  display: flex; flex-direction: column; justify-content: center;
  flex: 1 1 auto; min-height: 0; gap: 10px; border: 0; padding: 0; margin: 0;
}
.travel-benefit-reveal.is-inline-gallery .benefit-directory-back { display: none; }
.travel-benefit-reveal.is-inline-gallery .travel-inline-detail .directory-detail-photo {
  flex: 0 1 auto; min-height: 0; background: transparent;
}
.travel-benefit-reveal.is-inline-gallery .travel-inline-detail .directory-detail-photo img {
  position: static; width: auto; height: auto; max-width: 100%; max-height: 34dvh;
  object-fit: contain; flex: 0 1 auto; min-width: 0;
}
.travel-benefit-reveal.is-inline-gallery .travel-inline-detail h4 { font-size: 24px; line-height: 1.1; }
.travel-benefit-reveal.is-inline-gallery .travel-inline-detail p { font-size: 16px; line-height: 1.3; }

/* Distinct gallery headings and visible horizontal browsing controls. */
.travel-benefit-reveal.is-inline-gallery .benefit-mobile-toolbar {
  background: #183024; color: #f4efe5; border-bottom-color: #b99a60;
}
.travel-benefit-reveal.is-inline-gallery .benefit-mobile-toolbar > span { font-weight: 600; }
.travel-benefit-reveal.is-inline-gallery .benefit-mobile-toolbar .travel-benefit-mobile-close {
  color: #f4efe5; border-color: #d5ba84; background: transparent;
}
.travel-benefit-reveal.is-inline-gallery .travel-inline-detail h4 { font-weight: 600; }
.travel-benefit-reveal.is-inline-gallery .benefit-gallery-rail {
  display: grid; grid-template-columns: 32px minmax(0,1fr) 32px;
  align-items: center; gap: 5px; flex: 0 0 auto; min-width: 0;
}
.travel-benefit-reveal.is-inline-gallery .benefit-gallery-arrow {
  display: block; width: 32px; min-height: 44px; padding: 0;
  border: 1px solid #b99a60; border-radius: 18px;
  color: #183024; background: #eee3cb; font: 400 28px/1 Georgia,serif;
}
.travel-benefit-reveal.is-inline-gallery .benefit-gallery-arrow:disabled { opacity: .3; }
.travel-benefit-reveal.is-inline-gallery .benefit-gallery-arrow:focus-visible { outline: 2px solid #183024; outline-offset: 2px; }
.travel-benefit-reveal.is-inline-gallery .benefit-gallery-rail .travel-benefit-circles { box-sizing: border-box; min-width: 0; }

/* Reset legacy grid placement inside the new horizontal thumbnail rail. */
.travel-benefit-reveal.is-inline-gallery .benefit-gallery-rail {
  width: 100%; max-width: 100%; box-sizing: border-box; align-self: stretch;
  grid-template-rows: auto;
}
.travel-benefit-reveal.is-inline-gallery .benefit-gallery-rail .travel-benefit-circles {
  grid-area: 1 / 2 / 2 / 3; justify-self: stretch;
}
.travel-benefit-reveal.is-inline-gallery .benefit-gallery-arrow:first-child { grid-area: 1 / 1 / 2 / 2; }
.travel-benefit-reveal.is-inline-gallery .benefit-gallery-arrow:last-child { grid-area: 1 / 3 / 2 / 4; }
.travel-benefit-reveal.is-inline-gallery .benefit-mobile-toolbar {
  display: grid; grid-template-columns: 44px minmax(0,1fr) 44px;
  gap: 4px; padding-inline: 10px;
}
.travel-benefit-reveal.is-inline-gallery .benefit-mobile-toolbar > span {
  grid-area: 1 / 2 / 2 / 3; text-align: center;
}
.travel-benefit-reveal.is-inline-gallery .benefit-mobile-toolbar .travel-benefit-mobile-close {
  grid-area: 1 / 3 / 2 / 4;
}

/* Three complete thumbnails, with navigation tucked into the side padding. */
.travel-benefit-reveal.is-inline-gallery .benefit-gallery-rail {
  width: calc(100% + 24px); max-width: none; margin-inline: -12px;
  grid-template-columns: 26px minmax(0,1fr) 26px; gap: 4px;
}
.travel-benefit-reveal.is-inline-gallery .benefit-gallery-arrow { width: 26px; }
.travel-benefit-reveal.is-inline-gallery .benefit-gallery-rail .travel-benefit-circles {
  gap: 8px; padding-inline: 2px; scroll-snap-type: x mandatory;
}
.travel-benefit-reveal.is-inline-gallery .travel-benefit-circles .travel-photo-circle:nth-child(n) {
  box-sizing: border-box; flex: 0 0 calc((100% - 16px) / 3);
  scroll-snap-align: start;
}

/* Short galleries need no navigation; center their complete set of cards. */
.travel-benefit-reveal.is-inline-gallery:is([data-count="2"],[data-count="3"]) .benefit-gallery-arrow {
  display: none;
}
.travel-benefit-reveal.is-inline-gallery:is([data-count="2"],[data-count="3"]) .benefit-gallery-rail {
  width: 100%; margin-inline: 0; grid-template-columns: minmax(0,1fr);
}
.travel-benefit-reveal.is-inline-gallery:is([data-count="2"],[data-count="3"]) .benefit-gallery-rail .travel-benefit-circles {
  grid-area: 1 / 1 / 2 / 2; justify-content: center;
}

/* Midpoint between the compact directory and full large-viewport version. */
.home-page .mobile-intro-directory {
  height: calc((100lvh + var(--mobile-screen)) / 2);
  min-height: calc((100lvh + var(--mobile-screen)) / 2);
  box-sizing: border-box;
}
.home-page .mobile-intro-directory .home-featured-directory {
  grid-template-rows: minmax(0,1.65fr) minmax(0,1fr) minmax(0,1fr);
}

/* Homepage invitation: a stronger namesake moment and a warmer golden-hour glow.
   The photograph itself remains unchanged; this is a transparent light layer only. */
.home-page .v6-hero-title h1 {
  font-size: clamp(50px, calc(14.6vw + 5px), 97px);
  gap: .06em;
}
.home-page .v6-hero-vignette {
  background:
    radial-gradient(ellipse 62% 26% at 30% 59%, rgba(255, 210, 137, .30) 0%, rgba(255, 193, 92, .14) 34%, rgba(255, 193, 92, 0) 70%),
    linear-gradient(180deg, rgba(255, 244, 217, .02) 0%, rgba(255, 215, 145, 0) 40%, rgba(72, 43, 18, .05) 100%);
}
