/* Jornada Acenda · página individual Eu, Oceano */
.journey-page {
  --ocean: #67807c;
  --ocean-dark: #365653;
  --ocean-pale: #dce4df;
}

.journey-page main { overflow: clip; }
.journey-page main img { border-radius: 8px; }

/* Hero */
.journey-hero { padding: clamp(10px, 1.4vw, 20px) 0 12px; }
.journey-hero-head {
  display: grid;
  grid-template-columns: 1.4fr .6fr;
  gap: clamp(30px, 6vw, 92px);
  align-items: end;
  margin-bottom: clamp(10px, 1.4vw, 18px);
}
.journey-hero h1 {
  font-size: clamp(70px, 9vw, 132px);
  line-height: .72;
  letter-spacing: -.045em;
  margin-top: clamp(9px, 1vw, 14px);
}
.journey-name { display: block; }
.journey-seo-title {
  display: block;
  max-width: 38ch;
  margin-top: clamp(16px, 1.7vw, 24px);
  font-family: var(--sans);
  font-size: clamp(11px, .85vw, 13px);
  font-style: normal;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.journey-hero h1 em { color: var(--ocean-dark); }
.journey-hero-copy { padding-bottom: 4px; }
.journey-hero-copy > p:nth-child(2) {
  font-family: var(--serif);
  font-size: clamp(22px, 2vw, 30px);
  line-height: 1.13;
  margin: 13px 0 18px;
  text-wrap: pretty;
}

.journey-film {
  position: relative;
  aspect-ratio: 16 / 7;
  overflow: hidden;
  border-radius: 8px;
  background: var(--ocean-dark);
}
@media (min-width: 861px) {
  .journey-film { height: clamp(350px, 45svh, 530px); aspect-ratio: auto; }
}
.journey-film video { width: 100%; height: 100%; object-fit: cover; }
.film-toggle {
  position: absolute;
  right: 18px;
  bottom: 18px;
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  color: var(--ink);
  backdrop-filter: blur(8px);
  transition: transform var(--t-fast), background var(--t-fast);
}
.film-toggle:hover { transform: scale(1.06); background: var(--bg); }
.film-toggle span { font-size: 15px; font-weight: 600; letter-spacing: -.2em; transform: translateX(-1px); }
.film-toggle.is-paused span { letter-spacing: 0; transform: translateX(1px); }

.journey-facts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0;
  border-bottom: 1px solid var(--line);
}
.journey-facts > div {
  padding: 11px 18px 13px 0;
  border-right: 1px solid var(--line);
}
.journey-facts > div + div { padding-left: 18px; }
.journey-facts > div:last-child { border-right: 0; }
.journey-facts dt,
.lodging-features li,
.source-note {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.journey-facts dd {
  margin: 4px 0 0;
  font-family: var(--serif);
  font-size: clamp(17px, 1.5vw, 22px);
  line-height: 1.1;
}

/* Introdução */
.journey-intro { padding-top: clamp(42px, 5vw, 68px); padding-bottom: clamp(28px, 4vw, 56px); }
.intro-grid {
  display: grid;
  grid-template-columns: minmax(140px, .45fr) minmax(0, 1.55fr);
  gap: clamp(32px, 6vw, 92px);
  align-items: start;
  padding-bottom: clamp(48px, 6vw, 80px);
}
.intro-grid > .label { padding-top: 14px; }
.intro-content h2 {
  max-width: 13ch;
  font-size: clamp(54px, 6vw, 88px);
  line-height: .96;
}
.intro-content .intro-lead {
  font-family: var(--serif);
  font-size: clamp(24px, 2.5vw, 36px);
  line-height: 1.12;
  color: var(--ink);
  max-width: 24ch;
  margin-top: clamp(28px, 4vw, 52px);
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.intro-copy {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 56px);
  margin-top: clamp(30px, 4vw, 48px);
}
.intro-copy p {
  max-width: 42ch;
  color: var(--ink-2);
}

.experience-gallery {
  display: grid;
  grid-template-columns: 1.5fr .78fr .9fr;
  gap: clamp(10px, 1.5vw, 20px);
  padding-inline: clamp(12px, 2vw, 30px);
}
.experience-gallery .photo {
  position: relative;
  height: clamp(280px, 38vw, 550px);
  overflow: hidden;
  border-radius: 8px;
}
.experience-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 800ms cubic-bezier(.22, 1, .36, 1), filter var(--t-med);
}
.experience-gallery .photo:nth-child(2) img { object-position: 52% center; }
.experience-gallery figcaption {
  position: absolute;
  z-index: 2;
  left: 18px;
  bottom: 16px;
  color: var(--bg);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(5px);
  transition: opacity var(--t-med), transform var(--t-med);
}
.experience-gallery .photo::after {
  content: "";
  position: absolute;
  inset: 50% 0 0;
  background: linear-gradient(transparent, rgba(8, 39, 22, .62));
  opacity: 0;
  transition: opacity var(--t-med);
}
@media (hover: hover) {
  .experience-gallery .photo:hover img { transform: scale(1.055); filter: saturate(1.08); }
  .experience-gallery .photo:hover::after,
  .experience-gallery .photo:hover figcaption { opacity: 1; }
  .experience-gallery .photo:hover figcaption { transform: none; }
}

/* Pilares */
.journey-pillars {
  position: relative;
  padding-block: clamp(42px, 5vw, 72px);
  color: var(--bg);
  background: url("../img/oceano-2027/hero-poster.jpg") center 58% / cover no-repeat;
  isolation: isolate;
}
.journey-pillars::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(4, 39, 45, .88), rgba(4, 39, 45, .7));
}
.journey-pillars .journey-section-head { margin-bottom: clamp(24px, 3vw, 38px); }
.journey-pillars .journey-section-head h2 { max-width: 15ch; color: var(--bg); }
.journey-pillars .label { color: rgba(251, 249, 235, .76); }
.journey-section-head { margin-bottom: clamp(36px, 5vw, 68px); }
.journey-section-head h2 { margin-top: 18px; max-width: 17ch; }
.journey-section-head.split {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 48px;
  align-items: end;
}
.journey-section-head.split > p { max-width: 38ch; color: var(--ink-2); justify-self: end; }
.ocean-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-block: 1px solid rgba(251, 249, 235, .42);
}
.ocean-pillars article { min-height: 190px; padding: 22px 28px; border-right: 1px solid rgba(251, 249, 235, .32); }
.ocean-pillars article:first-child { padding-left: 0; }
.ocean-pillars article:last-child { border-right: 0; }
.ocean-pillars .n { font-size: 11px; color: rgba(251, 249, 235, .66); letter-spacing: .14em; }
.ocean-pillars h3 { margin: 28px 0 10px; font-size: clamp(32px, 3.4vw, 46px); color: var(--bg); }
.ocean-pillars p { max-width: 31ch; color: rgba(251, 249, 235, .84); font-size: 14px; }

/* Facilitadores */
.facilitators { background: var(--ocean-pale); }
.facilitator-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2.5vw, 34px); }
.facilitator-card { min-width: 0; }
.facilitator-card figure { aspect-ratio: 4 / 5; overflow: hidden; border-radius: 8px; background: var(--ocean); }
.facilitator-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms cubic-bezier(.22, 1, .36, 1); }
.facilitator-card:nth-child(2) img { object-position: 50% center; }
.facilitator-card:nth-child(3) img { object-position: 55% center; }
.facilitator-copy { padding: 0; border-top: 1px solid var(--line); margin-top: 12px; }
.facilitator-name { display: flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 76px; padding: 12px 0; }
.facilitator-name::before { content: ""; flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: var(--ocean-dark); }
.facilitator-copy h3 { margin: 0; text-align: right; font-size: clamp(30px, 2.6vw, 40px); line-height: 1; }
.facilitator-copy .label { display: block; padding-top: 13px; border-top: 1px solid var(--line); }
.facilitator-copy p { color: var(--ink-2); font-size: 15px; max-width: 36ch; margin-top: 10px; }
@media (hover: hover) { .facilitator-card:hover img { transform: scale(1.045); } }

/* Hospedagem */
.lodging { background: var(--ink); color: var(--bg); }
.lodging .label, .lodging-features li, .lodging .source-note { color: color-mix(in srgb, var(--bg) 68%, transparent); }
.lodging-layout { display: grid; grid-template-columns: .76fr 1.24fr; gap: clamp(42px, 8vw, 112px); align-items: center; }
.lodging-copy h2 { margin: 20px 0 28px; }
.lodging-copy .lead { color: color-mix(in srgb, var(--bg) 78%, transparent); }
.lodging-features { margin: 38px 0 28px; border-top: 1px solid color-mix(in srgb, var(--bg) 35%, transparent); }
.lodging-features li { padding: 14px 0; border-bottom: 1px solid color-mix(in srgb, var(--bg) 35%, transparent); }
.source-note { line-height: 1.5; }
.lodging-gallery {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  grid-template-rows: repeat(2, minmax(180px, 1fr));
  gap: 12px;
}
.lodging-gallery figure { overflow: hidden; border-radius: 8px; min-height: 0; }
.lodging-gallery .lodging-main { grid-row: 1 / 3; }
.lodging-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms cubic-bezier(.22, 1, .36, 1); }
@media (hover: hover) { .lodging-gallery figure:hover img { transform: scale(1.05); } }

/* Incluído */
.included-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(44px, 8vw, 120px); }
.included-grid h2 { margin-top: 18px; max-width: 12ch; }
.included-list { border-top: 1px solid var(--line); }
.included-list > div { display: grid; grid-template-columns: 52px 1fr; gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.included-list span { font-size: 11px; color: var(--ink-3); letter-spacing: .14em; }
.included-list p { font-size: clamp(17px, 1.4vw, 20px); }

/* Investimento */
.pricing { background: var(--ocean-pale); }
.pricing-layout {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: clamp(44px, 8vw, 120px);
  align-items: start;
}
.pricing-intro h2 { margin: 18px 0 26px; max-width: 12ch; }
.pricing-intro p { max-width: 39ch; color: var(--ink-2); }
.pricing-card {
  padding: clamp(28px, 4vw, 52px);
  border-radius: 8px;
  background: var(--ink);
  color: var(--bg);
}
.pricing-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 28px;
  padding-bottom: clamp(28px, 4vw, 44px);
}
.pricing-card .label { color: rgba(251, 249, 235, .66); }
.price-status {
  font-family: var(--serif);
  font-size: clamp(30px, 3.4vw, 48px);
  line-height: 1;
  text-align: right;
}
.pricing-card ul { border-top: 1px solid rgba(251, 249, 235, .28); }
.pricing-card li {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 16px;
  padding: 15px 0;
  border-bottom: 1px solid rgba(251, 249, 235, .28);
}
.pricing-card li span { font-size: 10px; letter-spacing: .14em; color: rgba(251, 249, 235, .58); }
.pricing-card li p { color: rgba(251, 249, 235, .9); }
.pricing-card .btn { margin-top: 30px; border-color: var(--bg); background: var(--bg); color: var(--ink); }
.pricing-card .btn:hover { border-color: var(--ocean-pale); background: var(--ocean-pale); color: var(--ink); }
.pricing-note { margin-top: 18px; max-width: 58ch; color: rgba(251, 249, 235, .62); font-size: 12px; line-height: 1.5; }

/* FAQ */
.journey-faq { background: var(--bg-2); }
.faq-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(44px, 8vw, 120px); }
.faq-intro h2 { margin: 18px 0 22px; }
.faq-intro p { max-width: 32ch; color: var(--ink-2); }

/* CTA */
.journey-cta { padding-block: clamp(84px, 12vw, 168px); text-align: center; background: var(--ocean); color: var(--bg); }
.journey-cta .label { color: var(--bg); opacity: .72; }
.journey-cta h2 { font-size: clamp(62px, 9vw, 128px); margin: 26px auto 28px; line-height: .88; }
.journey-cta p { max-width: 48ch; margin: 0 auto 36px; }
.journey-cta .btn { border-color: var(--bg); background: var(--bg); color: var(--ink); }
.journey-cta .btn:hover { background: var(--ink); border-color: var(--ink); color: var(--bg); }

@media (max-width: 860px) {
  .journey-hero-head { grid-template-columns: 1fr; align-items: start; }
  .journey-hero h1 { font-size: clamp(76px, 22vw, 116px); }
  .journey-hero-copy { max-width: 42ch; }
  .journey-film { height: var(--mobile-hero-film-height, min(46svh, 430px)); aspect-ratio: auto; }
  .journey-film video { object-position: 52% center; }
  .journey-facts { grid-template-columns: 1fr 1fr; }
  .journey-facts > div:nth-child(2) { border-right: 0; }
  .journey-facts > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .journey-facts > div:nth-child(3) { padding-left: 0; }
  .intro-grid,
  .lodging-layout,
  .included-grid,
  .pricing-layout,
  .faq-grid { grid-template-columns: 1fr; }
  .intro-grid { gap: 20px; }
  .intro-grid > .label { padding-top: 0; }
.intro-content h2 { max-width: 12ch; }
.intro-content h2.poem-title { max-width: none; font-size: clamp(42px, 5.2vw, 70px); }
.poem-title > span { display: block; white-space: nowrap; }
  .intro-copy { grid-template-columns: 1fr 1fr; }
  .experience-gallery { grid-template-columns: 76vw 58vw 64vw; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); padding-inline: var(--gutter); }
  .experience-gallery .photo { height: 420px; scroll-snap-align: start; }
  .journey-section-head.split { grid-template-columns: 1fr; }
  .journey-section-head.split > p { justify-self: start; }
  .ocean-pillars { grid-template-columns: 1fr; }
  .ocean-pillars article { min-height: 0; padding: 18px 0; border-right: 0; border-bottom: 1px solid rgba(251, 249, 235, .32); }
  .ocean-pillars article:last-child { border-bottom: 0; }
  .ocean-pillars h3 { margin-top: 12px; }
  .facilitator-grid { grid-template-columns: 1fr; gap: 50px; }
  .facilitator-card { display: grid; grid-template-columns: .92fr 1.08fr; gap: 20px; }
  .facilitator-copy { margin-top: 0; }
  .lodging-gallery { min-height: 520px; }
}

@media (max-width: 600px) {
  .journey-hero { padding-top: 16px; padding-bottom: 12px; }
  .journey-hero-head { gap: 20px; }
  .journey-hero h1 { margin-top: 14px; }
  .journey-hero-copy > p:nth-child(2) { font-size: 22px; margin: 14px 0 20px; }
  .journey-film { width: calc(100% + 2 * var(--gutter)); margin-left: calc(var(--gutter) * -1); border-radius: 0; }
  .journey-facts { position: relative; width: calc(100% + 2 * var(--gutter)); margin-left: calc(var(--gutter) * -1); padding-inline: 0; grid-template-rows: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); }
  .journey-facts::after { content: ""; position: absolute; top: 50%; right: 0; left: 0; height: 1px; background: var(--line); pointer-events: none; }
  .journey-facts > div { padding: 14px 14px 16px; border-bottom: 0 !important; }
  .journey-facts > div + div { padding-left: 14px; }
  .journey-facts > div:nth-child(3) { padding-left: 14px; }
  .journey-seo-title { margin-top: 24px; font-size: 10px; }
  .journey-intro { padding-top: 40px; }
  .intro-grid { padding-bottom: 42px; }
  .intro-content h2 { font-size: clamp(46px, 14vw, 62px); line-height: .98; }
  .intro-content h2.poem-title { max-width: none; font-size: clamp(34px, 9.6vw, 42px); }
  .intro-content .intro-lead { font-size: 25px; margin-top: 26px; padding-top: 16px; }
  .intro-copy { grid-template-columns: 1fr; gap: 16px; margin-top: 26px; }
  .journey-pillars { padding-block: 38px; background-position: 54% center; }
  .journey-pillars .journey-section-head { margin-bottom: 22px; }
  .journey-pillars .journey-section-head h2 { margin-top: 12px; font-size: 42px; }
  .pricing-card { padding: 26px 22px; }
  .pricing-card-head { display: block; padding-bottom: 26px; }
  .price-status { display: block; margin-top: 18px; text-align: left; }
  .pricing-card .btn { width: 100%; justify-content: center; }
  .experience-gallery { grid-template-columns: 82vw 72vw 72vw; }
  .experience-gallery .photo { height: 360px; }
  .facilitator-card { grid-template-columns: 1fr; }
  .facilitator-card figure { aspect-ratio: 4 / 4.6; }
  .lodging-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 340px 180px; min-height: 0; }
  .lodging-gallery .lodging-main { grid-column: 1 / 3; grid-row: auto; }
  .included-list > div { grid-template-columns: 36px 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .experience-gallery img,
  .facilitator-card img,
  .lodging-gallery img { transition: none; }
  .experience-gallery .photo:hover img,
  .facilitator-card:hover img,
  .lodging-gallery figure:hover img { transform: none; }
}

/* ==========================================================================
   Curadoria 2027
   ========================================================================== */

/* Visão geral */
.journey-overview { background: var(--ocean-pale); }
.overview-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.overview-grid article {
  min-height: 150px;
  padding: clamp(18px, 2vw, 24px);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  transition: background-color var(--t-med), color var(--t-med);
}
.overview-grid article > span { font-size: 10px; letter-spacing: .14em; color: var(--ink-3); transition: color var(--t-med); }
.overview-grid h3 { margin: 15px 0 6px; font-size: clamp(30px, 3vw, 44px); }
.overview-grid p { max-width: 26ch; color: var(--ink-2); font-size: 14px; transition: color var(--t-med); }
@media (hover: hover) {
  .overview-grid article:hover { background-color: #677F7C; color: var(--bg); }
  .overview-grid article:hover > span,
  .overview-grid article:hover p { color: var(--bg); }
}

/* Surf, yoga e território */
.practice-stories { padding-block: 0; }
.practice-list { border-top: 1px solid var(--line); }
.practice-story {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: clamp(36px, 7vw, 104px);
  align-items: center;
  padding-block: clamp(34px, 5vw, 72px);
  border-bottom: 1px solid var(--line);
}
.practice-story figure { aspect-ratio: 4 / 3; overflow: hidden; border-radius: 8px; }
.practice-story figure img { width: 100%; height: 100%; object-fit: cover; transition: transform 800ms cubic-bezier(.22, 1, .36, 1); }
.practice-story:nth-child(3) figure img { object-position: center 62%; }
.practice-story.reverse { grid-template-columns: .92fr 1.08fr; }
.practice-story.reverse figure { order: 2; }
.practice-copy h2 { margin: 18px 0 26px; font-size: clamp(44px, 5vw, 72px); line-height: .98; max-width: 12ch; }
.practice-copy p { max-width: 47ch; color: var(--ink-2); }
.practice-copy p + p { margin-top: 16px; }
@media (hover: hover) { .practice-story:hover figure img { transform: scale(1.045); } }

/* Cuidado Acenda */
.care-section {
  position: relative;
  padding-block: clamp(64px, 8vw, 112px);
  color: var(--bg);
  background: url("../img/oceano-2027/hero-poster.jpg") center / cover no-repeat;
  isolation: isolate;
}
.care-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(4, 39, 45, .94), rgba(4, 39, 45, .76));
}
.care-layout { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(48px, 9vw, 136px); align-items: end; }
.care-section .label { color: rgba(251, 249, 235, .65); }
.care-copy h2 { margin: 18px 0 30px; max-width: 18ch; color: var(--bg); }
.care-copy p { max-width: 52ch; color: rgba(251, 249, 235, .82); }
.care-copy p + p { margin-top: 16px; }
.care-facts { margin: 0; border-top: 1px solid rgba(251, 249, 235, .35); }
.care-facts div { padding: 20px 0; border-bottom: 1px solid rgba(251, 249, 235, .35); }
.care-facts dt { margin-bottom: 8px; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: rgba(251, 249, 235, .58); }
.care-facts dd { margin: 0; font-family: var(--serif); font-size: clamp(20px, 2vw, 28px); line-height: 1.12; }

/* Inclusões */
.included-excluded { margin-top: 34px; max-width: 34ch; color: var(--ink-2); font-size: 13px; }

/* Depoimentos */
.journey-testimonials { background: var(--bg); }
.testimonial-slider { overflow: hidden; border-block: 1px solid var(--line); }
.testimonial-track { display: flex; transition: transform 650ms cubic-bezier(.22, 1, .36, 1); }
.journey-quote {
  flex: 0 0 100%;
  min-width: 0;
  padding: clamp(48px, 7vw, 96px) clamp(4px, 5vw, 68px);
}
.journey-quote blockquote {
  max-width: 22ch;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(38px, 5vw, 68px);
  line-height: 1.03;
  letter-spacing: -.025em;
}
.journey-quote figcaption { margin-top: 30px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); }
.testimonial-controls { display: flex; justify-content: space-between; align-items: center; padding: 16px 4px; border-top: 1px solid var(--line); }
.testimonial-count { font-size: 11px; letter-spacing: .12em; }
.testimonial-count b { font-weight: 500; }
.testimonial-controls > div { display: flex; gap: 8px; }
.testimonial-controls button { width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 50%; transition: background var(--t-fast), color var(--t-fast), opacity var(--t-fast); }
.testimonial-controls button:disabled { opacity: .28; cursor: default; }
@media (hover: hover) { .testimonial-controls button:not(:disabled):hover { background: var(--ink); color: var(--bg); } }

/* Investimento */
.pricing { background: var(--ocean-pale); }
.pricing-head > p { max-width: 44ch; }
.price-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.price-option {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 490px;
  padding: clamp(24px, 3vw, 38px);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.room-copy { min-height: 48px; margin-top: 18px; color: var(--ink-2); font-size: 14px; }
.price { margin-top: clamp(40px, 5vw, 68px); }
.price strong { display: block; font-family: var(--serif); font-size: clamp(44px, 4.7vw, 68px); font-weight: 400; line-height: .95; white-space: nowrap; }
.price span { display: block; margin-top: 8px; color: var(--ink-2); font-size: 12px; }
.installments { margin-top: 24px; font-size: 14px; }
.pix { margin-top: 6px; color: var(--ink-2); font-size: 14px; }
.price-option .btn { justify-content: center; margin-top: auto; width: 100%; min-height: 58px; text-align: center; }
.pricing-foot { display: flex; justify-content: space-between; align-items: center; gap: 28px; padding-top: 26px; }
.pricing-foot p { max-width: 52ch; color: var(--ink-2); font-size: 13px; }

/* CTA final */
.journey-cta {
  position: relative;
  min-height: min(82vh, 760px);
  display: grid;
  place-items: center;
  background: url("../img/oceano-2027/hero-poster.jpg") center / cover no-repeat;
  isolation: isolate;
}
.journey-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(4, 39, 45, .58); }
.journey-cta h2 { font-size: clamp(58px, 8vw, 112px); line-height: .92; }

@media (max-width: 860px) {
  .overview-grid { grid-template-columns: repeat(2, 1fr); }
  .practice-story,
  .practice-story.reverse,
  .care-layout { grid-template-columns: 1fr; }
  .practice-story.reverse figure { order: 0; }
  .practice-story figure { aspect-ratio: 16 / 10; }
  .care-layout { align-items: start; }
  .price-grid { grid-template-columns: 1fr; }
  .price-option { min-height: 0; }
  .price-option .pix { margin-bottom: 0; }
  .price-option .btn { margin-top: 34px; }
}

@media (max-width: 600px) {
  .overview-grid article { min-height: 124px; padding: 15px; }
  .overview-grid h3 { margin-top: 12px; font-size: 29px; }
  .overview-grid p { font-size: 13px; }
  .practice-stories { padding-top: 0; }
  .practice-story { gap: 26px; padding-block: 30px; }
  .practice-story figure { aspect-ratio: 4 / 3; }
  .practice-copy h2 { font-size: 45px; }
  .care-section { padding-block: 56px; }
  .care-copy h2 { font-size: 48px; }
  .journey-quote { padding: 42px 2px; }
  .journey-quote blockquote { font-size: 36px; }
  .pricing-head { margin-bottom: 30px; }
  .price-option { padding: 24px 20px; }
  .room-copy { min-height: 0; }
  .price { margin-top: 36px; }
  .price strong { font-size: 52px; }
  .pricing-foot { align-items: flex-start; flex-direction: column; }
  .pricing-foot .btn { width: 100%; justify-content: center; }
  .journey-cta { min-height: 620px; }
}

@media (prefers-reduced-motion: reduce) {
  .practice-story figure img,
  .testimonial-track { transition: none; }
}

/* ==========================================================================
   V2 · direção fotográfica 2027
   ========================================================================== */
.manifesto-gallery { grid-template-columns: 1.5fr .72fr; }
.manifesto-gallery .photo { height: clamp(360px, 48vw, 680px); }
.manifesto-gallery .portrait img { object-position: center; }

.overview-film { margin-bottom: clamp(18px, 2vw, 28px); aspect-ratio: 16 / 7; overflow: hidden; border-radius: 8px; }
.overview-film video { width: 100%; height: 100%; object-fit: cover; object-position: 58% center; }

.discipline { padding-block: clamp(48px, 6vw, 84px); }
.discipline-head { display: grid; grid-template-columns: 1.08fr .92fr; column-gap: clamp(40px, 8vw, 120px); row-gap: 14px; align-items: end; margin-bottom: clamp(32px, 4vw, 52px); }
.discipline-head > .label { grid-column: 1 / -1; }
.discipline-head h2 { max-width: 15ch; font-size: clamp(48px, 6vw, 88px); line-height: .96; }
.discipline-head > div p { max-width: 48ch; color: var(--ink-2); }
.discipline-head > div p + p { margin-top: 16px; }

.surf-sequence { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 12px; }
.surf-sequence figure { position: relative; overflow: hidden; border-radius: 8px; }
.surf-sequence figure:nth-child(1) { grid-column: span 7; height: 520px; }
.surf-sequence figure:nth-child(2) { grid-column: span 5; height: 520px; }
.surf-sequence figure:nth-child(3) { grid-column: span 5; height: 390px; }
.surf-sequence figure:nth-child(4) { grid-column: span 3; height: 390px; }
.surf-sequence figure:nth-child(5) { grid-column: span 4; height: 390px; }
.surf-sequence img,
.yoga-sequence img,
.experience-acenda-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 800ms cubic-bezier(.22, 1, .36, 1); }
.surf-sequence figcaption { position: absolute; left: 16px; bottom: 14px; padding: 7px 10px; border-radius: 999px; background: color-mix(in srgb, var(--bg) 88%, transparent); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }

.yoga-sequence { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.yoga-sequence figure { height: clamp(360px, 42vw, 590px); overflow: hidden; border-radius: 8px; }

.pipa-media { position: relative; aspect-ratio: 16 / 8; overflow: hidden; border-radius: 8px; }
.pipa-media video { width: 100%; height: 100%; object-fit: cover; }
.pipa-media picture { display: none; }

.experience-acenda-gallery { display: grid; grid-template-columns: .9fr 1.18fr .92fr; gap: 12px; margin-top: clamp(48px, 7vw, 92px); }
.experience-acenda-gallery figure { height: clamp(300px, 34vw, 480px); overflow: hidden; border-radius: 8px; }
.experience-acenda-gallery figure:nth-child(2) img { object-position: 50% center; }

.transition-photo { width: 100%; padding: clamp(12px, 2vw, 28px); background: var(--bg); }
.transition-photo img { display: block; width: 100%; aspect-ratio: 3 / 1.35; object-fit: cover; border-radius: 8px; }

.lodging-gallery {
  grid-template-columns: 1.25fr .75fr;
  grid-template-rows: repeat(3, minmax(0, 1fr));
  /* altura travada: sem isso as três fotos empilhadas esticam a principal */
  height: clamp(430px, 40vw, 560px);
}
.lodging-gallery .lodging-main { grid-row: 1 / 4; }

.social-proof-photo { margin: 0 0 clamp(28px, 4vw, 48px); }
.social-proof-photo img { display: block; width: 100%; height: auto; border-radius: 8px; }
.ocean-depoimentos .marquee { padding-bottom: 10px; }
.ocean-depoimentos .depo { min-height: 250px; }

.ocean-gallery { background: var(--bg-2); }
.ocean-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: clamp(150px, 15vw, 220px);
  grid-auto-flow: dense;
  gap: 12px;
}
.ocean-gallery-grid figure { margin: 0; overflow: hidden; border-radius: 8px; }
.ocean-gallery-grid figure:first-child { grid-column: span 2; grid-row: span 2; }
.ocean-gallery-grid figure:nth-child(2) { grid-row: span 2; }
.ocean-gallery-grid img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 700ms cubic-bezier(.22, 1, .36, 1); }

.price-option { min-height: 0; padding: clamp(22px, 2.4vw, 32px); }
.room-copy { min-height: 0; margin-top: 14px; }
.price { margin-top: 28px; }
.price strong { font-size: clamp(42px, 4.2vw, 60px); }
.installments { margin-top: 18px; }
/* os três cards alinham linha a linha: descrição, preço, parcelas, botão */
.price-option .btn { margin-top: auto; padding-inline: 18px; letter-spacing: .08em; }
.price-option .pix { margin-bottom: 28px; }
@media (min-width: 861px) {
  .room-copy { min-height: 44px; }
  /* altura de duas linhas reservada nos três: o rótulo longo pode quebrar sem desalinhar */
  .price-option .btn { min-height: 62px; }
}
@media (min-width: 1120px) {
  .price-option .btn { padding-inline: 22px; }
}
.pricing-foot { padding-top: 22px; }

.journey-cta { background: var(--ocean-dark); overflow: hidden; }
.journey-cta-video { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 58% center; }

.journey-floating-cta {
  position: fixed;
  right: clamp(16px, 2vw, 28px);
  bottom: clamp(16px, 2vw, 28px);
  z-index: 38;
  display: grid;
  min-width: 236px;
  padding: 13px 16px 14px;
  border: 1px solid color-mix(in srgb, var(--bg) 42%, transparent);
  background: color-mix(in srgb, var(--ink) 94%, transparent);
  box-shadow: 0 12px 34px rgba(4, 31, 22, .18);
  color: var(--bg);
  backdrop-filter: blur(10px);
  transition: transform var(--t-fast), background var(--t-fast);
}
.journey-floating-cta > span { color: color-mix(in srgb, var(--bg) 66%, transparent); font-size: 9px; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; }
.journey-floating-cta strong { display: flex; justify-content: space-between; gap: 22px; margin-top: 4px; font: 400 20px/1.1 var(--serif); }
.journey-floating-cta:hover { transform: translateY(-3px); background: var(--ink-2); }

@media (hover: hover) {
  .surf-sequence figure:hover img,
  .yoga-sequence figure:hover img,
  .experience-acenda-gallery figure:hover img,
  .ocean-gallery-grid figure:hover img { transform: scale(1.045); }
}

@media (max-width: 860px) {
  .journey-film video { object-position: 30% center; }
  .manifesto-gallery { grid-template-columns: 84vw 68vw; overflow-x: auto; scroll-snap-type: x mandatory; padding-inline: var(--gutter); }
  .manifesto-gallery .photo { height: 480px; scroll-snap-align: start; }
  .overview-film { aspect-ratio: 4 / 5; }
  .overview-film video { object-position: 65% center; }
  .discipline-head { grid-template-columns: 1fr; gap: 16px; margin-bottom: 30px; }
  .discipline-head > .label { grid-column: auto; }
  .surf-sequence,
  .yoga-sequence,
  .experience-acenda-gallery,
  .lodging-gallery {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 78vw;
    grid-template-columns: none;
    grid-template-rows: none;
    height: auto;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--gutter);
    padding-inline: var(--gutter);
    margin-inline: calc(var(--gutter) * -1);
  }
  .surf-sequence figure:nth-child(n),
  .yoga-sequence figure,
  .experience-acenda-gallery figure,
  .lodging-gallery figure,
  .lodging-gallery .lodging-main { grid-column: auto; grid-row: auto; width: auto; height: auto; aspect-ratio: 4 / 5; scroll-snap-align: start; }
  .surf-sequence img { object-position: center; }
  .surf-sequence figure:nth-child(3) img { object-position: 56% center; }
  .pipa-media { aspect-ratio: 4 / 5; }
  .pipa-media video { display: none; }
  .pipa-media picture { display: block; width: 100%; height: 100%; }
  .pipa-media picture img { width: 100%; height: 100%; object-fit: cover; }
  .experience-acenda-gallery { margin-top: 48px; }
  .transition-photo { padding: 12px var(--gutter); }
  .transition-photo img { aspect-ratio: 3 / 2; }
  .ocean-depoimentos .depo { min-height: 230px; }
  .ocean-gallery-grid { display: block; columns: 2; column-gap: 8px; }
  .ocean-gallery-grid figure { margin-bottom: 8px; }
  .ocean-gallery-grid img { height: auto; object-fit: initial; }
}

@media (max-width: 600px) {
  .discipline { padding-block: 44px; }
  .discipline-head h2 { font-size: 46px; }
  .manifesto-gallery .photo { height: 430px; }
  .surf-sequence,
  .yoga-sequence,
  .experience-acenda-gallery,
  .lodging-gallery { grid-auto-columns: 82vw; }
  .social-proof-photo img { aspect-ratio: 3 / 2; object-fit: contain; }
  .price-grid { gap: 0; }
  .price-option { padding: 22px 18px; }
  .price strong { font-size: 48px; }
  .journey-cta-video { object-position: 65% center; }
  .journey-floating-cta { right: 12px; bottom: 12px; left: 12px; min-width: 0; padding: 12px 14px; }
  .journey-floating-cta strong { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .surf-sequence img,
  .yoga-sequence img,
  .experience-acenda-gallery img,
  .ocean-gallery-grid img { transition: none; }
}
