/* ============================================================
   THE TUSCAN SHOW — Landing Page
   Editorial dark-ink + cream + terracotta. No AI slop.
   ============================================================ */

:root {
  --ink:           #0A0A0A;
  --ink-soft:      #141414;
  --cream:         #FFFFFF;
  --cream-soft:    #F2F2F2;
  --terracotta:    #D4874E;
  --terracotta-dk: #8A4712;
  --chianti:       #D4874E;
  --gold:          #E09A5F;
  --grey-warm:     #5C5C5C;
  --grey-line:     rgba(10, 10, 10, 0.14);
  --grey-line-d:   rgba(255, 255, 255, 0.16);

  --serif:    'Libre Franklin', system-ui, sans-serif;
  --serif-feature: 'Newsreader', Georgia, serif;
  --script:   'Allura', 'Pinyon Script', cursive;
  --sans:     'DM Sans', system-ui, sans-serif;
  --sans-c:   'DM Sans', system-ui, sans-serif;

  --shadow-soft: 0 18px 48px rgba(0,0,0,0.18);
  --shadow-deep: 0 30px 80px rgba(0,0,0,0.35);

  --container: 1200px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

/* ============================================================
   iOS / Apple-specific optimizations
   ============================================================ */

* {
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--sans);
  font-size: 18px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--cream);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  -webkit-overflow-scrolling: touch;
  /* iOS safe-area insets for notch / home indicator */
  padding-bottom: env(safe-area-inset-bottom);
}

/* Prevent iOS auto-zoom on form inputs (font must be ≥16px) */
input, select, textarea {
  font-size: 16px;
}

/* Min touch target = 44pt Apple HIG */
.btn,
.faq__q,
.tour__choice,
.toggle,
.nav__cta {
  min-height: 44px;
}

img, video { max-width: 100%; display: block; }

a { color: inherit; text-decoration: none; }

/* ============================================================
   NAV
   ============================================================ */

.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  padding: 18px 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: background 0.3s ease, padding 0.3s ease;
  background: linear-gradient(180deg, rgba(28,28,26,0.78) 0%, rgba(28,28,26,0.35) 60%, rgba(28,28,26,0) 100%);
}

.nav.scrolled {
  background: rgba(28, 28, 26, 0.92);
  backdrop-filter: blur(12px);
  padding: 12px 32px;
}

.nav__logo {
  height: 64px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  object-position: left center;
  transition: height 0.3s ease;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.55));
}

.nav.scrolled .nav__logo { height: 48px; }

.nav__cta {
  font-family: var(--sans-c);
  font-size: 15px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--cream);
  padding: 12px 24px;
  border: 1.5px solid var(--cream);
  border-radius: 999px;
  transition: all 0.25s ease;
}

.nav__cta:hover {
  background: var(--cream);
  color: var(--ink);
}

/* ============================================================
   HERO — 85vh fullscreen video
   ============================================================ */

.hero {
  position: relative;
  height: 85vh;
  min-height: 600px;
  width: 100%;
  overflow: hidden;
  background: var(--ink);
}

.hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 1;
}

.hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(28,28,26,0.55) 0%,
    rgba(28,28,26,0.42) 40%,
    rgba(28,28,26,0.5) 60%,
    rgba(28,28,26,0.72) 85%,
    rgba(28,28,26,0.9) 100%
  );
  z-index: 2;
}

.hero__content {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 120px 5vw 10vh;
  color: var(--cream);
}

.hero__content > * {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.hero__eyebrow {
  font-family: var(--sans-c);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--terracotta);
  margin-bottom: 24px;
  opacity: 0;
  animation: fadeUp 0.8s ease 0.2s forwards;
}

.hero__title {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(40px, 5vw, 68px);
  line-height: 1.08;
  letter-spacing: -0.015em;
  max-width: 22ch;
  margin-bottom: 28px;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.55), 0 1px 4px rgba(0, 0, 0, 0.6);
  opacity: 0;
  animation: fadeUp 0.9s ease 0.2s forwards;
}

.hero__title em {
  font-family: var(--script);
  font-weight: 400;
  font-style: normal;
  color: var(--terracotta);
  font-size: 1.25em;
  line-height: 1;
  padding: 0 0.08em;
  letter-spacing: 0.01em;
}

.hero__sub {
  font-size: clamp(17px, 1.2vw, 20px);
  line-height: 1.6;
  max-width: 52ch;
  margin-bottom: 16px;
  font-weight: 500;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
  opacity: 0;
  animation: fadeUp 0.9s ease 0.4s forwards;
}

.hero__sub--feature {
  font-family: var(--serif-feature);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(20px, 1.9vw, 26px);
  line-height: 1.4;
  max-width: 26ch;
  color: #FFFFFF;
}

.hero__sub--accent {
  margin-bottom: 32px;
  animation-delay: 0.7s;
}

.hero__sub--accent strong {
  color: var(--gold);
  font-weight: 600;
}

.hero__actions {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: center;
  opacity: 0;
  animation: fadeUp 0.9s ease 0.7s forwards;
}

.hero__trust {
  list-style: none;
  margin: 32px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 24px 32px;
  align-items: center;
  justify-content: center;
  opacity: 0;
  animation: fadeUp 0.9s ease 0.9s forwards;
}

.hero__trust-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--cream);
  opacity: 1;
}

.hero__trust-item strong {
  font-weight: 700;
  color: #fff;
}

.hero__trust-icon {
  color: var(--gold);
  font-size: 14px;
  line-height: 1;
}

.hero__scroll {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 4;
  font-family: var(--sans-c);
  font-size: 12px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--cream);
  opacity: 0.7;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  animation: bob 2s ease-in-out infinite;
}

.hero__scroll::after {
  content: '';
  width: 1px;
  height: 32px;
  background: var(--cream);
}

@keyframes fadeUp {
  to { opacity: 1; transform: translateY(0); }
  from { opacity: 0; transform: translateY(20px); }
}

@keyframes bob {
  0%, 100% { transform: translate(-50%, 0); }
  50% { transform: translate(-50%, 8px); }
}

/* ============================================================
   BUTTONS
   ============================================================ */

.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 18px 36px;
  font-family: var(--sans-c);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.25s ease;
  white-space: nowrap;
}

.btn--primary {
  background: var(--terracotta);
  color: #FFFFFF;
  box-shadow: 0 8px 24px rgba(212, 135, 78, 0.4);
  font-weight: 700;
}

.btn--primary:hover {
  background: var(--terracotta-dk);
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(212, 135, 78, 0.5);
}

.btn--ghost {
  background: transparent;
  color: var(--cream);
  border: 1.5px solid var(--cream);
}

.btn--ghost:hover {
  background: var(--cream);
  color: var(--ink);
}

.btn--whatsapp {
  background: #25D366;
  color: white;
  font-weight: 700;
}

.btn--whatsapp:hover {
  background: #1EBE5A;
  transform: translateY(-2px);
}

.btn--imessage {
  background: var(--ink);
  color: var(--cream);
}

.btn--imessage:hover {
  background: var(--ink-soft);
  transform: translateY(-2px);
}

.btn--lg {
  padding: 22px 44px;
  font-size: 17px;
}

/* Messaging hierarchy: primary = iMessage terracotta, secondary = WhatsApp link */
.btn--primary-msg {
  background: var(--terracotta);
  color: #FFFFFF;
  box-shadow: 0 8px 24px rgba(212, 135, 78, 0.4);
  min-width: 280px;
  font-weight: 700;
}
.btn--primary-msg:hover {
  background: var(--terracotta-dk);
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(212, 135, 78, 0.5);
}

.btn--secondary-msg {
  background: transparent;
  color: inherit;
  padding: 10px 16px;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: none;
  font-weight: 500;
  opacity: 0.75;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-shadow: none;
  border-radius: 6px;
}
.btn--secondary-msg:hover {
  opacity: 1;
  background: rgba(0,0,0,0.05);
  transform: none;
}
.price-box .btn--secondary-msg {
  color: var(--cream);
  opacity: 1;
  font-weight: 700;
  border: 1.5px solid rgba(255, 255, 255, 0.55);
}
.price-box .btn--secondary-msg:hover {
  background: rgba(255,255,255,0.12);
}

/* CTA primario dentro price-box: scuro per contrasto sul terracotta */
.price-box .btn--primary-msg {
  background: var(--ink);
  color: #FFFFFF;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  font-weight: 700;
}
.price-box .btn--primary-msg:hover {
  background: var(--ink-soft);
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
}

.btn--secondary-msg .btn__icon {
  font-size: 14px;
}

/* ============================================================
   SECTIONS
   ============================================================ */

.section {
  padding: clamp(80px, 12vw, 140px) 5vw;
}

.section__inner {
  max-width: var(--container);
  margin: 0 auto;
}

.eyebrow {
  font-family: var(--sans-c);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--terracotta-dk);
  display: inline-block;
  margin-bottom: 20px;
}

.eyebrow::before { content: '— '; }
.eyebrow::after { content: ' —'; }

.section__title {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(40px, 5.5vw, 72px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: 32px;
}

.section__title em {
  font-family: var(--script);
  font-weight: 400;
  font-style: normal;
  color: var(--terracotta);
  font-size: 1.25em;
  padding: 0 0.06em;
}

/* ============================================================
   TOUR SECTION — single product, dropdown, itinerary
   ============================================================ */

.tour {
  background: var(--ink);
  color: var(--cream);
  position: relative;
  overflow: hidden;
}

.tour .eyebrow { color: var(--gold); }

.tour__header {
  text-align: center;
  margin-bottom: 60px;
}

.tour__chooser {
  display: flex;
  justify-content: center;
  gap: 0;
  margin-bottom: 60px;
  border: 1.5px solid var(--grey-line-d);
  border-radius: 999px;
  padding: 6px;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  background: var(--ink-soft);
}

.tour__choice {
  font-family: var(--sans-c);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 14px 32px;
  border-radius: 999px;
  background: transparent;
  border: none;
  color: var(--cream);
  cursor: pointer;
  transition: all 0.25s ease;
  opacity: 0.6;
}

.tour__choice.is-active {
  background: var(--terracotta);
  color: var(--cream);
  opacity: 1;
  box-shadow: 0 4px 16px rgba(212, 135, 78, 0.5);
}

.tour__choice:hover:not(.is-active) {
  opacity: 1;
}

/* Cheese toggle */

.tour__addons {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin-bottom: 60px;
}

.tour__addons-desc {
  font-family: var(--sans);
  font-size: 14px;
  color: var(--cream);
  opacity: 0.85;
  margin: 0;
  text-align: center;
  max-width: 50ch;
  line-height: 1.5;
}

.tour__addons-note {
  font-family: var(--sans-c);
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--cream);
  opacity: 0.75;
  margin: 0;
  text-align: center;
  max-width: 50ch;
  line-height: 1.5;
}

.tour__addons-video {
  width: 100%;
  max-width: 360px;
  margin: 20px auto 4px;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: rgba(0, 0, 0, 0.3);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

.tour__addons-video video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.tour__addons-note strong {
  color: var(--gold);
  font-weight: 700;
}

.toggle {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 16px 24px;
  background: var(--ink-soft);
  border: 1px solid var(--grey-line-d);
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.25s ease;
}

.toggle:hover {
  border-color: var(--gold);
}

.toggle__switch {
  width: 48px;
  height: 26px;
  background: var(--grey-warm);
  border-radius: 999px;
  position: relative;
  flex-shrink: 0;
  transition: background 0.25s ease;
}

.toggle__switch::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  background: var(--cream);
  border-radius: 50%;
  transition: transform 0.25s ease;
}

.toggle.is-on .toggle__switch {
  background: var(--gold);
}

.toggle.is-on .toggle__switch::after {
  transform: translateX(22px);
}

.toggle__label {
  font-family: var(--sans-c);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.toggle__price {
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 700;
  color: var(--gold);
}

/* ============================================================
   ITINERARY
   ============================================================ */

.itinerary {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  max-width: 980px;
  margin: 0 auto;
  position: relative;
}

.itinerary::before {
  content: '';
  position: absolute;
  left: 30px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--grey-line-d);
}

.stop {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 32px;
  padding: 32px 0;
  position: relative;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.stop.is-hidden {
  opacity: 0;
  transform: translateY(20px);
}

.stop.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.stop__marker {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: var(--terracotta);
  color: var(--cream);
  font-family: var(--serif);
  font-weight: 700;
  font-size: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 4px solid var(--ink);
  z-index: 2;
  position: relative;
}

.stop__time {
  font-family: var(--sans-c);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 8px;
}

.stop__time--empty {
  color: rgba(232, 184, 74, 0.5);
  letter-spacing: 0;
}

.stop__title {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(26px, 3vw, 36px);
  line-height: 1.15;
  margin-bottom: 16px;
}

.stop__title em {
  font-family: var(--script);
  font-weight: 400;
  color: var(--terracotta);
  font-size: 1.2em;
  padding: 0 0.06em;
}

.stop__copy {
  font-size: 18px;
  line-height: 1.7;
  margin-bottom: 20px;
  color: rgba(255, 255, 255, 0.92);
  max-width: 60ch;
}

.stop__benefit {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-family: var(--sans-c);
  font-size: 14px;
  letter-spacing: 0.05em;
  color: var(--gold);
  font-weight: 600;
  text-transform: uppercase;
  margin-top: 12px;
}

.stop__benefit::before {
  content: '✓';
  color: var(--terracotta);
  font-weight: 700;
}

.stop__media {
  margin-top: 24px;
  border-radius: 4px;
  overflow: hidden;
  background: var(--ink-soft);
  aspect-ratio: 16/10;
  position: relative;
}

.stop__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.stop__media:hover img {
  transform: scale(1.04);
}

/* ============================================================
   CAROUSEL
   ============================================================ */

.carousel {
  position: relative;
}

.carousel__track {
  position: relative;
  width: 100%;
  height: 100%;
}

.carousel__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.6s ease;
  pointer-events: none;
}

.carousel__slide.is-active {
  opacity: 1;
  pointer-events: auto;
}

.carousel__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.carousel__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
  background: rgba(28, 28, 26, 0.55);
  color: var(--cream);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
  backdrop-filter: blur(6px);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 0 4px;
}

.carousel__arrow:hover {
  background: var(--terracotta);
  transform: translateY(-50%) scale(1.08);
}

.carousel__arrow--prev { left: 12px; }
.carousel__arrow--next { right: 12px; }

.carousel__dots {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 2;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(28, 28, 26, 0.35);
  backdrop-filter: blur(6px);
}

.carousel__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: all 0.2s ease;
}

.carousel__dot.is-active {
  background: var(--terracotta);
  width: 24px;
  border-radius: 999px;
}

.carousel__dot:hover:not(.is-active) {
  background: var(--cream);
}

@media (max-width: 700px) {
  .carousel__arrow { width: 36px; height: 36px; font-size: 22px; }
  .carousel__arrow--prev { left: 8px; }
  .carousel__arrow--next { right: 8px; }
}

.stop__media--placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 2px dashed var(--grey-line-d);
  padding: 40px;
  color: var(--grey-warm);
  font-family: var(--sans-c);
  font-size: 13px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  text-align: center;
}

.stop__media--placeholder strong {
  color: var(--gold);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.3em;
  display: block;
  margin-bottom: 6px;
}

.stop[data-cheese] {
  display: none;
}

.stop[data-cheese].is-shown {
  display: grid;
}

/* ============================================================
   MINI TRUST (before price box)
   ============================================================ */

.mini-trust {
  list-style: none;
  margin: 56px auto 0;
  padding: 0;
  max-width: 900px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px 32px;
  border-top: 1px solid var(--grey-line, rgba(0,0,0,0.08));
  border-bottom: 1px solid var(--grey-line, rgba(0,0,0,0.08));
  padding: 24px 16px;
}

.mini-trust__item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--ink);
  text-transform: none;
}

.mini-trust__icon {
  color: var(--terracotta);
  font-size: 13px;
  line-height: 1;
}

.mini-trust__text {
  white-space: nowrap;
}

/* ============================================================
   PRICE BOX
   ============================================================ */

.price-box {
  margin-top: 80px;
  background: linear-gradient(135deg, var(--terracotta) 0%, var(--terracotta-dk) 100%);
  color: var(--cream);
  padding: 64px 48px;
  border-radius: 8px;
  text-align: center;
  position: relative;
  overflow: hidden;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

.price-box::before {
  content: '"';
  position: absolute;
  top: -40px;
  left: 30px;
  font-family: var(--serif);
  font-size: 240px;
  color: rgba(255, 255, 255, 0.15);
  font-weight: 700;
}

.price-box__eyebrow {
  font-family: var(--sans-c);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #FFFFFF;
  margin-bottom: 8px;
  position: relative;
  z-index: 1;
}

.price-box__old {
  display: block;
  font-family: var(--sans);
  font-size: 26px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
  text-decoration: line-through;
  margin-bottom: 2px;
}

.price-box__included {
  list-style: none;
  margin: 0 auto 28px;
  padding: 0;
  display: inline-flex;
  flex-direction: column;
  gap: 7px;
  text-align: left;
  position: relative;
  z-index: 1;
}

.price-box__included li {
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 600;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  gap: 9px;
}

.price-box__included .chk {
  color: var(--gold);
  font-weight: 700;
}

.price-box__price {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  background: var(--ink);
  padding: 22px 52px;
  border-radius: 28px;
  margin-top: 8px;
  margin-bottom: 24px;
  position: relative;
  z-index: 1;
}

.price-box__amount {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(48px, 6vw, 68px);
  color: var(--gold);
  line-height: 1;
}

.price-box__per {
  font-family: var(--sans-c);
  font-size: 14px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cream);
  display: block;
  margin-top: 8px;
}

.price-box__includes {
  font-family: var(--sans-c);
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--cream);
  opacity: 0.78;
  text-align: center;
  max-width: 60ch;
  margin: 28px auto 0;
  line-height: 1.5;
  position: relative;
  z-index: 1;
}

/* ===== CHEESE STOP — special layout ===== */
.stop--cheese {
  position: relative;
}

.stop--cheese.is-inactive .stop__body {
  opacity: 0.7;
}

.stop--cheese .stop__marker {
  background: var(--terracotta);
  color: #fff;
}

.stop--cheese.is-inactive .stop__marker {
  background: var(--grey-line-d, #c8c1a8);
  color: var(--cream);
}

.cheese-toggle-primary {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 14px 20px;
  background: transparent;
  border: 1.5px solid var(--terracotta);
  border-radius: 999px;
  cursor: pointer;
  margin: 22px 0 18px;
  transition: all 0.25s ease;
  font-family: inherit;
}

.cheese-toggle-primary:hover {
  background: rgba(212, 135, 78, 0.06);
}

.cheese-toggle-primary[aria-pressed="true"] {
  background: var(--terracotta);
  border-color: var(--terracotta);
}

.cheese-toggle-primary[aria-pressed="true"] .toggle__label,
.cheese-toggle-primary[aria-pressed="true"] .toggle__price {
  color: #fff;
}

.cheese-toggle-primary .toggle__switch {
  width: 40px;
  height: 22px;
  background: var(--grey-warm);
  border-radius: 999px;
  position: relative;
  flex-shrink: 0;
  transition: background 0.25s ease;
}

.cheese-toggle-primary .toggle__switch::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.25s ease;
}

.cheese-toggle-primary[aria-pressed="true"] .toggle__switch {
  background: rgba(255, 255, 255, 0.35);
}

.cheese-toggle-primary[aria-pressed="true"] .toggle__switch::after {
  transform: translateX(18px);
}

.cheese-toggle-primary .toggle__label {
  font-family: var(--sans-c);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--terracotta);
}

.cheese-toggle-primary .toggle__price {
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 700;
  color: var(--terracotta);
}

.stop__cheese-video {
  width: 100%;
  max-width: 480px;
  margin: 20px 0 0;
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: rgba(0, 0, 0, 0.3);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.stop__cheese-video video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* ===== SECONDARY CHEESE TOGGLE (price-box) ===== */
.cheese-toggle-secondary {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 13px 22px;
  background: var(--ink);
  border: 1.5px solid var(--ink);
  border-radius: 999px;
  cursor: pointer;
  margin: 22px auto 14px;
  transition: all 0.25s ease;
  font-family: inherit;
  position: relative;
  z-index: 1;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
}

.cheese-toggle-secondary:hover {
  background: var(--ink-soft);
  border-color: var(--gold);
}

.cheese-toggle-secondary[aria-pressed="true"] {
  border-color: var(--gold);
  background: var(--ink);
}

.cheese-toggle-secondary .toggle__switch {
  width: 38px;
  height: 20px;
  background: var(--grey-warm);
  border-radius: 999px;
  position: relative;
  flex-shrink: 0;
  transition: background 0.25s ease;
}

.cheese-toggle-secondary .toggle__switch::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 14px;
  height: 14px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.25s ease;
}

.cheese-toggle-secondary[aria-pressed="true"] .toggle__switch {
  background: var(--gold);
}

.cheese-toggle-secondary[aria-pressed="true"] .toggle__switch::after {
  transform: translateX(18px);
}

.cheese-toggle-secondary .toggle__label {
  font-family: var(--sans-c);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cream);
}

/* ===== SOCIAL PROOF in price-box ===== */
.price-box__social {
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--cream);
  opacity: 1;
  text-align: center;
  max-width: 52ch;
  margin: 0 auto 24px;
  line-height: 1.55;
  position: relative;
  z-index: 1;
}

.price-box__social strong {
  color: var(--gold);
  font-weight: 700;
  opacity: 1;
}

/* ===== BENEFITS LIST (price-box) ===== */
.benefits-list {
  list-style: none;
  margin: 0 auto 24px;
  padding: 0;
  max-width: 56ch;
  text-align: left;
  position: relative;
  z-index: 1;
}

.benefits-list__item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 9px 0;
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--cream);
}

.benefits-list__mark {
  flex-shrink: 0;
  font-size: 17px;
  color: var(--gold);
  font-weight: 700;
  margin-top: 1px;
  width: 18px;
  text-align: center;
}

.benefits-list__item--cheese-off {
  opacity: 0.7;
  font-weight: 500;
}

.benefits-list__item--cheese-off .benefits-list__mark {
  color: rgba(255, 255, 255, 0.5);
}

.benefits-list__item--cheese-off .benefit-add {
  display: inline-block;
  margin-left: 6px;
  padding: 3px 9px;
  border: 1px solid rgba(232, 184, 74, 0.6);
  border-radius: 4px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold);
}

.benefits-list__item--cheese-on .benefits-list__mark {
  color: var(--gold);
}

.price-box__cta {
  margin-top: 8px;
  margin-bottom: 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  position: relative;
  z-index: 1;
}

.price-box__cta .btn--primary-msg {
  min-width: 280px;
}

/* ============================================================
   UGLY TRUTH SECTION
   ============================================================ */

.truth {
  background: var(--cream);
  color: var(--ink);
}

.truth__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 48px;
  margin-top: 60px;
}

.truth__card {
  background: var(--cream-soft);
  padding: 0;
  border-radius: 4px;
  border-top: 4px solid var(--terracotta);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.truth__media {
  aspect-ratio: 16/9;
  background: var(--grey-warm);
  position: relative;
  overflow: hidden;
}

.truth__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.truth__card:hover .truth__media img {
  transform: scale(1.04);
}

.truth__media--placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  gap: 8px;
  text-align: center;
  font-family: var(--sans-c);
  font-size: 12px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--grey-warm);
  border: 2px dashed var(--grey-line);
  margin: 8px;
}

.truth__media--placeholder strong {
  color: var(--terracotta-dk);
  font-weight: 600;
  font-size: 10px;
  letter-spacing: 0.3em;
  display: block;
  margin-bottom: 6px;
}

.truth__num {
  font-family: var(--serif);
  font-weight: 700;
  font-size: 64px;
  color: var(--terracotta);
  line-height: 0.9;
  opacity: 0.4;
  padding: 32px 40px 0;
}

.truth__heading {
  font-family: var(--serif);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.2;
  margin: 8px 0 16px;
  padding: 0 40px;
}

.truth__copy {
  font-size: 17px;
  line-height: 1.65;
  color: var(--grey-warm);
  padding: 0 40px;
}

.truth__copy:last-child {
  padding-bottom: 40px;
}

.truth__copy + .truth__copy { margin-top: 12px; }

.truth__copy strong { color: var(--ink); font-weight: 700; }

/* ============================================================
   DAVID BIO
   ============================================================ */

.david {
  background: var(--ink);
  color: var(--cream);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  padding: 0;
  align-items: stretch;
}

.david__media {
  position: relative;
  min-height: 600px;
  background: var(--ink-soft);
}

.david__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.david__media--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  border-right: 2px dashed var(--grey-line-d);
  padding: 60px;
  color: var(--grey-warm);
  font-family: var(--sans-c);
  font-size: 13px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  text-align: center;
}

.david__content {
  padding: clamp(60px, 8vw, 100px) clamp(40px, 5vw, 80px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.david__quote {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(22px, 2.5vw, 30px);
  line-height: 1.4;
  margin-bottom: 32px;
  color: var(--terracotta);
}

.david__copy {
  font-size: 18px;
  line-height: 1.75;
  margin-bottom: 20px;
  color: rgba(255, 255, 255, 0.94);
}

.david__copy strong {
  color: var(--gold);
  font-weight: 600;
}

/* ============================================================
   REVIEWS — rectangular cards
   ============================================================ */

.reviews {
  background: var(--cream);
  text-align: center;
}

.reviews__head {
  text-align: center;
  margin-bottom: 60px;
}

.reviews__stars {
  font-size: 32px;
  color: var(--gold);
  letter-spacing: 0.1em;
  margin-bottom: 12px;
}

.reviews__rating {
  font-family: var(--serif);
  font-weight: 700;
  font-size: 22px;
  margin-bottom: 8px;
}

.reviews__source {
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--grey-warm);
}

.reviews__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-bottom: 0;
}

.review {
  background: var(--cream-soft);
  border-radius: 6px;
  padding: 24px 22px;
  text-align: left;
  box-shadow: var(--shadow-soft);
  display: flex;
  flex-direction: column;
  gap: 14px;
  border-top: 3px solid var(--terracotta);
}

/* Variante con foto background */
.review--with-photo {
  background-size: cover;
  background-position: center;
  background-color: var(--ink, #1c1c1a);
  color: var(--cream);
  min-height: 380px;
  position: relative;
  justify-content: flex-end;
  padding: 200px 22px 24px;
  border-top: 3px solid var(--terracotta);
}

.review--with-photo .review__text {
  color: var(--cream);
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
}

.review--with-photo .review__author {
  color: #fff;
}

.review--with-photo .review__sub {
  color: rgba(255, 255, 255, 0.85);
}

.review--with-photo .review__avatar {
  border: 2px solid rgba(255, 255, 255, 0.6);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

.review--with-photo .review__badge {
  background: rgba(28, 28, 26, 0.7);
  color: var(--cream);
  border: 1px solid rgba(255, 255, 255, 0.3);
}

.review--with-photo .review__stars {
  color: var(--gold);
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5));
}

.review__head {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  align-items: center;
  gap: 12px;
}

.review__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--terracotta);
  color: var(--cream);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--sans-c);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.04em;
}

.review__meta {
  min-width: 0;
}

.review__author {
  font-family: var(--sans-c);
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.2;
}

.review__sub {
  font-family: var(--sans-c);
  font-size: 12px;
  color: var(--grey-warm);
  letter-spacing: 0.04em;
  margin-top: 2px;
}

.review__badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #fff;
  border: 1px solid var(--grey-line);
  border-radius: 999px;
  padding: 4px 9px 4px 7px;
  font-family: var(--sans-c);
  font-size: 10px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.review__badge-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #2BB673;
  color: white;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
}

.review__stars {
  color: var(--gold);
  font-size: 14px;
  letter-spacing: 0.08em;
  line-height: 1;
}

.review__text {
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink);
  margin: 0;
}

/* ============================================================
   FAQ
   ============================================================ */

.faq {
  background: var(--cream-soft);
}

.faq__inner {
  max-width: 880px;
}

.faq__list {
  margin-top: 60px;
}

.faq__item {
  border-bottom: 1px solid var(--grey-line);
}

.faq__item:first-of-type {
  border-top: 1px solid var(--grey-line);
}

.faq__q {
  width: 100%;
  background: none;
  border: none;
  padding: 28px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  cursor: pointer;
  font-family: var(--serif);
  font-weight: 600;
  font-size: clamp(18px, 1.6vw, 22px);
  text-align: left;
  color: var(--ink);
  transition: color 0.2s ease;
}

.faq__q:hover { color: var(--terracotta-dk); }

.faq__icon {
  font-family: var(--sans);
  font-size: 28px;
  font-weight: 300;
  color: var(--terracotta);
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

.faq__item.is-open .faq__icon {
  transform: rotate(45deg);
}

.faq__a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease, padding 0.4s ease;
}

.faq__item.is-open .faq__a {
  max-height: 600px;
  padding: 0 0 28px;
}

.faq__a p {
  color: var(--grey-warm);
  font-size: 17px;
  line-height: 1.7;
  max-width: 65ch;
}

.faq__a p + p { margin-top: 12px; }

.faq__a a {
  color: var(--terracotta-dk);
  border-bottom: 1px solid var(--terracotta);
}

.faq__link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--terracotta-dk);
  font-weight: 600;
  border-bottom: 1px solid var(--terracotta);
  white-space: nowrap;
  transition: color 0.2s, border-color 0.2s;
}

.faq__link:hover {
  color: var(--terracotta);
  border-bottom-color: var(--terracotta-dk);
}

.faq__icon-inline {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  position: relative;
  top: -1px;
}

/* ============================================================
   CONTACT
   ============================================================ */

.contact {
  background: var(--ink);
  color: var(--cream);
  text-align: center;
}

.contact__title {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(40px, 6vw, 80px);
  line-height: 1.05;
  margin-bottom: 24px;
}

.contact__title em {
  font-family: var(--script);
  font-weight: 400;
  color: var(--terracotta);
  font-size: 1.25em;
  padding: 0 0.06em;
}

.contact__sub {
  font-size: clamp(18px, 1.5vw, 22px);
  line-height: 1.5;
  max-width: 50ch;
  margin: 0 auto 48px;
  color: rgba(255, 255, 255, 0.85);
}

.contact__buttons {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 48px;
}

.contact__phone {
  font-family: var(--sans-c);
  font-size: 16px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
}

.contact__phone a:hover { color: var(--terracotta); }

/* ============================================================
   TRUST STRIP (above footer)
   ============================================================ */

.trust-strip {
  background: var(--cream);
  color: var(--ink);
  padding: 28px 5vw;
  border-top: 1px solid var(--grey-line);
  border-bottom: 1px solid var(--grey-line);
}

.trust-strip__inner {
  max-width: var(--container);
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 32px;
}

.trust-strip__list,
.trust-strip__pay {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
}

.trust-strip__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sans-c);
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--ink);
  white-space: nowrap;
}

.trust-strip__item strong {
  font-weight: 700;
}

.trust-strip__icon {
  color: var(--terracotta);
  font-size: 11px;
  line-height: 1;
}

.trust-strip__pay {
  gap: 12px;
}

.pay-mark {
  background: white;
  border: 1px solid var(--grey-line);
  border-radius: 4px;
  padding: 6px 10px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.pay-mark svg {
  height: 14px;
  width: auto;
  display: block;
}

/* ============================================================
   FOOTER
   ============================================================ */

.footer {
  background: var(--ink);
  color: rgba(255, 255, 255, 0.7);
  padding: 48px 5vw 40px;
  border-top: 1px solid var(--grey-line-d);
  font-size: 14px;
  line-height: 1.7;
}

.footer__inner {
  max-width: var(--container);
  margin: 0 auto;
  text-align: center;
}

.footer__trust {
  font-family: var(--sans-c);
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--grey-line-d);
}

.footer__trust a {
  color: var(--cream);
  font-weight: 600;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s;
}

.footer__trust a:hover {
  border-bottom-color: var(--terracotta);
}

.footer__legal {
  font-size: 13px;
  margin-bottom: 16px;
}

.footer__legal strong { color: var(--cream); font-weight: 600; }

.footer__links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  justify-content: center;
  margin: 16px 0;
  font-family: var(--sans-c);
  font-size: 12px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.footer__links a {
  color: rgba(255, 255, 255, 0.7);
  border-bottom: 1px solid transparent;
  transition: color 0.2s, border-color 0.2s;
}

.footer__links a:hover {
  color: var(--gold);
  border-bottom-color: var(--gold);
}

.footer__copyright {
  margin-top: 24px;
  font-size: 12px;
  opacity: 0.6;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

/* ===== TABLET (901px - 1100px) ===== */
@media (min-width: 901px) and (max-width: 1100px) {
  .section { padding: 90px 5vw; }

  .hero__content { padding: 130px 6vw 9vh; }
  .hero__title { font-size: clamp(44px, 6vw, 58px); }
  .hero__sub { font-size: 18px; max-width: 46ch; }

  .reviews__grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .review--with-photo { min-height: 340px; padding: 170px 22px 24px; }

  .stop { grid-template-columns: 60px 1fr; gap: 28px; }

  .price-box { padding: 56px 40px; }
  .benefits-list { max-width: 100%; }

  .david { grid-template-columns: 1fr 1.1fr; }

  .stop__cheese-video { max-width: 420px; }

  .truth__grid { grid-template-columns: 1fr; gap: 24px; }
}

@media (max-width: 900px) {
  .nav { padding: 14px 16px; }
  .nav__logo { height: 44px; max-width: 100px; }
  .nav__cta { display: none; }

  .hero { height: 90vh; }
  .hero__content { padding: 140px 6vw 10vh; text-align: center; align-items: center; }
  .hero__title { font-size: clamp(30px, 7.5vw, 44px); max-width: 100%; }
  .hero__sub { font-size: 15px; line-height: 1.55; max-width: 40ch; }
  .hero__actions { justify-content: center; width: 100%; }
  .hero__actions .btn { flex: 1; justify-content: center; max-width: 280px; }
  .hero__trust {
    justify-content: center;
    gap: 12px 20px;
    margin-top: 24px;
    max-width: 100%;
  }
  .hero__trust-item { font-size: 15px; }

  .section { padding: 80px 6vw; }

  .truth__grid { grid-template-columns: 1fr; gap: 24px; }
  .truth__num { padding: 24px 24px 0; font-size: 48px; }
  .truth__heading { padding: 0 24px; font-size: 22px; }
  .truth__copy { padding: 0 24px; }
  .truth__copy:last-child { padding-bottom: 32px; }

  .david { grid-template-columns: 1fr; }
  .david__media { min-height: 400px; }
  .david__media--placeholder { border-right: none; border-bottom: 2px dashed var(--grey-line-d); }
  .david__content { padding: 60px 28px; }

  .reviews__grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }

  .stop { grid-template-columns: 50px 1fr; gap: 20px; }
  .stop__marker { width: 50px; height: 50px; font-size: 18px; }
  .itinerary::before { left: 25px; }

  .tour__chooser { width: 100%; max-width: 400px; }
  .tour__choice { padding: 12px 18px; font-size: 13px; flex: 1; }

  .toggle { width: 100%; max-width: 400px; }
  .toggle__label { font-size: 14px; flex: 1; }

  .price-box { padding: 48px 24px; }

  .mini-trust {
    margin-top: 40px;
    padding: 20px 12px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 12px;
    justify-items: center;
  }
  .mini-trust__item {
    font-size: 14px;
    letter-spacing: 0.01em;
    text-align: center;
    line-height: 1.35;
  }
  .mini-trust__text {
    white-space: normal;
  }

  .trust-strip__inner {
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }
  .trust-strip__list {
    justify-content: center;
    gap: 10px 18px;
  }
  .trust-strip__item {
    font-size: 12px;
    letter-spacing: 0.02em;
  }
  .trust-strip__pay {
    justify-content: center;
    gap: 8px;
  }
  .pay-mark {
    padding: 5px 8px;
    height: 26px;
  }
  .pay-mark svg {
    height: 12px;
  }

  .contact__buttons { align-items: stretch; }
  .contact__buttons .btn--primary-msg,
  .price-box__cta { align-items: stretch; }
  .price-box__cta .btn--primary-msg,
  .contact__buttons .btn--primary-msg {
    justify-content: center;
    min-width: 0;
    width: 100%;
  }
  .price-box__cta .btn--secondary-msg,
  .contact__buttons .btn--secondary-msg {
    align-self: center;
  }
}

@media (max-width: 560px) {
  .reviews__grid { grid-template-columns: 1fr; }
  .stop__media { aspect-ratio: 4/3; }
}

/* ============================================================
   STICKY MOBILE CTA — appears when hero CTA exits viewport
   ============================================================ */

.sticky-cta-bar {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  background: linear-gradient(180deg, rgba(28,28,26,0) 0%, rgba(28,28,26,0.82) 32%, rgba(28,28,26,0.96) 100%);
  text-align: center;
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.sticky-cta-bar[hidden] {
  display: none;
}

.sticky-cta-bar.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.sticky-cta {
  display: inline-block;
  background: var(--terracotta);
  color: #FFFFFF;
  font-family: var(--sans-c);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 16px 36px;
  border-radius: 999px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.45);
  white-space: nowrap;
  transition: background 0.2s ease, transform 0.1s ease;
}

.sticky-cta:active {
  background: var(--terracotta-dk);
  transform: translateY(1px);
}

@media (max-width: 900px) {
  .sticky-cta-bar { display: block; }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}


/* ============================================================
   REORGANISED PRODUCT PAGE — homepage-aligned blocks
   ============================================================ */

/* --- Truth: vertical stack, one after another --- */
.truth__intro {
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.6;
  color: var(--grey-warm);
  max-width: 54ch;
  margin: 14px 0 0;
}
.truth__grid--stack {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 40px;
}
.truth__grid--stack .truth__card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: stretch;
  overflow: hidden;
}
.truth__grid--stack .truth__card:nth-child(even) .truth__media { order: 2; }
.truth__grid--stack .truth__media {
  aspect-ratio: auto;
  min-height: 300px;
  height: 100%;
}
.truth__grid--stack .truth__media img {
  width: 100%; height: 100%; object-fit: cover;
}
.truth__grid--stack .truth__num { padding: 28px 30px 0; }
.truth__grid--stack .truth__heading { padding: 0 30px; }
.truth__grid--stack .truth__copy { padding: 0 30px; }
.truth__grid--stack .truth__copy:last-child { padding-bottom: 30px; }

@media (max-width: 820px) {
  .truth__grid--stack .truth__card { grid-template-columns: 1fr; }
  .truth__grid--stack .truth__card:nth-child(even) .truth__media { order: 0; }
  .truth__grid--stack .truth__media { min-height: 240px; }
}

/* --- Price box: homepage treatment --- */
.price-box--hp {
  background: var(--cream, #FAF9F5);
  border: 1px solid rgba(20,20,18,0.1);
  color: var(--ink, #141412);
  text-align: center;
}
.price-box--hp .price-box__eyebrow {
  font-family: var(--sans);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0;
  text-transform: none;
  color: #54524b;
  opacity: 1;
}
.price-box--hp .price-box__price {
  display: flex; align-items: baseline; justify-content: center;
  gap: 14px; flex-wrap: wrap; margin: 6px 0 26px;
}
.price-box--hp .price-box__old {
  font-family: var(--sans);
  font-weight: 600; font-size: 26px; color: #a7a498;
  text-decoration: line-through; opacity: 1;
}
.price-box--hp .price-box__amount {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(52px, 9vw, 68px);
  line-height: 1; letter-spacing: -0.02em;
  color: var(--ink, #141412);
}
.price-box--hp .price-box__per {
  font-family: var(--sans);
  font-weight: 600; font-size: 16px; color: #54524b; opacity: 1;
}
.price-box--hp .price-box__included {
  display: flex; justify-content: center; flex-wrap: wrap;
  gap: 10px 22px; margin-bottom: 28px;
}
.price-box--hp .price-box__included li {
  font-family: var(--sans);
  font-size: 15px; color: #54524b;
}
.price-box--hp .chk { color: var(--terracotta, #D4874E); font-weight: 700; }
.price-box__cta--stack {
  display: flex; flex-direction: column; align-items: center;
  gap: 14px; max-width: 460px; margin: 0 auto;
}
.price-box__cta--stack .btn { width: 100%; justify-content: center; }
.btn--outline-dark {
  background: transparent;
  color: var(--ink, #141412);
  border: 2.5px solid var(--ink, #141412);
}
.btn--outline-dark:hover {
  background: var(--ink, #141412);
  color: var(--cream, #FAF9F5);
}
.price-trust {
  display: flex; justify-content: center; flex-wrap: wrap;
  gap: 14px 26px; margin: 26px 0 0;
  font-family: var(--sans); font-size: 15px; color: #54524b;
}
.price-trust strong { color: var(--terracotta, #D4874E); }
.price-box--hp .benefits-list { margin-top: 30px; text-align: left; }
.price-box--hp .benefits-list li { color: #3d3b35; }

/* --- Reviews: homepage layout (first row of two, then masonry) --- */
.rev-first {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  max-width: 1000px;
  margin: 0 auto 16px;
  align-items: start;
}
.rev-grid {
  column-count: 2;
  column-gap: 16px;
  max-width: 1000px;
  margin: 0 auto;
}
.rev-grid .rev { break-inside: avoid; margin-bottom: 16px; }
.rev {
  background: #1D1C19;
  border: 1px solid rgba(245,243,238,0.08);
  border-radius: 22px;
  padding: clamp(22px, 3vw, 30px);
}
.rev-photos { position: relative; margin-bottom: 18px; }
.rev-carousel {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  border-radius: 14px;
  aspect-ratio: 16/10;
  scrollbar-width: none;
}
.rev-carousel::-webkit-scrollbar { height: 0; }
.rev-carousel img {
  flex: 0 0 100%;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  scroll-snap-align: start;
}
.rev-dots {
  position: absolute; bottom: 10px; left: 0; right: 0;
  display: flex; justify-content: center; gap: 6px; pointer-events: none;
}
.rev-dots span {
  width: 6px; height: 6px; border-radius: 999px;
  background: rgba(255,255,255,0.5);
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
}
.rev-dots span.is-active { background: #fff; }
.rev-stars {
  color: var(--terracotta, #D4874E);
  font-size: 17px; letter-spacing: 0.1em; margin-bottom: 12px;
}
.rev-stars--ta { color: #00AA6C; }
.rev-name {
  font-family: var(--sans);
  font-weight: 700; font-size: 18px; color: #fff;
  line-height: 1.3; margin-bottom: 6px;
}
.rev-name span { font-weight: 400; font-size: 15px; color: rgba(245,243,238,0.7); white-space: nowrap; }
.rev-meta {
  font-family: var(--sans);
  font-size: 14px; color: rgba(245,243,238,0.5); margin-bottom: 16px;
}
.rev-plat { font-weight: 600; }
.rev-plat--gyg { color: var(--terracotta, #D4874E); }
.rev-plat--ta { color: #00AA6C; }
.rev-title {
  font-family: var(--serif);
  font-weight: 600; font-size: clamp(19px, 2.4vw, 23px);
  color: #fff; line-height: 1.2; margin-bottom: 12px;
}
.rev-text {
  font-family: var(--sans);
  font-size: clamp(16px, 2vw, 17px);
  line-height: 1.72; color: rgba(245,243,238,0.9);
}
.rev-text--pre { white-space: pre-line; }

@media (max-width: 680px) {
  .rev-first { grid-template-columns: 1fr; }
  .rev-grid { column-count: 1; }
}

/* --- Photo slots resized to the homepage rhythm --- */
.stop__media { aspect-ratio: 16/10; }
.stop__cheese-video { aspect-ratio: 16/10; max-width: 100%; }
.david { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.david__media { width: 100%; min-width: 0; min-height: 0; aspect-ratio: 4/5; }
@media (max-width: 820px) { .david__media { aspect-ratio: 4/3; } }


/* --- Tour kicker above the section title --- */
.tour__kicker {
  font-family: var(--sans-c);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--terracotta);
  margin-bottom: 14px;
}

/* --- Itinerary: smaller photo beside the text, alternating sides --- */
.stop--split .stop__body {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 28px;
  align-items: center;
}
.stop--split:nth-of-type(even) .stop__body {
  grid-template-columns: 300px 1fr;
}
.stop--split:nth-of-type(even) .stop__text { order: 2; }
.stop--split .stop__copy { max-width: 46ch; margin-bottom: 12px; }
.stop--split .stop__media,
.stop--split .stop__cheese-video {
  margin-top: 0;
  aspect-ratio: 4/3;
  max-width: 300px;
  width: 100%;
  align-self: center;
}
.stop--split .carousel__arrow { width: 32px; height: 32px; font-size: 18px; }
.stop--split .carousel__dots { bottom: 8px; }

@media (max-width: 860px) {
  .stop--split .stop__body,
  .stop--split:nth-of-type(even) .stop__body { grid-template-columns: 1fr; gap: 18px; }
  .stop--split:nth-of-type(even) .stop__text { order: 0; }
  .stop--split .stop__media,
  .stop--split .stop__cheese-video { max-width: 100%; aspect-ratio: 16/10; }
}


/* --- Fixes: no-media stops, trust list bullets --- */
.stop--nomedia .stop__body,
.stop--split.stop--nomedia:nth-of-type(even) .stop__body {
  grid-template-columns: 1fr;
}
.stop--nomedia .stop__text { order: 0 !important; }
.stop--nomedia .stop__copy { max-width: 60ch; }
.price-trust { list-style: none; padding-left: 0; }


/* ============================================================
   BRIEF PASS — logo, hero, itinerary
   ============================================================ */

/* Logo shown in full, never cropped */
.nav__logo {
  height: 82px;
  width: auto;
  max-width: 200px;
  object-fit: contain;
  overflow: visible;
}

/* Hero title: line 2 bold */
.hero__title-bold { font-weight: 800; font-style: normal; }

/* Hero subtitle bolds */
.hero__sub strong { font-weight: 700; color: var(--cream); }

/* "You can't waste your few days in Florence" — white, larger, same serif */
.tour__kicker {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(38px, 5.6vw, 62px);
  line-height: 1.1;
  letter-spacing: -0.01em;
  text-transform: none;
  color: #FFFFFF;
  margin-bottom: 10px;
}

/* Itinerary: no markers, no bullets, bigger photos, tighter text */
.stop, .stop--split { grid-template-columns: 1fr !important; gap: 0 !important; }
.stop__marker { display: none !important; }
.itinerary::before, .stop::before, .stop::after { display: none !important; }
.itinerary, .itinerary * { list-style: none; }

.stop--split .stop__body {
  grid-template-columns: 1fr minmax(0, 50%);
  gap: 40px;
  align-items: center;
}
.stop--split:nth-of-type(even) .stop__body {
  grid-template-columns: minmax(0, 50%) 1fr;
}
.stop--split .stop__media,
.stop--split .stop__cheese-video {
  max-width: none;
  width: 100%;
  aspect-ratio: 4/3;
}
.stop--split .stop__title { margin-bottom: 6px; }
.stop--split .stop__copy { margin-bottom: 10px; line-height: 1.55; }
.stop--split .stop__time { margin-bottom: 4px; }
.stop--split .stop__benefit { margin-top: 8px; }

.stop__sub {
  font-family: var(--sans-c);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--gold);
  margin: 0 0 10px;
}
.stop__tag {
  display: inline-block;
  font-family: var(--sans-c);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
  background: var(--gold);
  border-radius: 999px;
  padding: 4px 12px;
  vertical-align: middle;
  margin-left: 8px;
}

@media (max-width: 860px) {
  .stop--split .stop__body,
  .stop--split:nth-of-type(even) .stop__body { grid-template-columns: 1fr; gap: 18px; }
  .stop--split .stop__media,
  .stop--split .stop__cheese-video { aspect-ratio: 16/10; }
}


/* --- Fix pass: no-media stops beat the split grid; hero + kicker hierarchy --- */
.stop--split.stop--nomedia .stop__body,
.stop--split.stop--nomedia:nth-of-type(even) .stop__body {
  grid-template-columns: 1fr !important;
}
.hero__title { font-weight: 500; }
.hero__title-bold { font-weight: 700; }
.tour__kicker { font-size: clamp(44px, 7vw, 76px); }


/* --- Price row: reset the inherited dark-card slab to a cream-card baseline row --- */
.price-box--hp .price-box__price {
  background: transparent;
  flex-direction: row;
  padding: 0;
  border-radius: 0;
}

/* --- Review cards: left-aligned like the homepage --- */
.rev { text-align: left; }


/* --- Hero headline: let line 1 fit on one line (was capped at ~582px) --- */
.hero__title { max-width: min(100%, 800px); text-wrap: balance; }


/* ============================================================
   PRICE ANCHORING
   ============================================================ */
.price-anchor {
  max-width: 720px;
  margin: 0 auto clamp(28px, 4vw, 44px);
  text-align: left;
}
.price-anchor__q {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(28px, 3.6vw, 42px);
  line-height: 1.14;
  color: var(--cream);
  text-align: center;
  margin: 0 0 clamp(24px, 3vw, 34px);
}
.price-anchor__list { list-style: none; padding: 0; margin: 0; }
.price-anchor__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 20px;
  padding: 16px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.price-anchor__label {
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.86);
}
.price-anchor__val {
  font-family: var(--serif);
  font-weight: 700;
  font-size: 24px;
  color: rgba(255, 255, 255, 0.5);
  white-space: nowrap;
  flex-shrink: 0;
}
.price-anchor__val s { text-decoration-color: var(--terracotta); }
.price-anchor__val s + s { margin-left: 10px; color: rgba(255, 255, 255, 0.62); }
.price-anchor__val--na {
  font-family: var(--sans-c);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold);
  white-space: normal;
  text-align: right;
  max-width: 15ch;
  display: block;
}
.price-anchor__val--na em {
  display: block;
  font-family: var(--sans);
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
  color: rgba(255, 255, 255, 0.5);
  margin-top: 4px;
  line-height: 1.4;
}
.price-anchor__row--note { border-bottom: 0; }
.price-anchor__row--note .price-anchor__label {
  font-family: var(--serif-feature, var(--serif));
  font-style: italic;
  color: rgba(255, 255, 255, 0.6);
}
.price-anchor__flip {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(22px, 2.8vw, 30px);
  line-height: 1.3;
  color: var(--cream);
  text-align: center;
  margin: clamp(24px, 3vw, 34px) 0 0;
}
.price-anchor__flip s {
  color: rgba(255, 255, 255, 0.55);
  text-decoration-color: var(--terracotta);
}
.price-box--hp .price-box__eyebrow { text-transform: none; }

@media (max-width: 620px) {
  .price-anchor__row { flex-direction: column; gap: 6px; }
  .price-anchor__val, .price-anchor__val--na { text-align: left; max-width: none; }
}


/* --- Mini-trust sits inside the dark tour section, not a light card --- */
.mini-trust__text { color: rgba(255, 255, 255, 0.86); }


/* --- Cream price card: marks inherited dark-card gold/terracotta, too light on cream --- */
.price-box--hp .benefits-list__mark,
.price-box--hp .chk,
.price-box--hp .price-trust strong { color: var(--terracotta-dk); }


/* --- Hero headline accents: italic terracotta --- */
.hero__title em.hero__accent {
  font-family: var(--serif);
  font-style: italic;
  font-weight: inherit;
  font-size: 1em;
  color: var(--terracotta);
  padding: 0;
  letter-spacing: inherit;
}


/* --- Sticky bar: message + CTA, on every viewport --- */
.sticky-cta-bar { display: block; }
.sticky-cta-bar.is-visible {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(14px, 3vw, 32px);
  flex-wrap: wrap;
  background: rgba(28, 28, 26, 0.96);
  backdrop-filter: blur(10px);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding: 14px clamp(16px, 4vw, 40px) calc(14px + env(safe-area-inset-bottom, 0px));
}
.sticky-cta__msg {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(17px, 2.2vw, 24px);
  line-height: 1.2;
  color: var(--cream);
  margin: 0;
}
.sticky-cta-bar .sticky-cta { padding: 14px 30px; }

@media (max-width: 560px) {
  .sticky-cta__msg { font-size: 15px; }
  .sticky-cta-bar .sticky-cta { padding: 12px 22px; font-size: 14px; }
}


/* --- Hero accent "Tuscany" in bold --- */
.hero__title > em.hero__accent { font-weight: 700; }


/* --- Hero subtitle: larger, two lines --- */
.hero__sub--feature {
  font-size: clamp(24px, 2.9vw, 38px);
  line-height: 1.3;
  max-width: min(100%, 860px);
  text-wrap: balance;
}
.hero__sub--feature strong { font-weight: 700; }


/* --- Hero subtitle: only the key words bold, rest lighter --- */
.hero__sub--feature { font-weight: 400; }


/* --- Kicker: smaller, elegant italic serif --- */
.tour__kicker {
  font-family: var(--serif-feature, var(--serif));
  font-style: italic;
  font-weight: 500;
  font-size: clamp(22px, 2.6vw, 32px);
  letter-spacing: 0;
  margin-bottom: 14px;
}


/* --- Placeholder photo slot (image to be added later) --- */
.stop__media--placeholder {
  background: repeating-linear-gradient(45deg, #2a2926 0 15px, #242320 15px 30px);
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
}
.stop__placeholder-label {
  margin: 16px;
  font-family: ui-monospace, monospace;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #8f8d82;
  background: rgba(20, 20, 18, 0.6);
  padding: 6px 11px;
  border-radius: 999px;
}


/* ============================================================
   ONE FRAME: price anchoring → reveal → inclusions
   ============================================================ */
.price-frame {
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.04);
  padding: clamp(28px, 4vw, 56px) clamp(20px, 3.4vw, 48px);
  max-width: 880px;
  margin: 0 auto;
}
.price-frame .price-anchor { margin-bottom: clamp(28px, 4vw, 44px); }
.price-frame .price-anchor__list { border-top: 1px solid rgba(255, 255, 255,0.12); }

/* the reveal is no longer its own cream card — it lives inside the frame */
.price-frame .price-box--hp {
  background: transparent;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 0;
  padding: clamp(26px, 3.4vw, 40px) 0 0;
  box-shadow: none;
}
.price-frame .price-box--hp .price-box__eyebrow { color: rgba(255, 255, 255,0.7); }
.price-frame .price-box--hp .price-box__amount { color: var(--cream); }
.price-frame .price-box--hp .price-box__per { color: rgba(255, 255, 255,0.72); }
.price-frame .price-box--hp .price-box__included li { color: rgba(255, 255, 255,0.86); }
.price-frame .price-box--hp .benefits-list li { color: rgba(255, 255, 255,0.86); }
.price-frame .price-box--hp .price-trust { color: rgba(255, 255, 255,0.72); }
.price-frame .price-box--hp .benefits-list__mark,
.price-frame .price-box--hp .chk,
.price-frame .price-box--hp .price-trust strong { color: var(--gold); }
.price-frame .price-box--hp .btn--outline-dark {
  color: var(--cream);
  border-color: rgba(255, 255, 255, 0.6);
}
.price-frame .price-box--hp .btn--outline-dark:hover {
  background: var(--cream);
  color: var(--ink);
}


/* --- Frame context: primary CTA needs its terracotta fill back; kill the cream-era quote glyph --- */
.price-frame .price-box--hp .btn--primary-msg {
  background: var(--terracotta);
  color: #FFFFFF;
  box-shadow: 0 8px 24px rgba(212, 135, 78, 0.4);
}
.price-frame .price-box--hp .btn--primary-msg:hover {
  background: var(--terracotta-dk);
}
.price-frame .price-box--hp::before { content: none; }


/* --- Inclusions row: reset the inherited column/left from the original card --- */
.price-box--hp .price-box__included {
  flex-direction: row;
  text-align: center;
}


/* ============================================================
   PRICE FRAME v2 — anchoring → flip → final price
   ============================================================ */
.price-frame > .price-anchor__q {
  font-family: var(--serif-feature, var(--serif));
  font-style: italic;
  font-weight: 500;
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1.2;
  color: var(--cream);
  text-align: center;
  margin: 0 0 clamp(24px, 3vw, 36px);
}
.price-frame .price-anchor__row { padding: 18px 0; }
.price-frame .price-anchor__label {
  font-size: clamp(17px, 2vw, 21px);
  line-height: 1.4;
  color: var(--cream);
}
.price-frame .price-anchor__val {
  font-size: clamp(24px, 3vw, 34px);
  color: rgba(255, 255, 255, 0.55);
}
.price-frame .price-anchor__val--na {
  font-family: var(--serif);
  font-size: clamp(19px, 2.2vw, 24px);
  font-weight: 700;
  font-style: italic;
  letter-spacing: 0;
  text-transform: none;
  color: var(--gold);
  max-width: 14ch;
}

/* Flip list */
.price-flip {
  margin-top: clamp(28px, 4vw, 44px);
  padding-top: clamp(26px, 3.4vw, 38px);
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}
.price-flip__lead {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(24px, 3vw, 34px);
  color: var(--cream);
  text-align: center;
  margin: 0 0 22px;
}
.price-flip__list {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 640px;
  display: grid;
  gap: 10px;
}
.price-flip__list li {
  display: flex;
  gap: 12px;
  align-items: baseline;
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.92);
}
.price-flip__list .chk { color: var(--gold); font-weight: 700; flex-shrink: 0; }

/* Final price + CTA */
.price-final {
  margin-top: clamp(28px, 4vw, 40px);
  padding-top: clamp(24px, 3vw, 34px);
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  text-align: center;
}
.price-final__price {
  display: flex;
  align-items: baseline;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin: 0 0 24px;
}
.price-final__old {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(26px, 3vw, 34px);
  color: rgba(255, 255, 255, 0.5);
  text-decoration-color: var(--terracotta);
}
.price-final__now {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(26px, 3.4vw, 38px);
  color: var(--cream);
  line-height: 1.15;
}
.price-final__now strong {
  font-size: clamp(44px, 6vw, 64px);
  color: var(--cream);
  letter-spacing: -0.01em;
}
.price-final__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--terracotta);
  color: #FFFFFF;
  font-family: var(--sans-c);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 18px 40px;
  border-radius: 999px;
  box-shadow: 0 8px 24px rgba(212, 135, 78, 0.4);
  transition: background 0.2s ease, transform 0.15s ease;
}
.price-final__cta:hover { background: var(--terracotta-dk); transform: translateY(-2px); }

@media (max-width: 620px) {
  .price-frame .price-anchor__val--na { max-width: none; }
}


/* --- Note under the final CTA --- */
.price-final__note {
  font-family: var(--sans);
  font-size: 15px;
  color: rgba(255, 255, 255, 0.7);
  margin: 14px 0 0;
}


/* ============================================================
   PRICE FRAME v3 — wide cream card, rounded, light context
   ============================================================ */
.price-frame {
  background: var(--cream);
  border: 1px solid rgba(28, 28, 26, 0.1);
  border-radius: 32px;
  max-width: 1040px;
  padding: clamp(32px, 4.6vw, 68px) clamp(24px, 4vw, 64px);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
}

/* headline + anchoring rows on cream */
.price-frame > .price-anchor__q { color: var(--ink); }
.price-frame .price-anchor__list { border-top-color: rgba(28, 28, 26, 0.12); }
.price-frame .price-anchor__row { border-bottom-color: rgba(28, 28, 26, 0.12); }
.price-frame .price-anchor__label { color: #3D3B35; }
.price-frame .price-anchor__val {
  font-size: clamp(30px, 3.8vw, 44px);
  color: #6B665A;
}
.price-frame .price-anchor__val s { text-decoration-color: var(--terracotta-dk); }
.price-frame .price-anchor__val--na {
  font-size: clamp(21px, 2.4vw, 27px);
  color: var(--terracotta-dk);
  max-width: 15ch;
}
.price-frame .price-anchor__row--note .price-anchor__label { color: #6B665A; }

/* flip / inclusions — larger, harmonious */
.price-flip { border-top-color: rgba(28, 28, 26, 0.14); }
.price-flip__lead { color: var(--ink); }
.price-flip__list {
  max-width: 760px;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 14px 32px;
}
.price-flip__list li {
  font-size: clamp(18px, 1.9vw, 21px);
  line-height: 1.45;
  color: #3D3B35;
}
.price-flip__list .chk { color: var(--terracotta-dk); }

/* final price stacked: lead / old / now / cta / note */
.price-final { border-top-color: rgba(28, 28, 26, 0.14); }
.price-final__price {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  margin: 0 0 26px;
}
.price-final__lead {
  font-family: var(--sans-c);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #6B665A;
}
.price-final__old {
  font-size: clamp(28px, 3.2vw, 38px);
  color: #8C8878;
  text-decoration-color: var(--terracotta-dk);
}
.price-final__now { color: var(--ink); font-size: clamp(22px, 2.4vw, 28px); }
.price-final__now strong {
  display: block;
  font-size: clamp(58px, 8vw, 92px);
  line-height: 1;
  color: var(--ink);
  margin-bottom: 2px;
}
.price-final__note { color: #6B665A; }


/* --- Frame wider than the section container; CTA legible on cream --- */
.price-frame { width: 100%; max-width: 1040px; margin-inline: auto; }
.price-final__cta { background: var(--terracotta-dk); box-shadow: 0 10px 26px rgba(212, 135, 78, 0.35); font-size: 17px; }
.price-final__cta:hover { background: var(--terracotta); }


/* ============================================================
   TRUTH SECTION — centred head, orange bold accent, alternating rows
   ============================================================ */
.truth .eyebrow,
.truth .section__title,
.truth__intro {
  text-align: center;
}
.truth__intro { margin-inline: auto; }
.truth .section__title em {
  font-weight: 700;
  color: var(--terracotta-dk);
}

/* photo/text alternating, aligned like the itinerary */
.truth__grid--stack .truth__card {
  align-items: center;
  background: transparent;
  gap: 40px;
  grid-template-columns: 1fr minmax(0, 50%);
}
.truth__grid--stack .truth__card:nth-child(even) {
  grid-template-columns: minmax(0, 50%) 1fr;
}
.truth__grid--stack .truth__media {
  min-height: 0;
  aspect-ratio: 4/3;
  border-radius: 16px;
}
.truth__grid--stack .truth__num,
.truth__grid--stack .truth__heading,
.truth__grid--stack .truth__copy { padding-inline: 0; }
.truth__grid--stack .truth__num { padding-top: 0; }
.truth__grid--stack .truth__copy:last-child { padding-bottom: 0; }

@media (max-width: 820px) {
  .truth__grid--stack .truth__card,
  .truth__grid--stack .truth__card:nth-child(even) { grid-template-columns: 1fr; gap: 18px; }
  .truth__grid--stack .truth__media { aspect-ratio: 16/10; }
}

/* ============================================================
   ITINERARY — thread connecting every step
   ============================================================ */
.itinerary { position: relative; }
.itinerary::before {
  content: '';
  position: absolute;
  top: 40px;
  bottom: 40px;
  left: 50%;
  width: 1px;
  background: linear-gradient(180deg,
    rgba(212, 135, 78,0) 0%,
    rgba(212, 135, 78,0.45) 8%,
    rgba(212, 135, 78,0.45) 92%,
    rgba(212, 135, 78,0) 100%);
  pointer-events: none;
  z-index: 0;
}
.stop { position: relative; z-index: 1; }
.stop--split::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 9px;
  margin: -4px 0 0 -4px;
  border-radius: 50%;
  background: var(--terracotta);
  box-shadow: 0 0 0 4px var(--ink);
  z-index: 2;
}
@media (max-width: 860px) {
  .itinerary::before { left: 14px; }
  .stop--split::after { left: 14px; top: 34px; }
}


/* ============================================================
   ITINERARY STEPS — cream rounded cards
   ============================================================ */
.stop--split {
  background: var(--cream);
  border-radius: 24px;
  padding: clamp(22px, 3vw, 36px);
  margin-bottom: clamp(18px, 2.6vw, 28px);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.22);
}
.stop--split .stop__body { gap: 32px; }

/* recolour everything for the cream card */
.stop--split .stop__time { color: var(--terracotta-dk); }
.stop--split .stop__title { color: var(--ink); }
.stop--split .stop__title em { color: var(--terracotta-dk); }
.stop--split .stop__sub { color: var(--terracotta-dk); }
.stop--split .stop__copy { color: #3D3B35; }
.stop--split .stop__copy b,
.stop--split .stop__copy strong { color: var(--terracotta-dk) !important; }
.stop--split .stop__benefit { color: var(--terracotta-dk); }
.stop--split .stop__benefit::before { color: var(--terracotta-dk); }
.stop--split .stop__tag { background: var(--terracotta-dk); color: var(--cream); }

/* media inside a cream card */
.stop--split .stop__media,
.stop--split .stop__cheese-video { border-radius: 16px; }
.stop--split .stop__media--placeholder {
  background: repeating-linear-gradient(45deg, #E4E2DB 0 15px, #DEDCD4 15px 30px);
}
.stop--split .stop__placeholder-label {
  color: #6B665A;
  background: rgba(255, 255, 255, 0.78);
}

/* thread sits behind the cards, dots on top */
.itinerary::before { z-index: 0; }
.stop--split::after { box-shadow: 0 0 0 4px var(--cream); z-index: 3; }


/* small uppercase labels need 4.5:1 on cream */
.stop--split .stop__time,
.stop--split .stop__sub,
.stop--split .stop__benefit,
.stop--split .stop__benefit::before { color: #8A4712; }

.stop--split .stop__copy b,
.stop--split .stop__copy strong { color: #8A4712 !important; }


/* --- Anchoring question sits outside the cream frame, on the dark section --- */
.price-anchor__q--outside {
  font-family: var(--serif-feature, var(--serif));
  font-style: italic;
  font-weight: 500;
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1.2;
  color: var(--cream);
  text-align: center;
  max-width: 24ch;
  margin: 0 auto clamp(22px, 3vw, 34px);
}
.price-frame > .price-anchor__list { border-top: 0; }


/* --- Inclusions: subtitle font, tighter to the price --- */
.price-flip__list li {
  font-family: var(--serif-feature, var(--serif));
  font-style: italic;
  font-size: clamp(19px, 2vw, 23px);
  line-height: 1.4;
}
.price-flip { padding-bottom: 0; }
.price-final {
  margin-top: clamp(16px, 2vw, 22px);
  padding-top: clamp(16px, 2vw, 22px);
}


/* --- Each inclusion as its own borderless chip, tinted off the cream card --- */
.price-flip__list { gap: 10px 14px; }
.price-flip__list li {
  background: rgba(28, 28, 26, 0.055);
  border: 0;
  border-radius: 14px;
  padding: 12px 18px;
  align-items: center;
}


/* --- Struck prices: single oblique line instead of line-through --- */
.price-anchor__val s,
.price-final__old {
  position: relative;
  text-decoration: none;
  display: inline-block;
}
.price-anchor__val s::after,
.price-final__old::after {
  content: '';
  position: absolute;
  left: -4%;
  right: -4%;
  top: 50%;
  height: 2px;
  background: var(--terracotta-dk);
  transform: rotate(-12deg);
  transform-origin: center;
  pointer-events: none;
}


/* --- Truth cards: cream rounded card, photo left / text right (no alternation) --- */
.truth__grid--stack .truth__card,
.truth__grid--stack .truth__card:nth-child(even) {
  grid-template-columns: minmax(0, 44%) 1fr;
  background: var(--cream);
  border-radius: 24px;
  padding: clamp(20px, 2.6vw, 30px);
  gap: clamp(24px, 3vw, 38px);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.2);
  align-items: center;
}
.truth__grid--stack .truth__card:nth-child(even) .truth__media { order: 0; }
.truth__grid--stack .truth__media { border-radius: 16px; aspect-ratio: 4/3; }

/* text colours for the cream card */
.truth__grid--stack .truth__num { color: var(--terracotta-dk); }
.truth__grid--stack .truth__heading { color: var(--ink); }
.truth__grid--stack .truth__copy { color: #3D3B35; }
.truth__grid--stack .truth__copy strong { color: #8A4712; }

@media (max-width: 820px) {
  .truth__grid--stack .truth__card,
  .truth__grid--stack .truth__card:nth-child(even) { grid-template-columns: 1fr; gap: 18px; }
}


/* --- Anchoring rows: bold italic labels and values --- */
.price-frame .price-anchor__label {
  font-family: var(--serif-feature, var(--serif));
  font-weight: 500;
  font-style: italic;
  font-size: clamp(18px, 1.9vw, 22px);
  line-height: 1.35;
}
.price-frame .price-anchor__val,
.price-frame .price-anchor__val s { font-style: italic; }


/* --- Anchoring voices: dark rounded chips inside the cream frame --- */
.price-frame .price-anchor__list {
  display: grid;
  gap: 12px;
  border-top: 0;
}
.price-frame .price-anchor__row {
  background: var(--ink);
  border: 0;
  border-radius: 16px;
  padding: 18px clamp(18px, 2.2vw, 26px);
  gap: 18px;
}
.price-frame .price-anchor__label { color: var(--cream); }
.price-frame .price-anchor__val { color: rgba(255, 255, 255, 0.68); }
.price-frame .price-anchor__val s::after,
.price-frame .price-anchor__val--na { color: var(--gold); }
.price-frame .price-anchor__val s::after { background: var(--terracotta); }
.price-frame .price-anchor__row--note {
  background: rgba(28, 28, 26, 0.9);
  justify-content: center;
  text-align: center;
}
.price-frame .price-anchor__row--note .price-anchor__label { color: rgba(255, 255, 255, 0.82); }


/* --- Truth eyebrow: centre the inline-block box itself --- */
.truth .eyebrow { display: block; margin-inline: auto; }


/* --- Truth card: photo spans column 1, all text stacks in column 2 --- */
.truth__grid--stack .truth__card,
.truth__grid--stack .truth__card:nth-child(even) {
  grid-auto-flow: row;
  align-items: start;
}
.truth__grid--stack .truth__media {
  grid-column: 1;
  grid-row: 1 / -1;
  align-self: center;
}
.truth__grid--stack .truth__num,
.truth__grid--stack .truth__heading,
.truth__grid--stack .truth__copy {
  grid-column: 2;
}
@media (max-width: 820px) {
  .truth__grid--stack .truth__media { grid-column: 1; grid-row: auto; }
  .truth__grid--stack .truth__num,
  .truth__grid--stack .truth__heading,
  .truth__grid--stack .truth__copy { grid-column: 1; }
}


/* --- Truth card: text + number left, photo right --- */
.truth__grid--stack .truth__card,
.truth__grid--stack .truth__card:nth-child(even) {
  grid-template-columns: 1fr minmax(0, 44%);
}
.truth__grid--stack .truth__media {
  grid-column: 2;
  grid-row: 1 / -1;
}
.truth__grid--stack .truth__num,
.truth__grid--stack .truth__heading,
.truth__grid--stack .truth__copy {
  grid-column: 1;
}
@media (max-width: 820px) {
  .truth__grid--stack .truth__card,
  .truth__grid--stack .truth__card:nth-child(even) { grid-template-columns: 1fr; }
  .truth__grid--stack .truth__media { grid-column: 1; grid-row: auto; }
  .truth__grid--stack .truth__num,
  .truth__grid--stack .truth__heading,
  .truth__grid--stack .truth__copy { grid-column: 1; }
}


/* --- Truth card: text rows hug their content --- */
.truth__grid--stack .truth__card,
.truth__grid--stack .truth__card:nth-child(even) {
  grid-auto-rows: min-content;
  align-content: start;
}
.truth__grid--stack .truth__heading { margin: 0 0 10px; }
.truth__grid--stack .truth__copy { margin: 0 0 10px; }
.truth__grid--stack .truth__copy:last-child { margin-bottom: 0; }

.truth__grid--stack .truth__media { grid-row: 1 / span 10; }

.truth__grid--stack .truth__card,
.truth__grid--stack .truth__card:nth-child(even) { row-gap: 0; column-gap: clamp(24px, 3vw, 38px); }
.truth__grid--stack .truth__media {
  aspect-ratio: auto;
  width: 100%;
  max-width: 100%;
  height: 100%;
  min-height: 260px;
  align-self: stretch;
}
.truth__grid--stack .truth__media img { width: 100%; height: 100%; object-fit: cover; }


/* --- Step connector: visible thread + node in the gap between cards --- */
.stop--split { margin-bottom: 46px; }
.itinerary::before {
  top: 0;
  bottom: 0;
  width: 3px;
  background: rgba(212, 135, 78, 0.55);
}
/* node sits in the gap BELOW each card, not behind it */
.stop--split::after {
  top: auto;
  bottom: -46px;
  left: 50%;
  width: 14px;
  height: 14px;
  margin: 0 0 16px -7px;
  background: var(--terracotta);
  box-shadow: 0 0 0 5px var(--ink);
}
.stop--split:last-child::after { content: none; }
@media (max-width: 860px) {
  .stop--split::after { left: 14px; margin-left: -7px; }
}


/* ============================================================
   ATMOSPHERE — warm gradients, colour shifts, optical depth
   (Tuscan palette only: ink → warm umber, terracotta/gold glows)
   ============================================================ */

/* 1 · Sections stop reading as flat black: each gets its own warm tilt */
.section.tour {
  background: linear-gradient(180deg, #1C1C1A 0%, #221E1A 42%, #1E1B18 100%);
  position: relative;
  overflow: hidden;
}
.section.truth {
  background: linear-gradient(180deg, #1E1B18 0%, #241F1A 55%, #1C1C1A 100%);
  position: relative;
  overflow: hidden;
}
.section.reviews {
  background: linear-gradient(180deg, #1C1C1A 0%, #201D19 50%, #1C1C1A 100%);
  position: relative;
}
.section.faq {
  background: linear-gradient(180deg, #1C1C1A 0%, #221E19 100%);
  position: relative;
}

/* 2 · Terracotta spotlight behind the price frame — draws the eye to the offer */
.section.tour::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -14%;
  width: min(1100px, 120%);
  aspect-ratio: 1;
  transform: translateX(-50%);
  background: radial-gradient(circle at center,
    rgba(212, 135, 78, 0.16) 0%,
    rgba(212, 135, 78, 0.06) 38%,
    rgba(212, 135, 78, 0) 68%);
  pointer-events: none;
  z-index: 0;
}
.section.tour > * { position: relative; z-index: 1; }

/* 3 · Gold haze high in the truth section */
.section.truth::before {
  content: '';
  position: absolute;
  left: 50%;
  top: -18%;
  width: min(980px, 115%);
  aspect-ratio: 1;
  transform: translateX(-50%);
  background: radial-gradient(circle at center,
    rgba(232, 184, 74, 0.10) 0%,
    rgba(232, 184, 74, 0) 62%);
  pointer-events: none;
  z-index: 0;
}
.section.truth > * { position: relative; z-index: 1; }

/* 4 · Cream cards gain depth: warm top-light, cooler foot, hairline highlight */
.stop--split,
.truth__grid--stack .truth__card,
.price-frame {
  background-image: linear-gradient(170deg, #FBF6E7 0%, #FFFFFF 46%, #EFE6CF 100%);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.7) inset,
    0 18px 40px rgba(0, 0, 0, 0.28);
}

/* 5 · Dark chips inside the cream frame: subtle sheen instead of flat ink */
.price-frame .price-anchor__row {
  background-image: linear-gradient(160deg, #262421 0%, #1C1C1A 70%);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06) inset;
}

/* 6 · Inclusion chips: warm tint that lifts off the card */
.price-flip__list li {
  background-image: linear-gradient(160deg, rgba(212, 135, 78,0.10) 0%, rgba(28,28,26,0.05) 100%);
}

/* 7 · The €199 gets a warm ink-to-terracotta shift (optical emphasis) */
.price-final__now strong {
  background: linear-gradient(160deg, #1C1C1A 0%, #6B3A12 88%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* 8 · Review cards: faint inner glow so they float on the dark */
.rev {
  background-image: linear-gradient(165deg, #232120 0%, #1D1C19 62%);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05) inset;
}

/* 9 · Itinerary thread reads as light travelling down the page */
.itinerary::before {
  background: linear-gradient(180deg,
    rgba(212, 135, 78, 0) 0%,
    rgba(232, 184, 74, 0.75) 12%,
    rgba(212, 135, 78, 0.6) 50%,
    rgba(212, 135, 78, 0.75) 88%,
    rgba(212, 135, 78, 0) 100%);
}
.stop--split::after {
  background-image: radial-gradient(circle at 35% 30%, #F0B071 0%, #D4874E 60%, #8A4712 100%);
}

/* 10 · Hero: deeper cinematic vignette so the headline sits forward */
.hero__overlay {
  background:
    radial-gradient(ellipse at 30% 40%, rgba(28,28,26,0) 0%, rgba(28,28,26,0.55) 55%, rgba(28,28,26,0.86) 100%),
    linear-gradient(180deg, rgba(28,28,26,0.5) 0%, rgba(28,28,26,0.15) 38%, rgba(28,28,26,0.92) 100%);
}

/* 11 · Fine grain over the dark sections — kills banding, adds film texture */
.section.tour::after,
.section.truth::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.5;
  background-image:
    repeating-linear-gradient(37deg, rgba(255, 255, 255,0.014) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(-53deg, rgba(0,0,0,0.02) 0 1px, transparent 1px 3px);
}

/* 12 · Sticky bar melts into the page instead of cutting it */
.sticky-cta-bar.is-visible {
  background: linear-gradient(180deg, rgba(28,28,26,0.82) 0%, rgba(28,28,26,0.97) 60%);
}

@media (prefers-reduced-motion: reduce) {
  .section.tour::after, .section.truth::after { opacity: 0.3; }
}

/* truth head sits on the dark section, not on a cream card */
.truth > .section__inner > .eyebrow { color: var(--gold); }
.truth__intro { color: rgba(255, 255, 255, 0.82); }


/* ============================================================
   ROUNDED-SHELL SYSTEM (ref: nested rounded rectangles)
   Outer section shell 32px → card 24px → inner chip 16px
   ============================================================ */

/* 1 · Dark sections become inset rounded shells, not full-bleed slabs */
.section.tour,
.section.truth,
.section.reviews,
.section.faq {
  border-radius: 32px;
  margin-inline: clamp(10px, 1.6vw, 22px);
  overflow: hidden;
}
.section.truth { margin-top: clamp(14px, 2vw, 24px); }
.section.reviews,
.section.faq { margin-top: clamp(14px, 2vw, 24px); }

/* 2 · Nested cards keep a consistent step down in radius */
.stop--split,
.truth__grid--stack .truth__card,
.price-frame,
.rev { border-radius: 24px; }
.price-frame .price-anchor__row,
.price-flip__list li,
.stop--split .stop__media,
.stop--split .stop__cheese-video,
.truth__grid--stack .truth__media,
.rev-carousel { border-radius: 16px; }

/* 3 · Accent-outlined shell for the flip block (gold hairline, transparent fill) */
.price-flip {
  border: 1px solid rgba(212, 135, 78, 0.4);
  border-radius: 20px;
  background: rgba(212, 135, 78, 0.045);
  padding: clamp(22px, 3vw, 32px);
  margin-top: clamp(24px, 3vw, 34px);
}

/* 4 · Final price block gets its own inner shell */
.price-final {
  border: 0;
  border-radius: 20px;
  background: rgba(28, 28, 26, 0.05);
  padding: clamp(24px, 3vw, 34px);
  margin-top: clamp(16px, 2vw, 22px);
}

/* 5 · Light shadows for depth on text over gradients / imagery */
.hero__title,
.hero__sub--feature { text-shadow: 0 2px 14px rgba(28, 28, 26, 0.6); }
.tour__kicker,
.truth .section__title,
.reviews__head .section__title,
.faq .section__title,
.price-anchor__q--outside { text-shadow: 0 1px 10px rgba(0, 0, 0, 0.45); }
.stop--split .stop__title,
.truth__grid--stack .truth__heading,
.price-final__now strong { text-shadow: 0 1px 0 rgba(255, 255, 255, 0.55); }
.stop__placeholder-label,
.carousel__arrow { text-shadow: none; }

/* 6 · Media inside cards: hairline so photos read as inset panels */
.stop--split .stop__media,
.truth__grid--stack .truth__media,
.stop--split .stop__cheese-video {
  box-shadow: 0 0 0 1px rgba(28, 28, 26, 0.08) inset;
}


/* ============================================================
   FIX · FAQ + heads readable on the dark shells
   ============================================================ */
.faq .section__title,
.faq .eyebrow { color: var(--cream); }
.faq .section__title em { color: var(--gold); }
.faq__item {
  background-image: linear-gradient(180deg, #262421 0%, #1B1A18 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
}
.faq__q,
.faq__q span { color: var(--cream); }
.faq__icon { color: var(--gold); }
.faq__a p { color: rgba(255, 255, 255, 0.85); }
.faq__a p strong { color: var(--gold); }

.reviews__head .section__title,
.reviews__rating { color: var(--cream); }
.reviews__source { color: rgba(255, 255, 255, 0.7); }

/* ============================================================
   SHADOW PLAY · cards fade darker toward the bottom (ref screenshots)
   ============================================================ */
.stop--split,
.truth__grid--stack .truth__card,
.price-frame {
  background-image: linear-gradient(180deg, #FDF9EE 0%, #FFFFFF 52%, #E7DCC2 100%);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.85) inset,
    0 -26px 34px -22px rgba(28, 28, 26, 0.28) inset,
    0 20px 44px rgba(0, 0, 0, 0.3);
}
.rev,
.faq__item {
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.06) inset,
    0 -24px 30px -20px rgba(0, 0, 0, 0.55) inset,
    0 16px 34px rgba(0, 0, 0, 0.32);
}
.rev { background-image: linear-gradient(180deg, #262422 0%, #1D1C19 60%, #151412 100%); }
.price-frame .price-anchor__row {
  background-image: linear-gradient(180deg, #2A2724 0%, #1C1C1A 62%, #141312 100%);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.07) inset,
    0 -18px 22px -16px rgba(0, 0, 0, 0.5) inset;
}
.price-flip__list li {
  background-image: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(212, 135, 78,0.10) 55%, rgba(28,28,26,0.10) 100%);
  box-shadow: 0 -12px 16px -12px rgba(28, 28, 26, 0.22) inset;
}

.reviews__head .eyebrow { color: var(--gold); }

.price-flip__list .chk { color: #8A4712; }
.stop--split .stop__placeholder-label { color: #5A5648; }


/* --- FAQ head: eyebrow + title centred --- */
.faq__inner > .eyebrow {
  display: block;
  text-align: center;
  margin-inline: auto;
}
.faq__inner > .section__title { text-align: center; }


/* ============================================================
   RESTYLE · black / white / gold · readable type · block fades
   ============================================================ */

/* --- type: sturdier headings, tighter tracking --- */
h1, h2, h3, .section__title, .stop__title, .truth__heading,
.hero__title, .contact__title, .faq__q span, .price-final__now strong,
.price-box--hp .price-box__amount, .rev-title {
  font-family: var(--serif);
  font-weight: 700;
  letter-spacing: -0.02em;
}
.hero__sub--feature, .david__quote, .price-anchor__label,
.price-anchor__row--note .price-anchor__label {
  font-family: var(--serif-feature);
}
body { font-family: var(--sans); -webkit-font-smoothing: antialiased; }

/* --- section gradients: fade from one block into the next --- */
.hero { background-color: #000; }
#tour.section.tour {
  background-image: linear-gradient(180deg, #000 0%, #0B0B0B 38%, #101010 100%);
}
.section.price-anchor,
.price-anchor {
  background-image: linear-gradient(180deg, #101010 0%, #060606 55%, #000 100%);
}
.section.truth {
  background-image: linear-gradient(180deg, #000 0%, #0C0C0C 50%, #050505 100%);
}
.section.reviews {
  background-image: linear-gradient(180deg, #050505 0%, #0E0E0E 45%, #000 100%);
}
.david {
  background-image: linear-gradient(180deg, #000 0%, #0B0B0B 60%, #101010 100%);
}
.section.faq {
  background-image: linear-gradient(180deg, #101010 0%, #060606 60%, #000 100%);
}
.contact, .section.contact {
  background-image: linear-gradient(180deg, #000 0%, #0A0A0A 100%);
}

/* --- light cards: pure white, black text --- */
.stop--split,
.truth__grid--stack .truth__card,
.price-frame {
  background-image: linear-gradient(180deg, #FFF 0%, #FAFAFA 55%, #EDEDED 100%);
  color: var(--ink);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.9) inset,
    0 -26px 34px -22px rgba(0,0,0,0.16) inset,
    0 22px 48px rgba(0,0,0,0.45);
}
.stop--split .stop__title,
.truth__card .truth__heading,
.price-frame .price-final__now strong { color: var(--ink); }
.stop--split .stop__copy,
.truth__card .truth__copy { color: #333; }
.stop--split .stop__title em,
.truth__card .truth__heading em,
.section__title em { color: var(--terracotta-dk); }

/* --- dark cards --- */
.rev, .faq__item {
  background-image: linear-gradient(180deg, #17171 7 0%, #101010 60%, #0A0A0A 100%);
  background-image: linear-gradient(180deg, #171717 0%, #101010 60%, #0A0A0A 100%);
  border: 1px solid rgba(255,255,255,0.1);
}
.price-frame .price-anchor__row {
  background-image: linear-gradient(180deg, #151515 0%, #0D0D0D 62%, #080808 100%);
  border: 1px solid rgba(255,255,255,0.08);
}
.price-flip__list li {
  background-image: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(212, 135, 78,0.10) 60%, rgba(0,0,0,0.08) 100%);
  color: var(--ink);
}

/* --- gold: CTAs + keywords only --- */
.btn, .btn--lg, .price-final__cta, .sticky-bar .btn {
  background: var(--terracotta);
  color: #0A0A0A;
  border: none;
  font-weight: 700;
}
.btn:hover, .price-final__cta:hover { background: var(--gold); color: #000; }
.btn--outline-dark {
  background: transparent; color: var(--ink);
  border: 2px solid var(--ink);
}
.btn--outline-dark:hover { background: var(--ink); color: #FFF; }
.eyebrow, .stop__time, .chk, .faq__icon,
.rev-stars, .rev-plat--gyg, .price-final__lead { color: var(--terracotta); }
.rev-stars--ta, .rev-plat--ta { color: var(--terracotta); }
.stop__benefit {
  background: rgba(212, 135, 78,0.14);
  color: #6B5200;
  border: 1px solid rgba(212, 135, 78,0.4);
}
.stop--split .stop__copy b,
.stop--split .stop__copy strong,
.truth__card .truth__copy strong { color: var(--terracotta-dk); }

/* --- dark-section text --- */
.reviews__head .section__title, .reviews__rating,
.faq .section__title, .faq__q span, .david__content h2,
.contact__title { color: #FFF; }
.faq__a p, .rev-text, .david__content p { color: rgba(255,255,255,0.86); }
.reviews__source, .rev-meta { color: rgba(255,255,255,0.62); }
.rev-name { color: #FFF; }
.rev-name span { color: rgba(255,255,255,0.68); }
.price-anchor__q--outside { color: #FFF; }
.price-flip__lead { color: var(--ink); }

/* --- gold on white must be darkened for contrast --- */
.stop--split .stop__title em,
.truth__card .truth__heading em,
.price-frame .section__title em,
.stop--split .stop__copy b,
.stop--split .stop__copy strong,
.stop--split .stop__copy i,
.truth__card .truth__copy strong,
.price-frame .price-flip__lead,
.price-frame .chk { color: #8A4712; }
.stop__benefit {
  background: rgba(212, 135, 78,0.18);
  color: #7A3E0E;
  border: 1px solid rgba(138, 71, 18,0.35);
}
.price-final__lead { color: #8A4712; }


/* --- FINAL contrast pass on light surfaces (highest specificity) --- */
.stop__benefit.stop__benefit.stop__benefit {
  background: rgba(212, 135, 78,0.2);
  color: #7A3E0E;
  border: 1px solid rgba(138, 71, 18,0.4);
}
.price-flip__lead.price-flip__lead.price-flip__lead { color: #0A0A0A; }
.price-flip__list.price-flip__list .chk { color: #8A4712; }
.price-flip__list.price-flip__list li { color: #1A1A1A; }
.section__title em.section__title em { color: inherit; }
.tour .section__title em,
.tour__header .section__title em { color: #E09A5F; }
.price-final__lead.price-final__lead { color: #7A3E0E; }
.price-anchor__val--na.price-anchor__val--na { color: #E8AC7A; }

.stop__benefit.stop__benefit.stop__benefit { color: #6B360C; }
.price-flip__list.price-flip__list .chk { color: #63320B; }

/* --- section-level heads sit on the dark shell: keep them light --- */
.truth > .section__inner > .section__title,
.truth > .section__inner > .section__title em,
.tour > .section__inner .tour__header .section__title { color: #FFF; }
.truth > .section__inner > .section__title em { color: #E09A5F; }
.truth > .section__inner > .truth__intro { color: rgba(255,255,255,0.78); }
.price-final__note.price-final__note { color: #4A4A4A; }


/* ============================================================
   PALETTE LOCK · black / white / gold only + legibility
   ============================================================ */

/* 1 · kill leftover browns / creams / warm greys */
.stop__time.stop__time,
.stop__sub.stop__sub { color: #8A4712; }
.stop--split .stop__copy b,
.stop--split .stop__copy b i,
.stop--split .stop__copy i b { color: #8A4712; }

.hero__sub--feature.hero__sub--feature { color: #FFFFFF; }
.price-anchor__label.price-anchor__label { color: rgba(255,255,255,0.9); }
.price-anchor__val.price-anchor__val { color: rgba(255,255,255,0.7); }
.price-anchor__row--note .price-anchor__label { color: rgba(255,255,255,0.82); }

/* 2 · price anchor "€250" readable on white */
.price-final__old.price-final__old { color: #5A5A5A; }

/* 3 · script only for 1–2 word accents; phrases use the display face */
.section__title em,
.truth__heading em,
.hero__title em,
.contact__title em,
.stop__title em,
.david__content h2 em {
  font-family: var(--serif);
  font-weight: 700;
  font-size: 1em;
  letter-spacing: -0.02em;
}
.nav__logo-show, .logo__show, .footer__logo span { font-family: var(--script); }

/* 4 · review cards must not inherit the white-card ink */
.rev.rev { color: rgba(255,255,255,0.88); }

/* palette lock · remaining cream / brown / warm-grey holdouts */
.contact__sub.contact__sub { color: rgba(255,255,255,0.85); }
.footer, .footer__inner, .footer__legal, .footer__links,
.footer__copyright, .footer a { color: rgba(255,255,255,0.7); }
.footer a:hover { color: #E09A5F; }
.stop__placeholder-label.stop__placeholder-label { color: #5A5A5A; }
.price-anchor__row--note .price-anchor__label.price-anchor__label { color: rgba(255,255,255,0.82); }
.stop--split .stop__copy b i,
.stop--split .stop__copy i b,
.stop--split .stop__copy b,
.stop--split .stop__copy i { color: #8A4712; }
.stop__copy b, .stop__copy b i { color: #8A4712; }

/* palette + contrast · final pass */
#price-amount, .price-final__now strong {
  background-image: linear-gradient(160deg, #0A0A0A 0%, #8A4712 88%);
}
.david__content h2 em, .david .section__title em { color: #E09A5F; }
.sticky-cta, .sticky-cta:hover { color: #0A0A0A; }
.trust-strip__icon { color: #8A4712; }

.carousel__dot { background-color: rgba(255,255,255,0.5); }
.carousel__dot.is-active { background-color: #D4874E; }

/* WhatsApp button into the black/white/orange scheme */
.btn--whatsapp.btn--whatsapp { background: transparent; color: #FFFFFF; border: 2px solid #D4874E; }
.btn--whatsapp.btn--whatsapp:hover { background: #D4874E; color: #0A0A0A; }


/* ============================================================
   MOBILE PASS · phones (≤ 480px)
   ============================================================ */
@media (max-width: 480px) {
  .section { padding: clamp(52px, 14vw, 76px) 18px; }

  /* headline scale: no oversized floors on a 375px screen */
  .hero { height: auto; min-height: 88svh; }
  .hero__title { font-size: clamp(30px, 9vw, 40px); line-height: 1.1; }
  .hero__sub, .hero__sub--feature { font-size: clamp(15px, 4.2vw, 18px); line-height: 1.5; }
  .tour__kicker { font-size: clamp(22px, 6.6vw, 30px); line-height: 1.25; }
  .section__title { font-size: clamp(26px, 7.4vw, 34px); line-height: 1.12; }
  .price-anchor__q--outside { font-size: clamp(21px, 6vw, 27px); }
  .contact__title { font-size: clamp(28px, 8vw, 38px); }

  /* itinerary: narrower thread gutter, full-width media */
  .stop { grid-template-columns: 34px 1fr; gap: 10px; }
  .itinerary::before { left: 10px; }
  .stop--split::after { left: 10px; margin-left: -5px; }
  .stop__marker { width: 30px; height: 30px; font-size: 13px; }
  .stop--split .stop__body { grid-template-columns: 1fr; gap: 14px; }
  .stop--split .stop__media,
  .stop--split .stop__cheese-video { max-width: 100%; aspect-ratio: 4/3; }
  .stop--split .stop__text { order: 0; }
  .stop__title { font-size: clamp(21px, 6vw, 26px); }
  .stop__copy { font-size: 16px; line-height: 1.6; }
  .stop__benefit { font-size: 12px; line-height: 1.4; }

  /* truth cards */
  .truth__grid--stack .truth__card { grid-template-columns: 1fr; gap: 14px; }
  .truth__grid--stack .truth__media { min-height: 200px; aspect-ratio: 4/3; }
  .truth__heading { font-size: clamp(21px, 6vw, 26px); }
  .truth__copy { font-size: 16px; }

  /* price block */
  .price-frame { padding: 22px 16px; border-radius: 22px; }
  .price-anchor__row { flex-direction: column; align-items: flex-start; gap: 4px; padding: 14px 14px; }
  .price-anchor__label { font-size: 17px; }
  .price-anchor__val, .price-anchor__val--na { font-size: 17px; text-align: left; }
  .price-flip__list { grid-template-columns: 1fr; }
  .price-flip__list li { font-size: 15px; }
  .price-final__now strong, #price-amount { font-size: clamp(42px, 13vw, 56px); }
  .price-final__old { font-size: 20px; }

  /* reviews */
  .rev-first, .rev-grid { grid-template-columns: 1fr; column-count: 1; }
  .rev { padding: 20px 16px; border-radius: 18px; }
  .rev-text { font-size: 16px; }
  .rev-carousel { aspect-ratio: 4/3; }

  /* david */
  .david { grid-template-columns: 1fr; }
  .david__media { aspect-ratio: 4/3; }

  /* faq */
  .faq__q { padding: 16px 16px; }
  .faq__q span { font-size: 17px; }
  .faq__a p { font-size: 15.5px; }

  /* trust strip + payment marks wrap instead of overflowing */
  .trust-strip__list, .trust-strip__pay { flex-wrap: wrap; justify-content: center; gap: 10px 14px; }

  /* buttons full width, comfortable hit target */
  .btn, .btn--lg, .price-final__cta { width: 100%; justify-content: center; min-height: 52px; font-size: 15px; }

  /* room for the sticky bar */
  body { padding-bottom: 84px; }
  .sticky-cta-bar.is-visible { flex-direction: row; align-items: center; gap: 10px; padding: 10px 12px; }
  .sticky-cta__msg { font-size: 13.5px; line-height: 1.3; }
  .sticky-cta-bar .sticky-cta { width: auto; min-height: 44px; padding: 10px 16px; font-size: 13.5px; white-space: nowrap; }
}

@media (max-width: 380px) {
  .sticky-cta__msg { font-size: 12.5px; }
  .sticky-cta-bar .sticky-cta { padding: 10px 12px; font-size: 12.5px; }
  .price-anchor__label, .price-anchor__val { font-size: 16px; }
}


/* ============================================================
   HOMEPAGE PARITY · palette, gradients, type scale
   ============================================================ */
:root{
  --ink:#141412;
  --ink-soft:#1D1C19;
  --cream:#FAF9F5;
  --cream-soft:#F1EFE9;
  --accent:#F2A63C;
  --accent-dark:#8A4712;
  --terracotta:#F2A63C;
  --terracotta-dk:#8A4712;
  --gold:#D4941F;
  --serif:'EB Garamond',Georgia,serif;
  --serif-feature:'EB Garamond',Georgia,serif;
  --sans:'DM Sans',system-ui,sans-serif;
  --sans-c:'DM Sans',system-ui,sans-serif;
}

/* --- type: homepage scale --- */
body{font-family:var(--sans);}
h1,h2,h3,.section__title,.hero__title,.contact__title,
.truth__heading,.stop__title,.rev-title,.faq__q span,
.price-final__now strong,.price-box--hp .price-box__amount{
  font-family:var(--serif);
  font-weight:600;
  letter-spacing:-0.01em;
}
.hero__title{font-size:clamp(38px,7vw,72px);line-height:1.02;letter-spacing:-0.02em;}
.section__title{font-size:clamp(30px,5vw,52px);line-height:1.05;}
.truth__heading,.stop__title{font-size:clamp(24px,3.2vw,34px);line-height:1.08;}
.contact__title{font-size:clamp(30px,5vw,52px);}
.hero__sub,.hero__sub--feature{font-family:var(--serif);font-style:italic;font-weight:600;
  font-size:clamp(19px,2.7vw,26px);line-height:1.36;}
.eyebrow,.tour__kicker,.stop__time{
  font-family:var(--sans);font-weight:600;font-size:clamp(13px,1.4vw,15px);
  letter-spacing:0.20em;text-transform:uppercase;}
.stop__copy,.truth__copy,.rev-text,.faq__a p,.david__content p{
  font-family:var(--sans);font-size:clamp(16px,2vw,18px);line-height:1.68;}
.btn,.price-final__cta,.sticky-cta{
  font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:0.05em;}

/* --- backgrounds: homepage gradient rhythm --- */
.hero{background-color:#141412;}
#tour.section.tour{background-image:linear-gradient(180deg,#FAF9F5 0%,#FAF9F5 58%,#141412 80%,#141412 100%);}
.section.price-anchor,.price-anchor{background-image:linear-gradient(180deg,#141412,#190D01 55%,#92581C 100%);}
.section.truth{background-image:linear-gradient(0deg,#141412,#92581C);}
.section.reviews{background-image:linear-gradient(180deg,#141412,#372514);}
.david{background-image:linear-gradient(180deg,#CCCCCC,#28211A);}
.section.faq{background-color:#141412;background-image:none;}
.contact,.section.contact{background-image:linear-gradient(180deg,#141412,#0F0F0E);}
.trust-strip{background:var(--cream);}

/* --- surfaces --- */
.stop--split,.truth__grid--stack .truth__card,.price-frame{
  background-image:none;background-color:var(--cream-soft);color:var(--ink);
  border:1px solid rgba(20,20,18,0.08);border-radius:26px;
  box-shadow:0 14px 36px rgba(20,20,18,0.14);}
.rev,.faq__item{
  background-image:none;background-color:var(--ink-soft);
  border:1px solid rgba(245,243,238,0.08);border-radius:22px;box-shadow:none;}
.price-frame .price-anchor__row{
  background-image:none;background-color:var(--ink-soft);
  border:1px solid rgba(245,243,238,0.08);border-radius:20px;}
.price-flip__list li{background-image:none;background-color:rgba(242,166,60,0.16);color:var(--ink);}
.stop__benefit.stop__benefit.stop__benefit{
  background:rgba(242,166,60,0.16);color:#7A4A0C;border:1px solid rgba(242,166,60,0.4);
  font-family:var(--sans);font-weight:600;font-size:clamp(13.5px,1.5vw,14px);
  letter-spacing:0.02em;text-transform:none;border-radius:999px;}

/* --- accents: orange, darkened on light surfaces --- */
.btn,.price-final__cta,.sticky-cta{background:var(--accent);color:#141412;}
.btn:hover,.price-final__cta:hover{background:var(--gold);color:#141412;}
.btn--outline-dark{background:transparent;color:var(--ink);border:2.5px solid var(--ink);}
.btn--outline-dark:hover{background:var(--ink);color:var(--cream);}
.stop--split .stop__title em,.truth__card .truth__heading em,
.stop--split .stop__copy b,.stop--split .stop__copy i,
.truth__card .truth__copy strong,.price-flip__list .chk,
.price-final__lead,.trust-strip__icon{color:var(--accent-dark);}
.stop__time.stop__time,.stop__sub.stop__sub{color:var(--accent-dark);}
.reviews .eyebrow,.faq .eyebrow,.rev-stars,.rev-plat--gyg,.rev-plat--ta,
.rev-stars--ta,.faq__icon,.david__content h2 em,.contact .eyebrow{color:var(--accent);}
.reviews .section__title em,.faq .section__title em,.contact__title em{color:var(--accent);}
.tour > .section__inner .tour__header .section__title{color:var(--ink);}
.tour > .section__inner .tour__header .section__title em,
.tour__kicker{color:var(--accent-dark);}
.truth > .section__inner > .section__title{color:#FFF;}
.truth > .section__inner > .section__title em{color:var(--accent);}

/* contrast pass after the homepage repaint */
.stop__benefit.stop__benefit.stop__benefit{color:#5A3408;}
.price-anchor__q.price-anchor__q--outside{color:#FFFFFF;}
.price-final__lead.price-final__lead{color:#5A3408;}

/* fade completes above the price question so white copy sits on solid ink */
#tour.section.tour{background-image:linear-gradient(180deg,#FAF9F5 0%,#FAF9F5 30%,#141412 52%,#141412 100%);}
.sticky-cta-bar.is-visible{background:#141412;border-top:1px solid rgba(242,166,60,0.35);}
.sticky-cta__msg{color:#FAF9F5;}

/* tour section: ink shell (its header + price question are light copy), warm fade at the end */
#tour.section.tour{background-image:linear-gradient(180deg,#141412 0%,#141412 72%,#372514 100%);}
.sticky-cta-bar{background:#141412;border-top:1px solid rgba(242,166,60,0.35);}

/* accents on the ink shell must be the light orange, not the dark one */
.tour__kicker.tour__kicker,
.tour > .section__inner .tour__header .section__title em{color:var(--accent);}
.price-final__lead.price-final__lead{color:#7A4A0C;}

/* every itinerary block: white card, text left, photo right (no alternation) */
.stop--split.stop--split{background-color:#FFFFFF;background-image:none;}
.stop--split .stop__body,
.stop--split:nth-of-type(even) .stop__body{grid-template-columns:1fr minmax(0,46%);}
.stop--split:nth-of-type(even) .stop__text{order:0;}
.stop--split .stop__media,
.stop--split .stop__cheese-video{order:2;}
@media (max-width:860px){
  .stop--split .stop__body,
  .stop--split:nth-of-type(even) .stop__body{grid-template-columns:1fr;}
  .stop--split .stop__media,
  .stop--split .stop__cheese-video{order:0;}
}


/* ============================================================
   CTA DEPTH · same treatment as the homepage "Ask More" button
   ============================================================ */
.btn, .price-final__cta, .sticky-cta, .btn--imessage, .btn--lg {
  background-image: linear-gradient(180deg, #E29A63 0%, #D4874E 52%, #B96C34 100%);
  background-color: #D4874E;
  color: #141412;
  border: 1px solid rgba(120, 62, 20, 0.35);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.45) inset,
    0 -6px 12px -6px rgba(74, 38, 10, 0.45) inset,
    0 10px 22px rgba(150, 80, 30, 0.32),
    0 2px 4px rgba(20, 20, 18, 0.18);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.35);
  transition: transform .18s ease, box-shadow .18s ease;
}
.btn:hover, .price-final__cta:hover, .sticky-cta:hover, .btn--imessage:hover, .btn--lg:hover {
  background-image: linear-gradient(180deg, #E8A570 0%, #D98F58 52%, #C0733A 100%);
  color: #141412;
  transform: translateY(-3px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.5) inset,
    0 -6px 12px -6px rgba(74, 38, 10, 0.4) inset,
    0 18px 34px rgba(150, 80, 30, 0.42),
    0 3px 6px rgba(20, 20, 18, 0.2);
}
.btn:active, .price-final__cta:active, .sticky-cta:active, .btn--imessage:active, .btn--lg:active {
  transform: translateY(1px);
  box-shadow:
    0 -4px 10px -6px rgba(74, 38, 10, 0.5) inset,
    0 4px 10px rgba(150, 80, 30, 0.28);
}
/* outline/ghost buttons keep their flat treatment */
.btn--outline-dark, .btn--whatsapp {
  background-image: none;
  background-color: transparent;
  box-shadow: none;
  text-shadow: none;
}
.btn--outline-dark:hover { background-image: none; background-color: var(--ink); color: var(--cream); }
.btn--whatsapp:hover { background-image: none; background-color: #D4874E; color: #0A0A0A; }


/* --- Desktop: anchoring chips two per row, label above / struck price below --- */
@media (min-width: 621px) {
  .price-frame .price-anchor__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }
  .price-frame .price-anchor__row {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 10px;
    padding: 22px 24px;
  }
  .price-frame .price-anchor__row--note { grid-column: 1 / -1; }
  .price-frame .price-anchor__label { width: 100%; }
  .price-frame .price-anchor__val,
  .price-frame .price-anchor__val--na {
    width: auto !important;
    height: auto !important;
    max-width: none;
    text-align: left !important;
    margin-top: auto;
  }
}


/* --- "Our way" line: highlighted solution --- */
.truth__grid--stack .truth__copy--ourway,
.truth__copy--ourway {
  background: rgba(212, 135, 78, 0.14);
  border-left: 3px solid #D4874E;
  border-radius: 0 14px 14px 0;
  padding: 14px 18px;
  margin-top: 14px;
}
.truth__grid--stack .truth__copy--ourway,
.truth__grid--stack .truth__copy--ourway:last-child { padding: 14px 18px; }
.truth__copy--ourway strong {
  display: block;
  font-family: var(--sans);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: var(--accent-dark);
  margin-bottom: 4px;
}
.truth__copy--ourway em {
  font-style: italic;
  font-weight: 600;
  color: var(--accent-dark);
}
