/* Wave 2 — footer, film, titles, FAQ, couples, about, contact, promise, quote */

/* --- Radical minimal footer, all-centered, compact ------------------------- */
.site-footer {
  padding: 2.25rem var(--pad) 5.25rem;
  text-align: center;
  font-size: 0.84rem;
  line-height: 1.5;
}
.footer-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.7rem;
  max-width: 28rem;
  margin-inline: auto;
  padding: 0;
}
.footer-logo-link { display: block; line-height: 0; }
.site-footer .footer-logo,
img.footer-logo {
  height: 2.35rem;
  width: auto;
  margin: 0 auto 0.15rem;
  display: block;
}
.footer-addr,
.footer-addr-sub,
.footer-contact,
.footer-bottom,
.footer-nav {
  margin: 0;
  text-align: center;
}
.footer-addr a {
  color: inherit;
  text-decoration: none;
  letter-spacing: 0.01em;
}
.footer-addr-sub {
  color: var(--on-dark-muted, rgba(244, 239, 230, 0.62));
  font-size: 0.75rem;
  margin-top: -0.35rem;
}
.footer-contact { font-size: 0.88rem; }
.footer-contact .sep { opacity: 0.55; }
.footer-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.3rem 0.8rem;
  padding: 0.35rem 0 0.15rem;
  font-size: 0.8rem;
}
.footer-nav a { white-space: nowrap; text-decoration: none; }
.footer-mail {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.45rem;
  width: 100%;
  max-width: 22rem;
  margin: 0.35rem 0 0.15rem;
}
.footer-mail input[type="email"] {
  flex: 1 1 10rem;
  min-height: 2.6rem;
  min-width: 0;
  border: 0;
  border-radius: 0;
  background: rgba(244, 239, 230, 0.1);
  color: var(--cream, #F4EFE6);
  padding: 0 0.85rem;
  font: inherit;
  font-size: 0.88rem;
}
.footer-mail input[type="email"]::placeholder { color: rgba(244, 239, 230, 0.5); }
.footer-mail .btn {
  min-height: 2.6rem;
  padding: 0 1.05rem;
  flex: 0 0 auto;
}
.footer-mail .mail-status {
  flex: 1 1 100%;
  margin: 0.15rem 0 0;
  font-size: 0.8rem;
  text-align: center;
}
.footer-mail .mail-status[data-state="ok"] { color: var(--cream, #F4EFE6); }
.footer-mail .mail-status[data-state="err"] { color: #f0c9c0; }
.footer-bottom {
  margin-top: 0.45rem;
  padding-top: 0.7rem;
  font-size: 0.7rem;
  color: var(--on-dark-muted, rgba(244, 239, 230, 0.62));
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.footer-bottom a { text-decoration: none; }
.footer-grid, .footer-cols, .footer-col, .footer-tax, .footer-brand { display: none; }

/* --- Section titles: one line at 390, shorten copy rather than shrink type -- */
@media (max-width: 800px) {
  .section h2,
  .section-sm h2,
  .why-copy h2,
  .cta-band h2,
  .offer-band h2,
  .reviews-band h2,
  .reviews h2,
  .measure h2,
  .split > .stack > h2,
  .manifesto h2,
  .title-oneline,
  .faq-heading,
  h2.title-oneline {
    white-space: nowrap;
    text-wrap: nowrap;
    max-width: none !important;
    overflow: visible;
    padding-inline: 0.12em;
    font-size: clamp(1.5rem, 6.4vw, 2.05rem);
    text-align: center;
    margin-inline: auto;
  }
  .offer-band h2 { max-width: none !important; }
  .page-hero h1 {
    max-width: none;
    text-wrap: nowrap;
    white-space: nowrap;
    overflow: visible;
    padding-inline: 0.15em;
    font-size: clamp(1.65rem, 7.4vw, 2.45rem);
  }
  /* Home rotating headlines: one line each, size set in the rotator block below */
  .hero-bright .hero-copy-sky h1.hero-rotator {
    white-space: normal;
    text-wrap: nowrap;
    max-width: none;
  }
  .meta-oneline {
    white-space: nowrap;
    overflow: visible;
    font-size: clamp(0.88rem, 3.4vw, 1.05rem);
  }
}
.hero-sub {
  display: block;
  margin-top: 0.4rem;
  font-family: var(--font-body, Inter, sans-serif);
  font-size: 0.95rem;
  letter-spacing: 0.06em;
  text-transform: none;
  font-style: italic;
  font-family: var(--font-display, "Cormorant Garamond", serif);
  opacity: 0.92;
}

/* --- Film: 70–80vh on mobile, not a scroll wall ----------------------------- */
.film-frame {
  height: min(75vh, 38rem);
  height: min(75dvh, 38rem);
  max-height: 80vh;
  max-height: 80dvh;
}
@media (max-width: 800px) {
  .film-frame {
    height: min(74vh, 34rem);
    height: min(74dvh, 34rem);
    max-height: 80vh;
    max-height: 80dvh;
    min-height: 22rem;
  }
}

/* --- Sandy intro pull-quote ------------------------------------------------ */
.sandy-intro { text-align: center; }
.sandy-quote {
  margin: 0.4rem 0 0;
  border: 0;
  padding: 0;
}
.sandy-quote p {
  font-family: var(--font-display, "Cormorant Garamond", serif);
  font-style: italic;
  font-size: clamp(1.45rem, 5.4vw, 2.05rem);
  line-height: 1.25;
  margin: 0;
}
.sandy-attr {
  margin-top: 0.7rem !important;
  font-family: var(--font-body, Inter, sans-serif);
  font-style: normal !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.75;
}
.sandy-place {
  margin-top: 0.25rem;
  font-size: 0.9rem;
  opacity: 0.8;
}
.sandy-intro .proof,
.sandy-intro .btn-row { justify-content: center; text-align: center; }
.sandy-intro .proof { margin-inline: auto; }

/* --- Promise accordion: smaller type, no left clip ------------------------- */
.promise-terms {
  max-width: 28rem;
  margin-inline: auto;
  overflow: visible;
}
.promise-terms-body {
  padding: 0.55rem 1.1rem 0.85rem 1.35rem;
  overflow: visible;
}
.promise-terms-body p {
  font-size: 0.8rem;
  line-height: 1.5;
  margin: 0 0 0.4rem;
}
.promise-terms summary { overflow: visible; }

/* --- Numbered lists: label + one muted context line ------------------------ */
.process li,
.journey-steps li {
  align-items: start;
}
.process .step-context,
.journey-steps .step-context {
  display: block;
  margin: 0.2rem 0 0;
  font-size: 0.84rem;
  line-height: 1.45;
  font-weight: 400;
  color: var(--muted, #5c6562);
  font-family: var(--font-body, Inter, sans-serif);
  max-width: 28rem;
}
.forest .step-context,
.dark .step-context { color: var(--on-dark-muted, rgba(244,239,230,0.7)); }
#how-h { overflow: visible; padding-inline: 0.2em; }

/* --- FAQ -------------------------------------------------------------------- */
.faq-heading,
#faq-h {
  text-align: center;
  margin-inline: auto;
  white-space: nowrap;
}
.faq-lede {
  text-align: center;
  max-width: 28rem;
  margin: 0.7rem auto 0;
  font-family: var(--font-display, "Cormorant Garamond", serif);
  font-size: 1.15rem;
  font-style: italic;
  line-height: 1.4;
}
.faq-group { margin-top: 1.75rem; }
.faq-group-title {
  font-family: var(--font-body, Inter, sans-serif);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted, #5c6562);
  margin: 0 0 0.7rem;
  text-align: center;
}
.faq details {
  border-bottom: 1px solid var(--rule, rgba(31,38,36,0.12));
  padding: 0.65rem 0;
}
.faq details summary {
  cursor: pointer;
  font-weight: 500;
  padding-right: 1.5rem;
  list-style: none;
}
.faq details summary::-webkit-details-marker { display: none; }
.faq .answer { padding: 0.45rem 0.15rem 0.2rem; font-size: 0.95rem; }
.faq-more {
  text-align: center;
  margin-top: 1.25rem;
}
.faq-sources {
  margin-top: 2.25rem;
  max-width: 38rem;
  margin-inline: auto;
  font-size: 0.8rem;
  color: var(--muted, #5c6562);
}
.faq-sources summary {
  cursor: pointer;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 500;
}
.faq-sources .sources-body { padding: 0.75rem 0 0; }
.faq-sources h3 {
  font-size: 0.82rem;
  margin: 0.9rem 0 0.35rem;
  font-family: var(--font-body, Inter, sans-serif);
  letter-spacing: 0.04em;
}
.faq-sources ul { padding-left: 1.15rem; margin: 0; }
.faq-sources li { margin: 0.3rem 0; }
.faq-tease { padding-top: 2.25rem; padding-bottom: 2.25rem; }

/* --- Couples: cinematic, compact ------------------------------------------- */
.couples-hero {
  position: relative;
  background: #1a1410;
  color: var(--cream, #F4EFE6);
}
.couples-hero-frame {
  position: relative;
  width: 100%;
  height: min(78vh, 40rem);
  height: min(78dvh, 40rem);
  max-height: 85vh;
  overflow: hidden;
}
.couples-hero-frame video,
.couples-hero-frame img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  display: block;
}
.couples-hero-veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(20, 14, 10, 0.72) 0%,
    rgba(20, 14, 10, 0.12) 48%,
    rgba(20, 14, 10, 0.2) 100%
  );
  pointer-events: none;
}
.couples-hero-copy {
  position: absolute;
  inset: auto 0 0 0;
  z-index: 2;
  padding: 0 1.5rem 1.65rem;
  text-align: center;
  color: var(--cream, #F4EFE6);
}
.couples-hero-copy h1 {
  color: inherit;
  font-size: clamp(1.85rem, 8vw, 3rem);
  max-width: 11em;
  margin-inline: auto;
  white-space: normal;
  text-wrap: balance;
  line-height: 1.12;
  text-shadow: 0 1px 18px rgba(0,0,0,0.4);
}
@media (max-width: 400px) {
  .couples-hero-copy h1 { font-size: 1.95rem; }
}
.couples-hero-copy .lede,
.couples-hero-copy .hero-lede {
  margin: 0.55rem auto 0;
  max-width: 28ch;
  font-size: 1.02rem;
  line-height: 1.4;
  color: inherit;
  text-shadow: 0 1px 12px rgba(0,0,0,0.4);
}
.couples-hero-copy .btn-row { justify-content: center; margin-top: 0.95rem; }
.couples-beats {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding: 0 0 0.5rem;
  margin: 0;
  list-style: none;
}
.couples-beats li {
  flex: 0 0 78%;
  scroll-snap-align: start;
  max-width: 20rem;
}
.couples-beats figure { margin: 0; }
.couples-beats img {
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  display: block;
  border-radius: var(--radius, 2px);
}
.couples-beats figcaption {
  margin-top: 0.55rem;
  font-family: var(--font-display, "Cormorant Garamond", serif);
  font-style: italic;
  font-size: 1.05rem;
  text-align: center;
}
@media (min-width: 801px) {
  .couples-beats { display: grid; grid-template-columns: repeat(4, 1fr); overflow: visible; gap: 1.15rem; }
  .couples-beats li { flex: none; max-width: none; }
  .couples-hero-frame { height: min(88vh, 48rem); }
}
.couples-quote {
  text-align: center;
  max-width: 22rem;
  margin: 0 auto;
  font-family: var(--font-display, "Cormorant Garamond", serif);
  font-style: italic;
  font-size: clamp(1.25rem, 3.6vw, 1.7rem);
  line-height: 1.35;
  border: 0;
}
.couples-avail {
  text-align: center;
  max-width: 32rem;
  margin: 1rem auto 0;
  font-size: 0.95rem;
  line-height: 1.5;
}
.couples-gift {
  text-align: center;
  margin: 0;
  font-size: 0.95rem;
}
.photo-credit {
  text-align: center;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  color: var(--muted, #5c6562);
  margin: 0.5rem 0 0;
}
.photo-credit a { color: inherit; }

/* --- About: founder story -------------------------------------------------- */
.about-hero {
  position: relative;
  background: var(--cream, #F4EFE6);
  color: var(--ink, #1F2624);
}
.about-hero-frame {
  position: relative;
  width: 100%;
  height: min(72vh, 36rem);
  overflow: hidden;
}
.about-hero-frame img,
.about-hero-frame picture,
.about-hero-frame picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Figure sits in the lower third so a centred quote lands on the lake, not her back */
  object-position: center 78%;
  display: block;
}
.about-hero-frame picture { height: 100%; }
.quote-scrim {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem 1.6rem;
  text-align: center;
  /* Soft centred veil — legible on sky or shade, not a bottom bar */
  background: radial-gradient(
    ellipse at center,
    rgba(12, 14, 13, 0.42) 0%,
    rgba(12, 14, 13, 0.22) 42%,
    rgba(12, 14, 13, 0.06) 72%,
    rgba(12, 14, 13, 0) 100%
  );
  color: #fff;
  pointer-events: none;
}
.about-hero-frame .quote-scrim {
  /* Centre in the area below the sticky header */
  padding-top: calc(var(--header, 3.5rem) + 0.4rem);
}
.quote-scrim blockquote {
  margin: 0;
  border: 0;
  max-width: 16em;
  font-family: var(--font-display, "Cormorant Garamond", serif);
  font-style: italic;
  font-weight: 700;
  font-size: clamp(1.45rem, 5.8vw, 2.2rem);
  line-height: 1.22;
  letter-spacing: 0.01em;
  color: #fff;
  text-shadow:
    0 1px 2px rgba(8, 10, 9, 0.5),
    0 2px 22px rgba(8, 10, 9, 0.55);
}
.quote-scrim blockquote p {
  margin: 0;
  font-weight: 700;
  color: #fff;
}
.about-hero-titles {
  text-align: center;
  padding: 1.35rem 1.5rem 0.5rem;
}
.about-hero-titles h1 {
  margin: 0;
  white-space: nowrap;
  font-size: clamp(1.85rem, 8vw, 2.85rem);
}
.about-hero-titles .founder-line {
  margin: 0.25rem 0 0;
  font-size: 0.95rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}
.about-photo {
  position: relative;
  margin: 0;
}
.about-photo img,
.about-photo picture,
.about-photo picture img {
  width: 100%;
  height: min(58vh, 28rem);
  object-fit: cover;
  display: block;
}
.about-photo picture { height: min(58vh, 28rem); display: block; overflow: hidden; }
/* Sit Sandy off the exact centre so a centred quote misses her face */
.about-photo-bridge img,
.about-photo-bridge picture img {
  object-position: center 28%;
}
.about-photo-dancer img,
.about-photo-dancer picture img {
  /* Figure in the lower third; quote sits on the open water and mountains */
  object-position: center 72%;
}
.about-photo-park img,
.about-photo-park picture img {
  /* Face in the upper third; quote sits across the autumn trees and path */
  object-position: center 32%;
}
.creds {
  list-style: none;
  margin: 1.25rem auto 0;
  max-width: 26rem;
  padding: 0;
}
.creds li {
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--rule, rgba(31,38,36,0.12));
  font-size: 0.98rem;
}
.why-sandy {
  display: grid;
  gap: 1.35rem;
  margin-top: 1.5rem;
}
.why-sandy article h3 {
  font-size: 1.25rem;
  margin: 0 0 0.35rem;
}
.why-sandy article p { margin: 0; font-size: 0.95rem; }
@media (min-width: 801px) {
  .why-sandy { grid-template-columns: repeat(3, 1fr); gap: 2rem; }
  .about-hero-frame { height: min(80vh, 44rem); }
}

/* --- Contact: offset smiling portrait, no dark scrim, form right under ----- */
.contact-shell {
  background: var(--cream, #F4EFE6);
  padding: 0.5rem 0 2.5rem;
}
.contact-hero-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  max-width: 68rem;
  margin: 0 auto;
  padding: 0 var(--pad);
}
.contact-portrait {
  width: 86%;
  margin-left: auto;
  margin-right: 0;
  aspect-ratio: 4/5;
  max-height: 52vh;
  overflow: hidden;
  border-radius: 2px;
  position: relative;
  background: var(--cream-soft, #ebe4d8);
}
.contact-portrait img,
.contact-portrait picture,
.contact-portrait picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
  display: block;
}
.contact-portrait picture { height: 100%; display: block; }
.contact-heading {
  margin: -1.85rem auto 0 0.15rem;
  position: relative;
  z-index: 2;
  width: fit-content;
  max-width: 94%;
}
.contact-heading h1 {
  margin: 0;
  font-size: clamp(2.35rem, 13vw, 4.2rem);
  line-height: 0.95;
  white-space: nowrap;
  background: var(--cream, #F4EFE6);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  padding: 0 0.18em 0.02em 0.08em;
  color: var(--forest, #1E3B36);
  display: inline;
}
.contact-form-block {
  /* Don't double-up --pad with .contact-hero-row: a 294px iframe
     clips the Wix form and grows a horizontal scrollbar at 390. */
  padding: 1.15rem 0 0;
  max-width: 40rem;
  margin: 0 auto;
}
.contact-form-block .form-frame {
  width: 100%;
  border: 0;
  background: transparent;
}
.form-fallback {
  margin: 0.65rem 0 0;
  font-size: 0.85rem;
  text-align: center;
}
@media (min-width: 801px) {
  .contact-hero-row {
    grid-template-columns: 1fr 1fr;
    align-items: start;
    gap: 2.5rem 3rem;
    padding: 1.5rem var(--pad) 0;
  }
  .contact-portrait {
    width: 100%;
    max-height: 78vh;
    aspect-ratio: 4/5;
    margin: 0;
  }
  .contact-copy {
    padding-top: 2.5rem;
  }
  .contact-heading { margin: 0 0 1.25rem; }
  .contact-form-block { padding: 0; margin: 0; max-width: none; }
}

.intent-line {
  text-align: center;
  max-width: 34rem;
  margin: 0.7rem auto 0;
  font-size: 1.02rem;
  line-height: 1.5;
}

/* Journal compact index hooks (details in journal.css) */
.sr-only, .visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* FAQ page: sit the heading clearly below the sticky header */
#faq.section { padding-top: calc(var(--header, 3.5rem) + 1.6rem); }


/* --- Home hero: rotating white headlines + Calgary subline --------------- */
.hero-bright .hero-sky {
  /* Soft dark veil so white type holds on the bright sky */
  background: linear-gradient(
    to bottom,
    rgba(14, 18, 16, 0.52) 0%,
    rgba(14, 18, 16, 0.28) 55%,
    rgba(14, 18, 16, 0) 100%
  );
  padding-bottom: 2.25rem;
}
.hero-bright .hero-copy-sky,
.hero-bright .hero-copy-sky h1,
.hero-bright .hero-copy-sky .hero-line,
.hero-bright .hero-copy-sky .hero-subline {
  color: #fff;
  text-shadow:
    0 1px 2px rgba(8, 10, 9, 0.45),
    0 2px 18px rgba(8, 10, 9, 0.5);
}
.hero-bright .hero-copy-sky h1.hero-rotator {
  margin: 0 auto;
  line-height: 1.12;
  font-size: clamp(1.68rem, 7.15vw, 2.85rem);
  max-width: none !important;
  width: auto;
  color: #fff;
}
.hero-rotator-stage {
  display: grid;
  justify-items: center;
  width: 100%;
}
.hero-line {
  grid-area: 1 / 1;
  margin: 0;
  white-space: nowrap;
  text-wrap: nowrap;
  opacity: 0;
  transition: opacity 1s ease;
  pointer-events: none;
}
.hero-line.is-on { opacity: 1; }
.hero-subline {
  margin: 0.55rem 0 0;
  font-family: var(--font-display, "Cormorant Garamond", serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.05rem, 3.6vw, 1.45rem);
  letter-spacing: 0.04em;
  line-height: 1.25;
  white-space: nowrap;
  text-align: center;
}
@media (prefers-reduced-motion: reduce) {
  .hero-line { transition: none; }
}

/* Why Sacred Air — Sandy’s eagle lines, italic centred serif */
.why-prana {
  text-align: center;
  max-width: none;
  margin: 1.25rem auto 0;
}
.why-eagle,
.why-enter {
  display: block;
  font-family: var(--font-display, "Cormorant Garamond", serif);
  font-style: italic;
  font-weight: 500;
  color: var(--ink, #1F2624);
  letter-spacing: 0.005em;
}
.why-eagle {
  font-size: clamp(1.12rem, 3.85vw, 1.45rem);
  line-height: 1.38;
  text-wrap: balance;
  max-width: 36ch;
  margin-inline: auto;
}
.why-enter {
  margin-top: 0.4em;
  font-size: clamp(1.12rem, 3.85vw, 1.45rem);
  line-height: 1.3;
  white-space: nowrap;
}


/* --- Wednesday journeys: editorial list, not a table -------------------- */
.dates-journeys {
  list-style: none;
  margin: 1.15rem 0 0;
  padding: 0;
}
.dates-journeys li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0.12rem;
  padding: 0.95rem 0 0.9rem;
  border-top: 1px solid var(--rule, #e4ddd0);
  border-bottom: none;
  font-size: inherit;
}
.dates-journeys li:last-child {
  border-bottom: 1px solid var(--rule, #e4ddd0);
}
.dates-journeys .when,
.session-card > .when,
.session-card .session-meta {
  display: block;
  margin: 0;
  font-family: var(--font-body, Inter, sans-serif);
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted, #5c6562);
  white-space: nowrap;
  order: 0;
}
.dates-journeys .journey-title,
.session-card h3.journey-title {
  display: block;
  margin: 0.18rem 0 0;
  font-family: var(--font-display, "Cormorant Garamond", serif);
  font-size: clamp(1.32rem, 4.6vw, 1.7rem);
  font-weight: 500;
  font-style: normal;
  line-height: 1.15;
  letter-spacing: 0.01em;
  color: var(--ink, #1F2624);
  white-space: nowrap;
  max-width: none;
}
.dates-journeys .journey-intent,
.session-card .journey-intent {
  display: block;
  margin: 0.12rem 0 0;
  font-family: var(--font-display, "Cormorant Garamond", serif);
  font-size: clamp(0.92rem, 2.9vw, 1.05rem);
  font-style: italic;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.02em;
  color: var(--muted, #5c6562);
  white-space: nowrap;
  max-width: none;
}
/* Home mobile: the split stack is already centred — match it */
@media (max-width: 800px) {
  .split > .stack .dates-journeys {
    text-align: center;
  }
  .split > .stack .dates-journeys li {
    align-items: center;
  }
}

/* Classes: same editorial row, quieter book link, single refined column */
#sessions .session-grid {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 1.15rem;
  max-width: 28rem;
}
#sessions .session-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: transparent;
  border: none;
  border-top: 1px solid var(--rule, #e4ddd0);
  border-radius: 0;
  padding: 1.05rem 0 1rem;
  height: auto;
  box-shadow: none;
}
#sessions .session-card:last-child {
  border-bottom: 1px solid var(--rule, #e4ddd0);
}
#sessions .session-card .btn-row { display: none; }
.journey-book {
  display: inline-block;
  margin-top: 0.45rem;
  font-family: var(--font-body, Inter, sans-serif);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--forest, #1E3B36);
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease;
}
.journey-book:hover,
.journey-book:focus-visible {
  border-bottom-color: currentColor;
}
@media (max-width: 800px) {
  #sessions .session-grid {
    max-width: none;
    margin-inline: auto;
  }
  #sessions .session-card {
    align-items: center;
    text-align: center;
    padding: 0.95rem 0 0.9rem;
  }
}


/* --- Enquiry iframes: full form visible, no inner scroll ----------------
   Heights measured from the live Wix forms on 12 Nov 2026 (America/Resolute):
     Couples  390: 1190px  1280: 1100px  (7 fields + Send enquiry)
     Contact  390: 1052px  1280: 1052px  (8 fields + Send to Sandy)
     YUNITY   390: 1394px  1280: 1370px  (10 fields + Send to Sandy)
   min-height includes ~280–360px for validation messages expanding the form.
   JS listens for Wix postMessage and grows the iframe if the form asks. */
iframe.form-frame {
  display: block;
  width: 100%;
  border: 0;
  background: var(--cream-soft, #f7f3eb);
  border-radius: var(--radius, 4px);
  min-height: 1760px;
  overflow: hidden;
}
iframe.form-frame[src*="7521581300193428484"] { min-height: 1500px; } /* Couples */
iframe.form-frame[src*="7517063306054468740"] { min-height: 1400px; } /* Contact */
iframe.form-frame[src*="7524189908311737390"] { min-height: 1760px; } /* YUNITY */
@media (min-width: 801px) {
  iframe.form-frame[src*="7521581300193428484"] { min-height: 1420px; }
  iframe.form-frame[src*="7517063306054468740"] { min-height: 1400px; }
  iframe.form-frame[src*="7524189908311737390"] { min-height: 1720px; }
}


/* --- Enquiry CTAs: a single button to the full Wix form (no iframes) ---- */
.form-cta-band {
  text-align: center;
}
.form-cta-band .form-cta {
  max-width: 32rem;
  margin: 0 auto;
  padding: 2.15rem 1.5rem 2.35rem;
}
.form-cta-band h2 {
  margin: 0;
}
.form-cta .btn-row,
.form-cta-band .btn-row {
  justify-content: center;
  margin-top: 1.2rem;
}
.form-cta-line {
  margin: 0.45rem 0 0;
  font-size: 1.02rem;
  line-height: 1.45;
  color: var(--muted, #5c6562);
}
.form-cta-band .form-cta-line {
  color: var(--on-dark-muted, rgba(244,239,230,0.78));
}
.contact-form-block.form-cta {
  padding-top: 0.85rem;
  text-align: left;
}
.contact-form-block.form-cta .btn-row {
  justify-content: flex-start;
  margin-top: 0.95rem;
}
@media (max-width: 800px) {
  .contact-form-block.form-cta { text-align: left; }
}


/* --- Gift Cards: one short intro, one line per amount, no tax copy ------- */
.gift-intro {
  text-align: center;
  max-width: none;
  margin: 0.55rem auto 0;
  font-size: clamp(1.05rem, 3.7vw, 1.25rem);
  line-height: 1.35;
  white-space: nowrap;
}
.gifts-list {
  list-style: none;
  margin: 1.35rem auto 0;
  padding: 0;
  max-width: 32rem;
}
.gifts-list li {
  margin: 0;
  padding: 0.85rem 0.25rem;
  border-top: 1px solid var(--rule, #e4ddd0);
  font-family: var(--font-display, "Cormorant Garamond", serif);
  font-size: clamp(1.18rem, 4.2vw, 1.45rem);
  font-weight: 500;
  line-height: 1.3;
  text-align: center;
  white-space: nowrap;
  color: var(--ink, #1F2624);
}
.gifts-list li:last-child {
  border-bottom: 1px solid var(--rule, #e4ddd0);
}

/* --- Why Sacred Air: film then full studio_session (guests resting) -------- */
.why-rest {
  padding-top: 1.75rem;
  padding-bottom: 2.15rem;
}
.why-rest-photo {
  margin: 0 auto;
  max-width: 36rem;
}
.why-rest-photo img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius, 2px);
  object-fit: contain;
  object-position: center;
}
@media (max-width: 620px) {
  .why-rest {
    padding-top: 1.35rem;
    padding-bottom: 1.65rem;
  }
}
