/* ========================================================================
   Sacred Air — Director pass (November 2026)
   Mobile-first, editorial, image-led. Loaded after styles.css so these
   rules win the cascade. Do not invent copy; this file is visual only.
   ======================================================================== */

/* --- Tokens ----------------------------------------------------------- */
:root {
  --pad: 1.5rem;              /* 24px side padding on mobile */
  --header: 3.5rem;           /* 56px slim sticky bar */
  --section-y: clamp(3rem, 6vw, 5.5rem);
  --section-y-sm: clamp(2rem, 4.2vw, 3.5rem);
  --space: 1.5rem;
}

html, body {
  overflow-x: clip;
  max-width: 100%;
}

body {
  padding-left: env(safe-area-inset-left, 0);
  padding-right: env(safe-area-inset-right, 0);
}

.wrap {
  width: min(var(--wide), calc(100% - 2 * var(--space)));
  margin-inline: auto;
}

/* Titles: balanced wraps, never left-jammed on a narrow screen */
h1, h2, .display {
  text-wrap: balance;
  overflow-wrap: break-word;
  hyphens: manual;
}

/* PNG logos must never explode to intrinsic width */
img[src$=".png"].footer-logo,
.footer-logo,
.menu-top img,
.logo img,
.why-logo-mark {
  height: auto;
}

.logo img {
  height: 40px;
  width: auto;
  max-width: 168px;
}
.menu-top img {
  height: 32px;
  width: auto;
  max-width: 140px;
}
.footer-logo,
img.footer-logo {
  height: 32px;
  width: auto;
  max-width: 140px;
  margin-bottom: 0.85rem;
}

/* --- Header ----------------------------------------------------------- */
.site-header,
.site-header.is-solid,
.site-header.is-scrolled,
.site-header.on-light,
.site-header.on-light.is-scrolled {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 50;
  height: var(--header);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0 max(var(--pad), env(safe-area-inset-right, 0px)) 0 max(var(--pad), env(safe-area-inset-left, 0px));
  background: rgba(20, 26, 24, 0.94);
  color: var(--on-dark);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 1px 0 var(--rule-dark);
}

/* Mobile & mid: logo left, Book + Menu right — never cramped against the mark */
@media (max-width: 900px) {
  :root { --space: 1.5rem; --pad: 1.5rem; --header: 3.5rem; }

  .logo {
    position: static;
    left: auto;
    transform: none;
    margin-right: auto;
    height: 100%;
    display: flex;
    align-items: center;
    flex: 0 1 auto;
    min-width: 0;
  }
  .logo img {
    height: 38px;
    max-width: min(148px, 42vw);
  }
  .header-right {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    margin-left: 0.5rem;
    flex-shrink: 0;
  }
  .header-btn.book-desk { display: none !important; }
  .header-btn.book-mob {
    display: inline-flex;
    background: var(--cream);
    color: var(--ink);
    border-color: var(--cream);
    min-height: 2.25rem;
    min-width: 0;
    padding: 0 0.95rem;
    letter-spacing: 0.14em;
  }
  .header-btn.book-mob:hover,
  .header-btn.book-mob:focus-visible {
    background: transparent;
    color: var(--cream);
    border-color: var(--cream);
  }
  .menu-toggle {
    gap: 0.45rem;
    padding: 0 0.1rem 0 0.15rem;
    min-width: 2.75rem;
    letter-spacing: 0.14em;
  }
  .menu-toggle .bars {
    width: 16px;
    height: 9px;
    flex-shrink: 0;
  }
}

@media (min-width: 901px) {
  :root { --space: clamp(1.75rem, 4vw, 3.5rem); --header: 4.15rem; }
  .header-btn.book-mob { display: none !important; }
  .header-btn.book-desk { display: inline-flex; }
  .logo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
  }
  .logo img { height: 44px; max-width: 200px; }
}

/* --- Full-screen menu: one viewport, generous padding, compact type ---- */
.site-menu {
  padding:
    max(0.35rem, env(safe-area-inset-top, 0px))
    max(var(--pad), env(safe-area-inset-right, 0px))
    max(1.5rem, env(safe-area-inset-bottom, 0px))
    max(var(--pad), env(safe-area-inset-left, 0px));
  overflow: auto;
}
.menu-top {
  margin: 0 0 0.5rem;
  padding: 0;
  min-height: var(--header);
  flex-shrink: 0;
}
.menu-nav {
  margin: 0.25rem 0 auto;
  max-width: 32rem;
  width: 100%;
}
.menu-nav a {
  font-size: clamp(1.55rem, 6.2vw, 2rem);
  line-height: 1.2;
  padding: 0.5rem 0;
  border-bottom-color: rgba(244, 239, 230, 0.12);
}
.menu-meta {
  margin-top: 1.25rem;
  padding-top: 1.15rem;
  padding-bottom: 0.25rem;
  gap: 0.85rem 1.75rem;
  font-size: 0.85rem;
  border-top: 1px solid rgba(244, 239, 230, 0.12);
}

@media (min-height: 700px) and (max-width: 900px) {
  .menu-nav a { padding: 0.62rem 0; }
}

/* --- Footer: compact, 2-column on mobile -------------------------------- */
.site-footer {
  padding: 2.5rem 0 5.25rem; /* extra bottom clears the Wix Headless badge */
  font-size: 0.875rem;
  line-height: 1.55;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap: 2rem 1.75rem;
  align-items: start;
}
.footer-brand p + p { margin-top: 0.45rem; }
.footer-cols {
  display: contents;
}
.footer-col ul { list-style: none; margin: 0; }
.footer-col li + li { margin-top: 0.35rem; }
.footer-bottom {
  margin-top: 2rem;
  padding-top: 1.1rem;
}

@media (max-width: 800px) {
  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 1.6rem 1.25rem;
  }
  .footer-brand {
    grid-column: 1 / -1;
  }
  .site-footer { font-size: 0.84rem; padding-top: 2.15rem; }
}

@media (min-width: 801px) {
  .footer-grid { grid-template-columns: 1.35fr 1fr 1fr; }
}

/* --- Prices: one baseline, meta sits neatly beside the amount ----------- */
.price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.2rem 0.7rem;
  line-height: 1;
  font-family: var(--font-display);
  font-weight: 400;
}
.price-amt {
  font-family: var(--font-display);
  font-size: inherit;
  line-height: 1;
  font-weight: 400;
}
.price-meta {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem 0.7rem;
  font-family: var(--font-sans);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.2;
  color: var(--muted);
}
.price .gst,
.gst,
.card .price .gst,
.pack .price .gst,
.option-card .price .gst,
.price-meta .gst {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
  white-space: nowrap;
  display: inline;
  margin: 0;
  vertical-align: baseline;
  line-height: inherit;
}
.price-unit,
.price .price-unit,
.price-meta .price-unit {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
  white-space: nowrap;
  margin: 0;
}
.dark .price-meta,
.forest .price-meta,
.dark .price .gst,
.forest .price .gst {
  color: var(--on-dark-muted);
}

/* --- Journey & process steps: number in its own column, never overlapping */
.journey-steps {
  list-style: none;
  counter-reset: step;
  margin: 0;
  padding: 0;
}
.journey-steps li {
  display: grid;
  grid-template-columns: 2.6rem 1fr;
  column-gap: 1rem;
  align-items: baseline;
  counter-increment: step;
  position: relative;
  padding: 0.95rem 0 !important;
  padding-left: 0 !important;
  border-bottom: 1px solid var(--rule);
}
.journey-steps li:last-child { border-bottom: 0; }
.journey-steps li::before {
  content: counter(step, decimal-leading-zero);
  position: static !important;
  left: auto;
  top: auto;
  grid-column: 1;
  font-family: var(--font-display);
  font-size: 1.05rem;
  letter-spacing: 0.08em;
  line-height: 1.2;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.journey-steps h3,
.journey-steps p {
  grid-column: 2;
  margin: 0;
}
.journey-steps p { margin-top: 0.25rem; }

.process {
  list-style: none;
  counter-reset: proc;
}
.process li {
  display: grid;
  grid-template-columns: 2.6rem 1fr;
  column-gap: 0.9rem;
  align-items: baseline;
  counter-increment: proc;
  position: relative;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid var(--rule);
}
.process li::before {
  content: counter(proc, decimal-leading-zero);
  position: static !important;
  top: auto;
  left: auto;
  font-family: var(--font-display);
  font-size: 1.05rem;
  letter-spacing: 0.08em;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.process li strong { grid-column: 2; }
@media (min-width: 801px) {
  .process {
    grid-template-columns: 1fr 1fr;
    gap: 0 2rem;
  }
  .process li { border-bottom-color: var(--rule); }
}

/* --- Section titles on mobile: centered, balanced, comfortable size ----- */
@media (max-width: 800px) {
  h2 {
    font-size: clamp(1.65rem, 7vw, 2.05rem);
    line-height: 1.15;
    letter-spacing: -0.02em;
  }
  .section .wrap > h2,
  .section-sm .wrap > h2,
  .section .wrap > .stack > h2,
  .section-sm .wrap > .stack > h2,
  .why-copy h2,
  .cta-band h2,
  .offer-band h2,
  .mail-band h2,
  .reviews-band h2,
  .measure h2 {
    text-align: center;
    text-wrap: balance;
    max-width: 18ch;
    margin-inline: auto;
  }
  .section .wrap > h2 + p,
  .section .wrap > h2 + .muted,
  .cta-band .stack > h2 + p,
  .offer-band .stack > h2 + p,
  .offer-band .promise-line {
    text-align: center;
    margin-inline: auto;
  }
}

/* --- Hero: shorter on mobile so photo + offer + CTA fit one screen ------ */
@media (max-width: 800px) {
  .hero-bright .hero-frame {
    height: 66vh;
    height: 66dvh;
  }
  .hero-bright .hero-media img,
  .hero-bright .hero-media picture img {
    object-position: center 48%;
  }
  .hero-bright .hero-copy-sky h1 {
    font-size: clamp(1.85rem, 8.4vw, 2.35rem);
    line-height: 1.08;
    text-wrap: balance;
    max-width: 16ch;
    margin-inline: auto;
  }
  .hero-bright .hero-sky {
    padding-top: calc(var(--header) + 0.7rem);
  }
  .hero-bright .hero-below {
    padding: 1.1rem 0 1.35rem;
  }
  .hero-bright .hero-below .offer {
    margin-top: 0;
    font-size: 0.98rem;
    text-wrap: balance;
    max-width: 28ch;
    margin-inline: auto;
  }
  .hero-bright .hero-below .hero-cta {
    margin-top: 0.95rem;
  }

  .page-hero {
    min-height: 0;
    height: auto;
    min-height: min(52dvh, 24rem);
  }
  .page-hero .hero-copy {
    padding-top: calc(var(--header) + 0.85rem);
    padding-bottom: 1.4rem;
    padding-left: var(--pad);
    padding-right: var(--pad);
  }
  .page-hero h1 {
    font-size: clamp(1.85rem, 8vw, 2.35rem);
    text-wrap: balance;
    max-width: 16ch;
  }
  .section { padding: var(--section-y) 0; }
  .section-sm { padding: var(--section-y-sm) 0; }
  .section-tight { padding: 1.75rem 0; }
}

@media (min-width: 801px) {
  .hero-bright .hero-frame {
    height: 92vh;
    height: 92dvh;
  }
}

/* --- Immersive film (singing-bowl loops) -------------------------------- */
.film {
  position: relative;
  background: #0c0f0e;
  color: var(--on-dark);
  padding: 0;
  overflow: hidden;
}
.film-frame {
  position: relative;
  width: 100%;
  height: min(72vh, 40rem);
  height: min(72dvh, 40rem);
  overflow: hidden;
  background: #0c0f0e;
}
.film-video,
.film-fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  display: block;
}
.film-fallback { z-index: 0; }
.film-video { z-index: 1; }
.film-veil {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(12, 15, 14, 0.62) 0%,
    rgba(12, 15, 14, 0.12) 42%,
    rgba(12, 15, 14, 0.18) 100%
  );
}
.film-copy {
  position: absolute;
  inset: auto 0 0 0;
  z-index: 3;
  padding: 0 var(--pad) 2.15rem;
  text-align: center;
  color: var(--on-dark);
}
.film-copy h2 {
  color: var(--on-dark);
  text-shadow: 0 1px 18px rgba(0, 0, 0, 0.45);
  margin-inline: auto;
  max-width: 16ch;
  text-wrap: balance;
}
.film-copy p {
  margin-top: 0.55rem;
  color: var(--on-dark);
  text-shadow: 0 1px 14px rgba(0, 0, 0, 0.4);
}
@media (min-width: 801px) {
  .film-frame {
    height: min(78vh, 46rem);
  }
  .film-video,
  .film-fallback { object-position: center 30%; }
}
@media (prefers-reduced-motion: reduce) {
  .film-video { display: none !important; }
  .film-fallback { display: block; z-index: 1; }
}

/* --- Swipe carousels (mobile) / grids (desktop) ------------------------ */
@media (max-width: 800px) {
  .session-grid,
  .features,
  .cards-3,
  .cards-2,
  .packs,
  .season-grid,
  .journal-grid {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--space);
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    margin-inline: calc(-1 * var(--space));
    padding-inline: var(--space);
    padding-bottom: 0.85rem;
    gap: 0.85rem;
    scrollbar-width: thin;
    scrollbar-color: rgba(31, 38, 36, 0.28) transparent;
  }
  .session-grid > *,
  .features > *,
  .cards-3 > *,
  .cards-2 > *,
  .packs > *,
  .season-grid > *,
  .journal-grid > * {
    flex: 0 0 min(78%, 19.5rem);
    scroll-snap-align: start;
    min-width: 0;
    height: auto;
  }
  /* Journal index keeps a tighter card, still swipeable */
  .journal-grid > * { flex-basis: min(82%, 20rem); }

  .features { gap: 0.85rem; }
  .feature,
  .feature-main {
    display: flex;
    flex-direction: column;
    background: var(--cream-soft);
    border-radius: var(--radius);
    overflow: hidden;
    padding: 0 0 1.1rem;
  }
  .feature img,
  .feature picture,
  .feature picture img,
  .feature-main img,
  .feature-main picture,
  .feature-main picture img {
    width: 100%;
    height: 15.5rem;
    object-fit: cover;
    border-radius: 0;
  }
  .feature .stack,
  .feature-main .stack { padding: 1rem 1rem 0; }

  .photo-break picture,
  .photo-break img,
  .photo-break .break-img,
  .photo-break picture img {
    height: min(38vh, 16rem);
  }
  .split img,
  .split .media,
  .split picture,
  .split picture img {
    height: min(36vh, 16rem);
    max-height: 16rem;
  }
}

@media (min-width: 801px) {
  .session-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.15rem; }
  .cards-3 { display: grid; grid-template-columns: repeat(3, 1fr); }
  .cards-2 { display: grid; grid-template-columns: 1fr 1fr; }
  .packs { display: grid; grid-template-columns: repeat(4, 1fr); }
  .season-grid { display: grid; grid-template-columns: repeat(2, 1fr); }
}

/* --- Why Sacred Air: tighter, editorial --------------------------------- */
.why-brand { padding-top: var(--section-y); padding-bottom: var(--section-y); }
.why-brand .why-photo { margin-top: 1.5rem; }
.why-brand .why-photo img {
  width: 100%;
  height: min(42vh, 26rem);
  object-fit: cover;
  object-position: center 28%;
  border-radius: var(--radius);
}
.why-prana { margin-top: 1rem; }
@media (max-width: 800px) {
  .why-logo-mark {
    width: min(90%, 18rem);
    top: 0;
    right: 0;
    opacity: 0.06;
  }
  .why-brand .why-photo { margin-top: 1.25rem; }
  .why-brand .why-photo img { height: min(38vh, 16.5rem); object-position: center 26%; }
  .why-copy { text-align: center; }
  .why-copy .lede,
  .why-prana { margin-inline: auto; }
}

/* --- Offer / CTA bands: compact, one action ----------------------------- */
.cta-band .btn-row,
.offer-band .btn-row { justify-content: center; }
@media (max-width: 800px) {
  .offer-band,
  .cta-band.section-sm { padding: 2rem 0; }
  .promise-line { margin-top: 0.55rem; }
  .promise-terms { margin-top: 0.5rem; max-width: 28rem; margin-inline: auto; }
  .hero-cta .btn,
  .cta-band .btn,
  .offer-band .btn { width: 100%; max-width: 24rem; }
}

/* Gift band: short image strip on mobile, not a tall portrait */
@media (max-width: 800px) {
  .cta-band.split,
  #gift-heading { }
  .cta-band.split { gap: 1.15rem; }
  .cta-band.split img,
  .cta-band.split picture,
  .cta-band.split .media {
    height: 11rem;
    max-height: 11rem;
    object-fit: cover;
    object-position: center 60%;
  }
}

/* --- Native mailing-list form (replaces the tall white Wix iframe) ----- */
.mail-band { padding: 2.35rem 0 2.6rem; }
.mail-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1rem;
  max-width: 32rem;
  margin-inline: auto;
}
.mail-inner h2 { margin: 0; }
.mail-form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  width: 100%;
  max-width: 28rem;
  justify-content: center;
}
.mail-form input[type="email"] {
  flex: 1 1 12rem;
  min-height: 2.85rem;
  min-width: 0;
  border: 0;
  border-bottom: 1px solid var(--rule-dark);
  border-radius: 0;
  background: transparent;
  color: var(--on-dark);
  padding: 0.55rem 0;
  font-size: 1rem;
}
.mail-form input[type="email"]::placeholder { color: var(--on-dark-muted); opacity: 0.85; }
.mail-form input[type="email"]:focus {
  outline: none;
  border-bottom-color: var(--cream);
}
.mail-form .btn {
  flex: 0 0 auto;
  min-height: 2.85rem;
  background: var(--cream);
  color: var(--ink);
  border-color: var(--cream);
}
.mail-form .btn:hover,
.mail-form .btn:focus-visible {
  background: transparent;
  color: var(--cream);
  border-color: var(--cream);
}
.mail-inner .form-note {
  margin-top: 0.15rem;
  font-size: 0.8rem;
  color: var(--on-dark-muted);
}
.mail-inner .form-note a { color: var(--on-dark); text-decoration: underline; text-underline-offset: 0.15em; }
.mail-status[data-state="ok"] { color: var(--cream); }
.mail-status[data-state="err"] { color: #f0c9c2; }

/* Enquiry iframes: no giant empty white stage */
.form-frame {
  min-height: 28rem;
  background: var(--cream-soft);
  border-radius: var(--radius);
  width: 100%;
  border: 0;
}
.form-frame-nl { min-height: 0; height: 0; display: none; } /* unused; native form replaces it */
@media (max-width: 800px) {
  .form-frame { min-height: 26rem; }
  /* Couples / YUNITY / Contact stay usable but lose the huge empty tail */
}

/* --- Image crops: faces and subjects in frame --------------------------- */
/* Crow pose is used only if kept; prefer face-forward photos in HTML. */
img.pos-face,
picture img.pos-face { object-position: center 22%; }
img.pos-upper,
picture img.pos-upper { object-position: center 18%; }
img.pos-mid,
picture img.pos-mid { object-position: center 46%; }
img.pos-lower,
picture img.pos-lower { object-position: center 72%; }
img.pos-lake,
picture img.pos-lake { object-position: center 52%; }
img.pos-lake-seated,
picture img.pos-lake-seated { object-position: center 42%; }
img.pos-lake-tree,
picture img.pos-lake-tree { object-position: center 40%; }

/* Seated pigeon on the bridge: keep Sandy's face in a short hero crop */
.page-hero img.pos-seated,
.page-hero picture img.pos-seated { object-position: center 22%; }

/* Studio session: Sandy among bowls — prefer her, not empty floor */
img.pos-studio,
picture img.pos-studio,
.feature img.pos-studio,
.why-photo img { object-position: center 24%; }

/* Couples fingertips: keep the hands and faces */
img[alt*="Two people resting"],
img[alt*="two"] { object-position: center 55%; }

/* Yin rest close-up: keep the person, not empty mat */
img.pos-yin,
picture img.pos-yin { object-position: center 40%; }

/* --- Reviews, dates, packs, occasions: tighter on mobile ---------------- */
@media (max-width: 800px) {
  .reviews-grid { gap: 1.35rem; }
  .review { max-width: 36rem; margin-inline: auto; }
  .dates { margin-top: 0.85rem; }
  .dates li { padding: 0.55rem 0; }
  .occasions {
    justify-content: center;
    text-align: center;
    gap: 0.45rem 1.15rem;
    font-size: clamp(1.2rem, 5vw, 1.5rem);
  }
  .pillars { grid-template-columns: 1fr 1fr; gap: 0.7rem; }
  .pillars picture,
  .pillars picture img,
  .pillars img { height: 9.5rem; }
  .facts { grid-template-columns: 1fr; gap: 1.15rem; text-align: center; }
}

/* FAQ already accordion; keep tap targets and tidy the plus */
summary {
  min-height: 2.75rem;
  display: flex;
  align-items: center;
  padding-right: 2.25rem;
  gap: 0.75rem;
}
summary::after {
  right: 0.15rem;
  width: 10px;
  height: 10px;
}

/* Icons / social / bars: consistent size and gap */
.menu-toggle .bars span { height: 1.25px; }
.proof { gap: 1rem 1.75rem; margin-top: 1.1rem; }

/* --- Buttons: one clear action, comfortable tap ------------------------- */
.btn {
  min-height: 2.85rem;
  padding: 0.7rem 1.3rem;
  letter-spacing: 0.12em;
}
@media (max-width: 800px) {
  .btn-row { gap: 0.65rem; margin-top: 1.15rem; }
  .stack > * + * { margin-top: 1rem; }
  .mt-l { margin-top: 1.35rem; }
  .card, .pack, .session-card, .season-card, .option-card {
    padding: 1.15rem 1.1rem 1.1rem;
  }
}

/* Legal pages share the same header, padding and footer */
.legal-page {
  padding-top: calc(var(--header) + 2rem);
  padding-bottom: 2rem;
}
@media (max-width: 800px) {
  .legal-page { padding-top: calc(var(--header) + 1.5rem); }
  .legal h1 { text-wrap: balance; font-size: clamp(1.85rem, 8vw, 2.25rem); }
}

/* Hide leftover kickers */
.eyebrow { display: none; }

/* Try to hide the “Built on WIX Headless” preview badge.
   It is injected by the host, so this may not win; footer padding clears it. */
iframe[title*="Wix"],
iframe[src*="wix.com/badge"],
#WIX_ADS,
#WIX_ADS + div,
[data-hook="wix-badge"],
[class*="wix-ads"],
[id*="WIX_ADS"],
[class*="WixAds"],
[id="PORTABLE_WIX_BADGE"],
div[id^="comp-"][aria-label*="Wix"] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  height: 0 !important;
  width: 0 !important;
  opacity: 0 !important;
}

/* No horizontal overflow from full-bleed swipe or film */
.section, .section-sm, .cta-band, main { max-width: 100%; }
img, video, iframe, picture { max-width: 100%; }

/* Journal listing: same padding and title system, slightly shorter hero */
@media (max-width: 800px) {
  .journal-hero.page-hero { min-height: min(52dvh, 22rem); }
  .journal-hero .hero-copy h1 { max-width: 14ch; }
  .journal-intro { padding-top: var(--section-y-sm); }
}

/* ---- QA fixes after first after-pass ---------------------------------- */

/* Price amount is the hero of the row — never shrink it below the meta */
.price,
.feature .price,
.feature .stack .price,
.card .price,
.pack .price,
.option-card .price,
.session-card .price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.7rem;
  font-family: var(--font-display);
  font-size: 2.15rem;
  line-height: 1;
  color: var(--ink);
  font-weight: 400;
  margin: 0.3rem 0 0.55rem;
}
.dark .price, .forest .price { color: var(--on-dark); }
.price-amt {
  font-family: var(--font-display);
  font-size: 2.15rem;
  line-height: 1;
  color: inherit;
  font-weight: 400;
}
.price-meta,
.price .price-meta {
  font-size: 0.68rem;
  font-family: var(--font-sans);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1.2;
}
/* ROI / proof figures on Corporate — not a product price row */
.facts .price,
strong.price {
  display: inline;
  font-size: 2.15rem;
  flex: none;
}

/* Titles: don't pinch short names onto two lines */
@media (max-width: 800px) {
  .hero-bright .hero-copy-sky h1 {
    max-width: none;
    font-size: clamp(1.95rem, 8.6vw, 2.45rem);
  }
  .page-hero h1 {
    max-width: 20ch;
  }
  .section .wrap > h2,
  .section-sm .wrap > h2,
  .section .wrap > .stack > h2,
  .section-sm .wrap > .stack > h2,
  .why-copy h2,
  .cta-band h2,
  .offer-band h2,
  .mail-band h2,
  .reviews-band h2,
  .measure h2,
  .split > .stack > h2 {
    max-width: 22ch;
  }
  .split > .stack { text-align: center; }
  .split > .stack .dates,
  .split > .stack .journey-steps,
  .split > .stack .process,
  .split > .stack .creds {
    text-align: left;
  }
  .split > .stack .btn-row { justify-content: center; }
}

/* Process items with a trailing phrase: keep them in the text column */
.process li {
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr);
  column-gap: 0.95rem;
  align-items: baseline;
}
.process li::before {
  grid-column: 1;
  grid-row: 1;
}
.process li > * {
  grid-column: 2;
  min-width: 0;
}

/* Gift band on mobile: drop the tall decorative photo, keep a tight CTA */
@media (max-width: 800px) {
  .cta-band .split > img,
  .cta-band .split > picture {
    display: none;
  }
  .cta-band .split {
    display: block;
    gap: 0;
  }
}

/* Split photos: always paint, faces in frame, no collapsed picture boxes */
.split picture,
.split-land picture {
  display: block;
  width: 100%;
  height: min(42vh, 20rem);
  max-height: 20rem;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--cream-soft);
}
.split picture img,
.split-land picture img,
.split > img {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
  object-position: center 64%;
  display: block;
}
.split > img { height: min(42vh, 20rem); max-height: 20rem; border-radius: var(--radius); }

@media (min-width: 801px) {
  .split picture,
  .split-land picture,
  .split > img {
    height: min(78vh, 42rem);
    max-height: 42rem;
  }
  .split picture img,
  .split-land picture img,
  .split > img { height: 100%; }
}

/* Desktop home hero: keep Sandy’s figure, including the standing water, in frame */
@media (min-width: 801px) {
  .hero-bright .hero-media img,
  .hero-bright .hero-media picture img {
    object-position: center 58%;
  }
}

/* Private hero seated: face and raised arms already sit well at 22% */
.page-hero img.pos-seated,
.page-hero picture img.pos-seated { object-position: center 28%; }

.hero-bright .hero-copy-sky h1 { max-width: 16ch; margin-inline: auto; }

