/* =============================================
   SheWhoRests - The Inner Goddess Retreat Page
   ============================================= */

.navbar.scrolled .nav-cta { background: var(--forest); }
.navbar.scrolled .nav-cta:hover { background: var(--forest-light); }


/* =========================================
   HERO - sunset overlay
   ========================================= */
.rp-hero {
  position: relative;
  height: 100vh;
  min-height: 640px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.rp-hero-bg {
  position: absolute;
  inset: 0;
}
.rp-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 60%;
}
/* Warm gradient for light beach image — darker centre and bottom for text */
.rp-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(61, 30, 29, 0.85) 0%,
    rgba(61, 30, 29, 0.60) 30%,
    rgba(61, 30, 29, 0.42) 55%,
    rgba(61, 30, 29, 0.20) 80%,
    rgba(61, 30, 29, 0.08) 100%
  );
}
.rp-hero-content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: var(--cream);
}
.rp-hero-eyebrow {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: rgba(250, 248, 239, 0.92);
  margin-bottom: 24px;
  padding: 7px 22px;
  border: 1px solid rgba(250, 248, 239, 0.40);
  border-radius: var(--radius-full);
  background: rgba(61, 30, 29, 0.48);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.rp-hero-title {
  font-family: var(--font-serif);
  font-size: clamp(3.5rem, 8vw, 7rem);
  font-weight: 300;
  line-height: 1.0;
  color: #fff;
  margin-bottom: 10px;
  text-shadow: 0 2px 24px rgba(40,12,6,0.65);
}
.rp-hero-title em {
  font-style: italic;
  display: block;
  color: #fff;
  text-shadow: 0 2px 28px rgba(40,12,6,0.70);
}
.rp-hero-subtitle {
  font-family: var(--font-serif);
  font-size: clamp(1.3rem, 2.6vw, 2.1rem);
  font-weight: 300;
  font-style: italic;
  color: rgba(250, 248, 239, 0.95);
  margin-bottom: 40px;
  text-shadow: 0 2px 24px rgba(20,8,4,0.65);
}
.rp-hero-details {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 48px;
  flex-wrap: wrap;
  justify-content: center;
}
.rp-hero-detail {
  font-family: var(--font-sans);
  font-size: 0.82rem;
  font-weight: 300;
  letter-spacing: 0.1em;
  color: rgba(250, 248, 239, 0.78);
  display: flex;
  align-items: center;
  gap: 8px;
}
.rp-hero-detail::before {
  content: '';
  display: inline-block;
  width: 5px;
  height: 5px;
  background: #c3a291;
  border-radius: 50%;
  opacity: 0.85;
}
.rp-hero-detail:first-child::before { display: none; }
.rp-hero-btn {
  display: inline-block;
  padding: 18px 52px;
  background: linear-gradient(135deg, #b8917e 0%, #7a1515 100%);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border-radius: var(--radius-full);
  box-shadow: 0 4px 32px rgba(86, 0, 1, 0.40);
  transition: transform var(--transition), box-shadow var(--transition);
}
.rp-hero-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 40px rgba(86, 0, 1, 0.55);
}


/* =========================================
   WAVE HELPERS
   ========================================= */
.rp-wave {
  display: block;
  line-height: 0;
  font-size: 0;
  overflow: hidden;
  margin-bottom: -2px;
}
.rp-wave svg {
  display: block;
  width: 100%;
  height: clamp(44px, 5vw, 72px);
}


/* =========================================
   BOTANICAL HELPERS
   ========================================= */
.rp-botanical {
  position: absolute;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}


/* =========================================
   SECTION LABELS (shared)
   ========================================= */
.rp-label {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--terra);
  margin-bottom: 18px;
}
.rp-label--light {
  color: rgba(255, 220, 170, 0.65);
}


/* =========================================
   YOU DESERVE THIS MOMENT - coral adobe
   ========================================= */
.rp-deserve {
  position: relative;
  overflow: hidden;
  background-color: #560001;
  padding: 110px 40px;
}
/* Large decorative circle */
.rp-deserve::before {
  content: '';
  position: absolute;
  width: 700px;
  height: 700px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(195, 162, 145, 0.20) 0%, transparent 70%);
  top: -200px;
  right: -150px;
  pointer-events: none;
}
.rp-deserve::after {
  content: '';
  position: absolute;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(195,162,145,0.14) 0%, transparent 70%);
  bottom: -100px;
  left: -80px;
  pointer-events: none;
}
.rp-deserve-inner {
  position: relative;
  z-index: 1;
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.rp-deserve-eyebrow {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(195, 162, 145, 0.55);
  margin-bottom: 10px;
}
.rp-deserve-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 300;
  line-height: 1.0;
  color: #fff;
  margin-bottom: 8px;
}
.rp-deserve-heading em {
  font-style: italic;
  display: block;
  color: #c3a291;
}
.rp-deserve-body {
  font-family: var(--font-sans);
  font-size: clamp(0.88rem, 1.2vw, 0.97rem);
  font-weight: 300;
  line-height: 1.95;
  color: rgba(250, 248, 239, 0.82);
  margin-bottom: 20px;
}
.rp-deserve-photo-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}
.rp-deserve-photo {
  width: 420px;
  height: 420px;
  max-width: 100%;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 12px 60px rgba(0, 0, 0, 0.35);
  outline: 2px solid rgba(195, 162, 145, 0.35);
  outline-offset: 10px;
  flex-shrink: 0;
}
.rp-deserve-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
}


/* =========================================
   WHY WE CREATED THIS RETREAT
   ========================================= */
.rp-why {
  position: relative;
  overflow: hidden;
  background-color: var(--cream);
  padding: 110px 40px;
}
.rp-why-inner {
  position: relative;
  z-index: 1;
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.rp-why-collage {
  position: relative;
  height: 460px;
}
.rp-why-img {
  position: absolute;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 6px 28px rgba(42, 34, 24, 0.14);
}
.rp-why-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.rp-why-img--1 {
  width: 270px;
  height: 330px;
  top: 0;
  left: 0;
}
.rp-why-img--2 {
  width: 220px;
  height: 260px;
  top: 80px;
  right: 20px;
}
.rp-why-img--3 {
  width: 180px;
  height: 180px;
  bottom: 0;
  left: 90px;
}
.rp-why-heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 300;
  line-height: 1.1;
  color: var(--ink);
  margin-bottom: 6px;
}
.rp-why-heading em { font-style: italic; color: var(--terra); }
.rp-why-body {
  font-family: var(--font-sans);
  font-size: clamp(0.88rem, 1.2vw, 0.97rem);
  font-weight: 300;
  line-height: 1.95;
  color: var(--ink-mid);
  margin-bottom: 22px;
}
.rp-why-tagline {
  font-family: var(--font-serif);
  font-size: clamp(1.1rem, 2vw, 1.55rem);
  font-style: italic;
  color: var(--forest);
  margin-top: 8px;
  line-height: 1.5;
}


/* =========================================
   WHAT'S INCLUDED - deep plum
   ========================================= */
.rp-included {
  position: relative;
  overflow: hidden;
  background-color: var(--ink);
  padding: 110px 40px;
}
/* Decorative glow blobs */
.rp-included::before {
  content: '';
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(195, 162, 145, 0.15) 0%, transparent 70%);
  top: -100px;
  right: -100px;
  pointer-events: none;
}
.rp-included::after {
  content: '';
  position: absolute;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(61, 30, 29, 0.10) 0%, transparent 70%);
  bottom: -80px;
  left: -80px;
  pointer-events: none;
}
.rp-included-inner {
  position: relative;
  z-index: 1;
  max-width: var(--container);
  margin: 0 auto;
}
.rp-included-header {
  text-align: center;
  margin-bottom: 64px;
}
.rp-included-header .rp-label {
  color: rgba(195, 162, 145, 0.7);
}
.rp-included-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.2rem, 4.5vw, 3.6rem);
  font-weight: 300;
  line-height: 1.1;
  color: #fff;
}
.rp-included-heading em {
  font-style: italic;
  color: #c3a291;
}
.rp-checklist-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 60px;
  margin-bottom: 60px;
}
.rp-checklist-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  font-family: var(--font-sans);
  font-size: 0.93rem;
  font-weight: 300;
  line-height: 1.75;
  color: rgba(250, 248, 239, 0.85);
  padding: 13px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
/* Cycling icon colours */
.rp-check-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}
.rp-check-icon svg {
  width: 9px;
  height: 9px;
  stroke-width: 2.2;
  stroke: #fff;
  fill: none;
}
.rp-checklist-item:nth-child(1)  .rp-check-icon { background: #7a1515; }
.rp-checklist-item:nth-child(2)  .rp-check-icon { background: #560001; }
.rp-checklist-item:nth-child(3)  .rp-check-icon { background: #7a1515; }
.rp-checklist-item:nth-child(4)  .rp-check-icon { background: #7A8A60; }
.rp-checklist-item:nth-child(5)  .rp-check-icon { background: #c3a291; }
.rp-checklist-item:nth-child(6)  .rp-check-icon { background: #c3a291; }
.rp-checklist-item:nth-child(7)  .rp-check-icon { background: #7a1515; }
.rp-checklist-item:nth-child(8)  .rp-check-icon { background: #560001; }
.rp-checklist-item:nth-child(9)  .rp-check-icon { background: #7a1515; }
.rp-checklist-item:nth-child(10) .rp-check-icon { background: #7A8A60; }
.rp-checklist-item:nth-child(11) .rp-check-icon { background: #c3a291; }
.rp-checklist-item:nth-child(12) .rp-check-icon { background: #c3a291; }

.rp-not-included {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 60px;
  padding-top: 44px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.rp-not-included-label {
  grid-column: 1 / -1;
  font-family: var(--font-sans);
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(195, 162, 145, 0.45);
  margin-bottom: 16px;
}
.rp-nocheck-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  font-family: var(--font-sans);
  font-size: 0.9rem;
  font-weight: 300;
  line-height: 1.75;
  color: rgba(250, 248, 239, 0.5);
  padding: 10px 0;
}
.rp-nocheck-icon {
  flex-shrink: 0;
  margin-top: 2px;
  color: rgba(250, 248, 239, 0.35);
  font-size: 1rem;
  line-height: 1;
}


/* =========================================
   VILLA GALLERY (horizontal strip)
   ========================================= */
.rp-villa-gallery {
  background: var(--cream);
  padding: 0 0 0;
  overflow: hidden;
}
.rp-villa-gallery-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  grid-template-rows: repeat(2, 220px);
  gap: 4px;
}
.rp-vg-item {
  overflow: hidden;
}
.rp-vg-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.rp-vg-item:hover img {
  transform: scale(1.05);
}

@media (max-width: 960px) {
  .rp-villa-gallery-grid {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(4, 180px);
  }
}
@media (max-width: 600px) {
  .rp-villa-gallery-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(5, 160px);
  }
}


/* =========================================
   THE VILLA
   ========================================= */
.rp-villa {
  position: relative;
  overflow: hidden;
  background-color: var(--cream);
  padding: 110px 40px;
}
.rp-villa-inner {
  position: relative;
  z-index: 1;
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.rp-villa-eyebrow {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--terra);
  display: block;
  margin-bottom: 4px;
}
.rp-villa-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 300;
  line-height: 1.0;
  color: var(--ink);
  margin-bottom: 32px;
}
.rp-villa-heading em {
  font-style: italic;
  display: block;
  color: var(--forest);
}
.rp-villa-list {
  list-style: none;
  margin-bottom: 36px;
}
.rp-villa-list li {
  display: flex;
  align-items: baseline;
  gap: 14px;
  font-family: var(--font-sans);
  font-size: 0.93rem;
  font-weight: 300;
  line-height: 1.75;
  color: var(--ink-mid);
  padding: 9px 0;
  border-bottom: 1px solid rgba(42, 34, 24, 0.08);
}
.rp-villa-list li::before {
  content: '✦';
  font-size: 0.55rem;
  color: var(--terra);
  flex-shrink: 0;
  opacity: 0.75;
}
.rp-villa-photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 12px;
}
.rp-villa-photo {
  overflow: hidden;
  border-radius: 3px;
  box-shadow: 0 4px 20px rgba(42, 34, 24, 0.12);
}
.rp-villa-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.rp-villa-photo--large {
  grid-column: 1 / -1;
  height: 260px;
}
.rp-villa-photo--small {
  height: 180px;
}


/* =========================================
   THE PROGRAM - deep rose-wine
   ========================================= */
/* ── PROGRAM SECTION - VERSION 1: Waves (active)
   To switch to Version 2 (palm beach):
   · change url('retreat-bg-waves.jpg') → url('retreat-bg-palm.jpg') in ::before
   ─────────────────────────────────────────────── */
.rp-program {
  position: relative;
  overflow: hidden;
  background-color: var(--cream);
  padding: 110px 40px;
}
.rp-program::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('retreat-bg-waves.jpg') center / cover no-repeat;
  /* VERSION 2 palm: url('retreat-bg-palm.jpg') */
  opacity: 0.13;
  pointer-events: none;
}
.rp-program::after { display: none; }

.rp-program-inner {
  position: relative;
  z-index: 1;
  max-width: 820px;
  margin: 0 auto;
}
.rp-program-header {
  text-align: center;
  margin-bottom: 16px;
}
.rp-program-header .rp-label--light {
  color: var(--gold);
}
.rp-program-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.4rem, 5vw, 3.8rem);
  font-weight: 300;
  color: var(--ink);
}
.rp-program-heading em {
  font-style: italic;
  color: #c3a291;
}
.rp-program-dates {
  font-family: var(--font-sans);
  font-size: 0.92rem;
  font-weight: 300;
  line-height: 1.85;
  color: var(--ink-mid);
  text-align: center;
  margin-bottom: 60px;
  max-width: 580px;
  margin-left: auto;
  margin-right: auto;
}
.rp-program-list {
  list-style: none;
  margin-bottom: 48px;
}
.rp-program-item {
  display: flex;
  gap: 24px;
  padding: 22px 0 22px 20px;
  border-bottom: 1px solid rgba(42, 34, 24, 0.10);
  border-left: 3px solid transparent;
  transition: border-left-color 0.2s;
}
.rp-program-item:first-child {
  border-top: 1px solid rgba(42, 34, 24, 0.10);
}
/* Cycling border colours */
.rp-program-item:nth-child(1) { border-left-color: #c3a291; }
.rp-program-item:nth-child(2) { border-left-color: #b8917e; }
.rp-program-item:nth-child(3) { border-left-color: #7A8A60; }
.rp-program-item:nth-child(4) { border-left-color: #7A8A60; }
.rp-program-item:nth-child(5) { border-left-color: #c3a291; }
.rp-program-item:nth-child(6) { border-left-color: #b8917e; }
.rp-program-item:nth-child(7) { border-left-color: #7A8A60; }
.rp-program-item:nth-child(8) { border-left-color: #7A8A60; }

.rp-program-count {
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 500;
  color: #c3a291;
  flex-shrink: 0;
  padding-top: 3px;
  min-width: 32px;
}
.rp-program-name {
  font-family: var(--font-serif);
  font-size: clamp(1.05rem, 1.8vw, 1.35rem);
  font-weight: 400;
  color: var(--ink);
  margin-bottom: 4px;
}
.rp-program-desc {
  font-family: var(--font-sans);
  font-size: 0.86rem;
  font-weight: 300;
  line-height: 1.7;
  color: var(--ink-soft);
}
.rp-program-philosophy {
  padding: 36px 44px;
  border: 1px solid rgba(195, 162, 145, 0.30);
  border-radius: 6px;
  text-align: center;
  background: rgba(195, 162, 145, 0.06);
  margin-top: 8px;
}
.rp-program-philosophy p {
  font-family: var(--font-serif);
  font-size: clamp(1rem, 1.8vw, 1.3rem);
  font-weight: 300;
  font-style: italic;
  line-height: 1.75;
  color: var(--ink-mid);
}


/* =========================================
   FAREWELL GODDESS RITUAL
   ========================================= */
.rp-ritual {
  position: relative;
  overflow: hidden;
  background-color: var(--cream);
  padding: 110px 40px;
  text-align: center;
}
.rp-ritual-inner {
  position: relative;
  z-index: 1;
  max-width: 640px;
  margin: 0 auto;
}
.rp-ritual-heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 300;
  line-height: 1.1;
  color: var(--ink);
  margin-bottom: 44px;
}
.rp-ritual-heading em {
  font-style: italic;
  color: var(--forest);
}
.rp-ritual-photo {
  width: 340px;
  height: 420px;
  max-width: 100%;
  margin: 0 auto 44px;
  border-radius: 170px 170px 0 0;
  overflow: hidden;
  box-shadow: 0 12px 50px rgba(86, 0, 1, 0.20);
  outline: 2px solid rgba(86, 0, 1, 0.25);
  outline-offset: 8px;
}
.rp-ritual-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  display: block;
}
.rp-ritual-body {
  font-family: var(--font-sans);
  font-size: clamp(0.9rem, 1.3vw, 1rem);
  font-weight: 300;
  line-height: 1.95;
  color: var(--ink-mid);
}


/* =========================================
   MEET THE GUIDES - forest (keep, works great)
   ========================================= */
.rp-guides {
  position: relative;
  overflow: hidden;
  background-color: var(--forest);
  padding: 110px 40px;
}
.rp-guides-inner {
  position: relative;
  z-index: 1;
  max-width: var(--container);
  margin: 0 auto;
}
.rp-guides-header {
  text-align: center;
  margin-bottom: 72px;
}
.rp-guides-heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 300;
  color: var(--cream);
}
.rp-guides-heading em { font-style: italic; color: #c3a291; }
.rp-guides-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
}
.rp-guide-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.rp-guide-photo {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  overflow: hidden;
  margin-bottom: 28px;
  box-shadow: 0 6px 32px rgba(0,0,0,0.25);
  outline: 2px solid rgba(195, 162, 145, 0.3);
  outline-offset: 6px;
  flex-shrink: 0;
}
.rp-guide-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.rp-guide-photo-placeholder {
  width: 100%;
  height: 100%;
  background: rgba(250, 248, 239, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-serif);
  font-size: 3rem;
  font-weight: 300;
  color: rgba(250, 248, 239, 0.5);
}
.rp-guide-name {
  font-family: var(--font-serif);
  font-size: clamp(1.5rem, 2.8vw, 2.1rem);
  font-weight: 300;
  color: var(--cream);
  margin-bottom: 6px;
}
.rp-guide-role {
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #c3a291;
  margin-bottom: 20px;
}
.rp-guide-bio {
  font-family: var(--font-sans);
  font-size: 0.9rem;
  font-weight: 300;
  line-height: 1.85;
  color: rgba(250, 248, 239, 0.65);
  max-width: 400px;
}


/* =========================================
   FOOD & NOURISHMENT
   ========================================= */
.rp-food {
  position: relative;
  overflow: hidden;
  background-color: var(--cream-dark);
  padding: 110px 40px;
}
.rp-food-bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right center;
  opacity: 0.22;
}
.rp-food-inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}
.rp-food-heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 300;
  line-height: 1.1;
  color: var(--ink);
  margin-bottom: 36px;
}
.rp-food-heading em { font-style: italic; color: var(--terra); }
.rp-food-body {
  font-family: var(--font-sans);
  font-size: clamp(0.9rem, 1.3vw, 1rem);
  font-weight: 300;
  line-height: 1.95;
  color: var(--ink-mid);
  margin-bottom: 22px;
}
.rp-food-note {
  font-family: var(--font-sans);
  font-size: 0.85rem;
  font-weight: 300;
  font-style: italic;
  color: var(--ink-soft);
  margin-top: 32px;
  opacity: 0.8;
}


/* =========================================
   HOW TO GET THERE
   ========================================= */
.rp-travel {
  position: relative;
  overflow: hidden;
  background-color: var(--cream);
  padding: 110px 40px;
}
.rp-travel-inner {
  position: relative;
  z-index: 1;
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.rp-travel-eyebrow-stack { margin-bottom: 28px; }
.rp-travel-eyebrow {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--terra);
  display: block;
  margin-bottom: 6px;
}
.rp-travel-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.2rem, 4.5vw, 3.6rem);
  font-weight: 300;
  line-height: 1.0;
  color: var(--ink);
}
.rp-travel-heading em {
  font-style: italic;
  display: block;
  color: var(--ink);
}
.rp-travel-body {
  font-family: var(--font-sans);
  font-size: clamp(0.88rem, 1.2vw, 0.97rem);
  font-weight: 300;
  line-height: 1.9;
  color: var(--ink-mid);
  margin-bottom: 20px;
}
.rp-travel-info-box {
  background: rgba(61, 30, 29, 0.06);
  border-left: 3px solid var(--ink);
  padding: 20px 24px;
  border-radius: 0 3px 3px 0;
  margin-bottom: 24px;
}
.rp-travel-info-box p {
  font-family: var(--font-sans);
  font-size: 0.88rem;
  font-weight: 300;
  line-height: 1.75;
  color: var(--ink);
}
.rp-travel-info-box strong {
  color: var(--ink);
  font-weight: 500;
}
.rp-travel-note {
  font-family: var(--font-sans);
  font-size: 0.88rem;
  font-weight: 300;
  line-height: 1.8;
  color: var(--ink-mid);
  margin-bottom: 8px;
}
.rp-travel-italic {
  font-family: var(--font-sans);
  font-size: 0.85rem;
  font-weight: 300;
  font-style: italic;
  color: var(--ink);
  opacity: 0.85;
}
.rp-travel-photo-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}
.rp-travel-photo {
  width: 400px;
  height: 400px;
  max-width: 100%;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(42, 34, 24, 0.13);
  outline: 2px solid rgba(61, 30, 29, 0.20);
  outline-offset: 8px;
  flex-shrink: 0;
}
.rp-travel-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  display: block;
}
/* Illustration variant - contain instead of cover, white bg */
.rp-travel-photo--contain {
  background: #fff;
  box-shadow: 0 8px 40px rgba(42, 34, 24, 0.1);
}
.rp-travel-photo--contain img {
  object-fit: contain;
  object-position: center center;
  padding: 20px;
}


/* =========================================
   ENERGY EXCHANGE - PRICING (vibrant)
   ========================================= */
.rp-pricing {
  position: relative;
  overflow: hidden;
  background: var(--ink);
  padding: 110px 40px;
}
/* Gold glow */
.rp-pricing::before {
  content: '';
  position: absolute;
  width: 800px;
  height: 800px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(195,162,145,0.16) 0%, transparent 65%);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.rp-pricing-inner {
  position: relative;
  z-index: 1;
  max-width: var(--container);
  margin: 0 auto;
}
.rp-pricing-header {
  text-align: center;
  margin-bottom: 64px;
}
.rp-pricing-header .rp-label--light {
  color: rgba(195, 162, 145, 0.65);
}
.rp-pricing-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 300;
  color: #fff;
}
.rp-pricing-heading em {
  font-style: italic;
  color: #c3a291;
}
.rp-pricing-sub {
  font-family: var(--font-sans);
  font-size: 0.9rem;
  font-weight: 300;
  color: rgba(195, 162, 145, 0.5);
  margin-top: 12px;
}
.rp-pricing-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  max-width: 820px;
  margin: 0 auto 64px;
}
.rp-pricing-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(195, 162, 145, 0.22);
  padding: 56px 48px;
  text-align: center;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: transform var(--transition), box-shadow var(--transition);
  box-shadow: 0 4px 32px rgba(195, 162, 145, 0.08);
}
.rp-pricing-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 52px rgba(195, 162, 145, 0.18);
}
.rp-pricing-card--early {
  border-color: rgba(195, 162, 145, 0.55);
  background: rgba(195, 162, 145, 0.10);
  box-shadow: 0 0 64px rgba(195, 162, 145, 0.18), inset 0 1px 0 rgba(195, 162, 145, 0.25);
  position: relative;
}
.rp-pricing-card--early::before {
  content: 'First 4 Women';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  background: linear-gradient(90deg, #7a1515, #560001);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 6px 18px;
  border-radius: var(--radius-full);
  white-space: nowrap;
}
.rp-pricing-tier-label {
  font-family: var(--font-sans);
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(195, 162, 145, 0.5);
  margin-bottom: 28px;
}
.rp-pricing-price {
  font-family: var(--font-serif);
  font-size: clamp(3.5rem, 7vw, 5.5rem);
  font-weight: 300;
  background: linear-gradient(135deg, #e8c9a8 0%, #c3a291 45%, #d4aa7a 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  filter: drop-shadow(0 2px 12px rgba(195, 162, 145, 0.45));
  line-height: 1;
  margin-bottom: 32px;
}
.rp-pricing-card--early .rp-pricing-price {
  background: linear-gradient(135deg, #f0d4a8 0%, #c3a291 40%, #d4aa7a 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  filter: drop-shadow(0 2px 16px rgba(195, 162, 145, 0.60));
}
.rp-pricing-btn {
  display: inline-block;
  padding: 14px 40px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: var(--cream);
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  border-radius: var(--radius-full);
  transition: background var(--transition), border-color var(--transition), transform var(--transition);
}
.rp-pricing-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: var(--cream);
  transform: translateY(-1px);
}
.rp-pricing-card--early .rp-pricing-btn {
  background: linear-gradient(135deg, #7a1515, #560001);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 20px rgba(86, 0, 1, 0.40);
}
.rp-pricing-card--early .rp-pricing-btn:hover {
  box-shadow: 0 8px 28px rgba(86, 0, 1, 0.55);
}

/* Botanicals on pricing */
.rp-pricing-botanical {
  position: absolute;
  pointer-events: none;
  user-select: none;
  z-index: 0;
  opacity: 0.18;
}
.rp-pricing-botanical--tl {
  top: 0; left: 0;
  width: 260px; height: 200px;
}
.rp-pricing-botanical--br {
  bottom: 0; right: 0;
  width: 240px; height: 190px;
}


/* =========================================
   BOOKING & CANCELLATION POLICY
   ========================================= */
.rp-policy {
  position: relative;
  overflow: hidden;
  background-color: var(--cream-dark);
  padding: 100px 40px;
}
.rp-policy-inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 0 auto;
}
.rp-policy-heading {
  font-family: var(--font-serif);
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 300;
  font-style: italic;
  color: var(--ink);
  margin-bottom: 36px;
  text-align: center;
}
.rp-policy-sub-heading {
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--forest);
  margin-bottom: 14px;
  margin-top: 32px;
}
.rp-policy-body {
  font-family: var(--font-sans);
  font-size: 0.92rem;
  font-weight: 300;
  line-height: 1.9;
  color: var(--ink-mid);
  margin-bottom: 10px;
}
.rp-policy-body strong { color: var(--ink); font-weight: 500; }
.rp-policy-note {
  font-family: var(--font-sans);
  font-size: 0.85rem;
  font-weight: 300;
  font-style: italic;
  color: var(--ink-soft);
  margin-top: 28px;
  opacity: 0.8;
  border-top: 1px solid rgba(42,34,24,0.1);
  padding-top: 20px;
}


/* =========================================
   RESERVATION FORM
   ========================================= */
.rp-form-section {
  position: relative;
  overflow: hidden;
  background-color: var(--cream);
  padding: 110px 40px;
}
.rp-form-section-inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}
.rp-typeform-wrap {
  margin-top: 40px;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(61,30,29,0.12);
}
.rp-form-heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 300;
  line-height: 1.1;
  color: var(--ink);
  margin-bottom: 12px;
}
.rp-form-heading em {
  font-style: italic;
  color: var(--forest);
}
.rp-form-sub {
  font-family: var(--font-sans);
  font-size: 0.92rem;
  font-weight: 300;
  line-height: 1.8;
  color: var(--ink-mid);
  margin-bottom: 52px;
}
.rp-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
  text-align: left;
}
.rp-form-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.rp-form-label {
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  opacity: 0.75;
}
.rp-form-input,
.rp-form-textarea,
.rp-form-input[type="text"],
select.rp-form-input {
  appearance: none;
  -webkit-appearance: none;
}
.rp-form-input,
.rp-form-textarea {
  width: 100%;
  padding: 14px 18px;
  border: 1px solid rgba(42, 34, 24, 0.2);
  border-radius: 3px;
  background: var(--cream);
  font-family: var(--font-sans);
  font-size: 0.92rem;
  font-weight: 300;
  color: var(--ink);
  outline: none;
  transition: border-color var(--transition);
  box-sizing: border-box;
}
.rp-form-input::placeholder,
.rp-form-textarea::placeholder {
  color: rgba(42, 34, 24, 0.35);
}
.rp-form-input:focus,
.rp-form-textarea:focus {
  border-color: var(--forest);
}
.rp-form-textarea {
  resize: vertical;
  min-height: 120px;
}
.rp-form-submit {
  display: block;
  width: 100%;
  padding: 17px;
  background: linear-gradient(135deg, #7a1515 0%, #560001 100%);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border: none;
  border-radius: 3px;
  cursor: pointer;
  margin-top: 8px;
  transition: opacity var(--transition), transform var(--transition);
  box-shadow: 0 4px 24px rgba(86, 0, 1, 0.30);
}
.rp-form-submit:hover {
  opacity: 0.88;
  transform: translateY(-1px);
}
.rp-form-footer-note {
  font-family: var(--font-sans);
  font-size: 0.82rem;
  font-weight: 300;
  color: var(--ink-mid);
  margin-top: 20px;
  text-align: center;
}
.rp-form-footer-note a {
  color: var(--forest);
  text-decoration: underline;
  text-underline-offset: 3px;
}


/* =========================================
   RESPONSIVE
   ========================================= */
@media (max-width: 960px) {
  .rp-deserve-inner,
  .rp-why-inner,
  .rp-villa-inner,
  .rp-travel-inner {
    grid-template-columns: 1fr;
    gap: 52px;
  }

  .rp-why-collage { height: 340px; }
  .rp-why-img--1 { width: 200px; height: 250px; }
  .rp-why-img--2 { width: 170px; height: 200px; top: 60px; right: 0; }
  .rp-why-img--3 { width: 140px; height: 140px; }

  .rp-deserve-photo { width: 320px; height: 320px; }
  .rp-travel-photo { width: 320px; height: 320px; }

  .rp-guides-grid {
    grid-template-columns: 1fr;
    gap: 60px;
  }

  .rp-pricing-cards {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .rp-checklist-grid,
  .rp-not-included {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .rp-hero-content { padding: 0 24px; }
  .rp-hero-btn { padding: 14px 36px; }

  .rp-deserve { padding: 72px 24px; }
  .rp-why { padding: 72px 24px; }
  .rp-included { padding: 72px 24px; }
  .rp-villa { padding: 72px 24px; }
  .rp-program { padding: 72px 24px; }
  .rp-ritual { padding: 72px 24px; }
  .rp-guides { padding: 72px 24px; }
  .rp-food { padding: 72px 24px; }
  .rp-travel { padding: 72px 24px; }
  .rp-pricing { padding: 72px 24px; }
  .rp-policy { padding: 72px 24px; }
  .rp-form-section { padding: 72px 24px; }

  .rp-program-philosophy { padding: 24px; }
  .rp-villa-photos { grid-template-columns: 1fr; }
  .rp-villa-photo--large { height: 200px; }

  .rp-botanical { display: none; }
  .rp-pricing-botanical { display: none; }
}
