:root {
  --bg: #f4efe8;
  --bg-2: #ebe1d4;
  --ink: #211a14;
  --muted: #766a5e;
  --line: rgba(54, 42, 32, .14);
  --cream: #fffaf2;
  --glass: rgba(255, 250, 242, .68);
  --glass-dark: rgba(34, 25, 18, .48);
  --brown: #815f46;
  --brown-dark: #4b3425;
  --gold: #c49a65;
  --shadow: 0 28px 80px rgba(45, 31, 20, .18);
  --radius-xl: 32px;
  --radius-lg: 22px;
  --radius-md: 16px;
  --nav-h: 72px;
  --safe: clamp(20px, 5vw, 72px);
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  font-family: var(--sans);
  background:
    radial-gradient(circle at 16% 8%, rgba(196,154,101,.18), transparent 30rem),
    radial-gradient(circle at 86% 20%, rgba(110,76,52,.12), transparent 24rem),
    var(--bg);
  overflow-x: hidden;
}
body.is-loading * { transition: none !important; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select { font: inherit; }
button { cursor: pointer; color: inherit; }
::selection { background: rgba(196, 154, 101, .35); }

.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 1000;
  transform: translateY(-200%);
  background: var(--cream);
  padding: 12px 16px;
  border-radius: 999px;
  box-shadow: var(--shadow);
}
.skip-link:focus { transform: translateY(0); }

.scroll-progress {
  position: fixed;
  inset: 0 0 auto 0;
  height: 3px;
  z-index: 1000;
  background: rgba(255,255,255,.12);
}
.scroll-progress span {
  display: block;
  height: 100%;
  width: 100%;
  background: linear-gradient(90deg, var(--gold), #fff1d0, var(--brown));
  transform: scaleX(0);
  transform-origin: left;
  will-change: transform;
}

.cursor-orb {
  position: fixed;
  width: 240px;
  height: 240px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  opacity: .18;
  background: radial-gradient(circle, rgba(196,154,101,.65), transparent 68%);
  filter: blur(24px);
  transform: translate(-50%, -50%);
  transition: opacity .3s ease;
}

.site-header {
  position: fixed;
  top: 12px;
  left: 0;
  right: 0;
  z-index: 900;
  padding: 0 var(--safe);
  transition: transform .35s ease, top .35s ease;
}
.nav-shell {
  height: var(--nav-h);
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 12px 0 20px;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 999px;
  display: flex;
  align-items: center;
  gap: 18px;
  background: rgba(36, 28, 22, .44);
  color: rgba(255,250,242,.9);
  backdrop-filter: blur(20px) saturate(140%);
  box-shadow: 0 18px 60px rgba(0,0,0,.16);
}
body.has-scrolled .nav-shell {
  background: rgba(247, 241, 232, .82);
  color: var(--ink);
  border-color: rgba(91, 67, 48, .16);
}
.brand {
  width: 120px;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
}
.brand img {
  max-height: 55px;
  object-fit: contain;
  filter: drop-shadow(0 3px 10px rgba(0,0,0,.2));
}
body.has-scrolled .brand img { filter: none; }
.nav-links {
  flex: 1;
  display: flex;
  justify-content: center;
  gap: clamp(12px, 2vw, 30px);
  font-size: 13px;
  font-weight: 650;
  letter-spacing: -.01em;
}
.nav-links a {
  opacity: .82;
  position: relative;
  padding: 8px 0;
}
.nav-links a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .35s ease;
}
.nav-links a:hover::after { transform: scaleX(1); }
.nav-cta, .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  min-height: 46px;
  padding: 0 22px;
  font-weight: 750;
  letter-spacing: -.02em;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
  white-space: nowrap;
}
.nav-cta {
  background: rgba(255,250,242,.92);
  color: var(--brown-dark);
  box-shadow: 0 10px 26px rgba(0,0,0,.16);
}
body.has-scrolled .nav-cta { background: var(--brown-dark); color: var(--cream); }
.nav-cta:hover, .btn:hover { transform: translateY(-2px); }
.btn.primary { background: var(--brown-dark); color: var(--cream); box-shadow: 0 16px 36px rgba(49, 31, 20, .24); }
.btn.glass { background: rgba(255, 250, 242, .2); color: var(--cream); border: 1px solid rgba(255,255,255,.34); backdrop-filter: blur(12px); }
.section .btn.glass, .calculator .btn.glass { color: var(--ink); border-color: var(--line); background: rgba(255,255,255,.48); }
.nav-toggle { display: none; background: transparent; border: 0; width: 44px; height: 44px; }
.nav-toggle span { display: block; width: 20px; height: 2px; margin: 5px auto; background: currentColor; transition: transform .3s ease, opacity .3s ease; }

.immersive-panel, .hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  color: var(--cream);
  isolation: isolate;
}
.hero-media {
  position: absolute;
  inset: 0;
  z-index: -3;
  transform: translate3d(0, calc(var(--hero-y, 0) * 1px), 0) scale(calc(1.03 + var(--scroll-progress, 0) * .05));
  transform-origin: center;
}
.hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.98) contrast(1.03);
}
.hero-shade {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(circle at 20% 30%, rgba(196,154,101,.18), transparent 30rem),
    linear-gradient(90deg, rgba(20,14,10,.7), rgba(20,14,10,.28) 48%, rgba(20,14,10,.56)),
    linear-gradient(180deg, rgba(20,14,10,.22), rgba(20,14,10,.72));
}
.hero-content {
  min-height: 100svh;
  padding: calc(var(--nav-h) + 54px) var(--safe) 68px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 1500px;
  margin: 0 auto;
}
.eyebrow, .overline {
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: 12px;
  font-weight: 800;
}
.eyebrow { color: rgba(255,250,242,.8); margin: 0 0 24px; }
.hero-title {
  font-family: var(--serif);
  font-size: clamp(66px, 17vw, 250px);
  line-height: .72;
  letter-spacing: -.075em;
  font-weight: 500;
  margin: 0;
  text-wrap: balance;
}
.hero-title span { display: block; }
.hero-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 430px);
  gap: clamp(28px, 8vw, 130px);
  align-items: end;
  margin-top: clamp(30px, 7vh, 80px);
}
.hero-copy {
  max-width: 710px;
}
.hero-copy h2 {
  font-family: var(--serif);
  font-size: clamp(32px, 5vw, 64px);
  line-height: .95;
  margin: 0 0 18px;
  font-weight: 600;
  letter-spacing: -.035em;
}
.hero-copy p {
  color: rgba(255,250,242,.83);
  line-height: 1.7;
  font-size: clamp(16px, 1.7vw, 19px);
  max-width: 650px;
  margin: 0;
}
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.glass-card {
  border: 1px solid rgba(255,255,255,.25);
  border-radius: var(--radius-xl);
  background: var(--glass-dark);
  backdrop-filter: blur(24px) saturate(130%);
  box-shadow: var(--shadow);
}
.hero-card {
  padding: 14px;
  display: grid;
  grid-template-columns: 135px 1fr;
  gap: 16px;
  align-items: center;
}
.hero-card img { height: 115px; width: 135px; object-fit: cover; border-radius: 22px; }
.hero-card span { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .13em; color: rgba(255,250,242,.7); margin-bottom: 8px; }
.hero-card strong { display: block; font-family: var(--serif); font-size: 27px; line-height: 1; }
.hero-card small { display: block; margin-top: 8px; color: rgba(255,250,242,.76); }
.scroll-cue {
  position: absolute;
  left: var(--safe);
  bottom: 28px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: rgba(255,250,242,.8);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .03em;
}
.scroll-cue span {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.35);
  position: relative;
}
.scroll-cue span::after {
  content: '';
  position: absolute;
  left: 50%; top: 8px;
  width: 1px; height: 13px;
  background: currentColor;
  animation: cue 1.6s ease-in-out infinite;
}
@keyframes cue { 0%,100%{ transform: translate(-50%, 0); opacity:.35; } 50%{ transform: translate(-50%, 6px); opacity:1; } }

.local-nav {
  position: sticky;
  top: 0;
  z-index: 700;
  min-height: 54px;
  padding: 10px var(--safe);
  display: flex;
  justify-content: center;
  gap: clamp(14px, 4vw, 46px);
  background: rgba(244,239,232,.76);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px) saturate(145%);
  font-size: 13px;
  font-weight: 760;
  color: rgba(33,26,20,.75);
}
.local-nav a:hover { color: var(--brown-dark); }

.section {
  padding: clamp(78px, 12vw, 150px) var(--safe);
  position: relative;
}
.section-title-row {
  max-width: 1320px;
  margin: 0 auto clamp(32px, 5vw, 64px);
  display: grid;
  grid-template-columns: minmax(0, 760px) minmax(280px, 430px);
  gap: clamp(22px, 7vw, 120px);
  align-items: end;
}
.overline { color: var(--brown); display: block; margin-bottom: 12px; }
.section-title-row h2,
.gallery-heading h2,
.contact-content h2 {
  font-family: var(--serif);
  font-size: clamp(40px, 7vw, 88px);
  line-height: .92;
  letter-spacing: -.045em;
  margin: 0;
  font-weight: 600;
}
.section-title-row p, .gallery-heading p {
  color: var(--muted);
  line-height: 1.75;
  margin: 0;
  font-size: 16px;
}

.highlights { background: linear-gradient(180deg, var(--bg), #f8f3eb 55%, var(--bg)); }
.highlight-stage {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(320px, 420px) 1fr;
  gap: 22px;
  background: #17110d;
  color: var(--cream);
  border-radius: clamp(26px, 4vw, 46px);
  padding: clamp(18px, 4vw, 42px);
  min-height: 560px;
  box-shadow: var(--shadow);
  overflow: hidden;
  position: relative;
}
.highlight-stage::before {
  content: '';
  position: absolute;
  inset: -20% -10% auto auto;
  width: 60%; height: 70%;
  background: radial-gradient(circle, rgba(196,154,101,.22), transparent 60%);
  pointer-events: none;
}
.stage-copy {
  position: relative;
  z-index: 2;
  align-self: end;
  padding: clamp(12px, 2vw, 22px);
}
.stage-copy span:first-child {
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: 12px;
  font-weight: 850;
}
.stage-copy h3 {
  font-family: var(--serif);
  font-size: clamp(40px, 5vw, 76px);
  line-height: .95;
  letter-spacing: -.04em;
  margin: 14px 0 18px;
}
.stage-copy p { color: rgba(255,250,242,.76); line-height: 1.75; max-width: 470px; }
.inline-link { display: inline-flex; align-items: center; gap: 8px; color: var(--cream); font-weight: 800; margin-top: 14px; }
.inline-link span { transition: transform .25s ease; }
.inline-link:hover span { transform: translateX(6px); }
.stage-image {
  border: 0;
  padding: 0;
  border-radius: 32px;
  overflow: hidden;
  background: transparent;
  height: 100%;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.16);
  position: relative;
}
.stage-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.36));
}
.stage-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease, opacity .35s ease; }
.stage-image:hover img { transform: scale(1.04); }
.stage-image.is-changing img { opacity: 0; transform: scale(1.02); }
.highlight-track {
  max-width: 1320px;
  margin: 20px auto 0;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(220px, 1fr);
  overflow-x: auto;
  gap: 14px;
  padding: 6px 2px 22px;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
}
.highlight-card {
  scroll-snap-align: start;
  height: 170px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.54);
  border-radius: 24px;
  overflow: hidden;
  padding: 8px;
  text-align: left;
  position: relative;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.highlight-card:hover, .highlight-card.is-active { transform: translateY(-4px); border-color: rgba(129,95,70,.45); box-shadow: 0 18px 42px rgba(65,45,30,.16); }
.highlight-card img { width: 100%; height: 100%; object-fit: cover; border-radius: 18px; }
.highlight-card span {
  position: absolute;
  left: 18px; right: 18px; bottom: 18px;
  color: var(--cream);
  font-weight: 850;
  text-shadow: 0 2px 16px rgba(0,0,0,.65);
}

.chapter-section {
  position: relative;
  display: grid;
  grid-template-columns: 56vw 1fr;
  gap: 0;
  background: #120d0a;
  color: var(--cream);
}
.chapter-sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
}
.chapter-visual { position: relative; height: 100%; }
.chapter-visual::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(18,13,10,.2), rgba(18,13,10,.72));
}
.chapter-visual img {
  width: 100%; height: 100%; object-fit: cover;
  transition: opacity .45s ease, transform .8s ease;
}
.chapter-visual.is-changing img { opacity: .35; transform: scale(1.02); }
.chapter-caption {
  position: absolute;
  left: var(--safe);
  bottom: 54px;
  z-index: 3;
  width: min(430px, calc(100% - var(--safe) * 2));
  padding: 24px;
}
.chapter-caption span { color: var(--gold); font-weight: 900; letter-spacing: .16em; }
.chapter-caption h3 { font-family: var(--serif); font-size: 42px; line-height: .95; margin: 10px 0; }
.chapter-caption p { color: rgba(255,250,242,.75); line-height: 1.65; margin: 0; }
.chapter-list { padding: 30vh var(--safe) 30vh clamp(28px, 5vw, 84px); }
.chapter-step {
  min-height: 70vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  opacity: .36;
  transform: translateX(14px);
  transition: opacity .4s ease, transform .4s ease;
}
.chapter-step.is-active { opacity: 1; transform: translateX(0); }
.chapter-step span { color: var(--gold); font-weight: 900; letter-spacing: .18em; margin-bottom: 18px; }
.chapter-step h2 {
  font-family: var(--serif);
  font-size: clamp(45px, 7vw, 84px);
  line-height: .9;
  letter-spacing: -.045em;
  margin: 0 0 18px;
}
.chapter-step p { color: rgba(255,250,242,.72); font-size: 17px; line-height: 1.8; max-width: 520px; margin: 0; }

.stats-section { padding-top: 80px; padding-bottom: 80px; background: var(--cream); }
.stats-grid {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.stats-grid article {
  border: 1px solid var(--line);
  border-radius: 28px;
  background: var(--bg);
  padding: clamp(20px, 3vw, 34px);
  min-height: 170px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.stats-grid strong { font-family: var(--serif); font-size: clamp(58px, 8vw, 108px); line-height: .8; color: var(--brown-dark); font-weight: 500; }
.stats-grid span { margin-top: 14px; color: var(--muted); font-weight: 700; }

.amenities { background: linear-gradient(180deg, var(--cream), var(--bg)); }
.amenity-grid {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.amenity-card {
  border-radius: 30px;
  background: rgba(255,255,255,.58);
  border: 1px solid var(--line);
  overflow: hidden;
  min-height: 430px;
  display: flex;
  flex-direction: column;
  box-shadow: 0 14px 44px rgba(65,45,30,.08);
  transition: transform .3s ease, box-shadow .3s ease;
}
.amenity-card:hover { transform: translateY(-7px); box-shadow: 0 28px 80px rgba(65,45,30,.16); }
.amenity-card img { width: 100%; height: 250px; object-fit: cover; }
.amenity-card button {
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 22px 10px;
  text-align: left;
  font-family: var(--serif);
  font-size: 28px;
  line-height: 1;
  font-weight: 700;
}
.amenity-card b {
  width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center;
  background: var(--brown-dark); color: var(--cream); font-family: var(--sans); font-size: 20px;
  transition: transform .25s ease;
}
.amenity-card.is-open b { transform: rotate(45deg); }
.amenity-card p {
  color: var(--muted);
  line-height: 1.7;
  margin: 0;
  padding: 0 22px 24px;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height .35s ease, opacity .35s ease, padding .35s ease;
}
.amenity-card.is-open p { max-height: 200px; opacity: 1; padding-top: 12px; }
.pill-row {
  max-width: 1320px;
  margin: 22px auto 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.pill-row span {
  padding: 13px 17px;
  border-radius: 999px;
  background: rgba(255,255,255,.6);
  border: 1px solid var(--line);
  color: var(--brown-dark);
  font-weight: 740;
}

.modalities { background: var(--bg); }
.pricing-layout {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(330px, 470px);
  gap: 22px;
  align-items: start;
}
.pricing-cards { display: grid; gap: 14px; }
.price-card {
  background: rgba(255,255,255,.58);
  border: 1px solid var(--line);
  border-radius: 28px;
  overflow: hidden;
}
.price-card > button {
  width: 100%;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 26px;
  text-align: left;
}
.price-card > button span { font-family: var(--serif); font-size: clamp(34px, 5vw, 56px); line-height: .9; font-weight: 650; }
.price-card > button strong { color: var(--brown); font-size: 13px; text-transform: uppercase; letter-spacing: .14em; }
.price-detail {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height .45s ease, opacity .3s ease;
}
.price-card.is-open .price-detail { max-height: 650px; opacity: 1; }
.price-detail { padding: 0 26px; }
.price-card.is-open .price-detail { padding-bottom: 28px; }
.price { font-family: var(--serif); font-size: clamp(42px, 7vw, 72px); line-height: .9; margin: 2px 0 8px; color: var(--brown-dark); }
.price small { display: block; font-family: var(--sans); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-top: 12px; }
.price.secondary { font-size: clamp(34px, 5vw, 56px); color: var(--brown); }
ul { margin: 20px 0 0; padding-left: 20px; color: var(--muted); line-height: 1.9; }
.calculator {
  position: sticky;
  top: 92px;
  background: #211812;
  color: var(--cream);
  padding: 28px;
}
.calculator h3 { font-family: var(--serif); font-size: 42px; line-height: .95; margin: 8px 0 22px; }
.calculator form { display: grid; gap: 14px; }
.calculator label { display: grid; gap: 7px; color: rgba(255,250,242,.76); font-size: 13px; font-weight: 740; }
.calculator input, .calculator select {
  width: 100%;
  min-height: 48px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  color: var(--cream);
  padding: 0 14px;
}
.calculator select option { color: #111; }
.calculator output {
  display: block;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 18px;
  padding: 16px;
  line-height: 1.6;
  color: rgba(255,250,242,.86);
}
.calculator .btn { width: 100%; }

.gallery-section {
  padding: clamp(80px, 12vw, 150px) var(--safe);
  background: #14100d;
  color: var(--cream);
}
.gallery-heading {
  max-width: 1320px;
  margin: 0 auto 44px;
  display: grid;
  grid-template-columns: 1fr minmax(280px, 410px);
  gap: 42px;
  align-items: end;
}
.gallery-heading p { color: rgba(255,250,242,.7); }
.gallery-grid {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 250px;
  gap: 14px;
}
.gallery-item {
  border: 0;
  padding: 0;
  border-radius: 26px;
  overflow: hidden;
  position: relative;
  background: #000;
  color: var(--cream);
  box-shadow: 0 20px 60px rgba(0,0,0,.22);
}
.gallery-item.large { grid-column: span 2; grid-row: span 2; }
.gallery-item.wide { grid-column: span 2; }
.gallery-item.tall { grid-row: span 2; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease, filter .55s ease; }
.gallery-item::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(0,0,0,.58)); opacity: .9; }
.gallery-item span { position: absolute; left: 18px; bottom: 18px; z-index: 2; font-weight: 850; }
.gallery-item:hover img { transform: scale(1.06); filter: saturate(1.08); }

.calendar-section { background: linear-gradient(180deg, var(--bg), var(--cream)); }
.calendar-layout {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
  gap: 22px;
  align-items: stretch;
}
.calendar-card {
  background: rgba(255,255,255,.68);
  border: 1px solid var(--line);
  border-radius: 32px;
  padding: clamp(18px, 3vw, 32px);
  box-shadow: 0 18px 60px rgba(65,45,30,.08);
}
.calendar-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 22px;
}
.calendar-top h3 { font-family: var(--serif); font-size: clamp(34px, 5vw, 58px); margin: 0; line-height: .95; }
.calendar-top button {
  width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line); background: var(--cream);
}
.weekday-row, .calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; }
.weekday-row { color: var(--muted); font-size: 12px; font-weight: 850; text-align: center; margin-bottom: 8px; text-transform: uppercase; }
.day {
  border: 1px solid var(--line);
  background: rgba(255,255,255,.55);
  min-height: 78px;
  border-radius: 18px;
  padding: 10px;
  text-align: left;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.day:hover { transform: translateY(-2px); border-color: rgba(129,95,70,.4); }
.day.muted { opacity: .28; pointer-events: none; }
.day.today { box-shadow: inset 0 0 0 2px rgba(196,154,101,.38); }
.day.is-selected { background: var(--brown-dark); color: var(--cream); }
.day.is-busy { background: rgba(53,39,30,.18); color: rgba(33,26,20,.48); text-decoration: line-through; }
.day small { font-size: 11px; font-weight: 800; color: inherit; opacity: .62; }
.calendar-legend { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 18px; color: var(--muted); font-size: 13px; font-weight: 740; }
.calendar-legend span { display: inline-flex; align-items: center; gap: 7px; }
.calendar-legend i { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }
.calendar-legend i.available { background: #fff; border: 1px solid var(--line); }
.calendar-legend i.selected { background: var(--brown-dark); }
.calendar-legend i.busy { background: rgba(53,39,30,.22); }
.date-panel {
  background: #211812;
  color: var(--cream);
  padding: 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.date-panel img { width: 120px; height: auto; margin-bottom: 24px; filter: drop-shadow(0 10px 18px rgba(0,0,0,.2)); }
.date-panel h3 { font-family: var(--serif); font-size: 46px; line-height: .92; margin: 10px 0 12px; }
.date-panel p { color: rgba(255,250,242,.72); line-height: 1.7; }

.faq-section { background: var(--cream); padding-top: 70px; }
.faq-list { max-width: 980px; margin: 0 auto; display: grid; gap: 12px; }
details {
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255,255,255,.65);
  padding: 0 22px;
}
summary {
  padding: 20px 0;
  cursor: pointer;
  font-weight: 850;
  list-style: none;
}
summary::-webkit-details-marker { display: none; }
details p { color: var(--muted); line-height: 1.7; margin: 0 0 22px; }

.contact-section {
  position: relative;
  min-height: 82svh;
  color: var(--cream);
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 100px var(--safe);
  isolation: isolate;
}
.contact-bg { position: absolute; inset: 0; z-index: -2; }
.contact-bg img { width: 100%; height: 100%; object-fit: cover; filter: saturate(1.02); }
.contact-section::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(18,13,10,.55), rgba(18,13,10,.78)); }
.contact-content { max-width: 900px; text-align: center; }
.contact-logo { width: min(350px, 70vw); margin: 0 auto 28px; filter: drop-shadow(0 20px 32px rgba(0,0,0,.35)); }
.contact-content p { color: rgba(255,250,242,.78); font-size: 18px; line-height: 1.7; }
.contact-actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin-top: 28px; }

.mobile-reserve {
  display: none;
  position: fixed;
  z-index: 880;
  left: 14px;
  right: 14px;
  bottom: 14px;
  min-height: 54px;
  border-radius: 999px;
  background: var(--brown-dark);
  color: var(--cream);
  align-items: center;
  justify-content: center;
  font-weight: 850;
  box-shadow: 0 18px 46px rgba(0,0,0,.25);
}

.lightbox {
  width: min(1100px, 92vw);
  padding: 0;
  border: 0;
  border-radius: 30px;
  overflow: hidden;
  background: transparent;
  box-shadow: 0 30px 90px rgba(0,0,0,.45);
}
.lightbox::backdrop { background: rgba(14,10,7,.72); backdrop-filter: blur(12px); }
.lightbox img { width: 100%; max-height: 86vh; object-fit: contain; background: #120d0a; }
.lightbox-close {
  position: absolute;
  top: 12px; right: 12px;
  z-index: 3;
  width: 44px; height: 44px;
  border-radius: 50%; border: 1px solid rgba(255,255,255,.25);
  background: rgba(18,13,10,.55); color: var(--cream); font-size: 28px;
}

.reveal {
  opacity: 0;
  transform: translateY(28px) scale(.985);
  transition: opacity .8s ease, transform .8s cubic-bezier(.19,1,.22,1);
}
.reveal.is-visible { opacity: 1; transform: translateY(0) scale(1); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .hero-media { transform: none !important; }
}

@media (max-width: 1060px) {
  :root { --safe: clamp(18px, 4vw, 36px); }
  .site-header { top: 8px; }
  .nav-shell { height: 64px; }
  .nav-toggle { display: block; margin-left: auto; }
  .nav-links {
    position: fixed;
    top: 82px;
    left: var(--safe);
    right: var(--safe);
    display: grid;
    gap: 0;
    justify-content: stretch;
    padding: 18px;
    border-radius: 26px;
    background: rgba(247,241,232,.94);
    color: var(--ink);
    box-shadow: var(--shadow);
    border: 1px solid var(--line);
    opacity: 0;
    transform: translateY(-16px);
    pointer-events: none;
    transition: opacity .25s ease, transform .25s ease;
  }
  .nav-links a { padding: 14px; border-bottom: 1px solid var(--line); }
  .nav-links a:last-child { border-bottom: 0; }
  .nav-links.is-open { opacity: 1; transform: translateY(0); pointer-events: auto; }
  .nav-cta { display: none; }
  .hero-bottom, .section-title-row, .highlight-stage, .pricing-layout, .calendar-layout, .gallery-heading { grid-template-columns: 1fr; }
  .hero-card { max-width: 440px; }
  .chapter-section { grid-template-columns: 1fr; }
  .chapter-sticky { position: sticky; top: 0; height: 62svh; }
  .chapter-list { padding: 10vh var(--safe) 20vh; }
  .chapter-step { min-height: 54vh; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .amenity-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 220px; }
  .calculator { position: relative; top: auto; }
}

@media (max-width: 700px) {
  body { padding-bottom: 78px; }
  .cursor-orb { display: none; }
  .brand { width: 104px; }
  .hero-content { padding-top: 105px; justify-content: flex-end; }
  .hero-title { font-size: clamp(58px, 19vw, 128px); }
  .hero-bottom { gap: 22px; }
  .hero-card { grid-template-columns: 96px 1fr; border-radius: 26px; }
  .hero-card img { width: 96px; height: 90px; border-radius: 16px; }
  .btn { width: 100%; }
  .local-nav { justify-content: flex-start; overflow-x: auto; }
  .highlight-stage { min-height: auto; padding: 12px; }
  .stage-image { min-height: 300px; order: -1; }
  .highlight-track { grid-auto-columns: 72%; }
  .chapter-caption { left: 18px; bottom: 18px; width: calc(100% - 36px); padding: 18px; }
  .chapter-caption h3 { font-size: 31px; }
  .chapter-step { min-height: 62vh; }
  .stats-grid, .amenity-grid { grid-template-columns: 1fr; }
  .amenity-card { min-height: auto; }
  .amenity-card p { max-height: none; opacity: 1; }
  .amenity-card button b { display: none; }
  .price-card > button { align-items: flex-start; gap: 10px; flex-direction: column; }
  .gallery-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 20px; }
  .gallery-item, .gallery-item.large, .gallery-item.wide, .gallery-item.tall { min-width: 82vw; height: 470px; grid-column: auto; grid-row: auto; scroll-snap-align: center; }
  .weekday-row, .calendar-grid { gap: 5px; }
  .day { min-height: 54px; border-radius: 13px; padding: 7px; font-size: 13px; }
  .day small { display: none; }
  .mobile-reserve { display: flex; }
}

/* Ajustes v2: responsivo, fluidez y estructura unificada */
html {
  scroll-padding-top: calc(var(--nav-h) + 72px);
  overflow-anchor: none;
}
section,
.gallery-section,
.contact-section,
.chapter-section {
  scroll-margin-top: calc(var(--nav-h) + 72px);
}
.section,
.gallery-section {
  padding-block: clamp(76px, 10vw, 130px);
}
.section-title-row,
.gallery-heading {
  gap: clamp(24px, 5vw, 86px);
  margin-bottom: clamp(30px, 4.6vw, 56px);
}
.section-title-row h2,
.gallery-heading h2,
.contact-content h2 {
  max-width: 860px;
  text-wrap: balance;
}
.section-title-row p,
.gallery-heading p,
.stage-copy p,
.date-panel p,
details p,
.price-detail li,
.calculator output {
  line-height: 1.72;
}
.hero-title {
  font-size: clamp(60px, 14.5vw, 218px);
  letter-spacing: -.065em;
  max-width: min(1240px, 100%);
}
.hero-copy h2,
.stage-copy h3,
.calendar-top h3,
.date-panel h3,
.calculator h3 {
  text-wrap: balance;
}
.highlight-track {
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;
}
.chapter-section,
.highlight-stage,
.pricing-layout,
.calendar-layout,
.gallery-grid {
  overflow-anchor: none;
}
.price-detail strong {
  color: var(--brown-dark);
}
.calculator {
  border-radius: var(--radius-xl);
}
.mode-selector {
  border: 0;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 9px;
}
.mode-selector legend {
  padding: 0;
  color: rgba(255,250,242,.76);
  font-size: 13px;
  font-weight: 740;
}
.mode-options {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.mode-option {
  position: relative;
  display: block;
}
.mode-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.mode-option span {
  min-height: 46px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  color: rgba(255,250,242,.82);
  display: grid;
  place-items: center;
  padding: 0 10px;
  font-size: 13px;
  font-weight: 800;
  transition: background .22s ease, color .22s ease, border-color .22s ease, transform .22s ease;
}
.mode-option input:checked + span {
  background: var(--cream);
  color: var(--brown-dark);
  border-color: rgba(255,250,242,.6);
  box-shadow: 0 10px 26px rgba(0,0,0,.16);
}
.mode-option span:hover {
  transform: translateY(-1px);
}
.extra-summary {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 16px;
  padding: 12px 14px;
  color: rgba(255,250,242,.82);
  font-size: 13px;
}
.extra-summary strong {
  color: var(--cream);
  font-size: 14px;
}

@media (max-width: 1060px) {
  html { scroll-padding-top: 96px; }
  section,
  .gallery-section,
  .contact-section,
  .chapter-section { scroll-margin-top: 96px; }
  .section-title-row,
  .gallery-heading { align-items: start; }
  .calculator { max-width: 620px; width: 100%; }
}

@media (max-width: 700px) {
  html { scroll-padding-top: 86px; }
  section,
  .gallery-section,
  .contact-section,
  .chapter-section { scroll-margin-top: 86px; }
  .hero-content {
    padding-top: 96px;
    padding-bottom: 88px;
    justify-content: flex-end;
  }
  .eyebrow {
    margin-bottom: 14px;
    font-size: 10.5px;
    letter-spacing: .13em;
  }
  .hero-title {
    font-size: clamp(42px, 13.2vw, 66px);
    line-height: .84;
    letter-spacing: -.045em;
    max-width: 100%;
  }
  .hero-bottom {
    margin-top: 24px;
  }
  .hero-copy h2 {
    font-size: clamp(28px, 8.8vw, 40px);
    line-height: .98;
    margin-bottom: 12px;
  }
  .hero-copy p {
    font-size: 14.5px;
    line-height: 1.62;
  }
  .hero-actions {
    margin-top: 18px;
  }
  .hero-card {
    display: none;
  }
  .section,
  .gallery-section {
    padding-block: 68px;
  }
  .section-title-row,
  .gallery-heading {
    margin-bottom: 28px;
  }
  .section-title-row h2,
  .gallery-heading h2,
  .contact-content h2 {
    font-size: clamp(34px, 10.5vw, 48px);
    line-height: .98;
    letter-spacing: -.035em;
  }
  .section-title-row p,
  .gallery-heading p {
    font-size: 14.5px;
    line-height: 1.65;
  }
  .price-card > button span {
    font-size: clamp(32px, 11vw, 44px);
    line-height: .98;
  }
  .price-card > button {
    padding: 22px;
  }
  .price-detail { padding-inline: 22px; }
  .calculator {
    padding: 22px;
    border-radius: 26px;
  }
  .calculator h3 {
    font-size: clamp(32px, 9.5vw, 40px);
    margin-bottom: 18px;
  }
  .mode-options {
    grid-template-columns: 1fr;
  }
  .mode-option span {
    justify-content: start;
    padding: 0 14px;
  }
  .extra-summary {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .calendar-top {
    gap: 10px;
  }
  .calendar-top h3 {
    font-size: clamp(30px, 9.5vw, 42px);
    text-align: center;
  }
  .date-panel h3 {
    font-size: clamp(34px, 10vw, 42px);
  }
}

@media (max-width: 390px) {
  .hero-title {
    font-size: clamp(38px, 12.2vw, 50px);
  }
  .hero-copy p {
    display: none;
  }
}


/* Ajustes v3: estabilidad de scroll, espaciado unificado y cotizador limpio */
:root {
  --section-y: clamp(82px, 10vw, 132px);
  --section-title-gap: clamp(32px, 4.8vw, 58px);
  --grid-gap: clamp(16px, 2vw, 24px);
}

html,
body {
  overflow-anchor: none;
}

.section,
.gallery-section {
  padding-block: var(--section-y);
}

.section-title-row,
.gallery-heading {
  margin-bottom: var(--section-title-gap);
}

.section-title-row > div,
.gallery-heading > div,
.stage-copy,
.calculator,
.date-panel,
.contact-content {
  min-width: 0;
}

.section-title-row h2,
.gallery-heading h2 {
  margin-bottom: 0;
}

.section-title-row p,
.gallery-heading p {
  max-width: 520px;
}

.highlight-stage,
.pricing-layout,
.calendar-layout,
.amenity-grid,
.stats-grid,
.gallery-grid,
.faq-list,
.pricing-cards {
  gap: var(--grid-gap);
}

.highlight-stage {
  min-height: 560px;
  align-items: stretch;
}

.stage-copy {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 390px;
}

.stage-copy p {
  min-height: 86px;
}

.stage-image {
  min-height: 470px;
  aspect-ratio: 16 / 10;
}

.stage-image img,
.chapter-visual img,
.hero-media img,
.gallery-item img,
.amenity-card img {
  backface-visibility: hidden;
  transform: translateZ(0);
}

.chapter-section {
  min-height: auto;
  contain: paint;
}

.chapter-sticky {
  top: 0;
}

.chapter-list {
  padding-top: 24vh;
  padding-bottom: 24vh;
}

.chapter-step {
  min-height: 68vh;
}

.faq-section {
  background: linear-gradient(180deg, var(--bg), #f7f0e7);
}

.faq-list {
  max-width: 980px;
  margin: 0 auto;
}

.modalities {
  padding-top: var(--section-y);
}

.pricing-layout {
  align-items: start;
}

.price-card,
.calculator,
.calendar-card,
.date-panel,
.amenity-card,
.faq-list details {
  scroll-margin-top: calc(var(--nav-h) + 84px);
}

.calculator {
  padding: clamp(26px, 3vw, 34px);
}

.calculator form {
  gap: 18px;
}

.mode-selector {
  gap: 14px;
  margin: 0 0 4px;
}

.mode-selector legend {
  display: block;
  margin-bottom: 2px;
  line-height: 1.35;
}

.mode-options {
  gap: 10px;
}

.mode-option span {
  min-height: 50px;
}

.calculator label {
  gap: 9px;
}

.calculator input,
.calculator select {
  min-height: 52px;
}

.extra-summary,
.calculator output {
  margin-top: 2px;
}

.calendar-section {
  padding-top: var(--section-y);
}

@media (max-width: 1060px) {
  .section,
  .gallery-section {
    padding-block: clamp(72px, 9vw, 104px);
  }

  .highlight-stage {
    min-height: auto;
  }

  .stage-copy {
    min-height: auto;
    order: 2;
  }

  .stage-copy p {
    min-height: 0;
  }

  .stage-image {
    height: clamp(340px, 54vw, 520px);
    min-height: 340px;
    order: 1;
  }

  .chapter-section {
    display: block;
  }

  .chapter-sticky {
    position: relative;
    height: auto;
  }

  .chapter-visual {
    height: clamp(420px, 64vh, 620px);
  }

  .chapter-list {
    padding: 0 var(--safe) clamp(70px, 10vw, 110px);
  }

  .chapter-step {
    min-height: auto;
    padding: clamp(34px, 8vw, 70px) 0;
    border-bottom: 1px solid rgba(255,250,242,.12);
    opacity: 1;
    transform: none;
  }

  .chapter-step:last-child {
    border-bottom: 0;
  }
}

@media (max-width: 700px) {
  :root {
    --section-y: 70px;
    --section-title-gap: 30px;
    --grid-gap: 16px;
  }

  .hero-title {
    font-size: clamp(40px, 12.4vw, 62px);
    line-height: .88;
    letter-spacing: -.035em;
  }

  .hero-bottom {
    margin-top: 22px;
  }

  .hero-copy h2 {
    max-width: 12ch;
  }

  .local-nav {
    scroll-snap-type: none;
    overscroll-behavior-x: contain;
  }

  .highlight-track,
  .gallery-grid {
    scroll-snap-type: none;
  }

  .highlight-stage {
    padding: 14px;
    border-radius: 28px;
  }

  .stage-image {
    height: 310px;
    min-height: 310px;
    border-radius: 22px;
  }

  .stage-copy {
    padding: 18px 10px 12px;
  }

  .chapter-caption {
    position: relative;
    left: auto;
    bottom: auto;
    width: calc(100% - 28px);
    margin: -96px auto 0;
  }

  .chapter-visual::after {
    background: linear-gradient(180deg, rgba(18,13,10,.08), rgba(18,13,10,.58));
  }

  .pricing-layout,
  .calendar-layout {
    gap: 22px;
  }

  .calculator form {
    gap: 17px;
  }

  .mode-selector {
    gap: 13px;
  }

  .mode-options {
    gap: 9px;
  }

  .mode-option span {
    min-height: 52px;
  }

  .faq-section {
    padding-top: 70px;
  }
}

@media (max-width: 390px) {
  .hero-title {
    font-size: clamp(36px, 11.5vw, 48px);
  }
}

/* Ajustes v4: reserva interactiva avanzada + ubicación / cómo llegar */
.booking-section {
  background: linear-gradient(180deg, var(--bg), var(--cream));
}

.booking-layout,
.location-grid {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr);
  gap: var(--grid-gap);
  align-items: stretch;
}

.booking-card,
.location-card,
.croquis-card {
  border: 1px solid var(--line);
  border-radius: 32px;
  background: rgba(255, 255, 255, .66);
  box-shadow: 0 18px 60px rgba(65, 45, 30, .08);
}

.booking-card {
  padding: clamp(18px, 3vw, 32px);
}

.booking-toolbar {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 26px;
}

.booking-mode {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 250, 242, .62);
  padding: 14px 12px;
  text-align: left;
  transition: transform .22s ease, background .22s ease, border-color .22s ease, color .22s ease;
}

.booking-mode:hover {
  transform: translateY(-2px);
  border-color: rgba(129, 95, 70, .35);
}

.booking-mode.is-active {
  background: var(--brown-dark);
  color: var(--cream);
  border-color: var(--brown-dark);
}

.booking-mode span,
.booking-mode small {
  display: block;
}

.booking-mode span {
  font-weight: 850;
  line-height: 1.1;
}

.booking-mode small {
  margin-top: 5px;
  opacity: .68;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.day.is-past,
.day.is-blocked {
  opacity: .46;
}

.day.is-blocked {
  background: rgba(255, 250, 242, .34);
}

.day.is-in-range {
  background: rgba(196, 154, 101, .25);
  border-color: rgba(196, 154, 101, .45);
}

.day.is-start,
.day.is-end {
  background: var(--brown-dark);
  color: var(--cream);
  border-color: var(--brown-dark);
}

.calendar-legend i.range {
  background: rgba(196, 154, 101, .28);
  border: 1px solid rgba(196, 154, 101, .5);
}

.admin-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.admin-toggle {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 250, 242, .7);
  color: var(--brown-dark);
  min-height: 42px;
  padding: 0 16px;
  font-size: 12px;
  font-weight: 850;
}

.admin-toggle.subtle {
  color: var(--muted);
  background: rgba(255, 255, 255, .35);
}

.admin-toggle.is-active {
  background: var(--brown-dark);
  color: var(--cream);
}

.admin-note {
  display: none;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
  margin: 12px 0 0;
}

.admin-note.is-visible {
  display: block;
}

.booking-panel {
  background: #211812;
  color: var(--cream);
  padding: clamp(24px, 3vw, 34px);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 18px;
  min-width: 0;
}

.booking-panel > img {
  width: 104px;
  height: auto;
  filter: drop-shadow(0 10px 18px rgba(0,0,0,.28));
}

.booking-panel h3 {
  font-family: var(--serif);
  font-size: clamp(38px, 5vw, 58px);
  line-height: .9;
  margin: -4px 0 0;
}

.booking-panel p {
  color: rgba(255, 250, 242, .72);
  line-height: 1.65;
  margin: 0;
}

.booking-dates {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.date-box {
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 18px;
  background: rgba(255, 255, 255, .08);
  padding: 14px;
  min-width: 0;
}

.date-box.is-hidden {
  display: none;
}

.date-box span,
.date-box small,
.guest-counter span {
  display: block;
  color: rgba(255, 250, 242, .58);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.date-box strong {
  display: block;
  margin-top: 8px;
  color: var(--cream);
  line-height: 1.25;
  font-size: 14px;
}

.date-box small {
  margin-top: 8px;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 650;
}

.guest-counter {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px;
  border-radius: 20px;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .14);
}

.guest-counter strong {
  display: block;
  margin-bottom: 6px;
}

.stepper {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.stepper button {
  width: 36px;
  height: 36px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 50%;
  background: rgba(255, 250, 242, .12);
  color: var(--cream);
  font-weight: 900;
}

.stepper input {
  width: 64px;
  height: 38px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, .16);
  background: rgba(255, 255, 255, .08);
  color: var(--cream);
  text-align: center;
  font-weight: 850;
}

.booking-summary {
  display: grid;
  gap: 7px;
  color: rgba(255, 250, 242, .76);
  border-radius: 22px;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .14);
  padding: 16px;
  line-height: 1.55;
}

.summary-line,
.summary-total {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: baseline;
  font-size: 13px;
}

.summary-line span,
.summary-note {
  color: rgba(255, 250, 242, .62);
}

.summary-line strong {
  text-align: right;
}

.summary-total {
  border-top: 1px solid rgba(255, 255, 255, .14);
  margin-top: 6px;
  padding-top: 12px;
}

.summary-total span {
  color: var(--cream);
  font-weight: 850;
}

.summary-total strong {
  font-family: var(--serif);
  font-size: 32px;
  line-height: .9;
}

.summary-note {
  font-size: 12px;
  margin-top: 2px;
}

.booking-form {
  display: grid;
  gap: 12px;
}

.booking-form label {
  display: grid;
  gap: 7px;
  color: rgba(255, 250, 242, .76);
  font-size: 13px;
  font-weight: 740;
}

.booking-form input {
  width: 100%;
  min-height: 48px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  color: var(--cream);
  padding: 0 14px;
}

.booking-form .btn {
  width: 100%;
}

.location-section {
  background: linear-gradient(180deg, var(--cream), var(--bg));
}

.location-card {
  padding: clamp(24px, 3vw, 34px);
  overflow: hidden;
}

.route-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.map-chip {
  align-self: flex-start;
  padding: 8px 13px;
  border-radius: 999px;
  background: rgba(129, 95, 70, .1);
  color: var(--brown-dark);
  border: 1px solid var(--line);
  font-size: 12px;
  font-weight: 850;
  margin-bottom: 18px;
}

.location-card h3,
.croquis-copy h3 {
  font-family: var(--serif);
  font-size: clamp(34px, 5vw, 56px);
  line-height: .92;
  margin: 0 0 14px;
  color: var(--brown-dark);
}

.location-card p,
.croquis-copy p {
  color: var(--muted);
  line-height: 1.75;
  margin: 0;
}

.route-steps {
  list-style: none;
  margin: 22px 0 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.route-steps li {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 12px;
  align-items: start;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 250, 242, .52);
}

.route-steps strong {
  color: var(--brown);
  font-weight: 900;
}

.route-steps span {
  color: var(--muted);
  line-height: 1.5;
}

.route-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

.map-card {
  padding: 12px;
}

.map-frame {
  width: 100%;
  height: 100%;
  min-height: 420px;
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: rgba(255, 250, 242, .72);
}

.croquis-card {
  max-width: 1320px;
  margin: var(--grid-gap) auto 0;
  display: grid;
  grid-template-columns: minmax(260px, .68fr) minmax(0, 1.32fr);
  gap: var(--grid-gap);
  padding: clamp(18px, 3vw, 28px);
  align-items: center;
}

.croquis-copy {
  padding: clamp(8px, 2vw, 18px);
}

.ba-slider {
  position: relative;
  overflow: hidden;
  border-radius: 26px;
  border: 1px solid var(--line);
  user-select: none;
  background: #0f0d0b;
  min-height: 420px;
}

.croquis-image {
  width: 100%;
  pointer-events: none;
}

.croquis-day-image {
  position: relative;
  display: block;
  height: auto;
  min-height: 420px;
  object-fit: cover;
  opacity: 1;
  transition: opacity .38s ease;
}

.croquis-night-image {
  position: absolute;
  inset: 0;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity .38s ease;
}

.croquis-toggle-view.is-night .croquis-day-image { opacity: 0; }
.croquis-toggle-view.is-night .croquis-night-image { opacity: 1; }

.croquis-view-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(20, 14, 10, .68);
  color: var(--cream);
  border: 1px solid rgba(255,255,255,.28);
  backdrop-filter: blur(8px);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.croquis-view-toggle {
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 3;
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 11px 16px;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 999px;
  background: rgba(29, 20, 15, .86);
  color: var(--cream);
  box-shadow: 0 10px 26px rgba(0,0,0,.24);
  backdrop-filter: blur(10px);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 850;
  line-height: 1;
  -webkit-tap-highlight-color: transparent;
}

.croquis-view-toggle:focus-visible {
  outline: 3px solid rgba(255,250,242,.92);
  outline-offset: 3px;
}

.croquis-toggle-icon {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  font-size: 18px;
  line-height: 1;
}

@media (hover: hover) and (pointer: fine) {
  .croquis-view-toggle:hover {
    background: rgba(72, 48, 34, .94);
  }
}

@media (prefers-reduced-motion: reduce) {
  .croquis-image { transition: none; }
}

@media (max-width: 1060px) {
  .booking-layout,
  .location-grid,
  .croquis-card {
    grid-template-columns: 1fr;
  }

  .booking-panel {
    position: relative;
  }

  .map-frame,
  .ba-slider,
  .croquis-image {
    min-height: 360px;
  }
}

@media (max-width: 700px) {
  .booking-toolbar {
    grid-template-columns: 1fr;
  }

  .booking-mode {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .booking-dates {
    grid-template-columns: 1fr;
  }

  .guest-counter {
    align-items: stretch;
    flex-direction: column;
  }

  .stepper,
  .stepper input {
    width: 100%;
  }

  .stepper input {
    flex: 1;
  }

  .day {
    min-height: 64px;
    border-radius: 15px;
    padding: 8px;
  }

  .day small {
    display: none;
  }

  .route-actions .btn {
    width: 100%;
  }

  .croquis-view-toggle {
    right: 12px;
    bottom: 12px;
    min-height: 44px;
    padding: 10px 14px;
    font-size: 12px;
  }

  .croquis-view-badge {
    top: 12px;
    left: 12px;
  }

  .map-frame,
  .ba-slider,
  .croquis-image {
    min-height: 300px;
  }

  .summary-line,
  .summary-total {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }
}

/* Ajustes v5: menú abierto, títulos a dos líneas, modalidades en cápsulas y ubicación protegida */
.site-header {
  top: 0;
  padding: 0;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background .3s ease, border-color .3s ease, backdrop-filter .3s ease;
}

body.has-scrolled .site-header {
  background: rgba(247, 241, 232, .88);
  border-bottom-color: rgba(91, 67, 48, .12);
  backdrop-filter: blur(18px) saturate(140%);
}

.nav-shell,
body.has-scrolled .nav-shell {
  max-width: 1420px;
  height: 82px;
  margin: 0 auto;
  padding: 0 var(--safe);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.nav-links {
  gap: clamp(14px, 1.7vw, 28px);
}

.nav-links a {
  padding-inline: 0;
}

.nav-cta {
  min-height: 42px;
  padding-inline: 20px;
}

.hero-title {
  font-size: clamp(56px, 10.5vw, 154px);
  line-height: .78;
  letter-spacing: -.055em;
  max-width: 11ch;
}

.title-line {
  display: block;
  white-space: nowrap;
}

.section-title-row h2,
.gallery-heading h2,
.contact-content h2 {
  font-size: clamp(42px, 6vw, 78px);
  line-height: .94;
  max-width: 15ch;
}

/* Modalidades: cápsulas horizontales, sin cotizador duplicado */
.modality-capsules {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--grid-gap);
}

.modality-capsule {
  min-width: 0;
  min-height: 100%;
  padding: clamp(24px, 3vw, 34px);
  border: 1px solid var(--line);
  border-radius: 42px;
  background: rgba(255,255,255,.64);
  box-shadow: 0 18px 52px rgba(65,45,30,.07);
  display: flex;
  flex-direction: column;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.modality-capsule:hover {
  transform: translateY(-6px);
  border-color: rgba(129,95,70,.3);
  box-shadow: 0 26px 64px rgba(65,45,30,.12);
}

.modality-capsule.is-featured {
  background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(244,235,224,.78));
}

.modality-cap-top {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}

.modality-number {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--brown-dark);
  color: var(--cream);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
}

.modality-cap-top strong,
.modality-cap-top small {
  display: block;
}

.modality-cap-top strong {
  font-family: var(--serif);
  font-size: clamp(28px, 2.4vw, 38px);
  line-height: .95;
  color: var(--brown-dark);
}

.modality-cap-top small {
  margin-top: 6px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.modality-prices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px;
  margin: 22px 0 18px;
}

.modality-prices.single {
  grid-template-columns: 1fr;
}

.modality-prices p {
  margin: 0;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,250,242,.62);
}

.modality-prices b,
.modality-prices span {
  display: block;
}

.modality-prices b {
  font-size: clamp(20px, 2vw, 28px);
  color: var(--brown-dark);
}

.modality-prices span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
}

.modality-capsule ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
  color: var(--muted);
  line-height: 1.5;
  font-size: 13px;
}

.modality-capsule li {
  position: relative;
  padding-left: 18px;
}

.modality-capsule li::before {
  content: '•';
  position: absolute;
  left: 2px;
  color: var(--brown);
  font-weight: 900;
}

.modality-action {
  margin-top: auto;
  padding-top: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--brown-dark);
  font-weight: 850;
  border-top: 1px solid transparent;
}

.modality-action span {
  width: 38px;
  height: 38px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--brown-dark);
  color: var(--cream);
  transition: transform .25s ease;
}

.modality-action:hover span {
  transform: translateX(4px);
}

/* Ubicación sin Google Maps */
.location-grid {
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
}

.privacy-card {
  position: relative;
  overflow: hidden;
  min-height: 520px;
  padding: 0;
  color: var(--cream);
}

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

.privacy-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,14,10,.08), rgba(20,14,10,.78));
}

.privacy-card-copy {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: clamp(24px, 4vw, 38px);
}

.privacy-card .map-chip {
  background: rgba(255,250,242,.88);
  color: var(--brown-dark);
}

.privacy-card h3 {
  color: var(--cream);
  max-width: 10ch;
}

.privacy-card p {
  color: rgba(255,250,242,.78);
  max-width: 48ch;
}

@media (max-width: 1060px) {
  .site-header { top: 0; }
  .nav-shell { height: 70px; }

  .nav-links {
    top: 70px;
    left: 0;
    right: 0;
    border-radius: 0 0 26px 26px;
    border-left: 0;
    border-right: 0;
  }

  .modality-capsules {
    grid-template-columns: 1fr;
  }

  .location-grid {
    grid-template-columns: 1fr;
  }

  .privacy-card {
    min-height: 440px;
  }
}

@media (max-width: 700px) {
  .hero-title {
    font-size: clamp(38px, 11vw, 58px);
    line-height: .86;
    max-width: 9.5ch;
  }

  .section-title-row h2,
  .gallery-heading h2,
  .contact-content h2 {
    font-size: clamp(34px, 10vw, 50px);
    line-height: .96;
    max-width: none;
  }

  .title-line {
    white-space: normal;
  }

  .modality-capsules {
    display: flex;
    overflow-x: auto;
    gap: 14px;
    scroll-snap-type: x mandatory;
    padding: 2px var(--safe) 18px;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    scrollbar-width: none;
  }

  .modality-capsules::-webkit-scrollbar { display: none; }

  .modality-capsule {
    flex: 0 0 min(86vw, 380px);
    scroll-snap-align: center;
    border-radius: 34px;
  }

  .modality-prices {
    grid-template-columns: 1fr;
  }

  .privacy-card {
    min-height: 400px;
  }
}

@media (max-width: 390px) {
  .hero-title {
    font-size: clamp(34px, 10.3vw, 46px);
  }
}

/* Garantía de títulos en dos líneas también en móvil */
@media (max-width: 700px) {
  .section-title-row h2,
  .gallery-heading h2,
  .contact-content h2 {
    font-size: clamp(28px, 8vw, 42px);
  }
  .title-line { white-space: nowrap; }
}

/* Contención de la escena destacada para evitar desbordes horizontales */
.highlight-stage,
.highlight-stage > *,
.stage-image,
.stage-image img {
  min-width: 0;
  max-width: 100%;
}
.stage-image { width: 100%; }


/* Ajustes v6 — navegación abierta, portada más ligera y jerarquía uniforme */
:root {
  --nav-h: 78px;
}

/* Menú principal sin cápsula: transparente sobre portada y barra completa al hacer scroll */
.site-header {
  top: 0;
  left: 0;
  right: 0;
  padding: 0;
  background: transparent;
  border-bottom: 1px solid transparent;
}
body.has-scrolled .site-header {
  background: rgba(247, 241, 232, .9);
  border-bottom-color: rgba(91, 67, 48, .13);
  box-shadow: 0 8px 28px rgba(45, 31, 20, .07);
  backdrop-filter: blur(18px) saturate(135%);
  -webkit-backdrop-filter: blur(18px) saturate(135%);
}
.nav-shell,
body.has-scrolled .nav-shell {
  width: 100%;
  max-width: 1480px;
  height: var(--nav-h);
  margin: 0 auto;
  padding: 0 var(--safe);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.nav-links {
  gap: clamp(13px, 1.55vw, 27px);
}
.nav-links a {
  padding: 10px 0;
  background: transparent;
  border-radius: 0;
}

/* Portada: el nombre conserva presencia sin dominar la pantalla */
.hero-title {
  font-size: clamp(50px, 8.2vw, 124px);
  line-height: .82;
  letter-spacing: -.048em;
  max-width: 10.6ch;
}
.hero-content {
  padding-top: calc(var(--nav-h) + 44px);
}

/* Ritmo tipográfico y espacial unificado */
.section,
.gallery-section {
  padding-top: clamp(88px, 10vw, 138px);
  padding-bottom: clamp(88px, 10vw, 138px);
}
.section-title-row,
.gallery-heading {
  margin-bottom: clamp(34px, 4.6vw, 58px);
  align-items: end;
}
.section-title-row h2,
.gallery-heading h2,
.contact-content h2 {
  font-size: clamp(40px, 5.35vw, 72px);
  line-height: .94;
  letter-spacing: -.035em;
  max-width: 15.5ch;
  margin-top: 10px;
  margin-bottom: 0;
}
.title-line {
  display: block;
  white-space: nowrap;
}
.section-title-row > p,
.gallery-heading > p {
  max-width: 48ch;
  margin: 0;
  line-height: 1.72;
}

/* Modalidades en una sola lectura horizontal; no existe un cotizador duplicado aquí */
.modality-capsules {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}
.modality-capsule {
  border-radius: 999px 999px 42px 42px;
}
.modality-cap-top {
  min-height: 76px;
}

/* Ubicación protegida: se mantiene la guía general sin mapa ni punto exacto */
.location-section iframe,
.location-section .map-frame,
.location-section [href*="google.com/maps"],
.location-section [href*="maps.app"] {
  display: none !important;
}

@media (max-width: 1060px) {
  :root { --nav-h: 70px; }
  .site-header { top: 0; }
  .nav-shell { height: var(--nav-h); }
  .nav-links {
    top: var(--nav-h);
    left: 0;
    right: 0;
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0 0 24px 24px;
    background: rgba(247, 241, 232, .97);
    box-shadow: 0 24px 55px rgba(45,31,20,.14);
  }
  .modality-capsules {
    grid-template-columns: 1fr;
  }
  .modality-capsule {
    border-radius: 36px;
  }
}

@media (max-width: 700px) {
  :root { --nav-h: 66px; }
  .nav-shell { height: var(--nav-h); padding-inline: 18px; }
  .hero-content {
    min-height: 100svh;
    padding: calc(var(--nav-h) + 28px) 18px 44px;
  }
  .hero-title {
    font-size: clamp(34px, 10.1vw, 48px);
    line-height: .88;
    letter-spacing: -.035em;
    max-width: 9.7ch;
  }
  .hero-bottom { margin-top: 20px; }
  .section,
  .gallery-section {
    padding-top: 76px;
    padding-bottom: 76px;
  }
  .section-title-row,
  .gallery-heading {
    margin-bottom: 30px;
  }
  .section-title-row h2,
  .gallery-heading h2,
  .contact-content h2 {
    font-size: clamp(25px, 7.8vw, 38px);
    line-height: .98;
    max-width: none;
    letter-spacing: -.025em;
  }
  .title-line { white-space: nowrap; }
  .modality-capsules {
    display: flex;
    grid-template-columns: none;
    overflow-x: auto;
    gap: 14px;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 2px 18px 18px;
    scroll-snap-type: x proximity;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }
  .modality-capsule {
    flex: 0 0 min(86vw, 380px);
    border-radius: 34px;
    scroll-snap-align: center;
  }
}

@media (max-width: 360px) {
  .section-title-row h2,
  .gallery-heading h2,
  .contact-content h2 {
    font-size: 24px;
  }
  .hero-title { font-size: 33px; }
}


/* Corrección v6.1 — contención horizontal de encabezados */
.section-title-row h2,
.gallery-heading h2,
.contact-content h2 {
  max-width: 100%;
  width: auto;
}
.section-title-row > div,
.gallery-heading > div {
  min-width: 0;
}
@media (min-width: 1061px) {
  .section-title-row {
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  }
  .gallery-heading {
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  }
}

/* Corrección v6.2 — anclajes precisos sin doble desplazamiento */
html {
  scroll-padding-top: calc(var(--nav-h) + 18px);
}
section,
.gallery-section,
.contact-section,
.chapter-section {
  scroll-margin-top: 0;
}


/* Ajustes v7 — amenidades desplegables compactas y modalidades tipo cápsula */
.amenity-card {
  min-height: 0;
  cursor: pointer;
  border-radius: 30px;
  overflow: hidden;
}
.amenity-card img {
  height: clamp(190px, 18vw, 235px);
}
.amenity-card button {
  cursor: pointer;
  width: 100%;
  padding: 18px 20px;
  gap: 16px;
}
.amenity-card button span {
  display: block;
  max-width: 11.5ch;
}
.amenity-card p {
  padding: 0 20px;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height .34s ease, opacity .24s ease, padding .34s ease;
}
.amenity-card.is-open p {
  max-height: 190px;
  opacity: 1;
  padding: 0 20px 22px;
}
.amenity-card.is-open {
  box-shadow: 0 28px 78px rgba(65,45,30,.14);
}

.modality-capsules {
  gap: clamp(14px, 1.7vw, 22px);
}
.modality-capsule {
  border-radius: 42px;
  padding: clamp(16px, 2vw, 22px);
  background: rgba(255,255,255,.58);
  border-color: rgba(91,67,48,.14);
}
.modality-capsule.is-featured {
  background: rgba(255,255,255,.72);
}
.modality-cap-top {
  min-height: auto;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,250,242,.68);
}
.modality-number {
  width: auto;
  height: auto;
  min-width: 42px;
  padding: 9px 12px;
  border-radius: 999px;
  font-size: 11px;
}
.modality-cap-top strong {
  font-size: clamp(22px, 2vw, 30px);
  letter-spacing: -.025em;
}
.modality-cap-top small {
  margin-top: 3px;
  font-size: 10px;
}
.modality-prices {
  margin: 14px 0;
}
.modality-prices p {
  text-align: center;
  padding: 12px 14px;
  border-radius: 999px;
  background: rgba(255,250,242,.74);
}
.modality-prices b {
  font-size: clamp(19px, 1.7vw, 25px);
}
.modality-capsule ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 18px;
  padding: 0;
}
.modality-capsule li {
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,250,242,.55);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.25;
}
.modality-capsule li::before {
  display: none;
}
.modality-action {
  margin-top: auto;
  padding: 13px 15px 13px 18px;
  border-radius: 999px;
  background: var(--brown-dark);
  color: var(--cream);
  border-top: 0;
}
.modality-action span {
  background: rgba(255,255,255,.18);
  color: var(--cream);
}
.modality-action:hover {
  transform: translateY(-2px);
  background: var(--brown);
}
.modality-action:hover span {
  background: rgba(255,255,255,.24);
}

@media (max-width: 920px) {
  .amenity-card p {
    max-height: 0;
    opacity: 0;
    padding: 0 20px;
  }
  .amenity-card.is-open p {
    max-height: 220px;
    opacity: 1;
    padding: 0 20px 22px;
  }
  .amenity-card button b {
    display: grid;
  }
}
@media (max-width: 700px) {
  .amenity-card img {
    height: 210px;
  }
  .amenity-card button {
    font-size: 23px;
    padding: 16px 18px;
  }
  .modality-capsule {
    flex: 0 0 min(88vw, 390px);
    border-radius: 34px;
  }
  .modality-prices {
    grid-template-columns: 1fr;
  }
}

/* Ajustes v8 — destacados más ligero, galería alineada y números con mejor aire */
.highlight-stage {
  max-width: 1180px;
  grid-template-columns: minmax(300px, 390px) minmax(420px, 660px);
  justify-content: center;
  min-height: 500px;
  padding: clamp(18px, 3.2vw, 34px);
}
.stage-copy {
  min-height: 330px;
}
.stage-copy h3 {
  font-size: clamp(34px, 4.15vw, 62px);
}
.stage-copy p {
  min-height: 72px;
}
.stage-image {
  min-height: 360px;
  max-height: 430px;
  align-self: center;
}
.gallery-heading {
  text-align: left;
  justify-items: start;
  align-items: end;
}
.gallery-heading > div,
.gallery-heading > p,
.gallery-heading h2 {
  text-align: left;
  margin-left: 0;
  margin-right: auto;
}
.stats-grid article {
  justify-content: center;
  gap: 18px;
}
.stats-grid strong {
  display: block;
  line-height: .96;
  margin-bottom: 2px;
}
.stats-grid span {
  margin-top: 0;
  line-height: 1.38;
  max-width: 15ch;
}

@media (max-width: 920px) {
  .highlight-stage {
    max-width: 100%;
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .stage-copy {
    min-height: auto;
  }
  .stage-image {
    min-height: 300px;
    max-height: 360px;
  }
}

@media (max-width: 700px) {
  .highlight-stage {
    padding: 14px;
    border-radius: 28px;
  }
  .stage-image {
    min-height: 230px;
    max-height: 270px;
  }
  .stage-copy h3 {
    font-size: clamp(30px, 9vw, 42px);
  }
  .stats-grid article {
    min-height: 150px;
    gap: 14px;
  }
  .stats-grid strong {
    font-size: clamp(54px, 17vw, 92px);
    line-height: .98;
  }
  .stats-grid span {
    line-height: 1.4;
  }
}

/* Ajustes v10 — carrusel central en destacados y selección de fotos sin repetición innecesaria */
.highlight-carousel {
  max-width: 1320px;
  margin: 0 auto;
  position: relative;
  padding: 8px clamp(44px, 7vw, 82px) 54px;
}
.highlight-viewport {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding: 22px 0 34px;
}
.highlight-viewport::-webkit-scrollbar { display: none; }
.highlight-track {
  max-width: none;
  margin: 0;
  display: flex;
  grid-auto-flow: initial;
  grid-auto-columns: initial;
  gap: clamp(14px, 2vw, 24px);
  overflow: visible;
  padding: 0;
  scroll-snap-type: none;
  scrollbar-width: none;
}
.highlight-card {
  flex: 0 0 clamp(300px, 60vw, 760px);
  height: clamp(420px, 54vw, 620px);
  border-radius: clamp(28px, 4vw, 46px);
  padding: 0;
  background: #17110d;
  border: 1px solid rgba(255,255,255,.38);
  box-shadow: 0 24px 70px rgba(56,37,25,.15);
  scroll-snap-align: center;
  transform: scale(.88);
  opacity: .48;
  cursor: pointer;
}
.highlight-card:hover,
.highlight-card.is-active {
  transform: scale(1);
  opacity: 1;
  border-color: rgba(196,154,101,.7);
  box-shadow: 0 34px 90px rgba(48,31,20,.24);
}
.highlight-card img {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
  transition: transform .7s ease, filter .7s ease;
}
.highlight-card::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(0,0,0,.02) 0%, rgba(0,0,0,.18) 42%, rgba(0,0,0,.76) 100%);
  opacity: .9;
  pointer-events: none;
}
.highlight-card.is-active img { transform: scale(1.035); filter: saturate(1.05); }
.highlight-card-copy {
  position: absolute;
  left: clamp(22px, 4vw, 48px);
  right: clamp(22px, 4vw, 48px);
  bottom: clamp(24px, 4vw, 52px);
  z-index: 2;
  color: var(--cream);
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .28s ease, transform .28s ease;
  text-align: left;
  max-width: 620px;
  pointer-events: none;
}
.highlight-card.is-active .highlight-card-copy {
  opacity: 1;
  transform: translateY(0);
}
.highlight-card .highlight-card-copy span,
.highlight-card-copy span {
  position: static;
  left: auto;
  right: auto;
  bottom: auto;
  display: block;
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: 12px;
  font-weight: 850;
  text-shadow: none;
  margin-bottom: 12px;
}
.highlight-card-copy h3 {
  font-family: var(--serif);
  font-size: clamp(36px, 5vw, 74px);
  line-height: .94;
  letter-spacing: -.045em;
  margin: 0 0 14px;
  font-weight: 600;
}
.highlight-card-copy p {
  color: rgba(255,250,242,.78);
  line-height: 1.65;
  max-width: 520px;
  margin: 0;
  font-size: clamp(14px, 1.35vw, 17px);
}
.highlight-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 50px;
  height: 50px;
  border-radius: 999px;
  border: 1px solid rgba(92,64,44,.18);
  background: rgba(255,250,242,.86);
  color: var(--ink);
  box-shadow: 0 16px 40px rgba(52,35,24,.14);
  cursor: pointer;
  font-weight: 900;
  font-size: 22px;
  backdrop-filter: blur(16px);
}
.highlight-prev { left: 0; }
.highlight-next { right: 0; }
.highlight-arrow:hover { background: var(--ink); color: var(--cream); }
.highlight-dots {
  position: absolute;
  left: 50%;
  bottom: 10px;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
}
.highlight-dots button {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: 0;
  padding: 0;
  background: rgba(71,52,38,.22);
  cursor: pointer;
  transition: width .24s ease, background .24s ease;
}
.highlight-dots button.is-active {
  width: 30px;
  background: var(--brown);
}
.gallery-heading {
  text-align: left !important;
  justify-items: start !important;
  align-items: start !important;
}
.gallery-heading h2,
.gallery-heading p,
.gallery-heading .overline {
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}
.gallery-grid .gallery-item img { object-position: center; }

@media (max-width: 920px) {
  .highlight-carousel {
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 50px;
  }
  .highlight-viewport {
    margin-left: calc(var(--page-pad, 22px) * -1);
    margin-right: calc(var(--page-pad, 22px) * -1);
    padding-left: var(--page-pad, 22px);
    padding-right: var(--page-pad, 22px);
  }
  .highlight-card {
    flex-basis: min(82vw, 600px);
    height: min(118vw, 560px);
    max-height: 560px;
    transform: scale(.92);
  }
  .highlight-arrow {
    top: auto;
    bottom: 0;
    width: 44px;
    height: 44px;
  }
  .highlight-prev { left: 0; }
  .highlight-next { right: 0; }
  .highlight-dots { bottom: 12px; }
  .highlight-card-copy {
    left: 24px;
    right: 24px;
    bottom: 28px;
  }
  .highlight-card-copy h3 {
    font-size: clamp(34px, 9vw, 48px);
  }
}

@media (max-width: 560px) {
  .highlight-card {
    flex-basis: 86vw;
    height: 520px;
  }
  .highlight-card-copy p {
    font-size: 14px;
  }
  .highlight-card-copy h3 {
    font-size: 38px;
  }
}


/* Ajustes v13 — galería discreta, encabezado a la izquierda y cambios de fotos solicitados */
.gallery-section {
  text-align: left !important;
}
.gallery-heading {
  text-align: left !important;
  justify-items: start !important;
  align-items: start !important;
  margin-left: 0 !important;
}
.gallery-heading > div,
.gallery-heading > p,
.gallery-heading h2,
.gallery-heading .overline {
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  justify-self: start !important;
}
.gallery-gate {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid rgba(255,250,242,.18);
  border-radius: clamp(24px, 3.2vw, 38px);
  background: rgba(255,250,242,.08);
  box-shadow: 0 24px 70px rgba(0,0,0,.14);
  backdrop-filter: blur(16px);
}
.gallery-gate p {
  margin: 0;
  max-width: 620px;
  color: rgba(255,250,242,.74);
  line-height: 1.65;
}
.gallery-section:not(.is-open) .gallery-grid {
  display: none !important;
}
.gallery-section.is-open .gallery-gate {
  display: none !important;
}
.gallery-section:not(.is-open) {
  padding-bottom: clamp(78px, 8vw, 120px);
}
@media (max-width: 700px) {
  .gallery-gate {
    align-items: stretch;
    flex-direction: column;
  }
  .gallery-gate .btn {
    width: 100%;
    justify-content: center;
  }
}


/* V14: galería como página independiente */
body.gallery-page {
  background: #14100d;
  color: var(--cream);
}
body.gallery-page .gallery-section {
  min-height: 100svh;
  padding-top: calc(var(--nav-h) + clamp(56px, 7vw, 118px));
}
body.gallery-page .gallery-heading {
  text-align: left !important;
  justify-items: start !important;
  align-items: end;
}
body.gallery-page .gallery-heading .gallery-title-copy,
body.gallery-page .gallery-heading h1,
body.gallery-page .gallery-heading h2,
body.gallery-page .gallery-heading .overline,
body.gallery-page .gallery-heading p {
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  justify-self: start !important;
}
body.gallery-page .gallery-heading h1 {
  font-family: var(--serif);
  font-size: clamp(40px, 7vw, 88px);
  line-height: .92;
  letter-spacing: -.045em;
  margin-top: 0;
  margin-bottom: 0;
  font-weight: 600;
}
body.gallery-page .gallery-grid {
  display: grid !important;
}
body.gallery-page .gallery-gate {
  display: none !important;
}
body.gallery-page .site-header {
  background: rgba(20,16,13,.72);
  border-bottom: 1px solid rgba(255,250,242,.12);
}
@media (max-width: 760px) {
  body.gallery-page .gallery-heading {
    display: block !important;
  }
  body.gallery-page .gallery-heading p {
    margin-top: 18px !important;
  }
}


/* V16: alinear encabezado de galería exactamente al margen izquierdo del grid */
body.gallery-page .gallery-heading {
  max-width: 1320px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  display: block !important;
  text-align: left !important;
}
body.gallery-page .gallery-heading .gallery-title-copy,
body.gallery-page .gallery-heading h1,
body.gallery-page .gallery-heading .overline,
body.gallery-page .gallery-heading p {
  width: 100% !important;
  text-align: left !important;
  justify-self: start !important;
}
body.gallery-page .gallery-heading p {
  max-width: 680px !important;
  margin-top: 18px !important;
}


/* V18 REAL — scrollytelling tipo landing premium, sin videos */
body.scroll-v18 {
  --hero-progress-v18: 0;
  --chapter-progress-v18: 0;
  --highlight-progress-v18: 0;
}
body.scroll-v18 .hero {
  min-height: 112svh;
  overflow: clip;
}
body.scroll-v18 .hero-media {
  transform: translate3d(0, calc(var(--hero-progress-v18) * 54px), 0) scale(calc(1.08 - (var(--hero-progress-v18) * .045))) !important;
  transition: transform .06s linear;
  will-change: transform;
}
body.scroll-v18 .hero-media img {
  transform: scale(calc(1.03 + (var(--hero-progress-v18) * .035))) !important;
  filter: saturate(calc(1.05 - (var(--hero-progress-v18) * .12))) brightness(calc(1 - (var(--hero-progress-v18) * .06)));
  transition: filter .08s linear, transform .08s linear;
}
body.scroll-v18 .hero-content {
  transform: translate3d(0, calc(var(--hero-progress-v18) * -54px), 0);
  opacity: calc(1 - (var(--hero-progress-v18) * .28));
  transition: transform .06s linear, opacity .06s linear;
  will-change: transform, opacity;
}
body.scroll-v18 .hero-title span:first-child {
  transform: translate3d(calc(var(--hero-progress-v18) * -28px), 0, 0);
}
body.scroll-v18 .hero-title span:last-child {
  transform: translate3d(calc(var(--hero-progress-v18) * 28px), 0, 0);
}
body.scroll-v18 .scroll-cue {
  opacity: calc(1 - (var(--hero-progress-v18) * 1.7));
  transform: translateY(calc(var(--hero-progress-v18) * 20px));
}

@media (min-width: 921px) {
  body.scroll-v18 .highlights {
    min-height: 520svh;
    padding-top: clamp(90px, 10vw, 150px);
    padding-bottom: 24svh;
    background:
      radial-gradient(circle at 18% 12%, rgba(196,154,101,.14), transparent 34rem),
      linear-gradient(180deg, var(--bg) 0%, #f6eee4 30%, #efe2d3 72%, var(--bg) 100%);
  }
  body.scroll-v18 .highlights .section-title-row {
    margin-bottom: clamp(26px, 4vw, 48px);
  }
  body.scroll-v18 .highlight-carousel {
    position: sticky !important;
    top: calc(var(--nav-h) + 18px) !important;
    height: calc(100svh - var(--nav-h) - 36px) !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 0 clamp(58px, 6vw, 96px) 0 !important;
    display: grid;
    place-items: center;
    overflow: visible !important;
  }
  body.scroll-v18 .highlight-carousel::before {
    content: '';
    position: absolute;
    inset: 0 clamp(26px, 5vw, 72px);
    border-radius: clamp(34px, 4vw, 58px);
    background: linear-gradient(180deg, rgba(255,250,242,.72), rgba(255,250,242,.34));
    border: 1px solid rgba(91, 67, 48, .10);
    box-shadow: 0 40px 120px rgba(72, 47, 31, .10);
  }
  body.scroll-v18 .highlight-viewport {
    position: relative !important;
    overflow: visible !important;
    width: 100% !important;
    height: 100% !important;
    padding: 0 !important;
    scroll-snap-type: none !important;
  }
  body.scroll-v18 .highlight-track {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    overflow: visible !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    scroll-snap-type: none !important;
  }
  body.scroll-v18 .highlight-card {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: min(66vw, 880px) !important;
    height: min(68vh, 640px) !important;
    flex: none !important;
    opacity: 0 !important;
    transform: translate(-50%, -50%) scale(.76) !important;
    pointer-events: none !important;
    z-index: 1;
    border-radius: clamp(30px, 4vw, 54px) !important;
    border: 1px solid rgba(255,255,255,.34) !important;
    box-shadow: 0 26px 80px rgba(55, 36, 24, .16) !important;
    transition: opacity .55s ease, transform .62s cubic-bezier(.2,.8,.2,1), filter .55s ease, box-shadow .55s ease !important;
    filter: saturate(.78) brightness(.92) !important;
    will-change: transform, opacity, filter;
  }
  body.scroll-v18 .highlight-card img {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  body.scroll-v18 .highlight-card.is-prev {
    opacity: .34 !important;
    transform: translate(calc(-50% - min(33vw, 420px)), -50%) scale(.70) !important;
    z-index: 2;
    pointer-events: auto !important;
  }
  body.scroll-v18 .highlight-card.is-next {
    opacity: .34 !important;
    transform: translate(calc(-50% + min(33vw, 420px)), -50%) scale(.70) !important;
    z-index: 2;
    pointer-events: auto !important;
  }
  body.scroll-v18 .highlight-card.is-active {
    opacity: 1 !important;
    transform: translate(-50%, -50%) scale(1) !important;
    z-index: 4;
    pointer-events: auto !important;
    filter: saturate(1.05) brightness(1) !important;
    box-shadow: 0 42px 130px rgba(45, 29, 20, .30) !important;
  }
  body.scroll-v18 .highlight-card::before {
    opacity: .92 !important;
    background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.24) 42%, rgba(0,0,0,.82) 100%) !important;
  }
  body.scroll-v18 .highlight-card-copy {
    opacity: 0 !important;
    transform: translateY(24px) !important;
    transition: opacity .46s ease .08s, transform .46s ease .08s !important;
    left: clamp(26px, 4vw, 58px) !important;
    right: clamp(26px, 4vw, 58px) !important;
    bottom: clamp(30px, 4vw, 62px) !important;
  }
  body.scroll-v18 .highlight-card.is-active .highlight-card-copy {
    opacity: 1 !important;
    transform: translateY(0) !important;
  }
  body.scroll-v18 .highlight-card.is-prev .highlight-card-copy,
  body.scroll-v18 .highlight-card.is-next .highlight-card-copy {
    opacity: 0 !important;
  }
  body.scroll-v18 .highlight-arrow {
    top: 50% !important;
    z-index: 9 !important;
    background: rgba(255,250,242,.92) !important;
  }
  body.scroll-v18 .highlight-prev { left: clamp(20px, 3vw, 42px) !important; }
  body.scroll-v18 .highlight-next { right: clamp(20px, 3vw, 42px) !important; }
  body.scroll-v18 .highlight-dots {
    bottom: clamp(18px, 2.5vh, 32px) !important;
    z-index: 10 !important;
  }
}

body.scroll-v18 .chapter-section {
  background: #100b08;
}
@media (min-width: 921px) {
  body.scroll-v18 .chapter-section {
    grid-template-columns: minmax(0, 58vw) minmax(360px, 1fr);
  }
  body.scroll-v18 .chapter-sticky {
    top: 0 !important;
  }
  body.scroll-v18 .chapter-visual::after {
    background: linear-gradient(90deg, rgba(18,13,10,.06), rgba(18,13,10,.58) 72%, rgba(18,13,10,.82));
  }
  body.scroll-v18 .chapter-visual img {
    opacity: 1 !important;
    transform: scale(calc(1.055 - (var(--chapter-progress-v18) * .035))) translate3d(0, calc(var(--chapter-progress-v18) * -16px), 0) !important;
    transition: opacity .25s ease, transform .08s linear !important;
    will-change: transform, opacity;
  }
  body.scroll-v18 .chapter-visual.is-changing img {
    opacity: 1 !important;
    transform: scale(1.035) !important;
  }
  body.scroll-v18 .chapter-caption {
    backdrop-filter: blur(20px) saturate(145%);
    transform: translate3d(0, calc((1 - var(--chapter-caption-v18, 1)) * 16px), 0);
    opacity: calc(.82 + (var(--chapter-caption-v18, 1) * .18));
  }
  body.scroll-v18 .chapter-step {
    min-height: 86vh !important;
    opacity: calc(.20 + (var(--step-focus-v18, 0) * .80)) !important;
    transform: translate3d(calc((1 - var(--step-focus-v18, 0)) * 42px), 0, 0) scale(calc(.985 + (var(--step-focus-v18, 0) * .015))) !important;
    transition: opacity .12s linear, transform .12s linear !important;
  }
  body.scroll-v18 .chapter-step h2 {
    transform: translateY(calc((1 - var(--step-focus-v18, 0)) * 16px));
    transition: transform .12s linear;
  }
}

body.scroll-v18 .amenity-card.is-visible,
body.scroll-v18 .modality-capsule.is-visible,
body.scroll-v18 .calendar-card.is-visible,
body.scroll-v18 .booking-card.is-visible,
body.scroll-v18 .location-card.is-visible {
  animation: cmV18FloatIn .75s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes cmV18FloatIn {
  from { opacity: .05; transform: translateY(36px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
body.scroll-v18 .section-title-row.is-visible {
  animation: cmV18TitleIn .85s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes cmV18TitleIn {
  from { opacity: .05; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 920px) {
  body.scroll-v18 .hero { min-height: 100svh; }
  body.scroll-v18 .hero-media,
  body.scroll-v18 .hero-content,
  body.scroll-v18 .hero-media img { transform: none !important; }
  body.scroll-v18 .hero-content { opacity: 1 !important; }
  body.scroll-v18 .highlight-card { opacity: .55; }
  body.scroll-v18 .highlight-card.is-active { opacity: 1; }
  body.scroll-v18 .chapter-visual.is-changing img { opacity: 1 !important; }
}

@media (prefers-reduced-motion: reduce) {
  body.scroll-v18 .hero-media,
  body.scroll-v18 .hero-content,
  body.scroll-v18 .highlight-card,
  body.scroll-v18 .chapter-step,
  body.scroll-v18 .chapter-visual img {
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}

/* V19 — separación editorial, galería más legible y carrusel destacado sin marco */
body[data-version="19-scroll-real"] p,
body[data-version="19-scroll-real"] li,
body[data-version="19-scroll-real"] small,
body[data-version="19-scroll-real"] .booking-summary,
body[data-version="19-scroll-real"] .date-box,
body[data-version="19-scroll-real"] .faq-list p,
body.gallery-page[data-version="19-scroll-real"] p {
  line-height: 1.72;
}

body[data-version="19-scroll-real"] .section-title-row,
body[data-version="19-scroll-real"] .gallery-heading {
  row-gap: clamp(18px, 3vw, 38px);
}
body[data-version="19-scroll-real"] .section-title-row > div,
body[data-version="19-scroll-real"] .gallery-heading .gallery-title-copy {
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 1.1vw, 16px);
}
body[data-version="19-scroll-real"] .section-title-row h2,
body[data-version="19-scroll-real"] .gallery-heading h1,
body[data-version="19-scroll-real"] .gallery-heading h2,
body[data-version="19-scroll-real"] .contact-content h2 {
  line-height: 1.03 !important;
  overflow: visible !important;
}
body[data-version="19-scroll-real"] .title-line {
  display: block;
  padding-bottom: .045em;
}
body[data-version="19-scroll-real"] .section-title-row p,
body[data-version="19-scroll-real"] .gallery-heading p {
  margin-top: clamp(4px, .8vw, 10px) !important;
}
body[data-version="19-scroll-real"] .overline,
body[data-version="19-scroll-real"] .map-chip {
  line-height: 1.35;
}
body[data-version="19-scroll-real"] h3 + p,
body[data-version="19-scroll-real"] .map-chip + h3,
body[data-version="19-scroll-real"] summary + p,
body[data-version="19-scroll-real"] .croquis-copy h3 + p,
body[data-version="19-scroll-real"] .contact-content h2 + p {
  margin-top: clamp(12px, 1.5vw, 20px) !important;
}
body[data-version="19-scroll-real"] .location-card,
body[data-version="19-scroll-real"] .route-card,
body[data-version="19-scroll-real"] .croquis-copy,
body[data-version="19-scroll-real"] .privacy-card-copy,
body[data-version="19-scroll-real"] .booking-card,
body[data-version="19-scroll-real"] .calendar-card,
body[data-version="19-scroll-real"] .modality-capsule,
body[data-version="19-scroll-real"] .amenity-card {
  overflow-wrap: anywhere;
}
body[data-version="19-scroll-real"] .privacy-card-copy {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: clamp(13px, 1.6vw, 20px) !important;
}
body[data-version="19-scroll-real"] .privacy-card .map-chip {
  margin: 0 !important;
}
body[data-version="19-scroll-real"] .privacy-card h3,
body[data-version="19-scroll-real"] .privacy-card p {
  margin: 0 !important;
}
body[data-version="19-scroll-real"] .route-steps li {
  gap: 16px;
}

body.gallery-page[data-version="19-scroll-real"] .gallery-heading {
  max-width: 1320px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: clamp(34px, 4vw, 56px) !important;
  padding-left: 0 !important;
  text-align: left !important;
}
body.gallery-page[data-version="19-scroll-real"] .gallery-heading h1 {
  line-height: 1.08 !important;
  letter-spacing: -.038em !important;
  padding-bottom: .08em !important;
  overflow: visible !important;
}
body.gallery-page[data-version="19-scroll-real"] .gallery-heading h1 .title-line {
  padding-bottom: .03em !important;
}
body.gallery-page[data-version="19-scroll-real"] .gallery-heading p {
  margin-top: clamp(12px, 1.4vw, 20px) !important;
}

@media (min-width: 921px) {
  body.scroll-v18[data-version="19-scroll-real"] .highlights {
    min-height: 500svh !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  body.scroll-v18[data-version="19-scroll-real"] .highlight-carousel {
    width: 100vw !important;
    max-width: none !important;
    padding: 0 !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }
  body.scroll-v18[data-version="19-scroll-real"] .highlight-carousel::before {
    display: none !important;
    content: none !important;
  }
  body.scroll-v18[data-version="19-scroll-real"] .highlight-viewport,
  body.scroll-v18[data-version="19-scroll-real"] .highlight-track {
    width: 100vw !important;
    height: 100% !important;
  }
  body.scroll-v18[data-version="19-scroll-real"] .highlight-card {
    width: min(92vw, 1380px) !important;
    height: min(81vh, 820px) !important;
    border: 0 !important;
    border-radius: clamp(26px, 3.8vw, 54px) !important;
    box-shadow: none !important;
    background: transparent !important;
  }
  body.scroll-v18[data-version="19-scroll-real"] .highlight-card.is-active {
    box-shadow: 0 48px 135px rgba(45, 29, 20, .30) !important;
  }
  body.scroll-v18[data-version="19-scroll-real"] .highlight-card.is-prev {
    opacity: .42 !important;
    transform: translate(calc(-50% - min(45vw, 580px)), -50%) scale(.66) !important;
  }
  body.scroll-v18[data-version="19-scroll-real"] .highlight-card.is-next {
    opacity: .42 !important;
    transform: translate(calc(-50% + min(45vw, 580px)), -50%) scale(.66) !important;
  }
  body.scroll-v18[data-version="19-scroll-real"] .highlight-card.is-active img {
    transform: scale(1.02) !important;
  }
  body.scroll-v18[data-version="19-scroll-real"] .highlight-arrow {
    border: 0 !important;
    box-shadow: 0 18px 44px rgba(28, 18, 12, .18) !important;
  }
  body.scroll-v18[data-version="19-scroll-real"] .highlight-prev { left: clamp(24px, 3vw, 50px) !important; }
  body.scroll-v18[data-version="19-scroll-real"] .highlight-next { right: clamp(24px, 3vw, 50px) !important; }
}

@media (max-width: 920px) {
  body[data-version="19-scroll-real"] .section-title-row h2,
  body[data-version="19-scroll-real"] .gallery-heading h1,
  body[data-version="19-scroll-real"] .gallery-heading h2,
  body[data-version="19-scroll-real"] .contact-content h2 {
    line-height: 1.06 !important;
  }
  body[data-version="19-scroll-real"] .location-card,
  body[data-version="19-scroll-real"] .privacy-card-copy {
    gap: 18px !important;
  }
  body[data-version="19-scroll-real"] .highlight-card {
    border: 0 !important;
  }
}

@media (max-width: 560px) {
  body.gallery-page[data-version="19-scroll-real"] .gallery-heading h1 {
    line-height: 1.12 !important;
    letter-spacing: -.032em !important;
  }
}


/* V20 — Ajustes visuales: menos repetición, galería reactiva al scroll y textos con más aire */
body[data-version="21-gallery-scroll"] .section-title-row h2,
body[data-version="21-gallery-scroll"] .gallery-heading h1,
body[data-version="21-gallery-scroll"] .gallery-heading h2,
body[data-version="21-gallery-scroll"] .contact-content h2,
body[data-version="21-gallery-scroll"] .chapter-step h2,
body[data-version="21-gallery-scroll"] .highlight-card-copy h3 {
  line-height: 1.04;
  padding-bottom: .045em;
}
body[data-version="21-gallery-scroll"] .title-line {
  display: block;
  padding-bottom: .035em;
}
body[data-version="21-gallery-scroll"] .section-title-row,
body[data-version="21-gallery-scroll"] .gallery-heading {
  row-gap: clamp(18px, 3vw, 36px);
}
body[data-version="21-gallery-scroll"] .section-title-row p,
body[data-version="21-gallery-scroll"] .gallery-heading p,
body[data-version="21-gallery-scroll"] .privacy-copy p,
body[data-version="21-gallery-scroll"] .location-copy p,
body[data-version="21-gallery-scroll"] .contact-content p {
  margin-top: clamp(10px, 1.4vw, 18px);
  line-height: 1.85;
}
body[data-version="21-gallery-scroll"] #ubicacion .section-title-row,
body[data-version="21-gallery-scroll"] .privacy-card,
body[data-version="21-gallery-scroll"] .location-layout {
  gap: clamp(24px, 4vw, 56px);
}
body[data-version="21-gallery-scroll"] .highlight-carousel {
  max-width: none;
  width: min(100%, 1560px);
  padding-left: 0;
  padding-right: 0;
}
body[data-version="21-gallery-scroll"] .highlight-viewport {
  padding-left: max(0px, calc((100vw - 1560px) / 2));
  padding-right: max(0px, calc((100vw - 1560px) / 2));
}
body[data-version="21-gallery-scroll"] .highlight-card {
  flex-basis: clamp(720px, 76vw, 1220px);
  height: clamp(560px, 62vw, 820px);
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  outline: 0;
}
body[data-version="21-gallery-scroll"] .highlight-card:hover,
body[data-version="21-gallery-scroll"] .highlight-card.is-active {
  border-color: transparent !important;
  box-shadow: none !important;
}
body[data-version="21-gallery-scroll"] .highlight-arrow {
  background: rgba(255,250,242,.72);
}
body[data-version="21-gallery-scroll"] .highlight-dots { bottom: 18px; }

body.gallery-page[data-version="21-gallery-scroll"] .gallery-section {
  min-height: auto;
  padding-bottom: clamp(40px, 7vw, 100px);
  overflow: clip;
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-heading h1 {
  font-family: var(--serif);
  font-size: clamp(46px, 8vw, 104px);
  letter-spacing: -.048em;
  margin: 0;
  font-weight: 600;
  line-height: 1.03;
  padding-bottom: .06em;
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-heading .title-line {
  padding-bottom: .045em;
}
.gallery-scroll-showcase {
  --gallery-p: 0;
  --gallery-top: calc(-12% + (var(--gallery-p) * 42%));
  --gallery-bottom: calc(12% - (var(--gallery-p) * 42%));
  position: relative;
  height: min(360vh, 3100px);
  margin-top: clamp(34px, 6vw, 86px);
}
.gallery-showcase-sticky {
  position: sticky;
  top: var(--nav-h);
  height: calc(100svh - var(--nav-h));
  min-height: 720px;
  display: grid;
  place-items: center;
  overflow: hidden;
  isolation: isolate;
}
.gallery-showcase-sticky::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(circle at 50% 50%, rgba(196,154,101,.22), transparent 32%),
    linear-gradient(180deg, rgba(20,16,13,.2), rgba(20,16,13,.78));
  pointer-events: none;
}
.gallery-reel {
  position: absolute;
  z-index: 2;
  left: 50%;
  width: max-content;
  display: flex;
  align-items: center;
  gap: clamp(18px, 2.6vw, 38px);
  will-change: transform;
  transition: transform .08s linear;
}
.gallery-reel-top {
  top: clamp(28px, 6vh, 72px);
  transform: translate3d(calc(-50% + var(--gallery-top)), 0, 0);
}
.gallery-reel-bottom {
  bottom: clamp(28px, 6vh, 72px);
  transform: translate3d(calc(-50% + var(--gallery-bottom)), 0, 0);
}
.gallery-reel-card {
  position: relative;
  flex: 0 0 clamp(300px, 29vw, 470px);
  height: clamp(220px, 22vw, 350px);
  border: 0;
  border-radius: clamp(28px, 3vw, 48px);
  overflow: hidden;
  padding: 0;
  background: #21170f;
  cursor: pointer;
  transform: scale(.92);
  opacity: .58;
  filter: saturate(.86) brightness(.72);
  transition: opacity .35s ease, filter .35s ease, transform .35s ease;
}
.gallery-reel-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(0,0,0,.56));
  pointer-events: none;
}
.gallery-reel-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.02);
  transition: transform .6s ease;
}
.gallery-reel-card span {
  position: absolute;
  z-index: 2;
  left: 20px;
  bottom: 18px;
  color: var(--cream);
  font-weight: 850;
  text-shadow: 0 2px 18px rgba(0,0,0,.62);
}
.gallery-reel-card.is-center-active {
  opacity: 1;
  filter: saturate(1.06) brightness(1);
  transform: scale(1.04);
}
.gallery-reel-card.is-center-active img { transform: scale(1.06); }
.gallery-center-frame {
  position: relative;
  z-index: 4;
  width: min(58vw, 820px);
  height: min(60vh, 620px);
  min-height: 440px;
  border: 0;
  border-radius: clamp(34px, 4.8vw, 70px);
  overflow: hidden;
  padding: 0;
  background: #1c130e;
  color: var(--cream);
  box-shadow: 0 48px 130px rgba(0,0,0,.42);
  cursor: pointer;
  transform: translateY(calc((var(--gallery-p) - .5) * -22px)) scale(calc(.98 + var(--gallery-p) * .035));
}
.gallery-center-frame::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,.14) 42%, rgba(0,0,0,.76));
  pointer-events: none;
}
.gallery-center-frame::after {
  content: '';
  position: absolute;
  inset: clamp(10px, 1.2vw, 18px);
  z-index: 3;
  border: 1px solid rgba(255,250,242,.22);
  border-radius: inherit;
  pointer-events: none;
}
.gallery-center-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity .34s ease, transform .55s ease, filter .55s ease;
  transform: scale(1.035);
}
.gallery-center-frame.is-swapping img {
  opacity: .28;
  transform: scale(.98);
  filter: blur(2px) saturate(.8);
}
.gallery-center-frame span,
.gallery-center-frame strong,
.gallery-center-frame small {
  position: absolute;
  z-index: 4;
  left: clamp(26px, 4vw, 58px);
  right: clamp(26px, 4vw, 58px);
  text-align: left;
  pointer-events: none;
}
.gallery-center-frame span {
  bottom: clamp(130px, 15vh, 172px);
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: 12px;
  font-weight: 850;
}
.gallery-center-frame strong {
  bottom: clamp(70px, 8.5vh, 104px);
  font-family: var(--serif);
  font-size: clamp(42px, 7vw, 88px);
  line-height: 1.02;
  letter-spacing: -.045em;
  font-weight: 600;
  padding-bottom: .03em;
}
.gallery-center-frame small {
  bottom: clamp(30px, 4.2vh, 56px);
  max-width: 560px;
  color: rgba(255,250,242,.75);
  font-size: clamp(14px, 1.25vw, 17px);
  line-height: 1.65;
}
.gallery-scroll-hint {
  position: absolute;
  z-index: 5;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: rgba(255,250,242,.72);
  font-size: 13px;
  font-weight: 760;
  letter-spacing: .02em;
}
.gallery-scroll-hint span {
  width: 38px;
  height: 1px;
  background: rgba(255,250,242,.52);
  display: block;
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-grid {
  display: none !important;
}

@media (max-width: 920px) {
  body[data-version="21-gallery-scroll"] .highlight-card {
    flex-basis: min(90vw, 720px);
    height: min(118vw, 620px);
  }
  .gallery-scroll-showcase {
    height: 300vh;
  }
  .gallery-showcase-sticky {
    min-height: 680px;
  }
  .gallery-center-frame {
    width: min(82vw, 620px);
    height: 48vh;
    min-height: 390px;
  }
  .gallery-reel-card {
    flex-basis: clamp(240px, 48vw, 360px);
    height: clamp(180px, 36vw, 260px);
  }
  .gallery-reel-top { top: 34px; }
  .gallery-reel-bottom { bottom: 54px; }
}
@media (max-width: 620px) {
  body.gallery-page[data-version="21-gallery-scroll"] .gallery-heading h1 {
    font-size: clamp(42px, 13vw, 70px);
    line-height: 1.08;
  }
  .gallery-showcase-sticky {
    height: calc(100svh - var(--nav-h));
    min-height: 620px;
  }
  .gallery-center-frame {
    width: 88vw;
    height: 430px;
    min-height: 430px;
    border-radius: 34px;
  }
  .gallery-center-frame strong {
    font-size: clamp(36px, 11vw, 52px);
  }
  .gallery-center-frame span { bottom: 128px; }
  .gallery-center-frame small { font-size: 13px; }
  .gallery-reel {
    gap: 16px;
  }
  .gallery-reel-card {
    flex-basis: 210px;
    height: 160px;
    border-radius: 24px;
  }
  .gallery-scroll-hint {
    bottom: 12px;
    white-space: nowrap;
    font-size: 12px;
  }
}

/* V21 — Galería scrollytelling real: dos carruseles cruzados al centro */
body.gallery-page[data-version="21-gallery-scroll"] .gallery-section {
  overflow: visible;
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-scroll-showcase {
  --gallery-p: 0;
  --gallery-top-x: -900px;
  --gallery-bottom-x: 240px;
  height: clamp(2400px, 430vh, 3900px);
  margin-top: clamp(42px, 7vw, 110px);
  overflow: visible;
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-showcase-sticky {
  min-height: 720px;
  background:
    radial-gradient(circle at 50% 52%, rgba(196,154,101,.18), transparent 36%),
    linear-gradient(180deg, rgba(33,23,15,.28), rgba(33,23,15,.78));
  border-radius: clamp(32px, 5vw, 76px);
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-showcase-sticky::before {
  background:
    linear-gradient(90deg, rgba(20,16,13,.82), transparent 18%, transparent 82%, rgba(20,16,13,.82)),
    radial-gradient(circle at 50% 50%, rgba(196,154,101,.18), transparent 34%);
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-showcase-sticky::after {
  content: '';
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 50%;
  width: min(60vw, 830px);
  height: min(62vh, 630px);
  min-height: 430px;
  transform: translate(-50%, -50%);
  border-radius: clamp(34px, 4.8vw, 70px);
  box-shadow: inset 0 0 0 1px rgba(255,250,242,.13), 0 0 0 1px rgba(196,154,101,.08);
  pointer-events: none;
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-reel {
  left: 0;
  width: max-content;
  gap: clamp(18px, 2.4vw, 34px);
  transition: none;
  z-index: 6;
  padding-inline: 3vw;
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-reel-top {
  top: clamp(30px, 7vh, 84px);
  transform: translate3d(var(--gallery-top-x), 0, 0);
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-reel-bottom {
  bottom: clamp(34px, 7vh, 90px);
  transform: translate3d(var(--gallery-bottom-x), 0, 0);
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-reel-card {
  flex: 0 0 clamp(320px, 30vw, 520px);
  height: clamp(230px, 23vw, 360px);
  opacity: .52;
  filter: saturate(.85) brightness(.68);
  transform: translateZ(0) scale(.9);
  box-shadow: 0 22px 70px rgba(0,0,0,.25);
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-reel-card[data-clone="true"] {
  opacity: .38;
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-reel-card.is-center-active {
  opacity: 1;
  filter: saturate(1.1) brightness(1.04);
  transform: translateZ(0) scale(1.08);
  z-index: 9;
  box-shadow: 0 34px 96px rgba(0,0,0,.45);
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-reel-card.is-center-active::after {
  background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.44));
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-center-frame {
  z-index: 4;
  width: min(60vw, 830px);
  height: min(62vh, 630px);
  min-height: 430px;
  transform: translateY(calc((var(--gallery-p) - .5) * -18px)) scale(calc(.985 + var(--gallery-p) * .025));
  box-shadow: 0 52px 140px rgba(0,0,0,.46);
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-center-frame::after {
  opacity: .38;
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-center-frame img {
  transform: scale(1.05);
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-center-frame.is-swapping img {
  opacity: .18;
  transform: scale(.94);
  filter: blur(5px) saturate(.7);
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-center-frame.is-swapping {
  box-shadow: 0 30px 90px rgba(0,0,0,.34);
}
body.gallery-page[data-version="21-gallery-scroll"] .gallery-scroll-hint {
  z-index: 10;
}
@media (max-width: 920px) {
  body.gallery-page[data-version="21-gallery-scroll"] .gallery-scroll-showcase {
    height: 390vh;
  }
  body.gallery-page[data-version="21-gallery-scroll"] .gallery-showcase-sticky::after,
  body.gallery-page[data-version="21-gallery-scroll"] .gallery-center-frame {
    width: min(84vw, 650px);
    height: 50vh;
    min-height: 390px;
  }
  body.gallery-page[data-version="21-gallery-scroll"] .gallery-reel-card {
    flex-basis: clamp(250px, 54vw, 380px);
    height: clamp(180px, 38vw, 270px);
  }
}
@media (max-width: 620px) {
  body.gallery-page[data-version="21-gallery-scroll"] .gallery-scroll-showcase {
    height: 360vh;
    margin-top: 34px;
  }
  body.gallery-page[data-version="21-gallery-scroll"] .gallery-showcase-sticky {
    min-height: 660px;
    border-radius: 34px;
  }
  body.gallery-page[data-version="21-gallery-scroll"] .gallery-showcase-sticky::after,
  body.gallery-page[data-version="21-gallery-scroll"] .gallery-center-frame {
    width: 88vw;
    height: 430px;
    min-height: 430px;
  }
  body.gallery-page[data-version="21-gallery-scroll"] .gallery-reel-card {
    flex-basis: 230px;
    height: 166px;
  }
  body.gallery-page[data-version="21-gallery-scroll"] .gallery-reel-top { top: 32px; }
  body.gallery-page[data-version="21-gallery-scroll"] .gallery-reel-bottom { bottom: 58px; }
}


/* V22 — Galería 3D real, fija y controlada por scroll lateral */
body.gallery-page[data-version="22-gallery-orbit"] {
  overflow: hidden;
  height: 100svh;
  background: #15100c;
}
body.gallery-page[data-version="22-gallery-orbit"] .scroll-progress,
body.gallery-page[data-version="22-gallery-orbit"] .mobile-reserve {
  display: none !important;
}
body.gallery-page[data-version="22-gallery-orbit"] .site-header {
  background: linear-gradient(180deg, rgba(21,16,12,.92), rgba(21,16,12,.58) 68%, transparent);
  backdrop-filter: blur(18px);
}
.orbit-gallery-main {
  min-height: 100svh;
  overflow: hidden;
}
.gallery-orbit-experience {
  position: relative;
  height: 100svh;
  min-height: 720px;
  padding: calc(var(--nav-h) + clamp(16px, 3vh, 34px)) clamp(22px, 4vw, 70px) clamp(20px, 3vh, 42px);
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 50% 46%, rgba(196,154,101,.24), transparent 31%),
    radial-gradient(circle at 15% 85%, rgba(115,86,48,.22), transparent 30%),
    linear-gradient(135deg, #19120d 0%, #241811 48%, #120d0a 100%);
}
.gallery-orbit-experience::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image:
    linear-gradient(rgba(255,250,242,.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,250,242,.026) 1px, transparent 1px);
  background-size: 74px 74px;
  mask-image: radial-gradient(circle at 50% 50%, #000 10%, transparent 72%);
}
.gallery-orbit-experience::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(17,12,8,.88), transparent 18%, transparent 82%, rgba(17,12,8,.88)),
    linear-gradient(180deg, rgba(17,12,8,.68), transparent 26%, transparent 72%, rgba(17,12,8,.76));
}
.orbit-copy-panel {
  position: absolute;
  top: calc(var(--nav-h) + clamp(16px, 3vh, 34px));
  left: clamp(22px, 4vw, 70px);
  z-index: 30;
  width: min(520px, 44vw);
  color: var(--cream);
  pointer-events: none;
}
.orbit-copy-panel .overline {
  color: var(--gold);
  margin-bottom: clamp(10px, 1.8vh, 18px);
}
.orbit-copy-panel h1 {
  font-family: var(--serif);
  font-size: clamp(42px, 5.7vw, 90px);
  line-height: 1.06;
  letter-spacing: -.052em;
  font-weight: 600;
  margin: 0;
  padding-bottom: .05em;
}
.orbit-copy-panel .title-line {
  display: block;
  padding-bottom: .05em;
}
.orbit-copy-panel p {
  width: min(420px, 100%);
  margin: clamp(14px, 2vh, 20px) 0 0;
  color: rgba(255,250,242,.76);
  line-height: 1.72;
}
.orbit-stage {
  position: absolute;
  inset: calc(var(--nav-h) + 8px) 0 0;
  z-index: 5;
  perspective: 1500px;
  transform-style: preserve-3d;
  outline: none;
  cursor: ns-resize;
}
.orbit-stage::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 51%;
  width: min(68vw, 980px);
  height: min(55vh, 590px);
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(196,154,101,.26), rgba(196,154,101,.08) 42%, transparent 70%);
  filter: blur(4px);
  opacity: .75;
  pointer-events: none;
}
.orbit-focus {
  position: absolute;
  left: 50%;
  top: 51%;
  z-index: 1;
  width: min(54vw, 760px);
  height: min(50vh, 540px);
  min-height: 360px;
  transform: translate(-50%, -50%) scale(var(--focus-scale, 1));
  padding: 0;
  border: 0;
  border-radius: clamp(32px, 4.4vw, 68px);
  overflow: hidden;
  background: #21170f;
  color: var(--cream);
  box-shadow: 0 54px 150px rgba(0,0,0,.44);
  opacity: .72;
  transition: opacity .36s ease, transform .36s ease, filter .36s ease;
}
.orbit-focus::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.18) 45%, rgba(0,0,0,.84));
  pointer-events: none;
}
.orbit-focus::after {
  content: '';
  position: absolute;
  inset: 14px;
  z-index: 3;
  border: 1px solid rgba(255,250,242,.18);
  border-radius: inherit;
  pointer-events: none;
}
.orbit-focus img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.06);
  transition: opacity .24s ease, transform .55s ease, filter .55s ease;
}
.orbit-focus.is-swapping img {
  opacity: .22;
  transform: scale(.98);
  filter: blur(6px) saturate(.75);
}
.orbit-focus span,
.orbit-focus strong,
.orbit-focus small {
  position: absolute;
  left: clamp(28px, 4vw, 58px);
  right: clamp(28px, 4vw, 58px);
  z-index: 4;
  text-align: left;
  pointer-events: none;
}
.orbit-focus span {
  bottom: clamp(126px, 14vh, 160px);
  color: var(--gold);
  font-size: 12px;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .16em;
}
.orbit-focus strong {
  bottom: clamp(70px, 8.2vh, 98px);
  font-family: var(--serif);
  font-size: clamp(42px, 6.7vw, 84px);
  line-height: 1.04;
  letter-spacing: -.046em;
  font-weight: 600;
  padding-bottom: .04em;
}
.orbit-focus small {
  bottom: clamp(30px, 4vh, 52px);
  max-width: 560px;
  color: rgba(255,250,242,.76);
  font-size: clamp(14px, 1.15vw, 17px);
  line-height: 1.62;
}
.orbit-ring {
  position: absolute;
  left: 50%;
  width: 100%;
  height: clamp(210px, 25vh, 330px);
  transform-style: preserve-3d;
  pointer-events: none;
}
.orbit-ring-top {
  top: clamp(158px, 21vh, 230px);
}
.orbit-ring-bottom {
  bottom: clamp(84px, 12vh, 150px);
}
.orbit-card {
  --card-brightness: .68;
  --card-opacity: .45;
  --card-scale: .75;
  --card-blur: 0px;
  position: absolute;
  top: 50%;
  left: 50%;
  width: clamp(260px, 26vw, 430px);
  height: clamp(176px, 18vw, 292px);
  padding: 0;
  border: 0;
  border-radius: clamp(24px, 2.7vw, 44px);
  overflow: hidden;
  background: #1b120c;
  box-shadow: 0 28px 90px rgba(0,0,0,.34);
  opacity: var(--card-opacity);
  filter: saturate(.88) brightness(var(--card-brightness)) blur(var(--card-blur));
  transform-style: preserve-3d;
  will-change: transform, opacity, filter;
  pointer-events: auto;
  cursor: pointer;
}
.orbit-card::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,.12) 48%, rgba(0,0,0,.66));
  pointer-events: none;
}
.orbit-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.03);
}
.orbit-card span {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 16px;
  z-index: 4;
  color: var(--cream);
  font-weight: 850;
  letter-spacing: -.02em;
  text-shadow: 0 2px 20px rgba(0,0,0,.68);
  transform: translateZ(22px);
}
.orbit-card.is-orbit-front {
  --card-opacity: 1;
  --card-brightness: 1.06;
  filter: saturate(1.12) brightness(var(--card-brightness));
  box-shadow: 0 42px 110px rgba(0,0,0,.5);
}
.orbit-card.is-orbit-back {
  pointer-events: none;
}
.orbit-controls {
  position: absolute;
  left: 50%;
  bottom: clamp(26px, 4vh, 46px);
  z-index: 30;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: rgba(255,250,242,.78);
  font-size: 13px;
  font-weight: 760;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
  pointer-events: none;
}
.orbit-line {
  width: clamp(38px, 5vw, 72px);
  height: 1px;
  background: rgba(255,250,242,.38);
}
.orbit-progress {
  position: absolute;
  left: 50%;
  bottom: clamp(14px, 2.2vh, 24px);
  z-index: 30;
  width: min(420px, 54vw);
  height: 2px;
  transform: translateX(-50%);
  background: rgba(255,250,242,.14);
  border-radius: 999px;
  overflow: hidden;
}
.orbit-progress span {
  display: block;
  height: 100%;
  width: 18%;
  border-radius: inherit;
  background: linear-gradient(90deg, transparent, rgba(196,154,101,.95), transparent);
  transform: translateX(var(--progress-x, 0%));
}
.orbit-back {
  position: absolute;
  right: clamp(22px, 4vw, 70px);
  bottom: clamp(26px, 4vh, 46px);
  z-index: 31;
  color: rgba(255,250,242,.82);
  text-decoration: none;
  font-weight: 800;
  border: 1px solid rgba(255,250,242,.22);
  border-radius: 999px;
  padding: 12px 16px;
  background: rgba(255,250,242,.08);
  backdrop-filter: blur(16px);
}
.orbit-back:hover { background: rgba(255,250,242,.16); }
body.gallery-page[data-version="22-gallery-orbit"] .lightbox {
  z-index: 1000;
}

@media (max-width: 1040px) {
  .orbit-copy-panel {
    width: min(520px, 64vw);
  }
  .orbit-copy-panel p {
    max-width: 390px;
  }
  .orbit-focus {
    width: min(68vw, 720px);
    height: min(46vh, 520px);
  }
  .orbit-ring-top { top: clamp(190px, 25vh, 250px); }
  .orbit-ring-bottom { bottom: clamp(92px, 13vh, 150px); }
  .orbit-card {
    width: clamp(230px, 34vw, 360px);
    height: clamp(160px, 24vw, 252px);
  }
}
@media (max-width: 720px) {
  body.gallery-page[data-version="22-gallery-orbit"] .nav-links,
  body.gallery-page[data-version="22-gallery-orbit"] .nav-cta {
    display: none;
  }
  .gallery-orbit-experience {
    min-height: 100svh;
    padding-inline: 18px;
  }
  .orbit-copy-panel {
    top: calc(var(--nav-h) + 12px);
    width: calc(100vw - 36px);
    left: 18px;
  }
  .orbit-copy-panel h1 {
    font-size: clamp(36px, 10vw, 54px);
    line-height: 1.1;
  }
  .orbit-copy-panel p {
    max-width: 330px;
    font-size: 13px;
    line-height: 1.58;
  }
  .orbit-stage {
    inset: calc(var(--nav-h) + 18px) 0 0;
    perspective: 1100px;
  }
  .orbit-focus {
    top: 55%;
    width: 84vw;
    height: 42vh;
    min-height: 330px;
    border-radius: 34px;
  }
  .orbit-focus span { bottom: 116px; }
  .orbit-focus strong {
    bottom: 66px;
    font-size: clamp(34px, 10vw, 52px);
  }
  .orbit-focus small {
    font-size: 13px;
  }
  .orbit-ring {
    height: 190px;
  }
  .orbit-ring-top { top: 28%; }
  .orbit-ring-bottom { bottom: 12%; }
  .orbit-card {
    width: 220px;
    height: 154px;
    border-radius: 24px;
  }
  .orbit-card span {
    font-size: 13px;
    bottom: 12px;
  }
  .orbit-controls {
    bottom: 46px;
    font-size: 11px;
    letter-spacing: .03em;
  }
  .orbit-progress {
    bottom: 34px;
    width: 54vw;
  }
  .orbit-back {
    right: 18px;
    bottom: 10px;
    padding: 10px 12px;
    font-size: 12px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .orbit-card,
  .orbit-focus img,
  .orbit-focus {
    transition: none !important;
  }
}


/* V30 — destacados sin marco y con imágenes más grandes */
body[data-version="21-gallery-scroll"] .highlight-carousel,
body.scroll-v18[data-version="21-gallery-scroll"] .highlight-carousel {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  width: min(100%, 1720px) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body[data-version="21-gallery-scroll"] .highlight-carousel::before,
body.scroll-v18[data-version="21-gallery-scroll"] .highlight-carousel::before {
  content: none !important;
  display: none !important;
}
body[data-version="21-gallery-scroll"] .highlight-viewport,
body.scroll-v18[data-version="21-gallery-scroll"] .highlight-viewport {
  padding-top: 0 !important;
  padding-bottom: 18px !important;
  padding-left: max(0px, calc((100vw - 1720px) / 2)) !important;
  padding-right: max(0px, calc((100vw - 1720px) / 2)) !important;
}
body[data-version="21-gallery-scroll"] .highlight-card,
body.scroll-v18[data-version="21-gallery-scroll"] .highlight-card {
  flex-basis: clamp(860px, 86vw, 1420px) !important;
  width: clamp(860px, 86vw, 1420px) !important;
  height: clamp(620px, 70vw, 920px) !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.scroll-v18[data-version="21-gallery-scroll"] .highlight-card.is-prev {
  transform: translate(calc(-50% - min(37vw, 500px)), -50%) scale(.74) !important;
}
body.scroll-v18[data-version="21-gallery-scroll"] .highlight-card.is-next {
  transform: translate(calc(-50% + min(37vw, 500px)), -50%) scale(.74) !important;
}
body.scroll-v18[data-version="21-gallery-scroll"] .highlight-card.is-active {
  transform: translate(-50%, -50%) scale(1.03) !important;
}
@media (max-width: 920px) {
  body[data-version="21-gallery-scroll"] .highlight-card {
    flex-basis: clamp(340px, 92vw, 760px) !important;
    width: clamp(340px, 92vw, 760px) !important;
    height: clamp(420px, 118vw, 700px) !important;
  }
}


/* V31 — videos en recorrido y secciones que se arman con el scroll */
.chapter-visual {
  overflow: hidden;
}
.chapter-visual video {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.045);
  transition: opacity .55s ease, transform .85s ease;
  pointer-events: none;
}
.chapter-visual.has-video video {
  opacity: 1;
  transform: scale(1.015);
}
.chapter-visual.has-video > img {
  opacity: 0 !important;
}
.chapter-visual .chapter-caption {
  z-index: 3;
}
body.scroll-v18 .chapter-visual.has-video img {
  opacity: 0 !important;
}
body.scroll-v18 .chapter-visual.has-video video {
  opacity: 1 !important;
}

body.scroll-build-v31 .build-part-v31 {
  opacity: 0;
  transform: translate3d(0, 44px, 0) scale(.972);
  filter: blur(12px);
  transition:
    opacity .82s cubic-bezier(.2,.8,.2,1) var(--build-delay-v31, 0ms),
    transform .9s cubic-bezier(.2,.8,.2,1) var(--build-delay-v31, 0ms),
    filter .9s ease var(--build-delay-v31, 0ms);
  will-change: transform, opacity, filter;
}
body.scroll-build-v31 .build-part-v31.is-built-v31 {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0);
}
body.scroll-build-v31 .section-title-row.is-built-v31 h2,
body.scroll-build-v31 .contact-content.is-built-v31 h2 {
  animation: cmV31TextAssemble .9s cubic-bezier(.2,.8,.2,1) both;
}
body.scroll-build-v31 .highlight-card-copy span,
body.scroll-build-v31 .highlight-card-copy h3,
body.scroll-build-v31 .highlight-card-copy p,
body.scroll-build-v31 .chapter-caption span,
body.scroll-build-v31 .chapter-caption h3,
body.scroll-build-v31 .chapter-caption p {
  transition: opacity .45s ease, transform .45s ease;
}
body.scroll-build-v31 .highlight-card.is-active .highlight-card-copy span,
body.scroll-build-v31 .highlight-card.is-active .highlight-card-copy h3,
body.scroll-build-v31 .highlight-card.is-active .highlight-card-copy p {
  animation: cmV31TextAssemble .68s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes cmV31TextAssemble {
  from { opacity: 0; transform: translateY(18px); filter: blur(7px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}
body.scroll-build-v31 .stats-grid article.is-built-v31,
body.scroll-build-v31 .amenity-card.is-built-v31,
body.scroll-build-v31 .modality-capsule.is-built-v31,
body.scroll-build-v31 .calendar-card.is-built-v31,
body.scroll-build-v31 .booking-card.is-built-v31,
body.scroll-build-v31 .location-card.is-built-v31 {
  transform-origin: center bottom;
}
@media (max-width: 920px) {
  body.scroll-build-v31 .build-part-v31 {
    transform: translate3d(0, 24px, 0) scale(.985);
    filter: blur(6px);
  }
}
@media (prefers-reduced-motion: reduce) {
  body.scroll-build-v31 .build-part-v31,
  body.scroll-build-v31 .build-part-v31.is-built-v31,
  .chapter-visual video {
    transition: none !important;
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
}

/* V31 — galería también se arma al abrir */
body.gallery-page-v26 .gallery-copy,
body.gallery-page-v26 .sphere-carousel,
body.gallery-page-v26 .gallery-caption,
body.gallery-page-v26 .gallery-back {
  animation: cmV31GalleryBuild .95s cubic-bezier(.2,.8,.2,1) both;
}
body.gallery-page-v26 .sphere-carousel { animation-delay: .12s; }
body.gallery-page-v26 .gallery-caption { animation-delay: .24s; }
body.gallery-page-v26 .gallery-back { animation-delay: .34s; }
@keyframes cmV31GalleryBuild {
  from { opacity: 0; transform: translate3d(0, 34px, 0) scale(.975); filter: blur(10px); }
  to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); filter: blur(0); }
}


/* V32 — armado progresivo por scroll en toda la página */
body.scroll-build-v32 {
  --build-distance: 48px;
}
body.scroll-build-v32 .scroll-build-item {
  opacity: 0 !important;
  filter: blur(8px) saturate(.92);
  transition:
    opacity .72s ease,
    transform .9s cubic-bezier(.19,1,.22,1),
    filter .9s ease;
  transition-delay: calc(var(--build-order, 0) * 55ms);
  will-change: transform, opacity, filter;
}
body.scroll-build-v32 .scroll-build-item.build-from-left {
  transform: translate3d(calc(var(--build-distance) * -1), 0, 0) scale(.985) !important;
}
body.scroll-build-v32 .scroll-build-item.build-from-right {
  transform: translate3d(var(--build-distance), 0, 0) scale(.985) !important;
}
body.scroll-build-v32 .scroll-build-item.build-from-up {
  transform: translate3d(0, calc(var(--build-distance) * -1), 0) scale(.985) !important;
}
body.scroll-build-v32 .scroll-build-item.build-from-down {
  transform: translate3d(0, var(--build-distance), 0) scale(.985) !important;
}
body.scroll-build-v32 .scroll-build-item.build-fade {
  transform: scale(.985) !important;
}
body.scroll-build-v32 .scroll-build-item.is-built {
  opacity: 1 !important;
  filter: blur(0) saturate(1);
  transform: translate3d(0,0,0) scale(1) !important;
}
body.scroll-build-v32 .section,
body.scroll-build-v32 .contact-section,
body.scroll-build-v32 .chapter-section,
body.scroll-build-v32 .hero {
  overflow: clip;
}
body.scroll-build-v32 .build-section.is-complete .scroll-build-item:not(.is-built) {
  opacity: 1 !important;
  filter: blur(0);
  transform: translate3d(0,0,0) scale(1) !important;
}
body.scroll-build-v32 .highlight-card.scroll-build-item.is-built,
body.scroll-build-v32 .chapter-step.scroll-build-item.is-built,
body.scroll-build-v32 .booking-mode.scroll-build-item.is-built,
body.scroll-build-v32 .route-steps li.scroll-build-item.is-built,
body.scroll-build-v32 .pill-row span.scroll-build-item.is-built {
  transition-duration: .62s, .75s, .75s;
}
body.scroll-build-v32 .contact-content > * + * {
  transition-delay: calc(var(--build-order, 0) * 65ms);
}
@media (prefers-reduced-motion: reduce) {
  body.scroll-build-v32 .scroll-build-item,
  body.scroll-build-v32 .scroll-build-item.is-built {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
  }
}


/* V34 — ajuste puntual de amenidades y galería centrada */
body[data-version="34-galeria-centrada"] #amenidades .section-title-row p {
  display: block;
}


/* V36 — Amenidades como imágenes centrales grandes, sin cuadro de tarjeta */
body[data-version="36-amenidades-imagenes"] #amenidades {
  background: linear-gradient(180deg, var(--cream) 0%, #f6eee4 48%, var(--bg) 100%);
  padding-bottom: clamp(70px, 10vw, 150px);
}
body[data-version="36-amenidades-imagenes"] #amenidades .section-title-row {
  margin-bottom: clamp(34px, 5vw, 74px);
}
body[data-version="36-amenidades-imagenes"] #amenidades .section-title-row > p {
  display: none !important;
}
body[data-version="36-amenidades-imagenes"] #amenidades .amenity-grid {
  max-width: none !important;
  width: 100% !important;
  margin: 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: clamp(44px, 8vw, 112px) !important;
}
body[data-version="36-amenidades-imagenes"] #amenidades .amenity-card {
  width: min(92vw, 1220px) !important;
  min-height: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
  padding: 0 !important;
  display: block !important;
  cursor: default !important;
  pointer-events: none !important;
}
body[data-version="36-amenidades-imagenes"] #amenidades .amenity-card:hover,
body[data-version="36-amenidades-imagenes"] #amenidades .amenity-card.is-open {
  transform: none !important;
  box-shadow: none !important;
}
body[data-version="36-amenidades-imagenes"] #amenidades .amenity-card img {
  display: block !important;
  width: 100% !important;
  height: clamp(430px, 68vh, 780px) !important;
  object-fit: cover !important;
  border-radius: clamp(30px, 4vw, 58px) !important;
  box-shadow: 0 42px 130px rgba(65, 45, 30, .22) !important;
  margin: 0 auto !important;
}
body[data-version="36-amenidades-imagenes"] #amenidades .amenity-card button,
body[data-version="36-amenidades-imagenes"] #amenidades .amenity-card p,
body[data-version="36-amenidades-imagenes"] #amenidades .pill-row {
  display: none !important;
}
body[data-version="36-amenidades-imagenes"] #amenidades .amenity-card.amenity-image-v36 {
  opacity: 0 !important;
  transform: translate3d(0, 70px, 0) scale(.955) !important;
  filter: blur(12px) saturate(.92) !important;
  transition:
    opacity .9s ease,
    transform 1.05s cubic-bezier(.19,1,.22,1),
    filter 1.05s ease !important;
  will-change: transform, opacity, filter;
}
body[data-version="36-amenidades-imagenes"] #amenidades .amenity-card.amenity-image-v36:nth-child(even) {
  transform: translate3d(0, 78px, 0) scale(.945) !important;
}
body[data-version="36-amenidades-imagenes"] #amenidades .amenity-card.amenity-image-v36.is-amenity-visible-v36 {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) scale(1) !important;
  filter: blur(0) saturate(1) !important;
}
@media (max-width: 920px) {
  body[data-version="36-amenidades-imagenes"] #amenidades .amenity-grid {
    gap: clamp(28px, 9vw, 62px) !important;
  }
  body[data-version="36-amenidades-imagenes"] #amenidades .amenity-card {
    width: min(94vw, 760px) !important;
  }
  body[data-version="36-amenidades-imagenes"] #amenidades .amenity-card img {
    height: clamp(300px, 78vw, 560px) !important;
    border-radius: 28px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  body[data-version="36-amenidades-imagenes"] #amenidades .amenity-card.amenity-image-v36,
  body[data-version="36-amenidades-imagenes"] #amenidades .amenity-card.amenity-image-v36.is-amenity-visible-v36 {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}


/* V37 — Amenidades restauradas al estilo de la versión 30 */
body.amenidades-v30 #amenidades {
  background: linear-gradient(180deg, var(--cream), var(--bg)) !important;
  padding-bottom: var(--section-y) !important;
}
body.amenidades-v30 #amenidades .section-title-row > p {
  display: block !important;
}
body.amenidades-v30 #amenidades .amenity-grid {
  max-width: 1320px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 18px !important;
  width: auto !important;
  align-items: stretch !important;
}
body.amenidades-v30 #amenidades .amenity-card {
  width: auto !important;
  min-height: 0 !important;
  border-radius: 30px !important;
  background: rgba(255,255,255,.58) !important;
  border: 1px solid var(--line) !important;
  overflow: hidden !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  box-shadow: 0 14px 44px rgba(65,45,30,.08) !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  transition: transform .3s ease, box-shadow .3s ease, opacity .72s ease, filter .9s ease !important;
}
body.amenidades-v30 #amenidades .amenity-card:hover,
body.amenidades-v30 #amenidades .amenity-card.is-open {
  transform: translateY(-7px) !important;
  box-shadow: 0 28px 78px rgba(65,45,30,.14) !important;
}
body.amenidades-v30 #amenidades .amenity-card img {
  display: block !important;
  width: 100% !important;
  height: clamp(190px, 18vw, 235px) !important;
  object-fit: cover !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
}
body.amenidades-v30 #amenidades .amenity-card button {
  display: flex !important;
  border: 0 !important;
  background: transparent !important;
  align-items: center !important;
  justify-content: space-between !important;
  cursor: pointer !important;
  width: 100% !important;
  padding: 18px 20px !important;
  gap: 16px !important;
  text-align: left !important;
  font-family: var(--serif) !important;
  font-size: 28px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
}
body.amenidades-v30 #amenidades .amenity-card button span {
  display: block !important;
  max-width: 11.5ch !important;
}
body.amenidades-v30 #amenidades .amenity-card b {
  width: 34px !important;
  height: 34px !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  background: var(--brown-dark) !important;
  color: var(--cream) !important;
  font-family: var(--sans) !important;
  font-size: 20px !important;
  transition: transform .25s ease !important;
}
body.amenidades-v30 #amenidades .amenity-card.is-open b {
  transform: rotate(45deg) !important;
}
body.amenidades-v30 #amenidades .amenity-card p {
  display: block !important;
  color: var(--muted) !important;
  line-height: 1.7 !important;
  margin: 0 !important;
  padding: 0 20px !important;
  max-height: 0 !important;
  opacity: 0 !important;
  overflow: hidden !important;
  transition: max-height .34s ease, opacity .24s ease, padding .34s ease !important;
}
body.amenidades-v30 #amenidades .amenity-card.is-open p {
  max-height: 190px !important;
  opacity: 1 !important;
  padding: 0 20px 22px !important;
}
body.amenidades-v30 #amenidades .pill-row {
  display: flex !important;
}
@media (max-width: 1060px) {
  body.amenidades-v30 #amenidades .amenity-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 680px) {
  body.amenidades-v30 #amenidades .amenity-grid {
    grid-template-columns: 1fr !important;
  }
  body.amenidades-v30 #amenidades .amenity-card img {
    height: 210px !important;
  }
  body.amenidades-v30 #amenidades .amenity-card button {
    font-size: 23px !important;
    padding: 16px 18px !important;
  }
}


/* V38 — Lo más destacado: imagen grande centrada, sin cuadro de fondo y cambio por scroll */
body[data-version="38-destacados-imagenes-scroll"] #destacados .section-title-row,
body.scroll-v18[data-version="38-destacados-imagenes-scroll"] #destacados .section-title-row {
  position: sticky;
  top: calc(var(--nav-h, 88px) + 14px);
  z-index: 6;
  pointer-events: none;
}
body[data-version="38-destacados-imagenes-scroll"] #destacados .section-title-row p,
body.scroll-v18[data-version="38-destacados-imagenes-scroll"] #destacados .section-title-row p {
  display: none !important;
}
body[data-version="38-destacados-imagenes-scroll"] .highlight-carousel,
body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-carousel {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  width: min(100%, 1720px) !important;
  max-width: 1720px !important;
  margin-inline: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body[data-version="38-destacados-imagenes-scroll"] .highlight-carousel::before,
body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-carousel::before {
  content: none !important;
  display: none !important;
}
body[data-version="38-destacados-imagenes-scroll"] .highlight-viewport,
body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-viewport,
body[data-version="38-destacados-imagenes-scroll"] .highlight-track,
body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-track {
  background: transparent !important;
  box-shadow: none !important;
}
body[data-version="38-destacados-imagenes-scroll"] .highlight-card,
body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-card {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: hidden !important;
}
body[data-version="38-destacados-imagenes-scroll"] .highlight-card::before,
body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-card::before,
body[data-version="38-destacados-imagenes-scroll"] .highlight-card-copy,
body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-card-copy {
  display: none !important;
  opacity: 0 !important;
}
body[data-version="38-destacados-imagenes-scroll"] .highlight-card img,
body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-card img {
  border-radius: clamp(26px, 3.4vw, 48px) !important;
  box-shadow: 0 38px 120px rgba(42, 27, 18, .22) !important;
}
body[data-version="38-destacados-imagenes-scroll"] .highlight-arrow,
body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-arrow,
body[data-version="38-destacados-imagenes-scroll"] .highlight-dots,
body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-dots {
  display: none !important;
}
@media (min-width: 921px) {
  body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlights {
    min-height: 510svh !important;
    padding-top: clamp(90px, 10vw, 150px) !important;
    padding-bottom: 22svh !important;
  }
  body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-carousel {
    top: calc(var(--nav-h, 88px) + 58px) !important;
    height: calc(100svh - var(--nav-h, 88px) - 82px) !important;
    display: grid !important;
    place-items: center !important;
  }
  body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-card {
    top: 50% !important;
    left: 50% !important;
    width: min(82vw, 1320px) !important;
    height: min(70vh, 820px) !important;
    opacity: 0 !important;
    transform: translate(-50%, -50%) scale(.92) !important;
    filter: blur(8px) saturate(.9) brightness(.96) !important;
    transition: opacity .72s ease, transform .86s cubic-bezier(.19,1,.22,1), filter .86s ease !important;
    pointer-events: none !important;
  }
  body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-card.is-prev,
  body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-card.is-next {
    opacity: 0 !important;
    transform: translate(-50%, -50%) scale(.92) !important;
    pointer-events: none !important;
  }
  body.scroll-v18[data-version="38-destacados-imagenes-scroll"] .highlight-card.is-active {
    opacity: 1 !important;
    transform: translate(-50%, -50%) scale(1) !important;
    filter: blur(0) saturate(1.05) brightness(1) !important;
    pointer-events: auto !important;
    z-index: 5 !important;
  }
}
@media (max-width: 920px) {
  body[data-version="38-destacados-imagenes-scroll"] .highlight-carousel {
    padding: 0 0 20px !important;
  }
  body[data-version="38-destacados-imagenes-scroll"] .highlight-viewport {
    overflow-x: auto !important;
    padding: 12px var(--page-pad, 22px) 26px !important;
  }
  body[data-version="38-destacados-imagenes-scroll"] .highlight-track {
    gap: 18px !important;
  }
  body[data-version="38-destacados-imagenes-scroll"] .highlight-card {
    flex-basis: min(88vw, 720px) !important;
    height: min(110vw, 620px) !important;
    opacity: 1 !important;
    transform: none !important;
  }
}


/* V39 — secuencia en Lo más destacado */
@media (min-width: 921px) {
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights {
    min-height: 560svh;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights .section-title-row {
    position: sticky;
    top: calc(var(--nav-h) + 28px);
    z-index: 16;
    width: min(880px, 82vw);
    margin: 0 auto !important;
    text-align: center;
    justify-items: center;
    align-items: center;
    transition: opacity .55s ease, transform .65s cubic-bezier(.2,.8,.2,1);
    opacity: 1;
    transform: translateY(0);
    pointer-events: none;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights .section-title-row > div {
    display: grid;
    justify-items: center;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row {
    opacity: .42;
    transform: translateY(-28px) scale(.98);
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row {
    opacity: 0;
    transform: translateY(-62px) scale(.96);
  }

  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-carousel {
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
    width: min(100%, 1760px) !important;
    padding: 0 !important;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-carousel::before {
    display: none !important;
    content: none !important;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-viewport {
    width: 100% !important;
    height: 100% !important;
    padding: 0 !important;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card {
    width: min(58vw, 840px) !important;
    height: min(54vh, 520px) !important;
    border: 0 !important;
    border-radius: clamp(30px, 3.6vw, 54px) !important;
    background: transparent !important;
    box-shadow: 0 18px 72px rgba(30,18,10,.18) !important;
    opacity: 0 !important;
    transform: translate(-50%, -50%) scale(.82) !important;
    transition: opacity .55s ease, transform .65s cubic-bezier(.2,.8,.2,1), filter .55s ease, box-shadow .55s ease !important;
    filter: saturate(.94) brightness(.97) !important;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card.is-active {
    opacity: 1 !important;
    transform: translate(-50%, -50%) scale(.96) !important;
    z-index: 5;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .highlight-card.is-active,
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .highlight-card.is-active {
    width: min(82vw, 1320px) !important;
    height: min(76vh, 860px) !important;
    transform: translate(-50%, -50%) scale(1) !important;
    box-shadow: 0 40px 130px rgba(25,15,9,.26) !important;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card img {
    border-radius: clamp(30px, 3.6vw, 54px) !important;
    transform: scale(1.02) !important;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card::before {
    opacity: .72 !important;
  }

  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card.is-prev,
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card.is-next {
    opacity: 0 !important;
    pointer-events: none !important;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .highlight-card.is-prev,
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .highlight-card.is-next {
    opacity: .42 !important;
    pointer-events: auto !important;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .highlight-card.is-prev {
    transform: translate(calc(-50% - min(35vw, 460px)), -50%) scale(.72) !important;
    z-index: 2;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .highlight-card.is-next {
    transform: translate(calc(-50% + min(35vw, 460px)), -50%) scale(.72) !important;
    z-index: 2;
  }

  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card-copy {
    opacity: 0 !important;
    transform: translateY(26px) !important;
    transition: opacity .42s ease, transform .42s ease !important;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .highlight-card.is-active .highlight-card-copy {
    opacity: 1 !important;
    transform: translateY(0) !important;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card.is-prev .highlight-card-copy,
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card.is-next .highlight-card-copy {
    opacity: 0 !important;
  }

  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-arrow,
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-dots {
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity .35s ease !important;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .highlight-arrow,
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .highlight-dots {
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}


/* V40 — forzar desaparición real del título en Lo más destacado */
@media (min-width: 921px) {
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row {
    opacity: .22 !important;
    visibility: visible !important;
    transform: translateY(-42px) scale(.97) !important;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row,
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row.scroll-build-item,
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row.is-built {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(-90px) scale(.94) !important;
    pointer-events: none !important;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row *,
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row.scroll-build-item * {
    opacity: 0 !important;
    visibility: hidden !important;
  }
}


/* V42 — solo Amenidades y Contacto; no toca Lo más destacado */
body.amenidades-contacto-v42 #amenidades .section-title-row p { display:none !important; }

body.amenidades-contacto-v42 #amenidades .pill-row,
body.amenidades-v30.amenidades-contacto-v42 #amenidades .pill-row {
  display:grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 14px;
  margin-top: 28px;
}

body.amenidades-contacto-v42 #amenidades .pill-row span {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height: 118px;
  padding: 18px 14px;
  border-radius: 22px;
  background: rgba(255,250,242,.68);
  border: 1px solid rgba(91,67,48,.10);
  box-shadow: 0 12px 30px rgba(62,43,28,.08);
  color: #5a4332;
  text-align:center;
}

body.amenidades-contacto-v42 #amenidades .pill-row span svg {
  width: 30px;
  height: 30px;
  stroke: currentColor;
  stroke-width: 1.6;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .92;
}

body.amenidades-contacto-v42 #amenidades .pill-row span em {
  font-style: normal;
  font-size: 14px;
  line-height: 1.35;
  font-weight: 600;
  letter-spacing: .01em;
}

body.amenidades-contacto-v42 .contact-details {
  margin-top: 26px;
  display:grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 14px 20px;
  max-width: 860px;
  margin-inline: auto;
}

body.amenidades-contacto-v42 .contact-details div {
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(255,250,242,.10);
  border: 1px solid rgba(255,250,242,.12);
  backdrop-filter: blur(10px);
}

body.amenidades-contacto-v42 .contact-details strong {
  display:block;
  margin-bottom: 6px;
  color: rgba(255,250,242,.92);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .14em;
}

body.amenidades-contacto-v42 .contact-details a {
  color: #fffaf2;
  text-decoration: none;
  font-size: 16px;
  line-height: 1.45;
  word-break: break-word;
}

body.amenidades-contacto-v42 .contact-details a:hover { text-decoration: underline; }

@media (max-width: 980px) {
  body.amenidades-contacto-v42 #amenidades .pill-row,
  body.amenidades-v30.amenidades-contacto-v42 #amenidades .pill-row {
    grid-template-columns: repeat(3, minmax(0,1fr));
  }
}

@media (max-width: 720px) {
  body.amenidades-contacto-v42 #amenidades .pill-row,
  body.amenidades-v30.amenidades-contacto-v42 #amenidades .pill-row,
  body.amenidades-contacto-v42 .contact-details {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

@media (max-width: 520px) {
  body.amenidades-contacto-v42 #amenidades .pill-row,
  body.amenidades-v30.amenidades-contacto-v42 #amenidades .pill-row,
  body.amenidades-contacto-v42 .contact-details {
    grid-template-columns: 1fr;
  }
}


/* V43 — refinamientos de destacados, ubicación, croquis y barra de contacto */
@media (min-width: 921px) {
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights .section-title-row,
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card,
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card-copy,
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-arrow,
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-dots {
    will-change: transform, opacity;
    backface-visibility: hidden;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card {
    transition: width .55s cubic-bezier(.22,.61,.36,1), height .55s cubic-bezier(.22,.61,.36,1), opacity .45s ease, transform .55s cubic-bezier(.22,.61,.36,1), filter .45s ease, box-shadow .45s ease !important;
  }
  body.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row {
    transition-duration: .35s !important;
  }
}
body.contactbar-v43 .privacy-card-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}
body.contactbar-v43 .privacy-card .map-chip {
  margin-bottom: 14px !important;
}
body.contactbar-v43 .privacy-card h3 {
  margin-top: 0 !important;
}
body.contactbar-v43 .croquis-card {
  align-items: start !important;
}
body.contactbar-v43 .croquis-copy {
  align-self: start;
  padding-top: 0 !important;
}
body.contactbar-v43 .croquis-copy .overline {
  display: inline-block;
  margin-bottom: 12px;
  align-self: flex-start;
}
body.contactbar-v43 .contact-bar {
  margin-top: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 14px;
  border-radius: 24px;
  background: rgba(255,250,242,.10);
  border: 1px solid rgba(255,250,242,.14);
  backdrop-filter: blur(12px);
  box-shadow: 0 14px 46px rgba(0,0,0,.18);
}
body.contactbar-v43 .contact-bar-title {
  color: rgba(255,250,242,.95);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  padding: 0 10px 0 4px;
}
body.contactbar-v43 .contact-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 16px;
  border-radius: 16px;
  background: rgba(255,250,242,.08);
  border: 1px solid rgba(255,250,242,.10);
  color: #fffaf2;
  text-decoration: none;
  transition: transform .25s ease, background .25s ease, border-color .25s ease;
}
body.contactbar-v43 .contact-pill:hover {
  transform: translateY(-2px);
  background: rgba(255,250,242,.14);
  border-color: rgba(255,250,242,.22);
}
body.contactbar-v43 .contact-pill svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}
body.contactbar-v43 .contact-pill:first-of-type svg,
body.contactbar-v43 .contact-pill:last-of-type svg { fill: currentColor; stroke: none; }
body.contactbar-v43 .contact-pill span {
  font-size: 14px;
  line-height: 1.2;
  word-break: break-word;
}
@media (max-width: 760px) {
  body.contactbar-v43 .contact-bar {
    align-items: stretch;
    justify-content: stretch;
  }
  body.contactbar-v43 .contact-bar-title {
    width: 100%;
    text-align: center;
    padding: 4px 0 2px;
  }
  body.contactbar-v43 .contact-pill {
    flex: 1 1 calc(50% - 12px);
    justify-content: center;
  }
}
@media (max-width: 520px) {
  body.contactbar-v43 .contact-pill {
    flex-basis: 100%;
  }
}


/* V44 — barra de contacto en línea, sin cuadros, con separadores verticales */
body.contactbar-v44 .contact-bar {
  margin-top: 18px;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  flex-wrap: wrap;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: 0;
  backdrop-filter: none;
  box-shadow: none;
}
body.contactbar-v44 .contact-bar-title {
  color: rgba(255,250,242,.92);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  padding: 0 18px 0 0;
  margin-right: 18px;
  position: relative;
}
body.contactbar-v44 .contact-bar-title::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 24px;
  background: rgba(255,250,242,.28);
}
body.contactbar-v44 .contact-pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 42px;
  padding: 6px 18px;
  border-radius: 0;
  background: transparent;
  border: 0;
  color: #fffaf2;
  text-decoration: none;
  transition: transform .22s ease, opacity .22s ease, color .22s ease;
}
body.contactbar-v44 .contact-pill::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 24px;
  background: rgba(255,250,242,.24);
}
body.contactbar-v44 .contact-pill:last-child::after {
  display: none;
}
body.contactbar-v44 .contact-pill:hover {
  transform: translateY(-1px);
  background: transparent;
  border-color: transparent;
  color: #ffffff;
  opacity: 1;
}
body.contactbar-v44 .contact-pill svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
  opacity: .98;
}
body.contactbar-v44 .contact-pill:first-of-type svg,
body.contactbar-v44 .contact-pill:last-of-type svg {
  fill: currentColor;
  stroke: none;
}
body.contactbar-v44 .contact-pill span {
  font-size: 15px;
  line-height: 1.2;
  word-break: break-word;
}
@media (max-width: 900px) {
  body.contactbar-v44 .contact-bar {
    gap: 6px 0;
  }
  body.contactbar-v44 .contact-bar-title {
    width: 100%;
    text-align: center;
    margin-right: 0;
    padding-right: 0;
    margin-bottom: 4px;
  }
  body.contactbar-v44 .contact-bar-title::after {
    display: none;
  }
}
@media (max-width: 640px) {
  body.contactbar-v44 .contact-pill {
    padding: 6px 14px;
  }
  body.contactbar-v44 .contact-pill span {
    font-size: 14px;
  }
}
@media (max-width: 520px) {
  body.contactbar-v44 .contact-bar {
    justify-content: center;
  }
  body.contactbar-v44 .contact-pill {
    gap: 10px;
    padding: 7px 12px;
  }
}


/* V45 — fluidez general del scroll + ajustes de ubicación/croquis/contacto */
body.flowfix-v45.scroll-build-v31 .build-part-v31,
body.flowfix-v45.scroll-build-v31 .build-part-v31.is-built-v31 {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  transition: none !important;
}
body.flowfix-v45.scroll-build-v32 {
  --build-distance: 28px;
}
body.flowfix-v45.scroll-build-v32 .scroll-build-item {
  filter: blur(2px) saturate(.98) !important;
  transition:
    opacity .42s ease,
    transform .56s cubic-bezier(.22,.61,.36,1),
    filter .44s ease !important;
}
body.flowfix-v45.scroll-build-v32 .scroll-build-item.is-built {
  filter: blur(0) saturate(1) !important;
}
body.flowfix-v45 .privacy-card-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  bottom: 10px;
  padding-top: 0 !important;
  padding-bottom: clamp(30px, 4.8vw, 50px);
}
body.flowfix-v45 .privacy-card .map-chip {
  margin-bottom: 4px !important;
}
body.flowfix-v45 .privacy-card h3 {
  margin-top: 0 !important;
}
body.flowfix-v45 .croquis-card {
  align-items: start !important;
}
body.flowfix-v45 .croquis-copy {
  align-self: start;
  padding-top: 0 !important;
}
body.flowfix-v45 .croquis-copy .overline {
  display: inline-block;
  margin-top: 0 !important;
  margin-bottom: 10px;
}
body.contactbar-v45 .contact-content {
  max-width: 980px;
  min-height: min(66svh, 760px);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
body.contactbar-v45 .contact-bar {
  margin-top: auto;
  padding-top: 26px;
  margin-bottom: 0;
  align-self: center;
}
body.contactbar-v45 .contact-actions {
  margin-top: 26px;
}
body.contactbar-v45 .contact-bar-title,
body.contactbar-v45 .contact-pill {
  align-self: center;
}
@media (max-width: 900px) {
  body.contactbar-v45 .contact-content {
    min-height: auto;
  }
  body.contactbar-v45 .contact-bar {
    margin-top: 22px;
    padding-top: 20px;
  }
}


/* V46 — bajar barra de contacto y suavizar Lo más destacado */
body.contactbar-v46 .contact-content {
  min-height: min(78svh, 860px);
}
body.contactbar-v46 .contact-bar {
  margin-top: auto;
  padding-top: 42px;
  margin-bottom: 0;
  align-self: center;
}
body.contactbar-v46 .contact-actions {
  margin-top: 26px;
}
@media (max-width: 900px) {
  body.contactbar-v46 .contact-content {
    min-height: auto;
  }
  body.contactbar-v46 .contact-bar {
    margin-top: 28px;
    padding-top: 28px;
  }
}

/* dejar los elementos de build fuera de la lógica de destacados para evitar tirones */
body.flowfix-v46 #destacados .section-title-row.scroll-build-item,
body.flowfix-v46 #destacados .highlight-arrow.scroll-build-item,
body.flowfix-v46 #destacados .highlight-dots.scroll-build-item {
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
  transition: none !important;
}
@media (min-width: 921px) {
  body.flowfix-v46.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card {
    transition: width .38s cubic-bezier(.22,.61,.36,1), height .38s cubic-bezier(.22,.61,.36,1), opacity .32s ease, transform .38s cubic-bezier(.22,.61,.36,1), filter .32s ease, box-shadow .32s ease !important;
  }
  body.flowfix-v46.scroll-v18[data-version="40-destacados-title-hide"] .highlights .section-title-row {
    transition: opacity .26s ease, transform .32s cubic-bezier(.22,.61,.36,1) !important;
  }
  body.flowfix-v46.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card-copy {
    transition: opacity .28s ease, transform .28s ease !important;
  }
  body.flowfix-v46.scroll-v18[data-version="40-destacados-title-hide"] .highlight-arrow,
  body.flowfix-v46.scroll-v18[data-version="40-destacados-title-hide"] .highlight-dots {
    transition: opacity .22s ease !important;
  }
}


/* V47 — restaurar contacto v44 + corregir ubicación y recorrido visual */
body.flowfix-v47 .privacy-card-copy {
  position: absolute;
  left: 0;
  right: 0;
  top: clamp(24px, 4vw, 38px);
  bottom: auto;
  z-index: 2;
  padding: 0 clamp(24px, 4vw, 38px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}
body.flowfix-v47 .privacy-card .map-chip {
  margin-bottom: 2px !important;
}
body.flowfix-v47 .privacy-card h3 {
  margin: 0 !important;
}
body.flowfix-v47 .croquis-card {
  align-items: start !important;
}
body.flowfix-v47 .croquis-copy {
  align-self: start;
  padding-top: 0 !important;
}
body.flowfix-v47 .croquis-copy .overline {
  display: inline-block;
  margin-top: 0 !important;
  margin-bottom: 10px;
}


/* V52 — ajuste único: Lo más destacado más responsivo y sin atorones */
body.flowfix-v52 #destacados .section-title-row.scroll-build-item,
body.flowfix-v52 #destacados .highlight-arrow.scroll-build-item,
body.flowfix-v52 #destacados .highlight-dots.scroll-build-item {
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
  transition: none !important;
}
@media (min-width: 921px) {
  body.flowfix-v52.scroll-v18[data-version="40-destacados-title-hide"] .highlights .section-title-row,
  body.flowfix-v52.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card,
  body.flowfix-v52.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card-copy,
  body.flowfix-v52.scroll-v18[data-version="40-destacados-title-hide"] .highlight-arrow,
  body.flowfix-v52.scroll-v18[data-version="40-destacados-title-hide"] .highlight-dots {
    will-change: transform, opacity;
    backface-visibility: hidden;
  }
  body.flowfix-v52.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card {
    transition: width .28s cubic-bezier(.22,.61,.36,1), height .28s cubic-bezier(.22,.61,.36,1), opacity .22s linear, transform .28s cubic-bezier(.22,.61,.36,1), filter .22s linear, box-shadow .22s linear !important;
  }
  body.flowfix-v52.scroll-v18[data-version="40-destacados-title-hide"] .highlights .section-title-row {
    transition: opacity .18s linear, transform .22s cubic-bezier(.22,.61,.36,1) !important;
  }
  body.flowfix-v52.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card-copy {
    transition: opacity .18s linear, transform .18s ease !important;
  }
  body.flowfix-v52.scroll-v18[data-version="40-destacados-title-hide"] .highlight-arrow,
  body.flowfix-v52.scroll-v18[data-version="40-destacados-title-hide"] .highlight-dots {
    transition: opacity .16s linear !important;
  }
}


/* V53 — Lo más destacado: scroll más fluido y último slide con más tiempo de lectura */
@media (min-width: 921px) {
  body.flowfix-v53.scroll-v18[data-version="40-destacados-title-hide"] .highlights {
    min-height: 760svh !important;
  }
  body.flowfix-v53.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card {
    transition:
      width .52s cubic-bezier(.19,1,.22,1),
      height .52s cubic-bezier(.19,1,.22,1),
      opacity .46s ease,
      transform .52s cubic-bezier(.19,1,.22,1),
      filter .46s ease,
      box-shadow .46s ease !important;
  }
  body.flowfix-v53.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card-copy {
    transition: opacity .42s ease, transform .42s cubic-bezier(.19,1,.22,1) !important;
  }
  body.flowfix-v53.scroll-v18[data-version="40-destacados-title-hide"] .highlights .section-title-row {
    transition: opacity .34s ease, transform .42s cubic-bezier(.19,1,.22,1) !important;
  }
  body.flowfix-v53.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .highlight-card.is-prev,
  body.flowfix-v53.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .highlight-card.is-next {
    opacity: .34 !important;
  }
}


/* V54 — selector de idioma */
.language-switch {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px;
  border: 1px solid rgba(129,95,70,.24);
  border-radius: 999px;
  background: rgba(255,250,242,.50);
  backdrop-filter: blur(12px);
  color: var(--brown-dark);
  margin-left: 8px;
}
.language-switch button {
  appearance: none;
  border: 0;
  border-radius: 999px;
  padding: 7px 9px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  cursor: pointer;
}
.language-switch button.is-active,
.language-switch button[aria-pressed="true"] {
  background: var(--brown-dark);
  color: var(--cream);
}
.language-switch span {
  color: rgba(62,43,30,.42);
  font-size: 12px;
}
body.gallery-page .language-switch,
body:not(.has-scrolled) .language-switch {
  background: rgba(20,14,10,.34);
  border-color: rgba(255,250,242,.20);
  color: var(--cream);
}
body.gallery-page .language-switch span,
body:not(.has-scrolled) .language-switch span {
  color: rgba(255,250,242,.45);
}
@media (max-width: 1060px) {
  .language-switch {
    margin-left: auto;
  }
}
@media (max-width: 640px) {
  .language-switch {
    gap: 3px;
    padding: 4px;
    margin-left: 6px;
  }
  .language-switch button {
    padding: 6px 7px;
    font-size: 11px;
  }
}


/* V55 — correcciones puntuales: Destacados + selector de idioma */
/* El selector queda fuera del flujo del menú para no mover botones de menú ni Reservar. */
.language-switch {
  position: fixed !important;
  top: calc(var(--nav-h, 78px) + 12px) !important;
  right: max(14px, var(--safe)) !important;
  z-index: 940 !important;
  margin-left: 0 !important;
  transform: translateZ(0);
}
.language-switch button {
  user-select: none;
}
@media (max-width: 1060px) {
  .language-switch {
    margin-left: 0 !important;
    top: calc(var(--nav-h, 78px) + 10px) !important;
  }
}
@media (max-width: 640px) {
  .language-switch {
    right: 12px !important;
    top: calc(var(--nav-h, 78px) + 8px) !important;
  }
}

@media (min-width: 921px) {
  body.flowfix-v55.scroll-v18[data-version="40-destacados-title-hide"] .highlights {
    min-height: 880svh !important;
  }

  /* Antes de agrandar la foto, el título desaparece completo para que no interfiera. */
  body.flowfix-v55.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row,
  body.flowfix-v55.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row,
  body.flowfix-v55.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row.scroll-build-item,
  body.flowfix-v55.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row.scroll-build-item,
  body.flowfix-v55.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row.is-built,
  body.flowfix-v55.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row.is-built {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(-110px) scale(.94) !important;
    pointer-events: none !important;
    transition: opacity .22s linear, transform .30s cubic-bezier(.22,.61,.36,1), visibility 0s linear .22s !important;
  }
  body.flowfix-v55.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row *,
  body.flowfix-v55.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row * {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  /* En la fase intermedia la foto NO crece todavía: primero se limpia el título. */
  body.flowfix-v55.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .highlight-card.is-active {
    width: min(58vw, 840px) !important;
    height: min(54vh, 520px) !important;
    transform: translate(-50%, -50%) scale(.96) !important;
    box-shadow: 0 18px 72px rgba(30,18,10,.18) !important;
  }

  body.flowfix-v55.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .highlight-card.is-active {
    width: min(82vw, 1320px) !important;
    height: min(76vh, 860px) !important;
    transform: translate(-50%, -50%) scale(1) !important;
  }

  body.flowfix-v55.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card {
    transition:
      width .44s cubic-bezier(.19,1,.22,1),
      height .44s cubic-bezier(.19,1,.22,1),
      opacity .36s ease,
      transform .44s cubic-bezier(.19,1,.22,1),
      filter .34s ease,
      box-shadow .34s ease !important;
  }
}


/* V56 — corrección puntual: idioma alineado a la barra + más espacio en Destacados */
/* Mantiene la misma distancia derecha del selector, pero lo alinea verticalmente con la barra del menú al bajar. */
.language-switch {
  top: 19px !important;
  right: max(14px, var(--safe)) !important;
}
@media (max-width: 1060px) {
  .language-switch {
    top: 18px !important;
    right: max(14px, var(--safe)) !important;
  }
}
@media (max-width: 640px) {
  .language-switch {
    top: 18px !important;
    right: 12px !important;
  }
}

@media (min-width: 921px) {
  body.flowfix-v56.scroll-v18[data-version="40-destacados-title-hide"] .highlights {
    min-height: 980svh !important;
  }
  /* El título desaparece completo en una pausa amplia ANTES de que la foto crezca. */
  body.flowfix-v56.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row,
  body.flowfix-v56.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row,
  body.flowfix-v56.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row.scroll-build-item,
  body.flowfix-v56.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row.scroll-build-item,
  body.flowfix-v56.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row.is-built,
  body.flowfix-v56.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row.is-built {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(-128px) scale(.93) !important;
    pointer-events: none !important;
    transition: opacity .14s linear, transform .20s cubic-bezier(.22,.61,.36,1), visibility 0s linear .14s !important;
  }
  body.flowfix-v56.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row *,
  body.flowfix-v56.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row * {
    opacity: 0 !important;
    visibility: hidden !important;
  }
  /* Durante la pausa intermedia, la foto se mantiene chica; crece hasta entrar en is-run. */
  body.flowfix-v56.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .highlight-card.is-active {
    width: min(58vw, 840px) !important;
    height: min(54vh, 520px) !important;
    transform: translate(-50%, -50%) scale(.96) !important;
  }
}


/* V57 — ajustes solicitados: Destacados alineado, scroll fluido y nuevos assets */
@media (min-width: 921px) {
  body.flowfix-v57.scroll-v18[data-version="40-destacados-title-hide"] .highlights {
    min-height: 1220svh !important;
  }

  /* Alinear el título de Destacados con los demás títulos de la landing. */
  body.flowfix-v57.scroll-v18[data-version="40-destacados-title-hide"] .highlights .section-title-row {
    width: min(1320px, calc(100% - (var(--safe) * 2))) !important;
    max-width: 1320px !important;
    margin: 0 auto clamp(32px, 5vw, 64px) !important;
    display: grid !important;
    grid-template-columns: minmax(0, 760px) minmax(280px, 430px) !important;
    gap: clamp(22px, 7vw, 120px) !important;
    text-align: left !important;
    justify-items: start !important;
    align-items: end !important;
    top: calc(var(--nav-h) + 26px) !important;
    opacity: 1 !important;
    transform: translateY(0) !important;
    transition: opacity .22s linear, transform .26s cubic-bezier(.22,.61,.36,1) !important;
  }

  body.flowfix-v57.scroll-v18[data-version="40-destacados-title-hide"] .highlights .section-title-row > div {
    display: block !important;
    justify-items: start !important;
  }

  body.flowfix-v57.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row,
  body.flowfix-v57.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row,
  body.flowfix-v57.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row.scroll-build-item,
  body.flowfix-v57.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row.is-built {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(-86px) scale(.96) !important;
    pointer-events: none !important;
  }

  body.flowfix-v57.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row * ,
  body.flowfix-v57.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row * {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  /* El movimiento de fotos queda gobernado por el scroll con estilos inline,
     por eso las transiciones se reducen para evitar sensación de atorón. */
  body.flowfix-v57.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card {
    transition:
      width .18s linear,
      height .18s linear,
      opacity .12s linear,
      transform .12s linear,
      filter .12s linear,
      box-shadow .12s linear !important;
    will-change: transform, opacity, filter !important;
    backface-visibility: hidden;
  }

  body.flowfix-v57.scroll-v18[data-version="40-destacados-title-hide"] .highlight-card-copy {
    transition: opacity .12s linear, transform .12s linear !important;
  }

  body.flowfix-v57.scroll-v18[data-version="40-destacados-title-hide"] #destacados .section-title-row.scroll-build-item,
  body.flowfix-v57.scroll-v18[data-version="40-destacados-title-hide"] #destacados .highlight-arrow.scroll-build-item,
  body.flowfix-v57.scroll-v18[data-version="40-destacados-title-hide"] #destacados .highlight-dots.scroll-build-item {
    filter: none !important;
  }
}


/* V63 — responsive integral revisado: navegación, destacados y recorrido móvil */
body.cm-responsive-v63 *,
body.cm-responsive-v63 *::before,
body.cm-responsive-v63 *::after { box-sizing: border-box; }
body.cm-responsive-v63 { overflow-x: clip; }
body.cm-responsive-v63 img,
body.cm-responsive-v63 video { max-width: 100%; }

/* Barra base: todos los controles viven dentro de la misma nav-shell. */
body.cm-responsive-v63 .nav-shell {
  display: flex !important;
  align-items: center !important;
  overflow: visible !important;
  gap: clamp(12px, 1.5vw, 20px) !important;
}
body.cm-responsive-v63 .brand {
  order: 1 !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  min-width: 0 !important;
}
body.cm-responsive-v63 .nav-links {
  order: 2 !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
body.cm-responsive-v63 .nav-actions-v63 {
  order: 3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: clamp(8px, .8vw, 12px) !important;
  margin-left: auto !important;
  height: 100% !important;
  flex: 0 0 auto !important;
  min-width: 0 !important;
  position: relative !important;
  z-index: 12 !important;
}
body.cm-responsive-v63 .nav-actions-v63 .nav-toggle,
body.cm-responsive-v63 .nav-actions-v63 .language-switch,
body.cm-responsive-v63 .nav-actions-v63 .nav-cta {
  position: static !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  margin: 0 !important;
  transform: none !important;
  align-self: center !important;
  flex: 0 0 auto !important;
}
body.cm-responsive-v63 .nav-actions-v63 .language-switch { order: 1 !important; }
body.cm-responsive-v63 .nav-actions-v63 .nav-cta { order: 2 !important; white-space: nowrap !important; }
body.cm-responsive-v63 .nav-actions-v63 .nav-toggle { order: 3 !important; }
body.cm-responsive-v63 .nav-actions-v63 .nav-toggle { display: none !important; }

/* Tablet y celular: logo SIEMPRE a la izquierda; acciones SIEMPRE a la derecha. */
@media (max-width: 1060px) {
  body.cm-responsive-v63 .site-header { top: 0 !important; }
  body.cm-responsive-v63 .nav-shell {
    position: relative !important;
    height: var(--nav-h, 66px) !important;
    min-height: var(--nav-h, 66px) !important;
    padding-inline: clamp(12px, 3.2vw, 18px) !important;
    gap: clamp(6px, 1.8vw, 10px) !important;
  }
  body.cm-responsive-v63 .brand {
    order: 1 !important;
    width: clamp(76px, 21vw, 104px) !important;
    max-width: 108px !important;
    min-width: 58px !important;
    margin-right: auto !important;
  }
  body.cm-responsive-v63 .nav-actions-v63 {
    order: 3 !important;
    height: 100% !important;
    gap: clamp(5px, 1.6vw, 8px) !important;
    margin-left: auto !important;
  }
  body.cm-responsive-v63 .nav-actions-v63 .nav-toggle {
    order: 1 !important;
    display: grid !important;
    place-items: center !important;
    width: 38px !important;
    height: 38px !important;
  }
  body.cm-responsive-v63 .nav-actions-v63 .language-switch {
    order: 2 !important;
    display: inline-flex !important;
    gap: 3px !important;
    padding: 4px !important;
  }
  body.cm-responsive-v63 .nav-actions-v63 .language-switch button {
    padding: 6px 7px !important;
    font-size: 11px !important;
    line-height: 1 !important;
  }
  body.cm-responsive-v63 .nav-actions-v63 .nav-cta {
    order: 3 !important;
    display: inline-flex !important;
    min-height: 36px !important;
    padding: 0 12px !important;
    font-size: 11.5px !important;
    line-height: 1 !important;
    border-radius: 999px !important;
  }
  body.cm-responsive-v63 .nav-links {
    order: 2 !important;
    position: fixed !important;
    left: var(--safe) !important;
    right: var(--safe) !important;
    top: calc(var(--nav-h, 66px) + 12px) !important;
    width: auto !important;
    max-height: calc(100svh - var(--nav-h, 66px) - 28px) !important;
    overflow-y: auto !important;
    display: grid !important;
    opacity: 0 !important;
    transform: translateY(-12px) !important;
    pointer-events: none !important;
    z-index: 9 !important;
  }
  body.cm-responsive-v63 .nav-links.is-open {
    opacity: 1 !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
  }
}
@media (max-width: 520px) {
  body.cm-responsive-v63 .nav-shell {
    padding-inline: 10px !important;
    gap: 6px !important;
  }
  body.cm-responsive-v63 .brand {
    width: clamp(62px, 19vw, 78px) !important;
    max-width: 80px !important;
    min-width: 54px !important;
  }
  body.cm-responsive-v63 .nav-actions-v63 { gap: 5px !important; }
  body.cm-responsive-v63 .nav-actions-v63 .nav-toggle { width: 35px !important; height: 35px !important; }
  body.cm-responsive-v63 .nav-actions-v63 .language-switch { padding: 3px !important; gap: 2px !important; }
  body.cm-responsive-v63 .nav-actions-v63 .language-switch button { padding: 5px 5px !important; font-size: 10px !important; }
  body.cm-responsive-v63 .nav-actions-v63 .nav-cta { min-height: 34px !important; padding: 0 8px !important; font-size: 10px !important; }
}
@media (max-width: 370px) {
  body.cm-responsive-v63 .nav-shell { padding-inline: 8px !important; gap: 4px !important; }
  body.cm-responsive-v63 .brand { width: 54px !important; max-width: 54px !important; min-width: 48px !important; }
  body.cm-responsive-v63 .nav-actions-v63 { gap: 4px !important; }
  body.cm-responsive-v63 .nav-actions-v63 .nav-toggle { width: 32px !important; height: 32px !important; }
  body.cm-responsive-v63 .nav-actions-v63 .language-switch { transform: scale(.88) !important; transform-origin: center !important; }
  body.cm-responsive-v63 .nav-actions-v63 .nav-cta { min-height: 32px !important; padding: 0 6px !important; font-size: 9px !important; }
}
@media (max-width: 330px) {
  body.cm-responsive-v63 .brand { width: 48px !important; max-width: 48px !important; min-width: 44px !important; }
  body.cm-responsive-v63 .nav-actions-v63 { gap: 3px !important; }
  body.cm-responsive-v63 .nav-actions-v63 .nav-toggle { width: 30px !important; height: 30px !important; }
  body.cm-responsive-v63 .nav-actions-v63 .language-switch { transform: scale(.82) !important; }
  body.cm-responsive-v63 .nav-actions-v63 .nav-cta { padding: 0 5px !important; font-size: 8.5px !important; }
}

/* Destacados en móvil: carrusel horizontal completo, sin fotos cortadas y textos visibles. */
@media (max-width: 920px) {
  body.cm-responsive-v63 .highlights {
    min-height: auto !important;
    padding-block: clamp(70px, 12vw, 104px) !important;
    overflow: hidden !important;
  }
  body.cm-responsive-v63 .highlights .section-title-row {
    position: relative !important;
    top: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
    width: 100% !important;
    margin-bottom: clamp(26px, 7vw, 42px) !important;
    text-align: left !important;
    justify-items: start !important;
  }
  body.cm-responsive-v63 .highlight-carousel {
    position: relative !important;
    top: auto !important;
    height: auto !important;
    width: 100% !important;
    max-width: none !important;
    padding: 0 0 56px !important;
    margin: 0 !important;
    display: block !important;
    overflow: visible !important;
  }
  body.cm-responsive-v63 .highlight-carousel::before { content: none !important; display: none !important; }
  body.cm-responsive-v63 .highlight-viewport {
    width: 100% !important;
    height: auto !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    margin: 0 !important;
    padding: 0 var(--safe) 14px !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
  }
  body.cm-responsive-v63 .highlight-track {
    position: relative !important;
    display: flex !important;
    align-items: stretch !important;
    gap: 16px !important;
    width: max-content !important;
    height: auto !important;
    overflow: visible !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  body.cm-responsive-v63 .highlight-card {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: calc(100vw - (var(--safe) * 2)) !important;
    max-width: 560px !important;
    flex: 0 0 calc(100vw - (var(--safe) * 2)) !important;
    height: clamp(430px, 116vw, 560px) !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    filter: none !important;
    pointer-events: auto !important;
    scroll-snap-align: center !important;
  }
  body.cm-responsive-v63 .highlight-card img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transform: none !important;
  }
  body.cm-responsive-v63 .highlight-card-copy,
  body.cm-responsive-v63 .highlight-card.is-active .highlight-card-copy,
  body.cm-responsive-v63 .highlight-card.is-prev .highlight-card-copy,
  body.cm-responsive-v63 .highlight-card.is-next .highlight-card-copy {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    left: clamp(18px, 6vw, 28px) !important;
    right: clamp(18px, 6vw, 28px) !important;
    bottom: clamp(22px, 7vw, 34px) !important;
    max-width: none !important;
    display: block !important;
  }
  body.cm-responsive-v63 .highlight-card-copy span { display: block !important; font-size: 10px !important; letter-spacing: .13em !important; margin-bottom: 8px !important; }
  body.cm-responsive-v63 .highlight-card-copy h3 { display: block !important; font-size: clamp(28px, 8.5vw, 42px) !important; line-height: .98 !important; margin-bottom: 9px !important; }
  body.cm-responsive-v63 .highlight-card-copy p { display: block !important; font-size: clamp(12.5px, 3.6vw, 14px) !important; line-height: 1.45 !important; max-width: 38ch !important; margin: 0 !important; }
  body.cm-responsive-v63 .highlight-arrow { top: auto !important; bottom: 0 !important; transform: none !important; width: 44px !important; height: 44px !important; }
  body.cm-responsive-v63 .highlight-prev { left: var(--safe) !important; }
  body.cm-responsive-v63 .highlight-next { right: var(--safe) !important; }
  body.cm-responsive-v63 .highlight-dots { bottom: 14px !important; }
}
@media (max-width: 370px) {
  body.cm-responsive-v63 .highlight-card { height: clamp(440px, 128vw, 520px) !important; }
  body.cm-responsive-v63 .highlight-card-copy p { font-size: 12.3px !important; line-height: 1.38 !important; }
}

/* Recorrido móvil: cada número lleva su propio media; el video general no queda pegado arriba. */
.chapter-mobile-media { display: none; }
@media (max-width: 920px) {
  body.cm-responsive-v63 .chapter-section,
  body.cm-responsive-v63.scroll-v18 .chapter-section {
    display: block !important;
    min-height: auto !important;
    overflow: visible !important;
    contain: none !important;
    background: #100b08 !important;
  }
  body.cm-responsive-v63 .chapter-sticky,
  body.cm-responsive-v63.scroll-v18 .chapter-sticky {
    display: none !important;
  }
  body.cm-responsive-v63 .chapter-list,
  body.cm-responsive-v63.scroll-v18 .chapter-list {
    padding: clamp(72px, 12vw, 104px) var(--safe) clamp(80px, 13vw, 120px) !important;
    display: grid !important;
    gap: 22px !important;
    width: 100% !important;
  }
  body.cm-responsive-v63 .chapter-step,
  body.cm-responsive-v63.scroll-v18 .chapter-step {
    min-height: auto !important;
    opacity: 1 !important;
    transform: none !important;
    padding: 16px !important;
    border: 1px solid rgba(255,250,242,.12) !important;
    border-radius: 28px !important;
    background: rgba(255,250,242,.055) !important;
    backdrop-filter: blur(12px) !important;
  }
  body.cm-responsive-v63 .chapter-mobile-media {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    aspect-ratio: 16 / 11 !important;
    border-radius: 22px !important;
    overflow: hidden !important;
    margin-bottom: 18px !important;
    background: #1c130e !important;
  }
  body.cm-responsive-v63 .chapter-mobile-media video,
  body.cm-responsive-v63 .chapter-mobile-media img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  body.cm-responsive-v63 .chapter-mobile-media img { z-index: 0; }
  body.cm-responsive-v63 .chapter-mobile-media video { z-index: 1; }
  body.cm-responsive-v63 .chapter-step span { display: inline-block !important; margin-bottom: 12px !important; }
  body.cm-responsive-v63 .chapter-step h2 { font-size: clamp(32px, 10vw, 46px) !important; transform: none !important; }
  body.cm-responsive-v63 .chapter-step p { font-size: 14px !important; line-height: 1.55 !important; max-width: none !important; }
}
@media (max-width: 520px) {
  body.cm-responsive-v63 .chapter-list { gap: 18px !important; }
  body.cm-responsive-v63 .chapter-step { padding: 14px !important; border-radius: 24px !important; }
  body.cm-responsive-v63 .chapter-mobile-media { aspect-ratio: 4 / 3.6 !important; border-radius: 20px !important; }
}


/* V64 — Galería: quitar rectángulo/fondo negro de la barra de menú */
body.gallery-page.gallery-nav-clear-v64 .site-header,
body.gallery-page.gallery-nav-clear-v64.has-scrolled .site-header {
  background: transparent !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

body.gallery-page.gallery-nav-clear-v64 .nav-shell,
body.gallery-page.gallery-nav-clear-v64.has-scrolled .nav-shell,
body.gallery-page.gallery-nav-clear-v64.gallery-page-v26 .nav-shell {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}


/* V65 — croquis interactivo sin etiquetas Día/Noche */
body.croquis-v65 .ba-label {
  display: none !important;
}


/* V66 — Destacados: menor hueco de scroll y controles 1x1 gobernados por scroll */
@media (min-width: 921px) {
  body.flowfix-v66.scroll-v18[data-version="40-destacados-title-hide"] .highlights {
    min-height: 820svh !important;
  }

  body.flowfix-v66.scroll-v18[data-version="40-destacados-title-hide"] .highlights .section-title-row {
    transition: opacity .16s linear, transform .20s cubic-bezier(.22,.61,.36,1) !important;
  }

  body.flowfix-v66.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row,
  body.flowfix-v66.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row,
  body.flowfix-v66.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row.scroll-build-item,
  body.flowfix-v66.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row.scroll-build-item,
  body.flowfix-v66.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .section-title-row.is-built,
  body.flowfix-v66.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .section-title-row.is-built {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(-72px) scale(.97) !important;
    pointer-events: none !important;
  }

  body.flowfix-v66.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-expand .highlight-card.is-active {
    width: min(70vw, 1060px) !important;
    height: min(66vh, 700px) !important;
    transform: translate(-50%, -50%) scale(.99) !important;
  }

  body.flowfix-v66.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .highlight-card {
    transition: opacity .08s linear, transform .08s linear, filter .08s linear, width .16s linear, height .16s linear !important;
  }

  body.flowfix-v66.scroll-v18[data-version="40-destacados-title-hide"] .highlight-arrow,
  body.flowfix-v66.scroll-v18[data-version="40-destacados-title-hide"] .highlight-dots,
  body.flowfix-v66.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .highlight-arrow,
  body.flowfix-v66.scroll-v18[data-version="40-destacados-title-hide"] .highlights.is-run .highlight-dots {
    pointer-events: auto !important;
    z-index: 220 !important;
  }
}

/* V66 — contacto: Airbnb integrado en la misma barra */
body.contact-airbnb-v66 .contact-pill.contact-airbnb svg path,
body.contact-airbnb-v66 .contact-pill.contact-airbnb svg circle,
body.contact-airbnb-v66 .contact-pill.contact-airbnb svg rect {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 700px) {
  body.contact-airbnb-v66 .contact-bar {
    row-gap: 8px !important;
  }
}


/* V67 — Contacto centrado, Airbnb integrado sin caer solo a una línea */
body.contact-layout-v67 .contact-bar {
  width: min(100%, 1120px);
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px 0;
}
body.contact-layout-v67 .contact-bar-title {
  width: 100%;
  margin: 0;
  padding: 0;
  text-align: center;
  align-self: center;
}
body.contact-layout-v67 .contact-bar-title::after {
  display: none !important;
}
body.contact-layout-v67 .contact-links-v67 {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0;
}
body.contact-layout-v67 .contact-links-v67 .contact-pill {
  flex: 0 1 auto;
  white-space: nowrap;
  padding-left: 15px;
  padding-right: 15px;
}
body.contact-layout-v67 .contact-links-v67 .contact-pill span {
  word-break: normal;
  overflow-wrap: normal;
  white-space: nowrap;
  font-size: clamp(13px, 1vw, 15px);
}
body.contact-layout-v67 .contact-links-v67 .contact-pill:last-child::after {
  display: none !important;
}
@media (min-width: 1080px) {
  body.contact-layout-v67 .contact-links-v67 {
    flex-wrap: nowrap;
  }
  body.contact-layout-v67 .contact-links-v67 .contact-pill {
    padding-left: 13px;
    padding-right: 13px;
  }
}
@media (max-width: 1079px) {
  body.contact-layout-v67 .contact-links-v67 {
    max-width: 780px;
    row-gap: 8px;
  }
}
@media (max-width: 720px) {
  body.contact-layout-v67 .contact-links-v67 {
    max-width: 560px;
    row-gap: 6px;
  }
  body.contact-layout-v67 .contact-links-v67 .contact-pill {
    padding-left: 11px;
    padding-right: 11px;
  }
  body.contact-layout-v67 .contact-links-v67 .contact-pill span {
    font-size: 13px;
  }
}
@media (max-width: 520px) {
  body.contact-layout-v67 .contact-bar {
    gap: 10px 0;
  }
  body.contact-layout-v67 .contact-links-v67 .contact-pill {
    flex: 0 1 auto;
    padding-left: 9px;
    padding-right: 9px;
  }
  body.contact-layout-v67 .contact-links-v67 .contact-pill span {
    font-size: 12.5px;
  }
}


/* V68 — separar Contacto de los botones superiores sin cambiar la composición */
body.contact-spacing-v68 .contact-bar {
  margin-top: clamp(42px, 5vh, 64px) !important;
}
@media (max-width: 720px) {
  body.contact-spacing-v68 .contact-bar {
    margin-top: 36px !important;
  }
}


/* V69 — Galería: asegurar botón ES/EN funcional y clickeable */
body.gallery-page.langfix-v69 .site-header {
  z-index: 5000 !important;
  pointer-events: none !important;
}
body.gallery-page.langfix-v69 .nav-shell,
body.gallery-page.langfix-v69 .nav-actions-v63,
body.gallery-page.langfix-v69 .language-switch,
body.gallery-page.langfix-v69 .language-switch button,
body.gallery-page.langfix-v69 .nav-toggle,
body.gallery-page.langfix-v69 .nav-cta,
body.gallery-page.langfix-v69 .nav-links,
body.gallery-page.langfix-v69 .brand {
  pointer-events: auto !important;
}
body.gallery-page.langfix-v69 .language-switch {
  position: relative !important;
  z-index: 5100 !important;
}
body.gallery-page.langfix-v69 .gallery-sphere-stage {
  z-index: 5 !important;
}


/* V70 — Contacto: bajar los enlaces cerca del cierre y crecer todo aprox. 2 pt */
body.contact-spacing-v70 .contact-section {
  min-height: 96svh !important;
  padding-top: clamp(96px, 12vh, 136px) !important;
  padding-bottom: clamp(34px, 5.5vh, 64px) !important;
  align-items: center !important;
}
body.contact-spacing-v70 .contact-content {
  width: min(100%, 1040px) !important;
}
body.contact-spacing-v70 .contact-bar {
  margin-top: clamp(76px, 9vh, 118px) !important;
  margin-bottom: clamp(18px, 3vh, 34px) !important;
}
body.contact-spacing-v70 .contact-bar-title {
  font-size: 15px !important;
  letter-spacing: .17em !important;
}
body.contact-spacing-v70 .contact-pill {
  min-height: 46px !important;
  gap: 13px !important;
  padding-top: 7px !important;
  padding-bottom: 7px !important;
}
body.contact-spacing-v70 .contact-pill svg {
  width: 24px !important;
  height: 24px !important;
}
body.contact-spacing-v70 .contact-pill span {
  font-size: 17px !important;
  line-height: 1.22 !important;
}
@media (max-width: 900px) {
  body.contact-spacing-v70 .contact-section {
    min-height: 100svh !important;
    padding-bottom: clamp(28px, 5vh, 50px) !important;
  }
  body.contact-spacing-v70 .contact-bar {
    margin-top: clamp(62px, 8vh, 92px) !important;
  }
  body.contact-spacing-v70 .contact-bar-title {
    font-size: 14px !important;
  }
  body.contact-spacing-v70 .contact-pill span {
    font-size: 15.5px !important;
  }
}
@media (max-width: 640px) {
  body.contact-spacing-v70 .contact-section {
    min-height: auto !important;
    padding-top: 92px !important;
    padding-bottom: 34px !important;
  }
  body.contact-spacing-v70 .contact-bar {
    margin-top: 58px !important;
    margin-bottom: 10px !important;
  }
  body.contact-spacing-v70 .contact-pill {
    min-height: 44px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  body.contact-spacing-v70 .contact-pill svg {
    width: 22px !important;
    height: 22px !important;
  }
  body.contact-spacing-v70 .contact-pill span {
    font-size: 14.5px !important;
  }
}
@media (max-width: 420px) {
  body.contact-spacing-v70 .contact-bar {
    margin-top: 52px !important;
  }
  body.contact-spacing-v70 .contact-pill span {
    font-size: 14px !important;
  }
}


/* V71 — Contacto pegado al final de la imagen sin extender la landing */
body.contact-spacing-v71 .contact-section {
  min-height: 96svh !important;
  padding-top: clamp(92px, 11vh, 128px) !important;
  padding-bottom: clamp(10px, 1.6vh, 18px) !important;
  display: flex !important;
  align-items: stretch !important;
  justify-content: center !important;
}
body.contact-spacing-v71 .contact-content {
  width: min(100%, 1040px) !important;
  min-height: calc(96svh - clamp(92px, 11vh, 128px) - clamp(10px, 1.6vh, 18px)) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
}
body.contact-spacing-v71 .contact-bar {
  margin-top: auto !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
@media (max-width: 900px) {
  body.contact-spacing-v71 .contact-section {
    min-height: 100svh !important;
    padding-top: clamp(84px, 10vh, 112px) !important;
    padding-bottom: 12px !important;
  }
  body.contact-spacing-v71 .contact-content {
    min-height: calc(100svh - clamp(84px, 10vh, 112px) - 12px) !important;
  }
}
@media (max-width: 640px) {
  body.contact-spacing-v71 .contact-section {
    min-height: 100svh !important;
    padding-top: 82px !important;
    padding-bottom: 10px !important;
  }
  body.contact-spacing-v71 .contact-content {
    min-height: calc(100svh - 92px) !important;
  }
  body.contact-spacing-v71 .contact-bar {
    margin-top: auto !important;
  }
}


/* v78 — calendario público Supabase */
.availability-status {
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 760;
  letter-spacing: .02em;
}
.availability-status.is-live { color: var(--olive); }
.availability-status.is-warning { color: var(--brown-dark); }
.public-calendar-actions { margin-top: 14px; }
.day.is-busy small::after { content: ''; }
.day.is-syncing { opacity: .72; }


/* V81 — respaldo para evitar pantalla negra al abrir localmente desde admin */
body.cm-page-ready .reveal.is-visible,
body.cm-page-ready [data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}
body.cm-page-ready .hero-content,
body.cm-page-ready .hero-bottom,
body.cm-page-ready .hero-copy,
body.cm-page-ready .hero-card {
  visibility: visible;
}


/* v83 — formulario público de solicitud de reserva */
.booking-request-status {
  min-height: 22px;
  margin: 0;
  color: rgba(255, 250, 242, .72);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.45;
}
.booking-request-status.is-success { color: #f9ecd6; }
.booking-request-status.is-error { color: #ffd5c9; }
.booking-form button[disabled],
.booking-form .btn[aria-disabled="true"] {
  opacity: .58;
  cursor: not-allowed;
}
.booking-form .btn.glass {
  text-align: center;
  justify-content: center;
}


/* v84 — solicitud pública más clara y separada de WhatsApp */
.booking-flow-hint {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}
.booking-flow-hint span {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  border: 1px solid rgba(62, 43, 31, .14);
  border-radius: 999px;
  background: rgba(255,255,255,.48);
  padding: 0 12px;
  color: rgba(62,43,31,.78);
  font-size: 12px;
  font-weight: 850;
}
.booking-flow-hint strong {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--brown-dark);
  color: var(--cream);
  font-size: 11px;
  flex: 0 0 auto;
}
.booking-form-alert {
  border: 1px solid rgba(249, 236, 214, .24);
  border-radius: 18px;
  background: rgba(249, 236, 214, .10);
  padding: 14px;
  display: grid;
  gap: 5px;
  color: var(--cream);
}
.booking-form-alert strong {
  font-size: 13px;
  line-height: 1.35;
}
.booking-form-alert span {
  color: rgba(255, 250, 242, .66);
  font-size: 12px;
  line-height: 1.45;
}
.booking-form .btn.glass {
  opacity: .82;
  border-style: dashed;
}
.booking-form .btn.primary::after {
  content: ' → panel admin';
  font-size: 11px;
  opacity: .75;
  margin-left: 4px;
}
@media (max-width: 700px) {
  .booking-flow-hint { grid-template-columns: 1fr; }
  .booking-form .btn.primary::after { content: ''; }
}


/* V87 — Lo más destacado: carrusel sin margen/fondo alrededor de fotos.
   La imagen ocupa el área visual completa del carrusel y se elimina el marco de fondo. */
body.destacados-v87 .highlight-carousel::before,
body.destacados-v87.scroll-v18 .highlight-carousel::before,
body.destacados-v87.scroll-v18[data-version] .highlight-carousel::before {
  content: none !important;
  display: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
body.destacados-v87 .highlight-card,
body.destacados-v87.scroll-v18 .highlight-card {
  background: transparent !important;
  border: 0 !important;
  overflow: hidden !important;
}
body.destacados-v87 .highlight-card img,
body.destacados-v87.scroll-v18 .highlight-card img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
@media (min-width: 921px) {
  body.destacados-v87.scroll-v18 .highlight-carousel,
  body.destacados-v87.scroll-v18[data-version] .highlight-carousel {
    padding: 0 clamp(26px, 5vw, 72px) !important;
    background: transparent !important;
  }
  body.destacados-v87.scroll-v18 .highlight-viewport,
  body.destacados-v87.scroll-v18 .highlight-track {
    width: 100% !important;
    height: 100% !important;
  }
  body.destacados-v87.scroll-v18 .highlight-card {
    width: min(calc(100vw - clamp(52px, 10vw, 144px)), 1220px) !important;
    height: min(calc(100svh - var(--nav-h) - 72px), 720px) !important;
    border-radius: clamp(30px, 4vw, 58px) !important;
    box-shadow: 0 44px 120px rgba(45, 29, 20, .28) !important;
  }
  body.destacados-v87.scroll-v18 .highlight-card.is-active {
    width: min(calc(100vw - clamp(52px, 10vw, 144px)), 1220px) !important;
    height: min(calc(100svh - var(--nav-h) - 72px), 720px) !important;
    transform: translate(-50%, -50%) scale(1) !important;
  }
  body.destacados-v87.scroll-v18 .highlight-card.is-prev {
    opacity: .16 !important;
    transform: translate(calc(-50% - min(44vw, 560px)), -50%) scale(.62) !important;
  }
  body.destacados-v87.scroll-v18 .highlight-card.is-next {
    opacity: .16 !important;
    transform: translate(calc(-50% + min(44vw, 560px)), -50%) scale(.62) !important;
  }
  body.destacados-v87.scroll-v18 .highlight-arrow {
    background: rgba(255,250,242,.86) !important;
    box-shadow: 0 18px 50px rgba(42, 27, 18, .22) !important;
  }
  body.destacados-v87.scroll-v18 .highlight-prev { left: clamp(28px, 4vw, 64px) !important; }
  body.destacados-v87.scroll-v18 .highlight-next { right: clamp(28px, 4vw, 64px) !important; }
}
@media (max-width: 920px) {
  body.destacados-v87.cm-responsive-v63 .highlight-carousel,
  body.destacados-v87.scroll-v18 .highlight-carousel {
    padding-left: 0 !important;
    padding-right: 0 !important;
    background: transparent !important;
  }
  body.destacados-v87.cm-responsive-v63 .highlight-card,
  body.destacados-v87.scroll-v18 .highlight-card {
    border: 0 !important;
    box-shadow: 0 24px 70px rgba(45, 29, 20, .20) !important;
  }
}

/* V108 — Recorrido estable: una sola capa visual, sin posters ni fotogramas estáticos. */
.chapter-visual,
.chapter-mobile-media {
  background: #100b08;
}
.chapter-visual video,
body.scroll-v18 .chapter-visual video {
  opacity: 0 !important;
  visibility: hidden !important;
}
.chapter-visual.has-video-source > img,
.chapter-visual.is-video-loading > img,
.chapter-visual.is-empty > img,
body.scroll-v18 .chapter-visual.has-video-source > img,
body.scroll-v18 .chapter-visual.is-video-loading > img,
body.scroll-v18 .chapter-visual.is-empty > img {
  opacity: 0 !important;
  visibility: hidden !important;
}
.chapter-visual.is-video-playing video,
body.scroll-v18 .chapter-visual.is-video-playing video {
  opacity: 1 !important;
  visibility: visible !important;
}

@media (max-width: 920px) {
  body.cm-responsive-v63 .chapter-mobile-media video {
    opacity: 0 !important;
    visibility: hidden !important;
  }
  body.cm-responsive-v63 .chapter-mobile-media.has-video-source img,
  body.cm-responsive-v63 .chapter-mobile-media.is-empty img {
    opacity: 0 !important;
    visibility: hidden !important;
  }
  body.cm-responsive-v63 .chapter-mobile-media.is-video-playing video {
    opacity: 1 !important;
    visibility: visible !important;
  }
}

/* V109 — Recorrido: mostrar cada video en su primer fotograma decodificado, sin espera visual. */
.chapter-visual video,
body.scroll-v18 .chapter-visual video {
  transition: opacity .18s ease, transform .45s ease !important;
}


/* V110 — Convivencia precargada: segunda capa dedicada, siempre oculta hasta estar lista. */
#chapterVideoConvivencia { z-index: 1; }
#chapterVideo { z-index: 0; }

/* V111 — Destacados: títulos editables sin líneas pegadas ni desbordes. */
#destacados .section-title-row h2 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(6px, .12em, 12px);
  line-height: 1.02 !important;
  overflow: visible;
}

#destacados .section-title-row h2 .title-line {
  display: block;
  width: 100%;
  max-width: 100%;
  white-space: normal !important;
  line-height: 1.02;
  padding-bottom: .055em;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

#destacados .section-title-row h2 .title-line:empty {
  display: none;
}

@media (max-width: 700px) {
  #destacados .section-title-row h2 {
    gap: clamp(5px, .11em, 9px);
  }
}


/* v114 — reserva automática con Conekta y retención visible de 10 minutos */
.booking-payment-panel {
  border: 1px solid rgba(249, 236, 214, .28);
  border-radius: 22px;
  background: rgba(249, 236, 214, .10);
  padding: 18px;
  display: grid;
  gap: 12px;
}
.booking-payment-panel[hidden] { display: none !important; }
.booking-payment-panel > strong {
  font-family: var(--serif);
  color: var(--cream);
  font-size: clamp(25px, 3vw, 34px);
  line-height: 1.05;
}
.booking-payment-panel p { margin: 0; }
.booking-payment-countdown {
  font-variant-numeric: tabular-nums;
  font-size: clamp(34px, 6vw, 52px);
  line-height: 1;
  font-weight: 900;
  letter-spacing: .04em;
  color: #f9ecd6;
}
.booking-payment-panel .btn { justify-content: center; text-align: center; }
.booking-payment-panel .btn[aria-disabled="true"] {
  pointer-events: none;
  opacity: .55;
}
.booking-payment-whatsapp {
  color: rgba(255,250,242,.78);
  text-decoration: underline;
  text-underline-offset: 4px;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}
.booking-payment-panel.is-expired { border-color: rgba(255, 149, 122, .42); }
.booking-form .btn.primary::after { content: ' → pago seguro'; }
@media (max-width: 700px) {
  .booking-form .btn.primary::after { content: ''; }
}


/* V115 — ajustes puntuales de landing: carga de hero, botones de modalidades y reserva */
/* Evita mostrar el texto HTML de respaldo antes de aplicar el contenido vigente de Supabase. */
body:not(.cm-content-ready) [data-cm-content="home.hero_subtitle"] {
  visibility: hidden;
}
body.cm-content-ready [data-cm-content="home.hero_subtitle"] {
  visibility: visible;
}

/* El texto del botón queda limpio; el indicador de flecha conserva su tratamiento. */
.modality-action > span:first-child {
  width: auto;
  height: auto;
  border-radius: 0;
  display: inline;
  place-items: initial;
  background: transparent;
  color: inherit;
  transition: none;
}
.modality-action:hover > span:first-child {
  transform: none;
  background: transparent;
}

/* Título de modalidad ocupa naturalmente el espacio liberado al retirar el cintillo. */
.booking-panel-title {
  margin-top: 2px;
}

/* Botón principal sin borde/contorno blanco del control nativo. */
#bookingSubmit {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  outline: 0;
  box-shadow: 0 14px 30px rgba(0, 0, 0, .22);
}
#bookingSubmit:focus-visible {
  outline: 2px solid rgba(192, 145, 92, .78);
  outline-offset: 3px;
}


/* v116 · validación preventiva de contacto en reservación */
.booking-field-error {
  display: block;
  min-height: 1.25em;
  margin-top: .42rem;
  color: #ffd5c9;
  font-size: .84rem;
  line-height: 1.35;
}
.booking-form input.is-invalid {
  border-color: rgba(255, 151, 126, .9);
  box-shadow: 0 0 0 3px rgba(255, 151, 126, .12);
}

/* V121 — Checkout Component embebido de Conekta */
.booking-payment-embedded {
  padding: clamp(18px, 3vw, 30px);
  gap: 20px;
  background:
    radial-gradient(circle at 90% 0%, rgba(215,185,140,.16), transparent 35%),
    rgba(19, 24, 20, .92);
  box-shadow: 0 24px 70px rgba(0,0,0,.22);
}
.booking-payment-heading {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
}
.booking-payment-mark {
  width: 64px;
  height: 64px;
  object-fit: contain;
  opacity: .94;
}
.booking-payment-heading > div:nth-child(2) {
  display: grid;
  gap: 5px;
}
.booking-payment-heading .overline { margin: 0; }
.booking-payment-heading strong {
  display: block;
  font-family: var(--serif);
  color: var(--cream);
  font-size: clamp(25px, 3vw, 36px);
  line-height: 1.04;
}
.booking-payment-heading p { margin: 0; color: rgba(255,250,242,.72); }
.booking-payment-heading .booking-payment-countdown {
  min-width: 132px;
  text-align: right;
}
.booking-payment-resume {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid rgba(249,236,214,.16);
  border-radius: 16px;
  overflow: hidden;
  background: rgba(255,255,255,.025);
}
.booking-payment-resume > div {
  padding: 14px 16px;
  display: grid;
  gap: 4px;
  border-right: 1px solid rgba(249,236,214,.12);
}
.booking-payment-resume > div:last-child { border-right: 0; }
.booking-payment-resume span {
  color: rgba(255,250,242,.58);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.booking-payment-resume strong {
  color: var(--cream);
  font-size: 14px;
  line-height: 1.3;
}
.conekta-checkout-shell {
  min-height: 280px;
  padding: clamp(10px, 2vw, 18px);
  border-radius: 18px;
  background: #111713;
  border: 1px solid rgba(215,185,140,.2);
}
.conekta-checkout-loader {
  padding: 22px;
  color: rgba(255,250,242,.72);
  text-align: center;
  font-weight: 700;
}
.conekta-checkout-loader[hidden] { display: none !important; }
#conektaCheckoutComponent { width: 100%; min-height: 220px; }
.conekta-checkout-status {
  margin: 10px 4px 0;
  color: rgba(255,250,242,.78);
  font-size: 13px;
  text-align: center;
}
.conekta-checkout-status.is-success { color: #d8efc5; }
.conekta-checkout-status.is-error { color: #ffb49f; }
.conekta-checkout-status.is-processing { color: #f5ddb2; }
.booking-payment-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px 22px;
}
.booking-payment-fallback,
.booking-payment-whatsapp {
  color: rgba(255,250,242,.72);
  text-decoration: underline;
  text-underline-offset: 4px;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}
.booking-payment-fallback[hidden] { display: none !important; }
.booking-payment-panel.is-expired .conekta-checkout-shell { opacity: .55; pointer-events: none; }

@media (max-width: 800px) {
  .booking-payment-heading {
    grid-template-columns: 52px minmax(0, 1fr);
  }
  .booking-payment-mark { width: 52px; height: 52px; }
  .booking-payment-heading .booking-payment-countdown {
    grid-column: 1 / -1;
    text-align: left;
    min-width: 0;
  }
  .booking-payment-resume { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-payment-resume > div:nth-child(2) { border-right: 0; }
  .booking-payment-resume > div:nth-child(-n+2) { border-bottom: 1px solid rgba(249,236,214,.12); }
}

@media (max-width: 520px) {
  .booking-payment-resume { grid-template-columns: 1fr; }
  .booking-payment-resume > div {
    border-right: 0;
    border-bottom: 1px solid rgba(249,236,214,.12);
  }
  .booking-payment-resume > div:last-child { border-bottom: 0; }
  .conekta-checkout-shell { padding: 6px; }
}

/* V122 — sección de pago a todo el ancho y flujo embebido corregido */
.booking-section > .booking-payment-panel {
  width: 100%;
  max-width: none;
  margin-top: clamp(26px, 4vw, 46px);
  grid-column: 1 / -1;
}
.booking-section > .booking-payment-panel[hidden] {
  display: none !important;
}
.booking-section > .booking-payment-panel:not([hidden]) {
  display: grid;
}
#conektaCheckoutComponent iframe {
  width: 100% !important;
  min-height: 714px;
  border: 0;
  display: block;
}
@media (max-width: 800px) {
  .booking-section > .booking-payment-panel {
    margin-top: 24px;
  }
  #conektaCheckoutComponent iframe {
    min-height: 780px;
  }
}

/* v124 · Pago estable a todo lo ancho mediante checkout seguro alojado */
.booking-payment-redirect {
  min-height: 0;
  padding: clamp(22px, 3vw, 36px);
  display: grid;
  place-items: center;
  text-align: center;
}
.booking-payment-secure-copy {
  max-width: 760px;
  color: rgba(255,250,242,.82);
  font-size: clamp(1rem, 1.5vw, 1.18rem);
  line-height: 1.55;
}
.booking-payment-actions { justify-content: center; }
.booking-payment-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 0 34px;
  border-radius: 999px;
  background: #5a3826;
  color: #fffaf2;
  text-decoration: none;
  font-weight: 800;
  box-shadow: 0 18px 38px rgba(0,0,0,.20);
}

/* V126 — panel de pago alineado con los márgenes generales de la landing */
.booking-section > .booking-payment-panel {
  width: 100%;
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
}

/* V127 — contador del checkout más fino e integrado */
.booking-payment-heading .booking-payment-countdown {
  min-width: 118px;
  display: grid;
  justify-items: end;
  gap: 5px;
  font-size: clamp(28px, 3.2vw, 40px);
  line-height: .95;
  font-weight: 700;
  letter-spacing: .025em;
  color: rgba(249, 236, 214, .94);
}

.booking-payment-heading .booking-payment-countdown::before {
  content: 'TIEMPO RESTANTE';
  font-family: var(--sans);
  font-size: 10px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .16em;
  color: rgba(215, 185, 140, .78);
  white-space: nowrap;
}

@media (max-width: 800px) {
  .booking-payment-heading .booking-payment-countdown {
    justify-items: start;
    gap: 4px;
    font-size: clamp(27px, 8vw, 36px);
  }
}


/* V129 — identificación visible del titular de la reservación en la ficha de pago */
.booking-payment-resume > .booking-payment-name {
  grid-column: 1 / -1;
  border-right: 0;
  border-bottom: 1px solid rgba(249,236,214,.12);
}
.booking-payment-resume > .booking-payment-name strong {
  font-size: 15px;
}
@media (max-width: 800px) and (min-width: 521px) {
  .booking-payment-resume > div:nth-child(2) { border-right: 1px solid rgba(249,236,214,.12); }
  .booking-payment-resume > div:nth-child(3) { border-right: 0; border-bottom: 1px solid rgba(249,236,214,.12); }
}

/* V131 — estado final de reservación confirmada después del pago */
.booking-payment-panel.is-confirmed {
  border-color: rgba(159, 198, 126, .38);
}
.booking-payment-panel.is-confirmed .booking-payment-countdown {
  display: none !important;
}
.booking-payment-panel.is-confirmed .conekta-checkout-shell {
  border-color: rgba(159, 198, 126, .28);
  background: rgba(17, 29, 20, .92);
}
.booking-payment-panel.is-confirmed .booking-payment-secure-copy {
  color: rgba(226, 241, 213, .92);
}

/* V134 — vencimiento limpio y seguro del checkout */
.booking-payment-panel.is-expired-final .booking-payment-resume,
.booking-payment-panel.is-expired-final .booking-payment-actions,
.booking-payment-panel.is-expired-final .booking-payment-countdown {
  display: none !important;
}
.booking-payment-panel.is-expired-final .conekta-checkout-shell {
  opacity: 1;
  pointer-events: none;
  min-height: 0;
}

/* V146 — Experiencias: testimonios editoriales con pausa de lectura guiada por scroll.
   Alcance deliberadamente limitado a #experiencias. */
.experience-section {
  --experience-progress: 0;
  position: relative;
  min-height: 500svh;
  background: #241b15;
  color: var(--cream);
  isolation: isolate;
}

.experience-sticky {
  position: sticky;
  top: 0;
  min-height: 100svh;
  display: grid;
  align-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 42% 38%, rgba(199,151,79,.16), transparent 34%),
    linear-gradient(135deg, #2b2119 0%, #1d211b 58%, #171713 100%);
}

.experience-ambient {
  position: absolute;
  inset: -18%;
  pointer-events: none;
  opacity: .85;
  background:
    radial-gradient(circle at 22% 35%, rgba(255,250,242,.055), transparent 26%),
    radial-gradient(circle at 80% 70%, rgba(199,151,79,.08), transparent 30%);
  transform: scale(1.03);
  transition: opacity .35s ease;
}

.experience-shell {
  width: min(1380px, calc(100% - clamp(36px, 8vw, 132px)));
  min-height: min(82svh, 820px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(250px, .72fr) minmax(0, 1.5fr);
  grid-template-rows: 1fr auto;
  column-gap: clamp(42px, 7vw, 120px);
  align-items: center;
  position: relative;
  z-index: 1;
}

.experience-heading {
  align-self: center;
  max-width: 440px;
}

.experience-heading .experience-overline {
  color: #d3a25d;
  margin-bottom: 18px;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 800;
}

.experience-heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(46px, 5.4vw, 84px);
  line-height: .91;
  font-weight: 500;
  letter-spacing: -.045em;
  color: #fffaf2;
  text-wrap: balance;
}

.experience-heading p {
  margin: 24px 0 0;
  max-width: 360px;
  color: rgba(255,250,242,.62);
  font-size: 14px;
  line-height: 1.7;
}

.experience-stage {
  min-height: clamp(360px, 48svh, 570px);
  position: relative;
  display: grid;
  align-items: center;
}

.experience-review {
  position: absolute;
  inset: 0;
  display: grid;
  align-content: center;
  opacity: 0;
  transform: translate3d(0, 42px, 0) scale(.985);
  filter: blur(10px);
  pointer-events: none;
  will-change: opacity, transform, filter;
}

.experience-review blockquote {
  margin: 0;
  max-width: 900px;
  font-family: var(--serif);
  font-size: clamp(32px, 4vw, 62px);
  line-height: 1.03;
  letter-spacing: -.025em;
  font-weight: 500;
  color: rgba(255,250,242,.96);
  text-wrap: balance;
}

.experience-review footer {
  margin-top: clamp(28px, 4vh, 44px);
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--sans);
}

.experience-review footer strong {
  font-size: 15px;
  color: #fffaf2;
  letter-spacing: .01em;
}

.experience-review footer span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: rgba(255,250,242,.58);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.experience-review footer span::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #c99a58;
  box-shadow: 0 0 0 4px rgba(201,154,88,.08);
}

.experience-footer {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto minmax(120px, 1fr) auto;
  gap: 20px;
  align-items: center;
  padding-top: 26px;
  border-top: 1px solid rgba(255,250,242,.12);
  color: rgba(255,250,242,.55);
  font-family: var(--sans);
}

.experience-count {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  letter-spacing: .14em;
}

.experience-count b,
.experience-count em {
  font-style: normal;
  font-weight: 800;
}

.experience-count b { color: #fffaf2; }
.experience-count i {
  display: block;
  width: 18px;
  height: 1px;
  background: rgba(255,250,242,.28);
}

.experience-progress {
  height: 1px;
  background: rgba(255,250,242,.12);
  overflow: hidden;
}

.experience-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, #bd8842, #ecd6ad);
  transform: scaleX(0);
  transform-origin: left center;
  will-change: transform;
}

.experience-scroll-hint {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  white-space: nowrap;
}

@media (max-width: 920px) {
  .experience-section { min-height: 440svh; }
  .experience-sticky { min-height: 100svh; }
  .experience-shell {
    width: min(100% - 36px, 720px);
    min-height: 88svh;
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr auto;
    gap: 0;
    align-content: center;
    padding: max(76px, env(safe-area-inset-top)) 0 30px;
  }
  .experience-heading {
    max-width: 620px;
    margin-bottom: 28px;
  }
  .experience-heading .experience-overline { margin-bottom: 10px; }
  .experience-heading h2 {
    max-width: 650px;
    font-size: clamp(38px, 11vw, 60px);
    line-height: .94;
  }
  .experience-heading p {
    margin-top: 14px;
    font-size: 12px;
  }
  .experience-stage {
    min-height: clamp(300px, 48svh, 470px);
  }
  .experience-review blockquote {
    font-size: clamp(29px, 7.4vw, 44px);
    line-height: 1.04;
  }
  .experience-review footer { margin-top: 24px; }
  .experience-footer {
    grid-template-columns: auto 1fr;
    gap: 14px;
    padding-top: 18px;
  }
  .experience-scroll-hint { display: none; }
}

@media (max-width: 560px) {
  .experience-section { min-height: 405svh; }
  .experience-shell { width: calc(100% - 30px); }
  .experience-heading h2 { font-size: clamp(35px, 10.5vw, 48px); }
  .experience-heading p { display: none; }
  .experience-stage { min-height: 52svh; }
  .experience-review blockquote {
    font-size: clamp(27px, 7.5vw, 38px);
    line-height: 1.055;
  }
  .experience-review footer {
    margin-top: 22px;
    flex-wrap: wrap;
  }
}

@media (prefers-reduced-motion: reduce) {
  .experience-section {
    min-height: auto;
    padding: 100px 0;
  }
  .experience-sticky {
    position: relative;
    min-height: auto;
    overflow: visible;
  }
  .experience-shell {
    min-height: auto;
    grid-template-columns: 1fr;
    gap: 54px;
  }
  .experience-stage {
    min-height: auto;
    display: grid;
    gap: 54px;
  }
  .experience-review {
    position: relative;
    inset: auto;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
  .experience-review blockquote { font-size: clamp(28px, 5vw, 48px); }
  .experience-footer { display: none; }
}


/* V147 — Recorrido fluido: fotograma de respaldo visible durante la preparación del video. */
.chapter-visual > img,
body.scroll-v18 .chapter-visual > img {
  transition: opacity .22s ease !important;
}
.chapter-visual.has-video-source:not(.is-video-playing) > img,
.chapter-visual.is-video-loading:not(.is-video-playing) > img,
body.scroll-v18 .chapter-visual.has-video-source:not(.is-video-playing) > img,
body.scroll-v18 .chapter-visual.is-video-loading:not(.is-video-playing) > img {
  opacity: 1 !important;
  visibility: visible !important;
}
.chapter-visual.is-video-playing > img,
body.scroll-v18 .chapter-visual.is-video-playing > img {
  opacity: 0 !important;
  visibility: visible !important;
}
.chapter-visual video,
body.scroll-v18 .chapter-visual video {
  transition: opacity .20s ease, transform .42s ease !important;
}

@media (max-width: 920px) {
  body.cm-responsive-v63 .chapter-mobile-media.has-video-source:not(.is-video-playing) img {
    opacity: 1 !important;
    visibility: visible !important;
  }
  body.cm-responsive-v63 .chapter-mobile-media.is-video-playing img {
    opacity: 0 !important;
    visibility: visible !important;
  }
  body.cm-responsive-v63 .chapter-mobile-media img,
  body.cm-responsive-v63 .chapter-mobile-media video {
    transition: opacity .20s ease !important;
  }
}

/* V148 — Destacados inmersivos: imagen a tamaño completo de sección, título arriba y ficha abajo. */
body.destacados-v148 #destacados {
  position: relative;
  background: #100b08 !important;
}

@media (min-width: 921px) {
  body.destacados-v148.scroll-v18 #destacados {
    min-height: 820svh !important;
    padding: 0 !important;
    overflow: clip !important;
    background: #100b08 !important;
  }

  /* El encabezado de la sección vive sobre la imagen y permanece en la esquina superior izquierda. */
  body.destacados-v148.scroll-v18 #destacados .section-title-row,
  body.destacados-v148.scroll-v18 #destacados.is-intro .section-title-row,
  body.destacados-v148.scroll-v18 #destacados.is-expand .section-title-row,
  body.destacados-v148.scroll-v18 #destacados.is-run .section-title-row,
  body.destacados-v148.scroll-v18 #destacados .section-title-row.scroll-build-item,
  body.destacados-v148.scroll-v18 #destacados .section-title-row.is-built {
    position: sticky !important;
    top: var(--nav-h, 78px) !important;
    z-index: 260 !important;
    width: 100% !important;
    max-width: none !important;
    height: 1px !important;
    min-height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: none !important;
    transition: none !important;
  }
  body.destacados-v148.scroll-v18 #destacados .section-title-row > div {
    position: absolute !important;
    top: clamp(26px, 3.5vh, 44px) !important;
    left: clamp(28px, 4.8vw, 78px) !important;
    width: min(760px, 72vw) !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }
  body.destacados-v148.scroll-v18 #destacados .section-title-row *,
  body.destacados-v148.scroll-v18 #destacados.is-expand .section-title-row *,
  body.destacados-v148.scroll-v18 #destacados.is-run .section-title-row * {
    opacity: 1 !important;
    visibility: visible !important;
  }
  body.destacados-v148.scroll-v18 #destacados .section-title-row .overline {
    color: #ddb46f !important;
    text-shadow: 0 2px 18px rgba(0,0,0,.45) !important;
  }
  body.destacados-v148.scroll-v18 #destacados .section-title-row h2 {
    margin: 8px 0 0 !important;
    max-width: 760px !important;
    color: var(--cream) !important;
    font-size: clamp(42px, 5vw, 74px) !important;
    line-height: .92 !important;
    letter-spacing: -.045em !important;
    text-shadow: 0 4px 28px rgba(0,0,0,.48) !important;
  }

  /* La escena del carrusel ocupa toda la sección visible, sin tarjeta ni marco alrededor. */
  body.destacados-v148.scroll-v18 #destacados .highlight-carousel,
  body.destacados-v148.scroll-v18 #destacados[data-version] .highlight-carousel {
    position: sticky !important;
    top: var(--nav-h, 78px) !important;
    width: 100vw !important;
    max-width: none !important;
    height: calc(100svh - var(--nav-h, 78px)) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    display: block !important;
    background: #100b08 !important;
  }
  body.destacados-v148.scroll-v18 #destacados .highlight-carousel::before {
    content: none !important;
    display: none !important;
  }
  body.destacados-v148.scroll-v18 #destacados .highlight-viewport,
  body.destacados-v148.scroll-v18 #destacados .highlight-track {
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
  body.destacados-v148.scroll-v18 #destacados .highlight-card,
  body.destacados-v148.scroll-v18 #destacados .highlight-card.is-active,
  body.destacados-v148.scroll-v18 #destacados .highlight-card.is-prev,
  body.destacados-v148.scroll-v18 #destacados .highlight-card.is-next {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100% !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #100b08 !important;
    overflow: hidden !important;
    will-change: transform, opacity !important;
  }
  body.destacados-v148.scroll-v18 #destacados .highlight-card img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    border-radius: 0 !important;
    object-fit: cover !important;
    transform: scale(1.015) !important;
    filter: saturate(1.03) contrast(1.01) !important;
  }
  body.destacados-v148.scroll-v18 #destacados .highlight-card::before {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    border-radius: 0 !important;
    opacity: 1 !important;
    background:
      linear-gradient(180deg, rgba(8,7,5,.58) 0%, rgba(8,7,5,.18) 25%, rgba(8,7,5,.02) 48%, rgba(8,7,5,.18) 65%, rgba(8,7,5,.78) 100%) !important;
    pointer-events: none !important;
  }

  /* Texto propio de cada destacado: siempre abajo a la izquierda. */
  body.destacados-v148.scroll-v18 #destacados .highlight-card-copy,
  body.destacados-v148.scroll-v18 #destacados .highlight-card.is-active .highlight-card-copy {
    position: absolute !important;
    z-index: 3 !important;
    left: clamp(28px, 4.8vw, 78px) !important;
    right: auto !important;
    bottom: clamp(42px, 7vh, 76px) !important;
    width: min(760px, 72vw) !important;
    max-width: 760px !important;
    color: var(--cream) !important;
    text-align: left !important;
    pointer-events: none !important;
  }
  body.destacados-v148.scroll-v18 #destacados .highlight-card-copy span {
    color: #ddb46f !important;
    font-size: 12px !important;
    letter-spacing: .18em !important;
    margin-bottom: 10px !important;
    text-shadow: 0 2px 16px rgba(0,0,0,.45) !important;
  }
  body.destacados-v148.scroll-v18 #destacados .highlight-card-copy h3 {
    margin: 0 0 12px !important;
    color: var(--cream) !important;
    font-size: clamp(38px, 4.2vw, 68px) !important;
    line-height: .96 !important;
    letter-spacing: -.04em !important;
    text-shadow: 0 4px 26px rgba(0,0,0,.50) !important;
  }
  body.destacados-v148.scroll-v18 #destacados .highlight-card-copy p {
    max-width: 620px !important;
    margin: 0 !important;
    color: rgba(255,250,242,.88) !important;
    font-size: clamp(14px, 1.2vw, 17px) !important;
    line-height: 1.55 !important;
    text-shadow: 0 2px 18px rgba(0,0,0,.52) !important;
  }

  /* Se conservan flechas y puntos en sus posiciones de navegación. */
  body.destacados-v148.scroll-v18 #destacados .highlight-arrow {
    top: 50% !important;
    width: 52px !important;
    height: 52px !important;
    transform: translateY(-50%) !important;
    z-index: 280 !important;
    background: rgba(255,250,242,.88) !important;
    border: 1px solid rgba(255,250,242,.44) !important;
    box-shadow: 0 16px 46px rgba(0,0,0,.24) !important;
    backdrop-filter: blur(14px) !important;
  }
  body.destacados-v148.scroll-v18 #destacados .highlight-prev { left: clamp(20px, 2.8vw, 48px) !important; }
  body.destacados-v148.scroll-v18 #destacados .highlight-next { right: clamp(20px, 2.8vw, 48px) !important; }
  body.destacados-v148.scroll-v18 #destacados .highlight-dots {
    z-index: 280 !important;
    bottom: clamp(20px, 2.8vh, 30px) !important;
  }
  body.destacados-v148.scroll-v18 #destacados .highlight-dots button {
    background: rgba(255,250,242,.40) !important;
  }
  body.destacados-v148.scroll-v18 #destacados .highlight-dots button.is-active {
    background: var(--cream) !important;
  }
}

/* Móvil/tablet: mismo lenguaje de pantalla completa, conservando swipe y controles existentes. */
@media (max-width: 920px) {
  body.destacados-v148 #destacados,
  body.destacados-v148.cm-responsive-v63 #destacados {
    position: relative !important;
    min-height: auto !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #100b08 !important;
  }
  body.destacados-v148 #destacados .section-title-row,
  body.destacados-v148.cm-responsive-v63 #destacados .section-title-row {
    position: absolute !important;
    z-index: 40 !important;
    top: clamp(26px, 7vw, 42px) !important;
    left: var(--safe) !important;
    right: var(--safe) !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: none !important;
  }
  body.destacados-v148 #destacados .section-title-row *,
  body.destacados-v148.cm-responsive-v63 #destacados .section-title-row * {
    opacity: 1 !important;
    visibility: visible !important;
  }
  body.destacados-v148 #destacados .section-title-row .overline {
    color: #ddb46f !important;
    text-shadow: 0 2px 14px rgba(0,0,0,.45) !important;
  }
  body.destacados-v148 #destacados .section-title-row h2 {
    color: var(--cream) !important;
    font-size: clamp(36px, 11vw, 54px) !important;
    line-height: .94 !important;
    text-shadow: 0 3px 22px rgba(0,0,0,.48) !important;
  }
  body.destacados-v148 #destacados .highlight-carousel,
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-carousel {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #100b08 !important;
    overflow: hidden !important;
  }
  body.destacados-v148 #destacados .highlight-viewport,
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-viewport {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: auto !important;
  }
  body.destacados-v148 #destacados .highlight-track,
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-track {
    gap: 0 !important;
  }
  body.destacados-v148 #destacados .highlight-card,
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-card {
    width: 100vw !important;
    max-width: none !important;
    flex: 0 0 100vw !important;
    height: min(82svh, 760px) !important;
    min-height: 560px !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #100b08 !important;
  }
  body.destacados-v148 #destacados .highlight-card img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 0 !important;
  }
  body.destacados-v148 #destacados .highlight-card::before {
    border-radius: 0 !important;
    opacity: 1 !important;
    background: linear-gradient(180deg, rgba(8,7,5,.56) 0%, rgba(8,7,5,.08) 43%, rgba(8,7,5,.80) 100%) !important;
  }
  body.destacados-v148 #destacados .highlight-card-copy,
  body.destacados-v148 #destacados .highlight-card.is-active .highlight-card-copy {
    left: var(--safe) !important;
    right: var(--safe) !important;
    bottom: clamp(74px, 13vw, 104px) !important;
    width: auto !important;
    max-width: 620px !important;
  }
  body.destacados-v148 #destacados .highlight-card-copy h3 {
    font-size: clamp(32px, 9vw, 48px) !important;
    line-height: .98 !important;
  }
  body.destacados-v148 #destacados .highlight-card-copy p {
    max-width: 42ch !important;
    color: rgba(255,250,242,.88) !important;
  }
  body.destacados-v148 #destacados .highlight-arrow {
    bottom: 18px !important;
    z-index: 50 !important;
    background: rgba(255,250,242,.88) !important;
  }
  body.destacados-v148 #destacados .highlight-prev { left: var(--safe) !important; }
  body.destacados-v148 #destacados .highlight-next { right: var(--safe) !important; }
  body.destacados-v148 #destacados .highlight-dots {
    bottom: 32px !important;
    z-index: 50 !important;
  }
  body.destacados-v148 #destacados .highlight-dots button { background: rgba(255,250,242,.40) !important; }
  body.destacados-v148 #destacados .highlight-dots button.is-active { background: var(--cream) !important; }
}

@media (max-width: 520px) {
  body.destacados-v148 #destacados .highlight-card,
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-card {
    height: 82svh !important;
    min-height: 520px !important;
  }
  body.destacados-v148 #destacados .section-title-row h2 {
    font-size: clamp(34px, 10.5vw, 46px) !important;
  }
  body.destacados-v148 #destacados .highlight-card-copy p {
    font-size: 13px !important;
    line-height: 1.45 !important;
  }
}

/* V149 — auditoría responsiva móvil. Exclusivamente <= 920px; escritorio queda intacto. */
@media (max-width: 920px) {
  /* En móvil ya existe CTA de reserva en la cabecera: se elimina el duplicado fijo inferior. */
  body.cm-responsive-v63 .mobile-reserve {
    display: none !important;
  }
  body.cm-responsive-v63 {
    padding-bottom: 0 !important;
  }

  /* Destacados: restaurar carrusel táctil real y mantener proporción inmersiva. */
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-viewport {
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-x: contain !important;
  }
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-track {
    display: flex !important;
    width: max-content !important;
    height: auto !important;
  }
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-card {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    filter: none !important;
    pointer-events: auto !important;
    scroll-snap-align: center !important;
  }
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-card img {
    opacity: 1 !important;
    visibility: visible !important;
  }

  /* Números rápidos: secundarios, compactos y en dos columnas en vez de tarjetas gigantes. */
  body.cm-responsive-v63 .stats-section {
    padding-top: 50px !important;
    padding-bottom: 50px !important;
  }
  body.cm-responsive-v63 .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  body.cm-responsive-v63 .stats-grid article {
    min-height: 132px !important;
    padding: 18px !important;
    border-radius: 22px !important;
    gap: 8px !important;
    justify-content: center !important;
  }
  body.cm-responsive-v63 .stats-grid strong {
    font-size: clamp(46px, 13vw, 66px) !important;
    line-height: .9 !important;
    margin: 0 !important;
  }
  body.cm-responsive-v63 .stats-grid span {
    max-width: 13ch !important;
    margin: 0 !important;
    font-size: 12.5px !important;
    line-height: 1.28 !important;
    font-weight: 650 !important;
  }

  /* Chips de amenidades: siguen visibles, pero dejan de competir con las amenidades principales. */
  body.amenidades-contacto-v42.cm-responsive-v63 #amenidades .pill-row,
  body.amenidades-v30.amenidades-contacto-v42.cm-responsive-v63 #amenidades .pill-row {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin-top: 18px !important;
  }
  body.amenidades-contacto-v42.cm-responsive-v63 #amenidades .pill-row span {
    min-height: 82px !important;
    padding: 12px 8px !important;
    border-radius: 18px !important;
    gap: 7px !important;
    box-shadow: 0 8px 22px rgba(62,43,28,.055) !important;
  }
  body.amenidades-contacto-v42.cm-responsive-v63 #amenidades .pill-row span svg {
    width: 23px !important;
    height: 23px !important;
  }
  body.amenidades-contacto-v42.cm-responsive-v63 #amenidades .pill-row span em {
    font-size: 11.5px !important;
    line-height: 1.22 !important;
    font-weight: 620 !important;
  }

  /* Amenidades principales: conservar protagonismo, pero reducir altura y tipografía en móvil/tablet. */
  body.cm-responsive-v63 #amenidades .amenity-card img {
    height: clamp(190px, 48vw, 250px) !important;
  }
  body.cm-responsive-v63 #amenidades .amenity-card button {
    padding: 17px 18px 9px !important;
    font-size: clamp(20px, 5.2vw, 25px) !important;
    line-height: 1.08 !important;
  }
  body.cm-responsive-v63 #amenidades .amenity-card p {
    padding: 7px 18px 18px !important;
    font-size: 13px !important;
    line-height: 1.52 !important;
  }

  /* Contacto: jerarquía clara; acciones secundarias más discretas. */
  body.cm-responsive-v63 .contact-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
    width: 100% !important;
    margin-top: 20px !important;
  }
  body.cm-responsive-v63 .contact-actions .btn {
    width: 100% !important;
    min-height: 44px !important;
    padding: 0 14px !important;
    font-size: 13px !important;
    box-shadow: none !important;
  }
  body.cm-responsive-v63 .contact-actions .btn:nth-child(1),
  body.cm-responsive-v63 .contact-actions .btn:nth-child(2) {
    grid-column: 1 / -1 !important;
    min-height: 50px !important;
    font-size: 14px !important;
  }
  body.cm-responsive-v63 .contact-actions .btn:nth-child(3),
  body.cm-responsive-v63 .contact-actions .btn:nth-child(4) {
    background: rgba(255,250,242,.12) !important;
    border-color: rgba(255,250,242,.24) !important;
  }
  body.cm-responsive-v63 .contact-actions .btn:nth-child(5) {
    grid-column: 1 / -1 !important;
    width: auto !important;
    justify-self: center !important;
    min-height: 36px !important;
    padding: 0 16px !important;
    background: transparent !important;
    border-color: transparent !important;
    font-size: 12px !important;
    color: rgba(255,250,242,.70) !important;
    text-decoration: underline !important;
    text-underline-offset: 4px !important;
    backdrop-filter: none !important;
  }
}

@media (max-width: 700px) {
  /* Hero: menos saturación visual y una jerarquía más clara. */
  body.cm-responsive-v63 .hero-content {
    padding-top: 88px !important;
    padding-bottom: 42px !important;
  }
  body.cm-responsive-v63 .hero .eyebrow {
    font-size: 9.5px !important;
    line-height: 1.35 !important;
    letter-spacing: .12em !important;
    margin-bottom: 10px !important;
  }
  body.cm-responsive-v63 .hero-title {
    font-size: clamp(34px, 10.8vw, 48px) !important;
    line-height: .88 !important;
  }
  body.cm-responsive-v63 .hero-bottom {
    margin-top: 16px !important;
    gap: 14px !important;
  }
  body.cm-responsive-v63 .hero-copy h2 {
    max-width: 12.5ch !important;
    font-size: clamp(25px, 7.6vw, 34px) !important;
    line-height: 1.01 !important;
    margin-bottom: 10px !important;
  }
  body.cm-responsive-v63 .hero-copy p {
    font-size: 13px !important;
    line-height: 1.5 !important;
    max-width: 42ch !important;
  }
  body.cm-responsive-v63 .hero-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
    margin-top: 16px !important;
  }
  body.cm-responsive-v63 .hero-actions .btn {
    width: 100% !important;
    min-height: 42px !important;
    padding: 0 12px !important;
    font-size: 12.5px !important;
    box-shadow: none !important;
  }
  body.cm-responsive-v63 .hero-actions .btn:first-child {
    grid-column: 1 / -1 !important;
    min-height: 48px !important;
    font-size: 14px !important;
    box-shadow: 0 12px 28px rgba(49,31,20,.18) !important;
  }
  body.cm-responsive-v63 .hero-actions .btn.glass {
    background: rgba(255,250,242,.12) !important;
    border-color: rgba(255,255,255,.28) !important;
  }
  body.cm-responsive-v63 .scroll-cue {
    display: none !important;
  }

  /* Encabezados de sección: un punto menos de protagonismo en pantalla estrecha. */
  body.cm-responsive-v63 .section-title-row h2,
  body.cm-responsive-v63 .gallery-heading h2,
  body.cm-responsive-v63 .contact-content h2 {
    font-size: clamp(30px, 8.8vw, 40px) !important;
    line-height: 1 !important;
  }

  /* Destacados: título superior compacto y controles proporcionados. */
  body.destacados-v148.cm-responsive-v63 #destacados .section-title-row {
    top: 24px !important;
    left: 18px !important;
    right: 18px !important;
  }
  body.destacados-v148.cm-responsive-v63 #destacados .section-title-row .overline {
    font-size: 9.5px !important;
    letter-spacing: .14em !important;
    margin-bottom: 7px !important;
  }
  body.destacados-v148.cm-responsive-v63 #destacados .section-title-row h2 {
    max-width: 12ch !important;
    font-size: clamp(29px, 8.4vw, 37px) !important;
    line-height: .98 !important;
  }
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-card,
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-card.is-active {
    height: 76svh !important;
    min-height: 510px !important;
  }
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-card-copy,
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-card.is-active .highlight-card-copy {
    left: 18px !important;
    right: 18px !important;
    bottom: 74px !important;
  }
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-card-copy span {
    font-size: 9px !important;
    margin-bottom: 6px !important;
  }
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-card-copy h3 {
    font-size: clamp(26px, 7.6vw, 34px) !important;
    line-height: 1 !important;
    margin-bottom: 7px !important;
  }
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-card-copy p {
    font-size: 12px !important;
    line-height: 1.4 !important;
    max-width: 38ch !important;
  }
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-arrow {
    width: 38px !important;
    height: 38px !important;
    bottom: 17px !important;
    font-size: 20px !important;
  }
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-prev { left: 18px !important; }
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-next { right: 18px !important; }
  body.destacados-v148.cm-responsive-v63 #destacados .highlight-dots {
    bottom: 26px !important;
  }

  /* Contacto: texto secundario y datos de contacto compactos. */
  body.cm-responsive-v63 .contact-content p {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }
  body.cm-responsive-v63 .contact-bar {
    margin-top: 20px !important;
    padding-top: 18px !important;
  }
}

@media (max-width: 520px) {
  /* Barra superior más contenida sin eliminar ninguna función. */
  body.cm-responsive-v63 .nav-shell {
    padding-inline: 8px !important;
  }
  body.cm-responsive-v63 .brand {
    width: clamp(58px, 17vw, 70px) !important;
    max-width: 70px !important;
  }
  body.cm-responsive-v63 .nav-actions-v63 {
    gap: 4px !important;
  }
  body.cm-responsive-v63 .nav-actions-v63 .nav-toggle {
    width: 32px !important;
    height: 32px !important;
  }
  body.cm-responsive-v63 .nav-actions-v63 .language-switch {
    padding: 2px !important;
  }
  body.cm-responsive-v63 .nav-actions-v63 .language-switch button {
    padding: 4px !important;
    font-size: 9px !important;
  }
  body.cm-responsive-v63 .nav-actions-v63 .nav-cta {
    min-height: 31px !important;
    padding: 0 7px !important;
    font-size: 9.5px !important;
  }

  body.amenidades-contacto-v42.cm-responsive-v63 #amenidades .pill-row,
  body.amenidades-v30.amenidades-contacto-v42.cm-responsive-v63 #amenidades .pill-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body.amenidades-contacto-v42.cm-responsive-v63 #amenidades .pill-row span {
    min-height: 78px !important;
  }

  body.cm-responsive-v63 .stats-grid article {
    min-height: 122px !important;
    padding: 15px !important;
  }
  body.cm-responsive-v63 .stats-grid strong {
    font-size: clamp(42px, 12.5vw, 58px) !important;
  }
  body.cm-responsive-v63 .stats-grid span {
    font-size: 11.5px !important;
  }
}

/* ============================================================
   V150 — RESPONSIVE INTEGRAL TABLET / CELULAR
   Alcance: SOLO <= 920px. La experiencia de escritorio (>920px)
   conserva exactamente las reglas aprobadas de V149/V148.
   ============================================================ */

/* Elementos auxiliares del menú móvil: invisibles en escritorio. */
.nav-mobile-tools-v150 { display: none; }

@media (max-width: 920px) {
  :root {
    --cm-mobile-gutter: clamp(16px, 4.6vw, 30px);
  }

  /* Guardia de ancho: evita desplazamientos laterales y márgenes asimétricos en Safari/iOS. */
  html,
  body.mobile-layout-v150 {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
  body.mobile-layout-v150 main,
  body.mobile-layout-v150 main > section {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    clear: both !important;
  }
  body.mobile-layout-v150 main > section {
    position: relative;
    isolation: isolate;
  }
  body.mobile-layout-v150 .section:not(#destacados) {
    padding-left: var(--cm-mobile-gutter) !important;
    padding-right: var(--cm-mobile-gutter) !important;
  }
  body.mobile-layout-v150 .section-title-row,
  body.mobile-layout-v150 .pricing-layout,
  body.mobile-layout-v150 .calendar-layout,
  body.mobile-layout-v150 .location-layout,
  body.mobile-layout-v150 .gallery-heading,
  body.mobile-layout-v150 .amenity-grid,
  body.mobile-layout-v150 .stats-grid {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* CABECERA: en tablet/celular la barra superior queda sólo con logo + menú.
     Idioma y Reserva pasan al panel desplegable para no competir por ancho. */
  body.mobile-layout-v150 .site-header,
  body.mobile-layout-v150.has-scrolled .site-header {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    padding: 8px var(--cm-mobile-gutter) 0 !important;
  }
  body.mobile-layout-v150 .nav-shell,
  body.mobile-layout-v150.has-scrolled .nav-shell {
    width: 100% !important;
    max-width: 100% !important;
    height: 58px !important;
    min-height: 58px !important;
    margin: 0 auto !important;
    padding: 5px 9px 5px 12px !important;
    gap: 8px !important;
    border-radius: 22px !important;
  }
  body.mobile-layout-v150 .brand {
    width: clamp(76px, 20vw, 98px) !important;
    min-width: 0 !important;
    max-width: 98px !important;
    margin-right: auto !important;
  }
  body.mobile-layout-v150 .brand img {
    width: 100% !important;
    max-height: 45px !important;
  }
  body.mobile-layout-v150 .nav-actions-v63 {
    width: auto !important;
    flex: 0 0 auto !important;
    margin-left: auto !important;
    gap: 0 !important;
  }
  body.mobile-layout-v150 .nav-actions-v63 > .language-switch,
  body.mobile-layout-v150 .nav-actions-v63 > .nav-cta {
    display: none !important;
  }
  body.mobile-layout-v150 .nav-actions-v63 .nav-toggle {
    display: grid !important;
    place-items: center !important;
    width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 50% !important;
    background: rgba(255,250,242,.12) !important;
  }
  body.mobile-layout-v150.has-scrolled .nav-actions-v63 .nav-toggle {
    background: rgba(91,67,48,.07) !important;
  }
  body.mobile-layout-v150 .nav-toggle span {
    width: 18px !important;
    height: 1.5px !important;
    margin: 3px auto !important;
  }
  body.mobile-layout-v150 .nav-links {
    left: var(--cm-mobile-gutter) !important;
    right: var(--cm-mobile-gutter) !important;
    top: 74px !important;
    width: auto !important;
    max-width: none !important;
    padding: 12px !important;
    border-radius: 22px !important;
    gap: 0 !important;
  }
  body.mobile-layout-v150 .nav-links a {
    padding: 11px 12px !important;
    font-size: 13px !important;
  }
  body.mobile-layout-v150 .nav-mobile-tools-v150 {
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    gap: 9px !important;
    align-items: center !important;
    padding: 12px 4px 2px !important;
  }
  body.mobile-layout-v150 .nav-mobile-language-v150 {
    display: inline-flex !important;
    position: static !important;
    inset: auto !important;
    margin: 0 !important;
    transform: none !important;
    padding: 3px !important;
    gap: 2px !important;
    background: rgba(91,67,48,.07) !important;
    color: var(--ink) !important;
  }
  body.mobile-layout-v150 .nav-mobile-language-v150 button {
    padding: 6px 8px !important;
    font-size: 10.5px !important;
  }
  body.mobile-layout-v150 .nav-mobile-reserve-v150 {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 38px !important;
    padding: 0 14px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--brown-dark) !important;
    color: var(--cream) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
  }

  /* Botones: base táctil correcta sin convertir cada acción secundaria en protagonista. */
  body.mobile-layout-v150 .btn {
    min-height: 42px !important;
    padding: 0 16px !important;
    font-size: 13px !important;
    line-height: 1.1 !important;
    border-radius: 999px !important;
  }
  body.mobile-layout-v150 .hero-actions .btn {
    min-height: 42px !important;
    font-size: 12.5px !important;
  }
  body.mobile-layout-v150 .hero-actions .btn:first-child {
    min-height: 44px !important;
    font-size: 13px !important;
  }
  body.mobile-layout-v150 .contact-actions .btn {
    min-height: 40px !important;
    font-size: 12.5px !important;
  }
  body.mobile-layout-v150 .contact-actions .btn:nth-child(1),
  body.mobile-layout-v150 .contact-actions .btn:nth-child(2) {
    min-height: 44px !important;
    font-size: 13px !important;
  }

  /* DESTACADOS: vuelve a ser scrollytelling real también en tablet/celular.
     No existe pista horizontal; cada destacado ocupa el viewport y el scroll
     gobierna la transición, igual que la lógica aprobada de escritorio. */
  body.mobile-layout-v150.destacados-v148 #destacados,
  body.mobile-layout-v150.destacados-v148.cm-responsive-v63 #destacados {
    min-height: 520svh !important;
    height: auto !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #100b08 !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .section-title-row,
  body.mobile-layout-v150.destacados-v148.cm-responsive-v63 #destacados .section-title-row {
    position: absolute !important;
    z-index: 90 !important;
    top: 88px !important;
    left: var(--cm-mobile-gutter) !important;
    right: var(--cm-mobile-gutter) !important;
    width: auto !important;
    margin: 0 !important;
    pointer-events: none !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .section-title-row h2 {
    max-width: 11.5ch !important;
    font-size: clamp(31px, 8vw, 48px) !important;
    line-height: .96 !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .section-title-row .overline {
    font-size: 9.5px !important;
    letter-spacing: .15em !important;
    margin-bottom: 8px !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-carousel,
  body.mobile-layout-v150.destacados-v148.cm-responsive-v63 #destacados .highlight-carousel {
    position: sticky !important;
    top: 0 !important;
    width: 100% !important;
    height: 100svh !important;
    min-height: 100svh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #100b08 !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-viewport,
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-track {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    display: block !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-track {
    width: 100% !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-card,
  body.mobile-layout-v150.destacados-v148.cm-responsive-v63 #destacados .highlight-card,
  body.mobile-layout-v150.destacados-v148.cm-responsive-v63 #destacados .highlight-card.is-active {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 100% !important;
    max-width: none !important;
    height: 100svh !important;
    min-height: 100svh !important;
    flex: none !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    scroll-snap-align: none !important;
    background: #100b08 !important;
    will-change: transform, opacity !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-card img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-card-copy,
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-card.is-active .highlight-card-copy {
    left: var(--cm-mobile-gutter) !important;
    right: var(--cm-mobile-gutter) !important;
    bottom: clamp(78px, 11svh, 112px) !important;
    width: auto !important;
    max-width: 620px !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-card-copy h3 {
    font-size: clamp(25px, 6.4vw, 39px) !important;
    line-height: 1 !important;
    margin-bottom: 7px !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-card-copy p {
    max-width: 42ch !important;
    font-size: clamp(11.5px, 2.8vw, 13.5px) !important;
    line-height: 1.42 !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-arrow {
    width: 38px !important;
    height: 38px !important;
    top: auto !important;
    bottom: 18px !important;
    transform: none !important;
    font-size: 19px !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-prev { left: var(--cm-mobile-gutter) !important; }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-next { right: var(--cm-mobile-gutter) !important; }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-dots { bottom: 29px !important; }

  /* Flujo vertical: las secciones normales recuperan su caja propia y no invaden la siguiente. */
  body.mobile-layout-v150 .stats-section,
  body.mobile-layout-v150 #amenidades,
  body.mobile-layout-v150 #info-util,
  body.mobile-layout-v150 #modalidades,
  body.mobile-layout-v150 #fechas,
  body.mobile-layout-v150 #ubicacion,
  body.mobile-layout-v150 #contacto {
    z-index: 2;
    overflow: clip;
  }
  body.mobile-layout-v150 .stats-section,
  body.mobile-layout-v150 #amenidades,
  body.mobile-layout-v150 #info-util,
  body.mobile-layout-v150 #modalidades,
  body.mobile-layout-v150 #fechas,
  body.mobile-layout-v150 #ubicacion {
    padding-top: clamp(64px, 10vw, 88px) !important;
    padding-bottom: clamp(64px, 10vw, 88px) !important;
  }

  /* Estadísticas y elementos secundarios: jerarquía claramente menor. */
  body.mobile-layout-v150 .stats-grid article {
    min-height: 108px !important;
    padding: 14px !important;
    border-radius: 19px !important;
  }
  body.mobile-layout-v150 .stats-grid strong {
    font-size: clamp(38px, 8.5vw, 56px) !important;
  }
  body.mobile-layout-v150 .stats-grid span {
    font-size: 11.5px !important;
    line-height: 1.2 !important;
  }
  body.mobile-layout-v150.amenidades-contacto-v42 #amenidades .pill-row span {
    min-height: 68px !important;
    padding: 9px 7px !important;
    border-radius: 16px !important;
    gap: 5px !important;
  }
  body.mobile-layout-v150.amenidades-contacto-v42 #amenidades .pill-row span svg {
    width: 20px !important;
    height: 20px !important;
  }
  body.mobile-layout-v150.amenidades-contacto-v42 #amenidades .pill-row span em {
    font-size: 10.5px !important;
    line-height: 1.16 !important;
  }

  /* Recorrido: tarjetas móviles quedan en flujo normal y nunca se superponen. */
  body.mobile-layout-v150 .chapter-section,
  body.mobile-layout-v150.scroll-v18 .chapter-section {
    z-index: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }
  body.mobile-layout-v150 .chapter-list,
  body.mobile-layout-v150.scroll-v18 .chapter-list {
    width: 100% !important;
    max-width: 760px !important;
    margin: 0 auto !important;
    padding-left: var(--cm-mobile-gutter) !important;
    padding-right: var(--cm-mobile-gutter) !important;
  }
  body.mobile-layout-v150 .chapter-step,
  body.mobile-layout-v150.scroll-v18 .chapter-step {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  /* Experiencias: caja centrada y contenida en el viewport. */
  body.mobile-layout-v150 #experiencias .experience-shell {
    width: min(calc(100% - (var(--cm-mobile-gutter) * 2)), 720px) !important;
    margin-inline: auto !important;
  }
}

/* Tablet: utilizar mejor el ancho sin agrandar elementos secundarios. */
@media (min-width: 641px) and (max-width: 920px) {
  body.mobile-layout-v150 .stats-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
  body.mobile-layout-v150.amenidades-contacto-v42 #amenidades .pill-row,
  body.mobile-layout-v150.amenidades-v30.amenidades-contacto-v42 #amenidades .pill-row {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
  body.mobile-layout-v150 .hero-actions {
    grid-template-columns: repeat(3, minmax(0, auto)) !important;
    justify-content: start !important;
  }
  body.mobile-layout-v150 .hero-actions .btn:first-child {
    grid-column: auto !important;
  }
}

/* Celular: proporciones y márgenes pensados para 320–600px. */
@media (max-width: 600px) {
  :root { --cm-mobile-gutter: clamp(14px, 4.6vw, 20px); }

  body.mobile-layout-v150 .site-header,
  body.mobile-layout-v150.has-scrolled .site-header {
    padding-top: 6px !important;
  }
  body.mobile-layout-v150 .nav-shell,
  body.mobile-layout-v150.has-scrolled .nav-shell {
    height: 54px !important;
    min-height: 54px !important;
    padding: 4px 7px 4px 10px !important;
    border-radius: 19px !important;
  }
  body.mobile-layout-v150 .brand {
    width: clamp(70px, 22vw, 88px) !important;
    max-width: 88px !important;
  }
  body.mobile-layout-v150 .brand img { max-height: 42px !important; }
  body.mobile-layout-v150 .nav-actions-v63 .nav-toggle {
    width: 38px !important;
    height: 38px !important;
  }
  body.mobile-layout-v150 .nav-links { top: 66px !important; }

  body.mobile-layout-v150 .hero-content {
    padding-left: var(--cm-mobile-gutter) !important;
    padding-right: var(--cm-mobile-gutter) !important;
    padding-top: 78px !important;
    padding-bottom: 34px !important;
  }
  body.mobile-layout-v150 .hero-title {
    font-size: clamp(32px, 10.2vw, 43px) !important;
    line-height: .9 !important;
  }
  body.mobile-layout-v150 .hero-copy h2 {
    max-width: 13ch !important;
    font-size: clamp(24px, 7.2vw, 31px) !important;
  }
  body.mobile-layout-v150 .hero-copy p {
    font-size: 12.5px !important;
    line-height: 1.48 !important;
  }
  body.mobile-layout-v150 .hero-actions {
    gap: 7px !important;
  }
  body.mobile-layout-v150 .hero-actions .btn {
    min-height: 39px !important;
    padding: 0 11px !important;
    font-size: 11.5px !important;
  }
  body.mobile-layout-v150 .hero-actions .btn:first-child {
    min-height: 42px !important;
    font-size: 12.5px !important;
  }

  body.mobile-layout-v150 .section-title-row h2,
  body.mobile-layout-v150 .gallery-heading h2,
  body.mobile-layout-v150 .contact-content h2 {
    font-size: clamp(28px, 8.2vw, 37px) !important;
  }

  body.mobile-layout-v150.destacados-v148 #destacados { min-height: 500svh !important; }
  body.mobile-layout-v150.destacados-v148 #destacados .section-title-row {
    top: 76px !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .section-title-row h2 {
    font-size: clamp(28px, 8.1vw, 36px) !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-card-copy {
    bottom: 72px !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-card-copy h3 {
    font-size: clamp(23px, 6.7vw, 31px) !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-card-copy p {
    font-size: 11.5px !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-arrow {
    width: 34px !important;
    height: 34px !important;
    font-size: 17px !important;
  }
  body.mobile-layout-v150.destacados-v148 #destacados .highlight-dots {
    transform: scale(.82) !important;
    transform-origin: center !important;
  }

  body.mobile-layout-v150 .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  body.mobile-layout-v150 .stats-grid article {
    min-height: 96px !important;
    padding: 12px !important;
  }
  body.mobile-layout-v150 .stats-grid strong {
    font-size: clamp(34px, 10vw, 46px) !important;
  }
  body.mobile-layout-v150 .stats-grid span { font-size: 10.5px !important; }

  body.mobile-layout-v150.amenidades-contacto-v42 #amenidades .pill-row,
  body.mobile-layout-v150.amenidades-v30.amenidades-contacto-v42 #amenidades .pill-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }
  body.mobile-layout-v150.amenidades-contacto-v42 #amenidades .pill-row span {
    min-height: 62px !important;
  }

  body.mobile-layout-v150 #amenidades .amenity-card img {
    height: clamp(170px, 44vw, 220px) !important;
  }
  body.mobile-layout-v150 #amenidades .amenity-card button {
    padding: 13px 15px 7px !important;
    font-size: clamp(18px, 5vw, 22px) !important;
  }
  body.mobile-layout-v150 #amenidades .amenity-card p {
    padding: 5px 15px 15px !important;
    font-size: 12px !important;
  }

  body.mobile-layout-v150 #experiencias .experience-shell {
    width: calc(100% - (var(--cm-mobile-gutter) * 2)) !important;
  }
}


/* ============================================================
   V151 — AJUSTE EXCLUSIVO CELULAR / SAFARI (<= 600px)
   Tablet 641–920 y escritorio >920 permanecen sin cambios.
   Corrige: sticky scrollytelling, desbordamiento horizontal,
   centrado real y jerarquía de CTA en Hero/Contacto.
   ============================================================ */
@media (max-width: 600px) {
  :root {
    --cm-phone-gutter-left: max(16px, env(safe-area-inset-left));
    --cm-phone-gutter-right: max(16px, env(safe-area-inset-right));
  }

  /* Safari: overflow:hidden en el elemento de scroll puede invalidar position:sticky.
     clip contiene el desbordamiento sin crear un scroll-container lateral. */
  html,
  body.mobile-layout-v151 {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: clip !important;
  }
  body.mobile-layout-v151 main {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    transform: none !important;
    contain: none !important;
  }
  body.mobile-layout-v151 main > section {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-inline: 0 !important;
  }

  /* Cabecera centrada respecto al viewport real. */
  body.mobile-layout-v151 .site-header,
  body.mobile-layout-v151.has-scrolled .site-header {
    left: 0 !important;
    right: 0 !important;
    width: auto !important;
    max-width: 100% !important;
    padding-left: var(--cm-phone-gutter-left) !important;
    padding-right: var(--cm-phone-gutter-right) !important;
  }
  body.mobile-layout-v151 .nav-shell,
  body.mobile-layout-v151.has-scrolled .nav-shell {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
  }
  body.mobile-layout-v151 .nav-links {
    left: var(--cm-phone-gutter-left) !important;
    right: var(--cm-phone-gutter-right) !important;
    width: auto !important;
  }

  /* Contenedores que antes podían sumar width + padding y sesgarse a la derecha. */
  body.mobile-layout-v151 .chapter-list,
  body.mobile-layout-v151.scroll-v18 .chapter-list {
    width: auto !important;
    max-width: none !important;
    margin-left: var(--cm-phone-gutter-left) !important;
    margin-right: var(--cm-phone-gutter-right) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  body.mobile-layout-v151 #experiencias .experience-shell {
    width: auto !important;
    max-width: none !important;
    margin-left: var(--cm-phone-gutter-left) !important;
    margin-right: var(--cm-phone-gutter-right) !important;
  }
  body.mobile-layout-v151 .pricing-layout,
  body.mobile-layout-v151 .calendar-layout,
  body.mobile-layout-v151 .location-layout,
  body.mobile-layout-v151 .amenity-grid,
  body.mobile-layout-v151 .stats-grid,
  body.mobile-layout-v151 .contact-content {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  /* DESTACADOS — sticky real en iPhone. La sección larga es la pista de scroll;
     el carrusel permanece fijado y los seis estados avanzan dentro de ella. */
  body.mobile-layout-v151.destacados-v148 #destacados,
  body.mobile-layout-v151.destacados-v148.cm-responsive-v63 #destacados {
    min-height: 680svh !important;
    min-height: 680dvh !important;
    overflow: visible !important;
    transform: none !important;
    contain: none !important;
  }
  body.mobile-layout-v151.destacados-v148 #destacados .highlight-carousel,
  body.mobile-layout-v151.destacados-v148.cm-responsive-v63 #destacados .highlight-carousel {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 0 !important;
    height: 100svh !important;
    height: 100dvh !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
    overflow: hidden !important;
  }
  body.mobile-layout-v151.destacados-v148 #destacados .highlight-card,
  body.mobile-layout-v151.destacados-v148.cm-responsive-v63 #destacados .highlight-card {
    height: 100svh !important;
    height: 100dvh !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
  }
  body.mobile-layout-v151.destacados-v148 #destacados .section-title-row {
    left: var(--cm-phone-gutter-left) !important;
    right: var(--cm-phone-gutter-right) !important;
  }
  body.mobile-layout-v151.destacados-v148 #destacados .highlight-card-copy,
  body.mobile-layout-v151.destacados-v148 #destacados .highlight-card.is-active .highlight-card-copy {
    left: var(--cm-phone-gutter-left) !important;
    right: var(--cm-phone-gutter-right) !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  body.mobile-layout-v151.destacados-v148 #destacados .highlight-card-copy h3,
  body.mobile-layout-v151.destacados-v148 #destacados .highlight-card-copy p {
    max-width: 100% !important;
    overflow-wrap: anywhere;
  }
  body.mobile-layout-v151.destacados-v148 #destacados .highlight-prev {
    left: var(--cm-phone-gutter-left) !important;
  }
  body.mobile-layout-v151.destacados-v148 #destacados .highlight-next {
    right: var(--cm-phone-gutter-right) !important;
  }

  /* EXPERIENCIAS — misma corrección sticky. Más recorrido = pausa de lectura real. */
  body.mobile-layout-v151 #experiencias {
    min-height: 600svh !important;
    min-height: 600dvh !important;
    overflow: visible !important;
    transform: none !important;
    contain: none !important;
  }
  body.mobile-layout-v151 #experiencias .experience-sticky {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 0 !important;
    height: 100svh !important;
    height: 100dvh !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
    overflow: hidden !important;
  }
  body.mobile-layout-v151 #experiencias .experience-stage {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  body.mobile-layout-v151 #experiencias .experience-review,
  body.mobile-layout-v151 #experiencias .experience-review blockquote {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: break-word;
  }
  body.mobile-layout-v151 #experiencias .experience-review blockquote {
    font-size: clamp(25px, 7vw, 33px) !important;
    line-height: 1.07 !important;
  }

  /* HERO — CTA principal conserva jerarquía, pero deja de ocupar el ancho completo. */
  body.mobile-layout-v151 .hero-actions {
    display: grid !important;
    grid-template-columns: auto auto !important;
    justify-content: start !important;
    align-items: center !important;
    width: auto !important;
    max-width: 100% !important;
    gap: 7px 8px !important;
  }
  body.mobile-layout-v151 .hero-actions .btn,
  body.mobile-layout-v151 .hero-actions .btn.glass {
    width: auto !important;
    min-width: 0 !important;
    min-height: 34px !important;
    padding: 0 13px !important;
    font-size: 10.5px !important;
    line-height: 1 !important;
    box-shadow: none !important;
  }
  body.mobile-layout-v151 .hero-actions .btn:first-child {
    grid-column: 1 / -1 !important;
    justify-self: start !important;
    width: auto !important;
    min-height: 39px !important;
    padding: 0 18px !important;
    font-size: 11.5px !important;
    box-shadow: 0 9px 22px rgba(49,31,20,.16) !important;
  }

  /* CONTACTO — acciones compactas, centradas y con secundarios discretos. */
  body.mobile-layout-v151 .contact-section {
    padding-left: var(--cm-phone-gutter-left) !important;
    padding-right: var(--cm-phone-gutter-right) !important;
  }
  body.mobile-layout-v151 .contact-content {
    width: 100% !important;
    margin-inline: auto !important;
  }
  body.mobile-layout-v151 .contact-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    width: min(100%, 350px) !important;
    margin: 18px auto 0 !important;
    gap: 7px !important;
  }
  body.mobile-layout-v151 .contact-actions .btn,
  body.mobile-layout-v151 .contact-actions .btn:nth-child(1),
  body.mobile-layout-v151 .contact-actions .btn:nth-child(2),
  body.mobile-layout-v151 .contact-actions .btn:nth-child(3),
  body.mobile-layout-v151 .contact-actions .btn:nth-child(4) {
    grid-column: auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 34px !important;
    padding: 0 13px !important;
    font-size: 10.5px !important;
    box-shadow: none !important;
  }
  body.mobile-layout-v151 .contact-actions .btn:nth-child(1) {
    min-height: 40px !important;
    padding-inline: 18px !important;
    font-size: 11.5px !important;
  }
  body.mobile-layout-v151 .contact-actions .btn:nth-child(2) {
    min-height: 38px !important;
    padding-inline: 16px !important;
    font-size: 11px !important;
  }
  body.mobile-layout-v151 .contact-actions .btn:nth-child(5) {
    flex-basis: 100% !important;
    min-height: 28px !important;
    padding: 0 !important;
    font-size: 10px !important;
  }

  /* Evita que cualquier elemento visual aislado expanda el layout viewport. */
  body.mobile-layout-v151 img,
  body.mobile-layout-v151 video,
  body.mobile-layout-v151 svg,
  body.mobile-layout-v151 canvas {
    max-width: 100% !important;
  }
}

/* ============================================================
   V152 — CELULAR: HERO RESPIRADO + TÍTULO FIJO + PAUSAS FINALES
   Alcance EXCLUSIVO <=600px. Tablet y escritorio no cambian.
   ============================================================ */
@media (max-width: 600px) {
  /* HERO: identidad arriba en contrapunto y mensaje principal abajo.
     Deja una zona central de fotografía sin texto para recuperar aire. */
  body.mobile-layout-v152 .hero-content {
    position: relative !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
    padding: 0 var(--cm-phone-gutter-right) 30px var(--cm-phone-gutter-left) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
  }
  body.mobile-layout-v152 .hero .eyebrow {
    position: absolute !important;
    top: 94px !important;
    left: var(--cm-phone-gutter-left) !important;
    width: min(47%, 178px) !important;
    margin: 0 !important;
    font-size: 8.5px !important;
    line-height: 1.35 !important;
    letter-spacing: .12em !important;
    text-align: left !important;
  }
  body.mobile-layout-v152 .hero-title {
    position: absolute !important;
    top: 92px !important;
    right: var(--cm-phone-gutter-right) !important;
    width: min(43%, 160px) !important;
    margin: 0 !important;
    font-size: clamp(25px, 7.2vw, 31px) !important;
    line-height: .82 !important;
    letter-spacing: -.035em !important;
    text-align: right !important;
  }
  body.mobile-layout-v152 .hero-bottom {
    width: 100% !important;
    margin-top: 0 !important;
    gap: 0 !important;
  }
  body.mobile-layout-v152 .hero-copy {
    width: 100% !important;
    max-width: 100% !important;
  }
  body.mobile-layout-v152 .hero-copy h2 {
    max-width: 14ch !important;
    margin-bottom: 9px !important;
    font-size: clamp(24px, 6.9vw, 29px) !important;
    line-height: 1.01 !important;
  }
  body.mobile-layout-v152 .hero-copy p {
    max-width: 36ch !important;
    font-size: 11.7px !important;
    line-height: 1.48 !important;
  }
  body.mobile-layout-v152 .hero-actions {
    margin-top: 14px !important;
  }

  /* DESTACADOS: el encabezado acompaña toda la escena sticky.
     No participa del movimiento/fade de las fotografías. */
  body.mobile-layout-v152.destacados-v148 #destacados .section-title-row,
  body.mobile-layout-v152.destacados-v148 #destacados.is-intro .section-title-row,
  body.mobile-layout-v152.destacados-v148 #destacados.is-expand .section-title-row,
  body.mobile-layout-v152.destacados-v148 #destacados.is-run .section-title-row,
  body.mobile-layout-v152.destacados-v148 #destacados .section-title-row.scroll-build-item,
  body.mobile-layout-v152.destacados-v148 #destacados .section-title-row.is-built {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 330 !important;
    width: 100% !important;
    max-width: none !important;
    height: 1px !important;
    min-height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: none !important;
    transition: none !important;
  }
  body.mobile-layout-v152.destacados-v148 #destacados .section-title-row > div {
    position: absolute !important;
    top: 74px !important;
    left: var(--cm-phone-gutter-left) !important;
    right: var(--cm-phone-gutter-right) !important;
    width: auto !important;
    max-width: 330px !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }
  body.mobile-layout-v152.destacados-v148 #destacados .section-title-row *,
  body.mobile-layout-v152.destacados-v148 #destacados.is-intro .section-title-row *,
  body.mobile-layout-v152.destacados-v148 #destacados.is-expand .section-title-row *,
  body.mobile-layout-v152.destacados-v148 #destacados.is-run .section-title-row * {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }
  body.mobile-layout-v152.destacados-v148 #destacados .section-title-row h2 {
    max-width: 10.5ch !important;
    font-size: clamp(25px, 7.2vw, 31px) !important;
    line-height: .96 !important;
  }
  body.mobile-layout-v152.destacados-v148 #destacados .section-title-row .overline {
    font-size: 8.5px !important;
    letter-spacing: .15em !important;
  }

  /* Más recorrido útil al final: el JS completa el último destacado antes
     y este tramo conserva la última fotografía visible antes de liberar sección. */
  body.mobile-layout-v152.destacados-v148 #destacados {
    min-height: 700svh !important;
    min-height: 700dvh !important;
  }

  /* Experiencias: pequeño margen adicional de recorrido para que la pausa final
     se sienta deliberada incluso con la inercia de Safari/iOS. */
  body.mobile-layout-v152 #experiencias {
    min-height: 640svh !important;
    min-height: 640dvh !important;
  }
}

/* ============================================================
   V153 — CELULAR: CORRECCIÓN QUIRÚRGICA DE IDENTIDAD EN HERO
   Alcance EXCLUSIVO <=600px. No altera tablet ni escritorio.
   ============================================================ */
@media (max-width: 600px) {
  /* Mantiene la composición en contrapunto, pero garantiza que ambos
     bloques vivan dentro del viewport y de los gutters seguros. */
  body.mobile-layout-v152 .hero .eyebrow {
    top: 94px !important;
    left: var(--cm-phone-gutter-left) !important;
    width: 43% !important;
    max-width: 158px !important;
    padding: 0 !important;
    font-size: 8.2px !important;
    line-height: 1.34 !important;
    letter-spacing: .115em !important;
    overflow-wrap: normal !important;
  }

  body.mobile-layout-v152 .hero-title {
    top: 92px !important;
    right: var(--cm-phone-gutter-right) !important;
    left: auto !important;
    width: 45% !important;
    max-width: 172px !important;
    padding: 0 !important;
    font-size: clamp(19px, 5.35vw, 22px) !important;
    line-height: .9 !important;
    letter-spacing: -.025em !important;
    text-align: right !important;
    overflow: visible !important;
  }

  body.mobile-layout-v152 .hero-title span {
    display: block !important;
    width: 100% !important;
    white-space: nowrap !important;
  }
}

/* ============================================================
   V154 — MATRIZ RESPONSIVA COHERENTE
   Objetivo: una sola lógica para teléfono vertical/horizontal y
   tablet vertical/horizontal. Escritorio normal (>1100px) queda
   fuera de este bloque y conserva exactamente la composición V153.
   ============================================================ */
.hero-identity-v154 { display: contents; }

@media (max-width: 1100px) {
  body.responsive-matrix-v154 {
    --cm-v154-left: max(20px, env(safe-area-inset-left));
    --cm-v154-right: max(20px, env(safe-area-inset-right));
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: clip !important;
  }
  body.responsive-matrix-v154 main,
  body.responsive-matrix-v154 main > section,
  body.responsive-matrix-v154 .section,
  body.responsive-matrix-v154 .immersive-panel {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  body.responsive-matrix-v154 img,
  body.responsive-matrix-v154 video,
  body.responsive-matrix-v154 svg,
  body.responsive-matrix-v154 canvas {
    max-width: 100% !important;
  }

  /* Cabecera compacta para TODAS las orientaciones de teléfono/tablet. */
  body.responsive-matrix-v154 .site-header,
  body.responsive-matrix-v154.has-scrolled .site-header {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    padding: max(8px, env(safe-area-inset-top)) var(--cm-v154-right) 0 var(--cm-v154-left) !important;
  }
  body.responsive-matrix-v154 .nav-shell,
  body.responsive-matrix-v154.has-scrolled .nav-shell {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 56px !important;
    height: 56px !important;
    margin: 0 !important;
    padding: 5px 8px 5px 11px !important;
    gap: 8px !important;
    border-radius: 21px !important;
  }
  body.responsive-matrix-v154 .brand {
    width: clamp(76px, 14vw, 104px) !important;
    max-width: 104px !important;
    min-width: 0 !important;
    margin-right: auto !important;
  }
  body.responsive-matrix-v154 .brand img { max-height: 44px !important; }
  body.responsive-matrix-v154 .nav-actions-v63 > .language-switch,
  body.responsive-matrix-v154 .nav-actions-v63 > .nav-cta { display: none !important; }
  body.responsive-matrix-v154 .nav-actions-v63 {
    width: auto !important;
    flex: 0 0 auto !important;
    margin-left: auto !important;
  }
  body.responsive-matrix-v154 .nav-actions-v63 .nav-toggle {
    display: grid !important;
    place-items: center !important;
    width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 50% !important;
  }
  body.responsive-matrix-v154 .nav-links {
    left: var(--cm-v154-left) !important;
    right: var(--cm-v154-right) !important;
    top: calc(max(8px, env(safe-area-inset-top)) + 64px) !important;
    width: auto !important;
    max-width: none !important;
    padding: 12px !important;
    border-radius: 22px !important;
  }
  body.responsive-matrix-v154 .nav-mobile-tools-v150 {
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    gap: 9px !important;
    align-items: center !important;
    padding: 11px 4px 2px !important;
  }
  body.responsive-matrix-v154 .nav-mobile-language-v150 {
    display: inline-flex !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
    margin: 0 !important;
  }
  body.responsive-matrix-v154 .nav-mobile-reserve-v150 {
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    min-height: 36px !important;
    padding: 0 13px !important;
    font-size: 11.5px !important;
  }

  /* Hero: Santa Isabel + CASA MARGARITA forman un solo bloque superior,
     siempre alineado al mismo margen izquierdo. */
  body.responsive-matrix-v154 .hero {
    min-height: 100svh !important;
    min-height: 100dvh !important;
    overflow: hidden !important;
  }
  body.responsive-matrix-v154 .hero-content {
    position: relative !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
    width: 100% !important;
    padding: 0 var(--cm-v154-right) max(28px, env(safe-area-inset-bottom)) var(--cm-v154-left) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    box-sizing: border-box !important;
  }
  body.responsive-matrix-v154 .hero-identity-v154 {
    display: grid !important;
    position: absolute !important;
    z-index: 4 !important;
    top: calc(max(8px, env(safe-area-inset-top)) + 82px) !important;
    left: var(--cm-v154-left) !important;
    right: var(--cm-v154-right) !important;
    width: auto !important;
    gap: 9px !important;
    justify-items: start !important;
    pointer-events: none !important;
  }
  body.responsive-matrix-v154 .hero-identity-v154 .eyebrow,
  body.responsive-matrix-v154 .hero-identity-v154 .hero-title {
    position: static !important;
    inset: auto !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    transform: none !important;
  }
  body.responsive-matrix-v154 .hero-identity-v154 .eyebrow {
    max-width: 38ch !important;
    font-size: clamp(9px, 1.45vw, 12px) !important;
    line-height: 1.32 !important;
    letter-spacing: .13em !important;
  }
  body.responsive-matrix-v154 .hero-identity-v154 .hero-title {
    max-width: 11ch !important;
    font-size: clamp(38px, 7.1vw, 62px) !important;
    line-height: .82 !important;
    letter-spacing: -.035em !important;
  }
  body.responsive-matrix-v154 .hero-identity-v154 .hero-title span {
    display: block !important;
    width: auto !important;
    white-space: normal !important;
  }
  body.responsive-matrix-v154 .hero-bottom {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    gap: 0 !important;
  }
  body.responsive-matrix-v154 .hero-copy {
    width: 100% !important;
    max-width: min(100%, 610px) !important;
  }
  body.responsive-matrix-v154 .hero-copy h2 {
    max-width: 15ch !important;
    margin: 0 0 10px !important;
    font-size: clamp(29px, 5.1vw, 48px) !important;
    line-height: 1 !important;
  }
  body.responsive-matrix-v154 .hero-copy p {
    max-width: 48ch !important;
    font-size: clamp(12px, 1.8vw, 15px) !important;
    line-height: 1.48 !important;
  }
  body.responsive-matrix-v154 .hero-card { display: none !important; }
  body.responsive-matrix-v154 .hero-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: auto !important;
    max-width: 100% !important;
    gap: 8px !important;
    margin-top: 15px !important;
  }
  body.responsive-matrix-v154 .hero-actions .btn,
  body.responsive-matrix-v154 .hero-actions .btn.glass,
  body.responsive-matrix-v154 .hero-actions .btn:first-child {
    grid-column: auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 36px !important;
    padding: 0 14px !important;
    font-size: 11px !important;
    line-height: 1 !important;
    box-shadow: none !important;
  }
  body.responsive-matrix-v154 .hero-actions .btn:first-child {
    min-height: 40px !important;
    padding-inline: 18px !important;
    font-size: 11.8px !important;
    box-shadow: 0 9px 22px rgba(49,31,20,.15) !important;
  }

  /* Destacados: scrollytelling sticky en las CUATRO variantes de viewport. */
  body.responsive-matrix-v154.destacados-v148 #destacados {
    min-height: 660svh !important;
    min-height: 660dvh !important;
    height: auto !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #100b08 !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-carousel {
    position: sticky !important;
    top: 0 !important;
    width: 100% !important;
    height: 100svh !important;
    height: 100dvh !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-viewport,
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-track {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
    display: block !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-card,
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-card.is-active {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 100% !important;
    max-width: none !important;
    height: 100svh !important;
    height: 100dvh !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-card img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .section-title-row,
  body.responsive-matrix-v154.destacados-v148 #destacados.is-intro .section-title-row,
  body.responsive-matrix-v154.destacados-v148 #destacados.is-expand .section-title-row,
  body.responsive-matrix-v154.destacados-v148 #destacados.is-run .section-title-row,
  body.responsive-matrix-v154.destacados-v148 #destacados .section-title-row.scroll-build-item,
  body.responsive-matrix-v154.destacados-v148 #destacados .section-title-row.is-built {
    position: sticky !important;
    top: 0 !important;
    z-index: 340 !important;
    width: 100% !important;
    max-width: none !important;
    height: 1px !important;
    min-height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: none !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .section-title-row > div {
    position: absolute !important;
    top: calc(max(8px, env(safe-area-inset-top)) + 70px) !important;
    left: var(--cm-v154-left) !important;
    right: var(--cm-v154-right) !important;
    width: auto !important;
    max-width: 480px !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .section-title-row *,
  body.responsive-matrix-v154.destacados-v148 #destacados.is-run .section-title-row * {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .section-title-row .overline {
    margin-bottom: 7px !important;
    font-size: clamp(8px, 1.25vw, 10px) !important;
    letter-spacing: .15em !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .section-title-row h2 {
    max-width: 11ch !important;
    font-size: clamp(27px, 5.1vw, 42px) !important;
    line-height: .95 !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-card-copy {
    left: var(--cm-v154-left) !important;
    right: var(--cm-v154-right) !important;
    bottom: clamp(70px, 10dvh, 108px) !important;
    width: auto !important;
    max-width: 620px !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-card-copy h3 {
    font-size: clamp(24px, 4.8vw, 38px) !important;
    line-height: 1 !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-card-copy p {
    max-width: 45ch !important;
    font-size: clamp(11px, 1.65vw, 14px) !important;
    line-height: 1.42 !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-prev { left: var(--cm-v154-left) !important; }
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-next { right: var(--cm-v154-right) !important; }

  /* Experiencias: sticky estable y pausa final también al rotar. */
  body.responsive-matrix-v154 #experiencias {
    min-height: 600svh !important;
    min-height: 600dvh !important;
    overflow: visible !important;
  }
  body.responsive-matrix-v154 #experiencias .experience-sticky {
    position: sticky !important;
    top: 0 !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
    height: 100svh !important;
    height: 100dvh !important;
    overflow: hidden !important;
  }
  body.responsive-matrix-v154 #experiencias .experience-shell {
    width: auto !important;
    max-width: 100% !important;
    margin-left: var(--cm-v154-left) !important;
    margin-right: var(--cm-v154-right) !important;
    box-sizing: border-box !important;
  }

  /* Contacto: CTA más editorial, sin bloques sobredimensionados. */
  body.responsive-matrix-v154 .contact-section {
    padding-left: var(--cm-v154-left) !important;
    padding-right: var(--cm-v154-right) !important;
  }
  body.responsive-matrix-v154 .contact-content { width: 100% !important; }
  body.responsive-matrix-v154 .contact-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    width: min(100%, 520px) !important;
    margin: 18px auto 0 !important;
    gap: 8px !important;
  }
  body.responsive-matrix-v154 .contact-actions .btn,
  body.responsive-matrix-v154 .contact-actions .btn:nth-child(n) {
    width: auto !important;
    min-width: 0 !important;
    min-height: 36px !important;
    padding: 0 14px !important;
    font-size: 11px !important;
    box-shadow: none !important;
  }
  body.responsive-matrix-v154 .contact-actions .btn:nth-child(1) {
    min-height: 41px !important;
    padding-inline: 19px !important;
    font-size: 11.8px !important;
  }
}

/* Teléfono vertical: escala más íntima, sin tocar la lógica de tablet. */
@media (max-width: 600px) and (orientation: portrait) {
  body.responsive-matrix-v154 .hero-identity-v154 {
    top: calc(max(8px, env(safe-area-inset-top)) + 82px) !important;
    gap: 8px !important;
  }
  body.responsive-matrix-v154 .hero-identity-v154 .eyebrow {
    max-width: 31ch !important;
    font-size: 8.5px !important;
  }
  body.responsive-matrix-v154 .hero-identity-v154 .hero-title {
    max-width: 9.6ch !important;
    font-size: clamp(36px, 10.5vw, 46px) !important;
  }
  body.responsive-matrix-v154 .hero-copy h2 {
    max-width: 13ch !important;
    font-size: clamp(25px, 7.2vw, 31px) !important;
  }
  body.responsive-matrix-v154 .hero-copy p {
    max-width: 39ch !important;
    font-size: 11.5px !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados { min-height: 720dvh !important; }
  body.responsive-matrix-v154 #experiencias { min-height: 660dvh !important; }
}

/* Teléfono/tablet horizontal con poca altura: se gana altura de sección en vez de
   comprimir o empalmar contenido. Esto evita que una rotación destruya el layout. */
@media (max-width: 1100px) and (orientation: landscape) and (max-height: 650px) {
  body.responsive-matrix-v154 .hero {
    min-height: 620px !important;
  }
  body.responsive-matrix-v154 .hero-content {
    min-height: 620px !important;
    padding-bottom: max(22px, env(safe-area-inset-bottom)) !important;
  }
  body.responsive-matrix-v154 .hero-identity-v154 {
    top: calc(max(6px, env(safe-area-inset-top)) + 68px) !important;
    gap: 6px !important;
  }
  body.responsive-matrix-v154 .hero-identity-v154 .eyebrow {
    max-width: 44ch !important;
    font-size: 8.5px !important;
  }
  body.responsive-matrix-v154 .hero-identity-v154 .hero-title {
    max-width: 12ch !important;
    font-size: clamp(30px, 4.5vw, 42px) !important;
  }
  body.responsive-matrix-v154 .hero-copy h2 {
    max-width: 18ch !important;
    font-size: clamp(24px, 3.7vw, 34px) !important;
  }
  body.responsive-matrix-v154 .hero-copy p {
    max-width: 58ch !important;
    font-size: 11px !important;
  }
  body.responsive-matrix-v154 .hero-actions { margin-top: 10px !important; }
  body.responsive-matrix-v154.destacados-v148 #destacados { min-height: 690dvh !important; }
  body.responsive-matrix-v154.destacados-v148 #destacados .section-title-row > div {
    top: calc(max(6px, env(safe-area-inset-top)) + 58px) !important;
    max-width: 380px !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .section-title-row h2 {
    font-size: clamp(24px, 3.5vw, 32px) !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-card-copy {
    bottom: 58px !important;
    max-width: min(58vw, 610px) !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-card-copy h3 {
    font-size: clamp(22px, 3.3vw, 30px) !important;
  }
  body.responsive-matrix-v154 #experiencias { min-height: 620dvh !important; }
  body.responsive-matrix-v154 #experiencias .experience-shell {
    min-height: 100dvh !important;
    grid-template-columns: minmax(180px,.62fr) minmax(0,1.38fr) !important;
    grid-template-rows: 1fr auto !important;
    column-gap: clamp(24px, 4vw, 54px) !important;
    padding: calc(max(6px, env(safe-area-inset-top)) + 58px) 0 16px !important;
    align-content: center !important;
  }
  body.responsive-matrix-v154 #experiencias .experience-heading {
    margin: 0 !important;
    align-self: center !important;
  }
  body.responsive-matrix-v154 #experiencias .experience-heading h2 {
    font-size: clamp(28px, 4vw, 38px) !important;
  }
  body.responsive-matrix-v154 #experiencias .experience-heading p { display: none !important; }
  body.responsive-matrix-v154 #experiencias .experience-stage {
    min-height: 58dvh !important;
  }
  body.responsive-matrix-v154 #experiencias .experience-review blockquote {
    font-size: clamp(23px, 3.2vw, 31px) !important;
    line-height: 1.03 !important;
  }
  body.responsive-matrix-v154 #experiencias .experience-review footer { margin-top: 16px !important; }
  body.responsive-matrix-v154 #experiencias .experience-footer {
    grid-column: 1 / -1 !important;
    padding-top: 12px !important;
  }
}

/* ============================================================
   V155 — TELÉFONO: HEADER MÍNIMO + RECORRIDO INMERSIVO
   Alcance EXCLUSIVO a teléfonos:
   - vertical <= 600px
   - horizontal <= 1024px y <= 540px de alto
   Tablet y escritorio conservan V154 sin cambios visuales.
   ============================================================ */
@media (max-width: 600px),
       (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  body.mobile-tour-v155 {
    --cm-v155-left: max(18px, env(safe-area-inset-left));
    --cm-v155-right: max(18px, env(safe-area-inset-right));
  }

  /* HEADER: desaparece la barra; queda únicamente el botón de menú flotante. */
  body.mobile-tour-v155 .site-header,
  body.mobile-tour-v155.has-scrolled .site-header {
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
    overflow: visible !important;
    pointer-events: none !important;
  }
  body.mobile-tour-v155 .nav-shell,
  body.mobile-tour-v155.has-scrolled .nav-shell {
    position: static !important;
    width: 100% !important;
    max-width: none !important;
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: visible !important;
    pointer-events: none !important;
  }
  body.mobile-tour-v155 .brand { display: none !important; }
  body.mobile-tour-v155 .nav-actions-v63 {
    position: fixed !important;
    z-index: 1002 !important;
    top: max(12px, env(safe-area-inset-top)) !important;
    right: var(--cm-v155-right) !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    pointer-events: auto !important;
  }
  body.mobile-tour-v155 .nav-actions-v63 .nav-toggle,
  body.mobile-tour-v155.has-scrolled .nav-actions-v63 .nav-toggle {
    display: grid !important;
    place-items: center !important;
    width: 46px !important;
    height: 46px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(255,250,242,.24) !important;
    border-radius: 50% !important;
    color: #fffaf2 !important;
    background: rgba(24,17,13,.42) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.13) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
  }
  body.mobile-tour-v155 .nav-toggle span {
    width: 19px !important;
    height: 1.5px !important;
    margin: 3px auto !important;
    background: currentColor !important;
  }
  body.mobile-tour-v155 .nav-links {
    position: fixed !important;
    z-index: 1001 !important;
    top: calc(max(12px, env(safe-area-inset-top)) + 56px) !important;
    left: var(--cm-v155-left) !important;
    right: var(--cm-v155-right) !important;
    width: auto !important;
    max-height: calc(100dvh - max(12px, env(safe-area-inset-top)) - 78px) !important;
    overflow-y: auto !important;
    pointer-events: none !important;
  }
  body.mobile-tour-v155 .nav-links.is-open { pointer-events: auto !important; }

  /* Al no existir barra, la identidad del Hero aprovecha el espacio superior real. */
  body.mobile-tour-v155 .hero-identity-v154 {
    top: max(24px, calc(env(safe-area-inset-top) + 20px)) !important;
    padding-right: 60px !important;
  }

  /* RECORRIDO: una sola escena de pantalla completa.
     Los chapter-step quedan como marcadores invisibles de scroll; visual y texto
     se concentran en el sticky compartido para que video + copy cambien juntos. */
  body.mobile-tour-v155 #recorrido.chapter-section,
  body.mobile-tour-v155.scroll-v18 #recorrido.chapter-section {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    background: #100b08 !important;
    isolation: isolate !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-sticky,
  body.mobile-tour-v155.scroll-v18 #recorrido .chapter-sticky {
    display: block !important;
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 20 !important;
    width: 100% !important;
    height: 100svh !important;
    height: 100dvh !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #100b08 !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-visual,
  body.mobile-tour-v155.scroll-v18 #recorrido .chapter-visual {
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    overflow: hidden !important;
    background: #100b08 !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-visual::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 4 !important;
    pointer-events: none !important;
    background:
      linear-gradient(180deg, rgba(11,8,6,.14) 0%, rgba(11,8,6,.02) 38%, rgba(11,8,6,.74) 100%) !important;
  }
  body.mobile-tour-v155 #recorrido #chapterImage,
  body.mobile-tour-v155 #recorrido #chapterVideo,
  body.mobile-tour-v155 #recorrido #chapterVideoConvivencia {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: 0 !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-caption,
  body.mobile-tour-v155.scroll-v18 #recorrido .chapter-caption {
    position: absolute !important;
    z-index: 8 !important;
    left: var(--cm-v155-left) !important;
    right: var(--cm-v155-right) !important;
    bottom: max(34px, calc(env(safe-area-inset-bottom) + 24px)) !important;
    width: auto !important;
    max-width: 620px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    color: #fffaf2 !important;
    transition: opacity .24s ease, transform .24s ease !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-caption span {
    display: block !important;
    margin: 0 0 10px !important;
    color: #d6a45d !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    letter-spacing: .18em !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-caption h3 {
    max-width: 12ch !important;
    margin: 0 0 10px !important;
    font-size: clamp(34px, 9vw, 48px) !important;
    line-height: .94 !important;
    letter-spacing: -.025em !important;
    text-wrap: balance !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-caption p {
    max-width: 43ch !important;
    margin: 0 !important;
    color: rgba(255,250,242,.86) !important;
    font-size: clamp(12px, 3.35vw, 14px) !important;
    line-height: 1.48 !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-list,
  body.mobile-tour-v155.scroll-v18 #recorrido .chapter-list {
    display: block !important;
    gap: 0 !important;
    position: relative !important;
    z-index: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-step,
  body.mobile-tour-v155.scroll-v18 #recorrido .chapter-step {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 118svh !important;
    min-height: 118dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: none !important;
    pointer-events: none !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-step:last-child {
    min-height: 152svh !important;
    min-height: 152dvh !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-step .chapter-mobile-media,
  body.mobile-tour-v155 #recorrido .chapter-step > span,
  body.mobile-tour-v155 #recorrido .chapter-step > h2,
  body.mobile-tour-v155 #recorrido .chapter-step > p {
    display: none !important;
  }
}

/* Teléfono horizontal: texto y video siguen siendo UNA escena; solo se compacta
   la tipografía para no convertir la altura limitada en otro layout diferente. */
@media (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  body.mobile-tour-v155 #recorrido .chapter-caption {
    left: max(24px, env(safe-area-inset-left)) !important;
    right: max(24px, env(safe-area-inset-right)) !important;
    bottom: max(18px, calc(env(safe-area-inset-bottom) + 12px)) !important;
    max-width: min(58vw, 560px) !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-caption span {
    margin-bottom: 6px !important;
    font-size: 9px !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-caption h3 {
    max-width: 14ch !important;
    margin-bottom: 6px !important;
    font-size: clamp(27px, 4.6vw, 39px) !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-caption p {
    max-width: 48ch !important;
    font-size: 11px !important;
    line-height: 1.38 !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-step {
    min-height: 126dvh !important;
  }
  body.mobile-tour-v155 #recorrido .chapter-step:last-child {
    min-height: 162dvh !important;
  }
}

@media (max-width: 600px),
       (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  body.mobile-tour-v155 #recorrido .chapter-caption.v155-caption-enter {
    animation: cmV155CaptionEnter .42s cubic-bezier(.2,.75,.25,1) both !important;
  }
}
@keyframes cmV155CaptionEnter {
  from { opacity: .18; transform: translate3d(0, 12px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}


/* ============================================================
   V156 — CIERRE RESPONSIVE
   1) Tablet vertical usa el mismo Recorrido inmersivo de móvil.
   2) Tablet horizontal y escritorio NO entran en estas reglas.
   3) Galería en teléfono deja únicamente el botón de menú flotante.
   ============================================================ */

/* TABLET VERTICAL — Recorrido inmersivo: video + texto en una sola escena sticky. */
@media (orientation: portrait) and (min-width: 601px) and (max-width: 1100px) {
  body.responsive-tour-v156 #recorrido.chapter-section,
  body.responsive-tour-v156.scroll-v18 #recorrido.chapter-section {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    background: #100b08 !important;
    isolation: isolate !important;
  }
  body.responsive-tour-v156 #recorrido .chapter-sticky,
  body.responsive-tour-v156.scroll-v18 #recorrido .chapter-sticky {
    display: block !important;
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 20 !important;
    width: 100% !important;
    height: 100svh !important;
    height: 100dvh !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #100b08 !important;
  }
  body.responsive-tour-v156 #recorrido .chapter-visual,
  body.responsive-tour-v156.scroll-v18 #recorrido .chapter-visual {
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    overflow: hidden !important;
    background: #100b08 !important;
  }
  body.responsive-tour-v156 #recorrido .chapter-visual::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 4 !important;
    pointer-events: none !important;
    background: linear-gradient(180deg, rgba(11,8,6,.08) 0%, rgba(11,8,6,.02) 43%, rgba(11,8,6,.72) 100%) !important;
  }
  body.responsive-tour-v156 #recorrido #chapterImage,
  body.responsive-tour-v156 #recorrido #chapterVideo,
  body.responsive-tour-v156 #recorrido #chapterVideoConvivencia {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: 0 !important;
  }
  body.responsive-tour-v156 #recorrido .chapter-caption,
  body.responsive-tour-v156.scroll-v18 #recorrido .chapter-caption {
    position: absolute !important;
    z-index: 8 !important;
    left: max(36px, env(safe-area-inset-left)) !important;
    right: max(36px, env(safe-area-inset-right)) !important;
    bottom: max(52px, calc(env(safe-area-inset-bottom) + 34px)) !important;
    width: auto !important;
    max-width: 680px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    color: #fffaf2 !important;
  }
  body.responsive-tour-v156 #recorrido .chapter-caption span {
    display: block !important;
    margin: 0 0 12px !important;
    color: #d6a45d !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: .18em !important;
  }
  body.responsive-tour-v156 #recorrido .chapter-caption h3 {
    max-width: 13ch !important;
    margin: 0 0 12px !important;
    font-size: clamp(46px, 7vw, 66px) !important;
    line-height: .94 !important;
    letter-spacing: -.025em !important;
    text-wrap: balance !important;
  }
  body.responsive-tour-v156 #recorrido .chapter-caption p {
    max-width: 49ch !important;
    margin: 0 !important;
    color: rgba(255,250,242,.86) !important;
    font-size: clamp(14px, 2vw, 17px) !important;
    line-height: 1.52 !important;
  }
  body.responsive-tour-v156 #recorrido .chapter-list,
  body.responsive-tour-v156.scroll-v18 #recorrido .chapter-list {
    display: block !important;
    position: relative !important;
    z-index: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }
  body.responsive-tour-v156 #recorrido .chapter-step,
  body.responsive-tour-v156.scroll-v18 #recorrido .chapter-step {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 112svh !important;
    min-height: 112dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: none !important;
    pointer-events: none !important;
  }
  body.responsive-tour-v156 #recorrido .chapter-step:last-child {
    min-height: 148svh !important;
    min-height: 148dvh !important;
  }
  body.responsive-tour-v156 #recorrido .chapter-step .chapter-mobile-media,
  body.responsive-tour-v156 #recorrido .chapter-step > span,
  body.responsive-tour-v156 #recorrido .chapter-step > h2,
  body.responsive-tour-v156 #recorrido .chapter-step > p {
    display: none !important;
  }
  body.responsive-tour-v156 #recorrido .chapter-caption.v155-caption-enter {
    animation: cmV155CaptionEnter .42s cubic-bezier(.2,.75,.25,1) both !important;
  }
}

/* GALERÍA — teléfono vertical u horizontal corto: sin barra; sólo menú flotante. */
@media (max-width: 600px),
       (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  body.gallery-mobile-menu-v156 {
    --cm-gallery-left-v156: max(18px, env(safe-area-inset-left));
    --cm-gallery-right-v156: max(18px, env(safe-area-inset-right));
  }
  body.gallery-mobile-menu-v156 .site-header,
  body.gallery-mobile-menu-v156.has-scrolled .site-header {
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
    overflow: visible !important;
    pointer-events: none !important;
  }
  body.gallery-mobile-menu-v156 .nav-shell,
  body.gallery-mobile-menu-v156.has-scrolled .nav-shell {
    position: static !important;
    width: 100% !important;
    max-width: none !important;
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: visible !important;
    pointer-events: none !important;
  }
  body.gallery-mobile-menu-v156 .brand,
  body.gallery-mobile-menu-v156 .nav-actions-v63 > .language-switch,
  body.gallery-mobile-menu-v156 .nav-actions-v63 > .nav-cta {
    display: none !important;
  }
  body.gallery-mobile-menu-v156 .nav-actions-v63 {
    position: fixed !important;
    z-index: 1002 !important;
    top: max(12px, env(safe-area-inset-top)) !important;
    right: var(--cm-gallery-right-v156) !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    pointer-events: auto !important;
  }
  body.gallery-mobile-menu-v156 .nav-actions-v63 .nav-toggle {
    display: grid !important;
    place-items: center !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(255,250,242,.24) !important;
    border-radius: 50% !important;
    color: #fffaf2 !important;
    background: rgba(24,17,13,.42) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.13) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
  }
  body.gallery-mobile-menu-v156 .nav-links {
    display: grid !important;
    position: fixed !important;
    z-index: 1001 !important;
    top: calc(max(12px, env(safe-area-inset-top)) + 54px) !important;
    left: var(--cm-gallery-left-v156) !important;
    right: var(--cm-gallery-right-v156) !important;
    width: auto !important;
    max-height: calc(100dvh - max(12px, env(safe-area-inset-top)) - 74px) !important;
    overflow-y: auto !important;
    pointer-events: none !important;
  }
  body.gallery-mobile-menu-v156 .nav-links.is-open { pointer-events: auto !important; }
  body.gallery-mobile-menu-v156 .gallery-mobile-tools-v156 {
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    gap: 9px !important;
    align-items: center !important;
    padding: 11px 4px 2px !important;
  }
  body.gallery-mobile-menu-v156 .nav-mobile-language-v150 {
    display: inline-flex !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
    margin: 0 !important;
  }
  body.gallery-mobile-menu-v156 .nav-mobile-reserve-v150 {
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    min-height: 36px !important;
    padding: 0 13px !important;
    font-size: 11.5px !important;
  }
  body.gallery-mobile-menu-v156 .gallery-sphere-stage {
  }
  body.gallery-mobile-menu-v156 .gallery-back {
    right: var(--cm-gallery-right-v156) !important;
    bottom: max(14px, calc(env(safe-area-inset-bottom) + 10px)) !important;
  }
}


/* ============================================================
   V157 — AJUSTES RESPONSIVOS FINALES
   Tablet vertical: el título de Destacados se libera antes de que
   Experiencias entre en el viewport. Otros modos quedan intactos.
   ============================================================ */
@media (orientation: portrait) and (min-width: 601px) and (max-width: 1100px) {
  body.responsive-fixes-v157.destacados-v148 #destacados.is-title-released-v157 .section-title-row,
  body.responsive-fixes-v157.destacados-v148 #destacados.is-title-released-v157.is-run .section-title-row,
  body.responsive-fixes-v157.destacados-v148 #destacados.is-title-released-v157 .section-title-row.is-built {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate3d(0,-14px,0) !important;
    transition: opacity .20s ease, transform .20s ease, visibility 0s linear .20s !important;
  }
}

/* ============================================================
   V158 — CORRECCIÓN CTA RESPONSIVE
   Evita que el indicador "Desliza para explorar" compita o se
   superponga con los CTA del Hero en cualquier vista responsive.
   Alcance: teléfono/tablet <= 1100px. Escritorio queda intacto.
   ============================================================ */
@media (max-width: 1100px) {
  body.responsive-matrix-v154 .scroll-cue {
    display: none !important;
  }
}

/* Teléfono horizontal: preserva tres CTA compactos, separados y
   dentro del ancho útil, sin cambiar la composición del Hero. */
@media (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  body.responsive-matrix-v154 .hero-actions {
    width: fit-content !important;
    max-width: calc(100vw - var(--cm-v154-left) - var(--cm-v154-right)) !important;
    gap: 10px !important;
    row-gap: 8px !important;
    margin-top: 12px !important;
  }
  body.responsive-matrix-v154 .hero-actions .btn,
  body.responsive-matrix-v154 .hero-actions .btn.glass,
  body.responsive-matrix-v154 .hero-actions .btn:first-child {
    flex: 0 0 auto !important;
    min-height: 36px !important;
    padding: 0 15px !important;
    font-size: 10.8px !important;
    white-space: nowrap !important;
  }
  body.responsive-matrix-v154 .hero-actions .btn:first-child {
    min-height: 38px !important;
    padding-inline: 17px !important;
    font-size: 11.2px !important;
  }
}

/* ============================================================
   V159 — TELÉFONO: SOLO HAMBURGUESA + CTA HERO SEGUROS
   Alcance exclusivo a teléfono vertical/horizontal.
   Tablet y escritorio quedan fuera de estas reglas.
   ============================================================ */
@media (max-width: 600px),
       (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  /* LANDING + GALERÍA: elimina físicamente la barra visual del header.
     Se conserva únicamente el botón hamburguesa y el panel al abrirlo. */
  body.mobile-tour-v155 .site-header,
  body.mobile-tour-v155.has-scrolled .site-header,
  body.gallery-mobile-menu-v156 .site-header,
  body.gallery-mobile-menu-v156.has-scrolled .site-header {
    position: fixed !important;
    inset: 0 0 auto 0 !important;
    width: 100% !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: visible !important;
    pointer-events: none !important;
  }

  body.mobile-tour-v155 .nav-shell,
  body.mobile-tour-v155.has-scrolled .nav-shell,
  body.gallery-mobile-menu-v156 .nav-shell,
  body.gallery-mobile-menu-v156.has-scrolled .nav-shell {
    position: static !important;
    display: block !important;
    width: 100% !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: visible !important;
    pointer-events: none !important;
  }

  body.mobile-tour-v155 .brand,
  body.mobile-tour-v155 .nav-actions-v63 > .language-switch,
  body.mobile-tour-v155 .nav-actions-v63 > .nav-cta,
  body.gallery-mobile-menu-v156 .brand,
  body.gallery-mobile-menu-v156 .nav-actions-v63 > .language-switch,
  body.gallery-mobile-menu-v156 .nav-actions-v63 > .nav-cta {
    display: none !important;
  }

  body.mobile-tour-v155 .nav-actions-v63,
  body.gallery-mobile-menu-v156 .nav-actions-v63 {
    position: fixed !important;
    z-index: 1002 !important;
    top: max(12px, env(safe-area-inset-top)) !important;
    right: max(16px, env(safe-area-inset-right)) !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    pointer-events: auto !important;
  }

  body.mobile-tour-v155 .nav-actions-v63 .nav-toggle,
  body.mobile-tour-v155.has-scrolled .nav-actions-v63 .nav-toggle,
  body.gallery-mobile-menu-v156 .nav-actions-v63 .nav-toggle,
  body.gallery-mobile-menu-v156.has-scrolled .nav-actions-v63 .nav-toggle {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  /* El cue es decorativo y en teléfono compite con los CTA. */
  body.mobile-tour-v155 .scroll-cue {
    display: none !important;
  }
}

/* Teléfono horizontal: CTA compactos y sin cruces entre sí. */
@media (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  body.mobile-tour-v155 .hero-actions {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: auto !important;
    max-width: calc(100vw - max(18px, env(safe-area-inset-left)) - max(18px, env(safe-area-inset-right))) !important;
    gap: 8px !important;
    margin-top: 10px !important;
  }

  body.mobile-tour-v155 .hero-actions .btn,
  body.mobile-tour-v155 .hero-actions .btn.glass,
  body.mobile-tour-v155 .hero-actions .btn:first-child {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 34px !important;
    padding: 0 13px !important;
    margin: 0 !important;
    font-size: 10.3px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  body.mobile-tour-v155 .hero-actions .btn:first-child {
    min-height: 36px !important;
    padding-inline: 15px !important;
    font-size: 10.7px !important;
  }
}

/* ============================================================
   V160 — CIERRE REAL EXCLUSIVO TELÉFONO
   Alcance:
   - teléfono vertical <= 600px
   - teléfono horizontal <= 1024px y <= 540px de alto
   NO modifica tablet ni escritorio.
   ============================================================ */
@media (max-width: 600px),
       (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  /* HEADER: sin barra física. Sólo hamburguesa + panel al abrir. */
  body.mobile-fixes-v160 .site-header,
  body.mobile-fixes-v160.has-scrolled .site-header {
    position: fixed !important;
    inset: 0 0 auto 0 !important;
    width: 100% !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: visible !important;
    pointer-events: none !important;
  }
  body.mobile-fixes-v160 .nav-shell,
  body.mobile-fixes-v160.has-scrolled .nav-shell {
    display: contents !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  body.mobile-fixes-v160 .brand,
  body.mobile-fixes-v160 .nav-actions-v63 > .language-switch,
  body.mobile-fixes-v160 .nav-actions-v63 > .nav-cta {
    display: none !important;
  }
  body.mobile-fixes-v160 .nav-actions-v63 {
    position: fixed !important;
    z-index: 1102 !important;
    top: max(12px, env(safe-area-inset-top)) !important;
    right: max(16px, env(safe-area-inset-right)) !important;
    width: 46px !important;
    height: 46px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
    pointer-events: auto !important;
  }
  body.mobile-fixes-v160 .nav-actions-v63 .nav-toggle,
  body.mobile-fixes-v160.has-scrolled .nav-actions-v63 .nav-toggle {
    display: grid !important;
    place-items: center !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 46px !important;
    height: 46px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid rgba(255,250,242,.26) !important;
    border-radius: 50% !important;
    background: rgba(20,14,11,.46) !important;
    color: #fffaf2 !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.16) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    pointer-events: auto !important;
  }
  body.mobile-fixes-v160 .nav-links {
    z-index: 1101 !important;
  }

  /* RECORRIDO: el visual compartido no ocupa espacio propio.
     V160 lo fija por JS sólo mientras la sección está activa. */
  body.mobile-fixes-v160 #recorrido.chapter-section,
  body.mobile-fixes-v160.scroll-v18 #recorrido.chapter-section {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    contain: none !important;
    transform: none !important;
    background: #100b08 !important;
  }
  body.mobile-fixes-v160 #recorrido .chapter-sticky,
  body.mobile-fixes-v160.scroll-v18 #recorrido .chapter-sticky {
    display: block !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    z-index: 24 !important;
    width: 100% !important;
    height: 100svh !important;
    height: 100dvh !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #100b08 !important;
    transform: none !important;
  }
  body.mobile-fixes-v160 #recorrido.is-phone-tour-active-v160 .chapter-sticky {
    position: fixed !important;
    inset: 0 !important;
    z-index: 60 !important;
  }
  body.mobile-fixes-v160 #recorrido.is-phone-tour-after-v160 .chapter-sticky {
    position: absolute !important;
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
  }
  body.mobile-fixes-v160 #recorrido .chapter-list,
  body.mobile-fixes-v160.scroll-v18 #recorrido .chapter-list {
    position: relative !important;
    z-index: 1 !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
  }
  body.mobile-fixes-v160 #recorrido .chapter-step,
  body.mobile-fixes-v160.scroll-v18 #recorrido .chapter-step {
    display: block !important;
    width: 100% !important;
    min-height: 122svh !important;
    min-height: 122dvh !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: none !important;
  }
  body.mobile-fixes-v160 #recorrido .chapter-step:last-child {
    min-height: 158svh !important;
    min-height: 158dvh !important;
  }
  body.mobile-fixes-v160 #recorrido .chapter-step .chapter-mobile-media,
  body.mobile-fixes-v160 #recorrido .chapter-step > span,
  body.mobile-fixes-v160 #recorrido .chapter-step > h2,
  body.mobile-fixes-v160 #recorrido .chapter-step > p {
    display: none !important;
  }

  /* CONTACTO: aire real entre acciones y datos, sin mezclas de filas. */
  body.mobile-fixes-v160 .contact-section {
    min-height: auto !important;
    padding-top: 64px !important;
    padding-bottom: max(26px, env(safe-area-inset-bottom)) !important;
  }
  body.mobile-fixes-v160 .contact-content {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: auto !important;
  }
  body.mobile-fixes-v160 .contact-actions {
    margin-top: 20px !important;
    margin-bottom: 0 !important;
  }
  body.mobile-fixes-v160 .contact-bar,
  body.mobile-fixes-v160.contact-spacing-v68 .contact-bar,
  body.mobile-fixes-v160.contact-spacing-v70 .contact-bar,
  body.mobile-fixes-v160.contact-spacing-v71 .contact-bar {
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 42px !important;
    margin-bottom: 0 !important;
    padding-top: 18px !important;
    border-top: 1px solid rgba(255,250,242,.17) !important;
    gap: 14px !important;
  }
  body.mobile-fixes-v160 .contact-bar-title {
    margin: 0 0 2px !important;
    text-align: center !important;
    font-size: 11px !important;
    letter-spacing: .17em !important;
  }
  body.mobile-fixes-v160 .contact-links-v67 {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: 520px !important;
    margin: 0 auto !important;
    gap: 8px 6px !important;
    align-items: stretch !important;
  }
  body.mobile-fixes-v160 .contact-links-v67 .contact-pill {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 38px !important;
    padding: 7px 9px !important;
    margin: 0 !important;
    gap: 7px !important;
    border: 1px solid rgba(255,250,242,.15) !important;
    border-radius: 999px !important;
    background: rgba(255,250,242,.055) !important;
  }
  body.mobile-fixes-v160 .contact-links-v67 .contact-pill::after {
    display: none !important;
  }
  body.mobile-fixes-v160 .contact-links-v67 .contact-pill:nth-child(1),
  body.mobile-fixes-v160 .contact-links-v67 .contact-pill:nth-child(2) {
    grid-column: span 6 !important;
  }
  body.mobile-fixes-v160 .contact-links-v67 .contact-pill:nth-child(3),
  body.mobile-fixes-v160 .contact-links-v67 .contact-pill:nth-child(4),
  body.mobile-fixes-v160 .contact-links-v67 .contact-pill:nth-child(5) {
    grid-column: span 2 !important;
  }
  body.mobile-fixes-v160 .contact-links-v67 .contact-pill svg {
    flex: 0 0 auto !important;
    width: 17px !important;
    height: 17px !important;
  }
  body.mobile-fixes-v160 .contact-links-v67 .contact-pill span {
    min-width: 0 !important;
    max-width: 100% !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}

/* Teléfono horizontal: CTA sin cruces y Contacto compacto pero respirado. */
@media (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  body.mobile-fixes-v160 .hero-actions {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    width: auto !important;
    max-width: calc(100vw - max(24px, env(safe-area-inset-left)) - max(24px, env(safe-area-inset-right))) !important;
    margin-top: 12px !important;
  }
  body.mobile-fixes-v160 .hero-actions .btn,
  body.mobile-fixes-v160 .hero-actions .btn.glass,
  body.mobile-fixes-v160 .hero-actions .btn:first-child {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 32px !important;
    padding: 0 12px !important;
    margin: 0 !important;
    font-size: 9.7px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }
  body.mobile-fixes-v160 .hero-actions .btn:first-child {
    min-height: 34px !important;
    padding-inline: 14px !important;
    font-size: 10px !important;
  }
  body.mobile-fixes-v160 .scroll-cue { display: none !important; }

  body.mobile-fixes-v160 .contact-section {
    padding-top: 44px !important;
    padding-bottom: 20px !important;
  }
  body.mobile-fixes-v160 .contact-content h2 {
    font-size: clamp(30px, 5.2vw, 44px) !important;
    line-height: .96 !important;
  }
  body.mobile-fixes-v160 .contact-content > p {
    margin-top: 8px !important;
    font-size: 11px !important;
  }
  body.mobile-fixes-v160 .contact-actions {
    margin-top: 14px !important;
    gap: 7px !important;
  }
  body.mobile-fixes-v160 .contact-actions .btn,
  body.mobile-fixes-v160 .contact-actions .btn:nth-child(n) {
    min-height: 31px !important;
    padding: 0 11px !important;
    font-size: 9.4px !important;
  }
  body.mobile-fixes-v160 .contact-bar,
  body.mobile-fixes-v160.contact-spacing-v68 .contact-bar,
  body.mobile-fixes-v160.contact-spacing-v70 .contact-bar,
  body.mobile-fixes-v160.contact-spacing-v71 .contact-bar {
    margin-top: 30px !important;
    padding-top: 14px !important;
  }
  body.mobile-fixes-v160 .contact-links-v67 {
    max-width: 660px !important;
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  }
  body.mobile-fixes-v160 .contact-links-v67 .contact-pill:nth-child(1),
  body.mobile-fixes-v160 .contact-links-v67 .contact-pill:nth-child(2) {
    grid-column: span 6 !important;
  }
  body.mobile-fixes-v160 .contact-links-v67 .contact-pill:nth-child(3),
  body.mobile-fixes-v160 .contact-links-v67 .contact-pill:nth-child(4),
  body.mobile-fixes-v160 .contact-links-v67 .contact-pill:nth-child(5) {
    grid-column: span 4 !important;
  }
}

/* ============================================================
   V162 — CIERRE DE DESTACADOS EN TELÉFONO
   Alcance exclusivo a teléfono vertical/horizontal.
   1) El encabezado de Destacados desaparece antes de Experiencias.
   2) En horizontal las flechas conservan función, pero bajan de protagonismo.
   Tablet y escritorio quedan fuera de estas reglas.
   ============================================================ */
@media (max-width: 600px),
       (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  body.mobile-fixes-v162.destacados-v148 #destacados.is-title-released-v162 .section-title-row,
  body.mobile-fixes-v162.destacados-v148 #destacados.is-title-released-v162.is-run .section-title-row,
  body.mobile-fixes-v162.destacados-v148 #destacados.is-title-released-v162 .section-title-row.is-built,
  body.mobile-fixes-v162.destacados-v148 #destacados.is-title-released-v162 .section-title-row.scroll-build-item {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate3d(0,-12px,0) !important;
    transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s !important;
  }
  body.mobile-fixes-v162.destacados-v148 #destacados.is-title-released-v162 .section-title-row *,
  body.mobile-fixes-v162.destacados-v148 #destacados.is-title-released-v162.is-run .section-title-row * {
    opacity: 0 !important;
    visibility: hidden !important;
  }
}

@media (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  body.mobile-fixes-v162.destacados-v148 #destacados .highlight-arrow {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    padding: 0 !important;
    border-width: 1px !important;
    background: rgba(255,250,242,.58) !important;
    color: rgba(27,20,15,.78) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,.10) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    opacity: .72 !important;
    top: auto !important;
    bottom: 14px !important;
    transform: none !important;
  }
  body.mobile-fixes-v162.destacados-v148 #destacados .highlight-prev {
    left: max(16px, env(safe-area-inset-left)) !important;
  }
  body.mobile-fixes-v162.destacados-v148 #destacados .highlight-next {
    right: max(16px, env(safe-area-inset-right)) !important;
  }
  body.mobile-fixes-v162.destacados-v148 #destacados .highlight-arrow:hover,
  body.mobile-fixes-v162.destacados-v148 #destacados .highlight-arrow:focus-visible {
    opacity: .9 !important;
    background: rgba(255,250,242,.72) !important;
  }
}


/* V169 — pseudo-contenido bilingüe.
   Estos textos no existen como nodos HTML, por lo que requieren variante CSS. */
html[data-cm-lang="en"] .booking-form .btn.primary::after {
  content: ' → secure payment';
}
html[data-cm-lang="en"] .booking-payment-heading .booking-payment-countdown::before {
  content: 'TIME REMAINING';
}

/* ============================================================
   V170 — ESTABILIDAD RESPONSIVE + PSEUDOTEXTOS BILINGÜES
   La pista de scrollytelling usa una altura estable capturada por JS.
   Evita saltos cuando Safari/Chrome móvil muestran u ocultan sus barras.
   Escritorio (>1100px) queda fuera de estas reglas.
   ============================================================ */
html[data-cm-lang="es"] .booking-form .btn.primary::after { content: ' → pago seguro'; }
html[data-cm-lang="en"] .booking-form .btn.primary::after { content: ' → secure payment'; }
html[data-cm-lang="es"] .booking-payment-heading .booking-payment-countdown::before { content: 'TIEMPO RESTANTE'; }
html[data-cm-lang="en"] .booking-payment-heading .booking-payment-countdown::before { content: 'TIME REMAINING'; }

@media (max-width: 1100px) {
  body.responsive-matrix-v154.destacados-v148 #destacados {
    min-height: calc(var(--cm-stable-vh, 1svh) * 660) !important;
  }
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-carousel,
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-card,
  body.responsive-matrix-v154.destacados-v148 #destacados .highlight-card.is-active {
    height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
    min-height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
  }
  body.responsive-matrix-v154 #experiencias {
    min-height: calc(var(--cm-stable-vh, 1svh) * 600) !important;
  }
  body.responsive-matrix-v154 #experiencias .experience-sticky {
    height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
    min-height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
  }
}

@media (max-width: 600px) {
  body.responsive-matrix-v154.destacados-v148 #destacados {
    min-height: calc(var(--cm-stable-vh, 1svh) * 720) !important;
  }
  body.responsive-matrix-v154 #experiencias {
    min-height: calc(var(--cm-stable-vh, 1svh) * 660) !important;
  }
}

@media (max-width: 1100px) and (orientation: landscape) and (max-height: 650px) {
  body.responsive-matrix-v154.destacados-v148 #destacados {
    min-height: calc(var(--cm-stable-vh, 1svh) * 690) !important;
  }
  body.responsive-matrix-v154 #experiencias {
    min-height: calc(var(--cm-stable-vh, 1svh) * 620) !important;
  }
  body.responsive-matrix-v154 #experiencias .experience-shell {
    min-height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
  }
  body.responsive-matrix-v154 #experiencias .experience-stage {
    min-height: calc(var(--cm-stable-vh, 1svh) * 58) !important;
  }
}

@media (max-width: 600px),
       (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  body.mobile-tour-v155 #recorrido .chapter-sticky,
  body.mobile-tour-v155.scroll-v18 #recorrido .chapter-sticky,
  body.mobile-fixes-v160 #recorrido .chapter-sticky,
  body.mobile-fixes-v160.scroll-v18 #recorrido .chapter-sticky {
    height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
    min-height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
  }
  body.mobile-fixes-v160 #recorrido .chapter-step,
  body.mobile-fixes-v160.scroll-v18 #recorrido .chapter-step {
    min-height: calc(var(--cm-stable-vh, 1svh) * 122) !important;
  }
  body.mobile-fixes-v160 #recorrido .chapter-step:last-child,
  body.mobile-fixes-v160.scroll-v18 #recorrido .chapter-step:last-child {
    min-height: calc(var(--cm-stable-vh, 1svh) * 158) !important;
  }
}

@media (orientation: portrait) and (min-width: 601px) and (max-width: 1100px) {
  body.responsive-tour-v156 #recorrido .chapter-sticky,
  body.responsive-tour-v156.scroll-v18 #recorrido .chapter-sticky {
    height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
    min-height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
  }
  body.responsive-tour-v156 #recorrido .chapter-step,
  body.responsive-tour-v156.scroll-v18 #recorrido .chapter-step {
    min-height: calc(var(--cm-stable-vh, 1svh) * 112) !important;
  }
  body.responsive-tour-v156 #recorrido .chapter-step:last-child,
  body.responsive-tour-v156.scroll-v18 #recorrido .chapter-step:last-child {
    min-height: calc(var(--cm-stable-vh, 1svh) * 148) !important;
  }
}

/* V170.1 — especificidad de cierre para reglas heredadas V151/V152. */
@media (max-width: 1100px) {
  body.responsive-matrix-v154 .hero,
  body.responsive-matrix-v154 .hero-content {
    min-height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
  }
  body.responsive-matrix-v154.mobile-layout-v151.destacados-v148.cm-responsive-v63 #destacados,
  body.responsive-matrix-v154.mobile-layout-v152.destacados-v148.cm-responsive-v63 #destacados {
    min-height: calc(var(--cm-stable-vh, 1svh) * 660) !important;
  }
  body.responsive-matrix-v154.mobile-layout-v151.destacados-v148.cm-responsive-v63 #destacados .highlight-carousel,
  body.responsive-matrix-v154.mobile-layout-v151.destacados-v148.cm-responsive-v63 #destacados .highlight-card,
  body.responsive-matrix-v154.mobile-layout-v152.destacados-v148.cm-responsive-v63 #destacados .highlight-carousel,
  body.responsive-matrix-v154.mobile-layout-v152.destacados-v148.cm-responsive-v63 #destacados .highlight-card {
    height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
    min-height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
  }
}
@media (max-width: 600px) {
  body.responsive-matrix-v154.mobile-layout-v151.destacados-v148.cm-responsive-v63 #destacados,
  body.responsive-matrix-v154.mobile-layout-v152.destacados-v148.cm-responsive-v63 #destacados {
    min-height: calc(var(--cm-stable-vh, 1svh) * 720) !important;
  }
}
@media (max-width: 1100px) and (orientation: landscape) and (max-height: 650px) {
  body.responsive-matrix-v154.mobile-layout-v151.destacados-v148.cm-responsive-v63 #destacados,
  body.responsive-matrix-v154.mobile-layout-v152.destacados-v148.cm-responsive-v63 #destacados {
    min-height: calc(var(--cm-stable-vh, 1svh) * 690) !important;
  }
}


/* ============================================================
   V171 — ESTABILIDAD INTEGRAL
   La barra de progreso usa transform en su propio elemento para evitar
   invalidaciones globales de estilo durante el scroll. Las geometrías
   responsive aprobadas de V170 permanecen sin cambios.
   ============================================================ */


/* ============================================================
   V173 — CONTRATO RESPONSIVE INTEGRAL
   Alcance: landing + galería en formatos <= 1100px.
   Objetivos:
   - En teléfono/tablet, eliminar la barra completa y conservar sólo hamburguesa flotante.
   - Mantener idioma + Reserva dentro del panel del menú.
   - Escalar tipografía por ancho/altura real para evitar textos sobredimensionados.
   - Compactar especialmente paisaje de poca altura sin alterar escritorio >1100px.
   - No modifica alturas ni lógica de scrollytelling de V170/V171.
   ============================================================ */

@media (max-width: 1100px) {
  body.responsive-v173 {
    --cm-v173-left: max(16px, env(safe-area-inset-left));
    --cm-v173-right: max(16px, env(safe-area-inset-right));
  }

  /* HEADER: sin barra visual en teléfono/tablet, ambas orientaciones. */
  body.responsive-v173 .site-header,
  body.responsive-v173.has-scrolled .site-header {
    position: fixed !important;
    inset: 0 0 auto 0 !important;
    width: 100% !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: visible !important;
    pointer-events: none !important;
  }
  body.responsive-v173 .nav-shell,
  body.responsive-v173.has-scrolled .nav-shell {
    position: static !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    gap: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: visible !important;
    pointer-events: none !important;
  }
  body.responsive-v173 .brand,
  body.responsive-v173 .nav-actions-v63 > .language-switch,
  body.responsive-v173 .nav-actions-v63 > .nav-cta {
    display: none !important;
  }
  body.responsive-v173 .nav-actions-v63 {
    position: fixed !important;
    z-index: 1002 !important;
    top: max(12px, env(safe-area-inset-top)) !important;
    right: var(--cm-v173-right) !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    gap: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    pointer-events: auto !important;
  }
  body.responsive-v173 .nav-actions-v63 .nav-toggle,
  body.responsive-v173.has-scrolled .nav-actions-v63 .nav-toggle {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    place-items: center !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid rgba(255,250,242,.24) !important;
    border-radius: 50% !important;
    color: #fffaf2 !important;
    background: rgba(24,17,13,.46) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.15) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    pointer-events: auto !important;
  }
  body.responsive-v173 .nav-toggle span {
    width: 18px !important;
    height: 1.5px !important;
    margin: 3px auto !important;
    background: currentColor !important;
  }
  body.responsive-v173 .nav-links {
    display: grid !important;
    position: fixed !important;
    z-index: 1001 !important;
    top: calc(max(12px, env(safe-area-inset-top)) + 54px) !important;
    left: var(--cm-v173-left) !important;
    right: var(--cm-v173-right) !important;
    width: auto !important;
    max-width: 520px !important;
    max-height: calc(100svh - max(12px, env(safe-area-inset-top)) - 72px) !important;
    margin-left: auto !important;
    padding: 12px !important;
    gap: 0 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    border: 1px solid rgba(91,67,48,.14) !important;
    border-radius: 20px !important;
    background: rgba(247,241,232,.97) !important;
    color: var(--ink) !important;
    box-shadow: 0 20px 55px rgba(31,22,16,.18) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(-8px) !important;
    pointer-events: none !important;
    transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s !important;
  }
  body.responsive-v173 .nav-links.is-open {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
    transition-delay: 0s !important;
  }
  body.responsive-v173 .nav-links > a {
    padding: 10px 11px !important;
    font-size: clamp(12px, 1.6vw, 13px) !important;
    line-height: 1.2 !important;
  }
  body.responsive-v173 .nav-mobile-tools-v150 {
    display: grid !important;
    grid-template-columns: auto minmax(0,1fr) !important;
    gap: 8px !important;
    align-items: center !important;
    padding: 10px 3px 2px !important;
  }
  body.responsive-v173 .nav-mobile-language-v150 {
    display: inline-flex !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 3px !important;
    background: rgba(91,67,48,.07) !important;
    color: var(--ink) !important;
  }
  body.responsive-v173 .nav-mobile-language-v150 button {
    min-width: 34px !important;
    min-height: 34px !important;
    padding: 5px 7px !important;
    font-size: 10.5px !important;
  }
  body.responsive-v173 .nav-mobile-reserve-v150 {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    min-height: 38px !important;
    padding: 0 13px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--brown-dark) !important;
    color: var(--cream) !important;
    font-size: 11.5px !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
  }

  /* Tipografía responsive base: tablet y formatos intermedios. */
  body.responsive-v173 .hero-title {
    font-size: clamp(40px, 6vw, 62px) !important;
    line-height: .9 !important;
  }
  body.responsive-v173 .hero-copy h2 {
    font-size: clamp(28px, 4vw, 42px) !important;
    line-height: 1 !important;
  }
  body.responsive-v173 .hero-copy p {
    font-size: clamp(12px, 1.7vw, 15px) !important;
    line-height: 1.46 !important;
  }
  body.responsive-v173 .section-title-row h2,
  body.responsive-v173 .contact-content h2 {
    font-size: clamp(34px, 4.7vw, 48px) !important;
    line-height: .96 !important;
  }
  body.responsive-v173.destacados-v148 #destacados .section-title-row h2 {
    font-size: clamp(28px, 4.2vw, 40px) !important;
  }
  body.responsive-v173.destacados-v148 #destacados .highlight-card-copy h3 {
    font-size: clamp(24px, 3.8vw, 36px) !important;
  }
  body.responsive-v173.destacados-v148 #destacados .highlight-card-copy p {
    font-size: clamp(11px, 1.55vw, 13.5px) !important;
  }
  body.responsive-v173 #experiencias .experience-heading h2 {
    font-size: clamp(34px, 4.6vw, 46px) !important;
    line-height: .95 !important;
  }
  body.responsive-v173 #experiencias .experience-review blockquote {
    font-size: clamp(24px, 3vw, 32px) !important;
    line-height: 1.06 !important;
  }
  body.responsive-v173 #recorrido .chapter-caption h3 {
    font-size: clamp(30px, 4.4vw, 44px) !important;
    line-height: .95 !important;
  }
  body.responsive-v173 #recorrido .chapter-caption p {
    font-size: clamp(12px, 1.7vw, 15px) !important;
    line-height: 1.45 !important;
  }
  body.responsive-v173 #recorrido .chapter-step h2 {
    font-size: clamp(32px, 4.2vw, 46px) !important;
    line-height: .96 !important;
  }
  body.responsive-v173 #recorrido .chapter-step p {
    font-size: clamp(13px, 1.65vw, 16px) !important;
    line-height: 1.48 !important;
  }
  body.responsive-v173 .stats-grid strong {
    font-size: clamp(38px, 6vw, 58px) !important;
  }
  body.responsive-v173 .calendar-top h3,
  body.responsive-v173 .booking-panel-title,
  body.responsive-v173 .location-card h3,
  body.responsive-v173 .croquis-copy h3 {
    font-size: clamp(28px, 3.8vw, 38px) !important;
    line-height: .98 !important;
  }
  body.responsive-v173 #amenidades .amenity-card button {
    font-size: clamp(18px, 2.4vw, 22px) !important;
    line-height: 1.08 !important;
  }
  body.responsive-v173 #info-util summary {
    font-size: clamp(14px, 1.8vw, 16px) !important;
    line-height: 1.25 !important;
  }
  body.responsive-v173 .modality-cap-top strong {
    font-size: clamp(23px, 3vw, 30px) !important;
    line-height: 1 !important;
  }
  body.responsive-v173 .modality-prices b {
    font-size: clamp(28px, 4.2vw, 42px) !important;
    line-height: 1 !important;
  }
  body.responsive-v173 .contact-content > p {
    font-size: clamp(12px, 1.7vw, 15px) !important;
    line-height: 1.5 !important;
  }
}

/* Teléfono vertical: escala proporcional 320–600px. */
@media (max-width: 600px) and (orientation: portrait) {
  body.responsive-v173 .hero-identity-v154 {
    top: max(20px, calc(env(safe-area-inset-top) + 16px)) !important;
    padding-right: 58px !important;
  }
  body.responsive-v173 .hero-title { font-size: clamp(32px, 9.5vw, 40px) !important; }
  body.responsive-v173 .hero-copy h2 { font-size: clamp(22px, 6.6vw, 29px) !important; }
  body.responsive-v173 .hero-copy p { font-size: clamp(11.25px, 3vw, 12.5px) !important; }
  body.responsive-v173 .section-title-row h2,
  body.responsive-v173 .contact-content h2 { font-size: clamp(26px, 7vw, 32px) !important; }
  body.responsive-v173.destacados-v148 #destacados .section-title-row h2 { font-size: clamp(24px, 6.8vw, 29px) !important; }
  body.responsive-v173.destacados-v148 #destacados .highlight-card-copy h3 { font-size: clamp(21px, 6vw, 27px) !important; }
  body.responsive-v173 #experiencias .experience-heading h2 { font-size: clamp(29px, 8vw, 35px) !important; }
  body.responsive-v173 #experiencias .experience-review blockquote { font-size: clamp(19px, 5.6vw, 24px) !important; line-height: 1.08 !important; }
  body.responsive-v173 #recorrido .chapter-caption h3 { font-size: clamp(28px, 8vw, 35px) !important; }
  body.responsive-v173 #recorrido .chapter-caption p { font-size: clamp(11.5px, 3.2vw, 13px) !important; }
  body.responsive-v173 .stats-grid strong { font-size: clamp(32px, 9vw, 42px) !important; }
  body.responsive-v173 .calendar-top h3,
  body.responsive-v173 .booking-panel-title,
  body.responsive-v173 .location-card h3,
  body.responsive-v173 .croquis-copy h3 { font-size: clamp(23px, 6.4vw, 29px) !important; }
  body.responsive-v173 .modality-cap-top strong { font-size: clamp(20px, 5.4vw, 24px) !important; }
  body.responsive-v173 .modality-prices b { font-size: clamp(27px, 8vw, 34px) !important; }
}

/* Teléfono/tablet horizontal de poca altura: priorizar contenido útil y evitar
   títulos que consumen media pantalla. */
@media (orientation: landscape) and (max-width: 1100px) and (max-height: 650px) {
  body.responsive-v173 .nav-actions-v63 {
    top: max(8px, env(safe-area-inset-top)) !important;
  }
  body.responsive-v173 .nav-actions-v63 .nav-toggle,
  body.responsive-v173.has-scrolled .nav-actions-v63 .nav-toggle {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
  }
  body.responsive-v173 .nav-links {
    top: calc(max(8px, env(safe-area-inset-top)) + 48px) !important;
    max-height: calc(100svh - max(8px, env(safe-area-inset-top)) - 58px) !important;
    padding: 9px !important;
  }
  body.responsive-v173 .nav-links > a { padding: 8px 10px !important; font-size: 12px !important; }
  body.responsive-v173 .hero-identity-v154 {
    top: max(14px, calc(env(safe-area-inset-top) + 10px)) !important;
    padding-right: 52px !important;
  }
  body.responsive-v173 .hero-title { font-size: clamp(26px, 4.2vw, 36px) !important; }
  body.responsive-v173 .hero-copy h2 { font-size: clamp(21px, 3.3vw, 29px) !important; }
  body.responsive-v173 .hero-copy p { font-size: clamp(10.5px, 1.7vw, 12px) !important; line-height: 1.38 !important; }
  body.responsive-v173 .section-title-row h2,
  body.responsive-v173 .contact-content h2 { font-size: clamp(24px, 3.8vw, 36px) !important; }
  body.responsive-v173.destacados-v148 #destacados .section-title-row h2 { font-size: clamp(22px, 3.4vw, 30px) !important; }
  body.responsive-v173.destacados-v148 #destacados .highlight-card-copy h3 { font-size: clamp(20px, 3.1vw, 27px) !important; }
  body.responsive-v173 #experiencias .experience-heading h2 { font-size: clamp(24px, 3.6vw, 32px) !important; }
  body.responsive-v173 #experiencias .experience-review blockquote { font-size: clamp(18px, 2.7vw, 24px) !important; line-height: 1.08 !important; }
  body.responsive-v173 #recorrido .chapter-caption h3,
  body.responsive-v173 #recorrido .chapter-step h2 { font-size: clamp(26px, 3.6vw, 34px) !important; }
  body.responsive-v173 #recorrido .chapter-caption p,
  body.responsive-v173 #recorrido .chapter-step p { font-size: clamp(11px, 1.6vw, 13px) !important; line-height: 1.4 !important; }
  body.responsive-v173 .stats-grid strong { font-size: clamp(30px, 4.6vw, 40px) !important; }
  body.responsive-v173 .calendar-top h3,
  body.responsive-v173 .booking-panel-title,
  body.responsive-v173 .location-card h3,
  body.responsive-v173 .croquis-copy h3 { font-size: clamp(23px, 3.2vw, 30px) !important; }
  body.responsive-v173 .modality-cap-top strong { font-size: clamp(20px, 2.8vw, 25px) !important; }
  body.responsive-v173 .modality-prices b { font-size: clamp(26px, 3.8vw, 34px) !important; }
}

/* Teléfono muy pequeño: ajustes de respiración, no de estructura. */
@media (max-width: 360px) and (orientation: portrait) {
  body.responsive-v173 { --cm-v173-left: max(13px, env(safe-area-inset-left)); --cm-v173-right: max(13px, env(safe-area-inset-right)); }
  body.responsive-v173 .nav-actions-v63 .nav-toggle,
  body.responsive-v173.has-scrolled .nav-actions-v63 .nav-toggle {
    width: 42px !important; height: 42px !important; min-width: 42px !important; min-height: 42px !important;
  }
  body.responsive-v173 .hero-actions { gap: 6px !important; }
  body.responsive-v173 .hero-actions .btn,
  body.responsive-v173 .hero-actions .btn:first-child {
    padding-inline: 10px !important;
    font-size: 10.5px !important;
  }
  body.responsive-v173 .contact-actions .btn,
  body.responsive-v173 .contact-actions .btn:nth-child(n) {
    padding-inline: 10px !important;
    font-size: 10px !important;
  }
}


/* V173.1 — cierre de especificidad y compensación al eliminar la barra. */
@media (max-width: 1100px) {
  html { scroll-padding-top: max(12px, env(safe-area-inset-top)) !important; }
  body.responsive-v173 main > section,
  body.responsive-v173 .section,
  body.responsive-v173 .contact-section,
  body.responsive-v173 .chapter-section { scroll-margin-top: 0 !important; }

  body.responsive-v173.responsive-matrix-v154 .hero-identity-v154 {
    top: max(22px, calc(env(safe-area-inset-top) + 16px)) !important;
    padding-right: 58px !important;
  }
  body.responsive-v173.responsive-matrix-v154 .hero-identity-v154 .hero-title {
    font-size: clamp(36px, 5.4vw, 52px) !important;
  }
  body.responsive-v173.responsive-matrix-v154.destacados-v148 #destacados .section-title-row > div {
    top: max(20px, calc(env(safe-area-inset-top) + 14px)) !important;
    padding-right: 54px !important;
  }

  /* Galería: al desaparecer la barra, la escena recupera también ese espacio. */
  body.responsive-v173.gallery-page .gallery-sphere-stage {
    inset: 0 !important;
  }
  body.responsive-v173.gallery-page .gallery-copy {
    top: max(24px, calc(env(safe-area-inset-top) + 18px)) !important;
    padding-right: 54px !important;
  }
  body.responsive-v173.gallery-page .gallery-copy h1 {
    font-size: clamp(32px, 4.6vw, 46px) !important;
    line-height: 1 !important;
  }
  body.responsive-v173.gallery-page .gallery-caption strong {
    font-size: clamp(23px, 3vw, 32px) !important;
    line-height: 1.02 !important;
  }
  body.responsive-v173.gallery-page .gallery-caption span {
    font-size: clamp(11px, 1.55vw, 14px) !important;
    line-height: 1.42 !important;
  }
}

@media (max-width: 600px) and (orientation: portrait) {
  body.responsive-v173.responsive-matrix-v154 .hero-identity-v154 {
    top: max(18px, calc(env(safe-area-inset-top) + 12px)) !important;
  }
  body.responsive-v173.responsive-matrix-v154 .hero-identity-v154 .hero-title {
    font-size: clamp(32px, 9.5vw, 40px) !important;
  }
  body.responsive-v173.gallery-page .gallery-copy h1 {
    font-size: clamp(25px, 7.2vw, 32px) !important;
  }
  body.responsive-v173.gallery-page .gallery-caption strong {
    font-size: clamp(19px, 5.4vw, 24px) !important;
  }
  body.responsive-v173.gallery-page .gallery-caption span {
    font-size: clamp(10px, 2.9vw, 12px) !important;
  }
}

@media (orientation: landscape) and (max-width: 1100px) and (max-height: 650px) {
  body.responsive-v173.responsive-matrix-v154 .hero-identity-v154 {
    top: max(12px, calc(env(safe-area-inset-top) + 8px)) !important;
  }
  body.responsive-v173.responsive-matrix-v154 .hero-identity-v154 .hero-title {
    font-size: clamp(26px, 4vw, 34px) !important;
  }
  body.responsive-v173.responsive-matrix-v154.destacados-v148 #destacados .section-title-row > div {
    top: max(12px, calc(env(safe-area-inset-top) + 8px)) !important;
  }
  body.responsive-v173.gallery-page .gallery-copy {
    top: max(18px, calc(env(safe-area-inset-top) + 12px)) !important;
  }
  body.responsive-v173.gallery-page .gallery-copy h1 {
    font-size: clamp(22px, 3.2vw, 28px) !important;
  }
  body.responsive-v173.gallery-page .gallery-caption strong {
    font-size: clamp(17px, 2.4vw, 21px) !important;
  }
  body.responsive-v173.gallery-page .gallery-caption span {
    font-size: clamp(9px, 1.15vw, 10.5px) !important;
  }
}


/* ============================================================
   V174 — MODALIDADES HORIZONTALES + RECORRIDO POR ETAPAS
   Objetivos:
   1) En formatos verticales responsive, Modalidades se recorre lateralmente
      para no añadir tres tarjetas completas al scroll vertical.
   2) El Recorrido inmersivo conserva una meseta mayor por capítulo; no usa
      scroll-snap vertical ni bloquea el gesto del usuario.
   ============================================================ */

/* Modalidades: teléfono y tablet VERTICAL comparten carrusel lateral. */
@media (orientation: portrait) and (max-width: 1100px) {
  body.responsive-v174 #modalidades {
    overflow-x: clip !important;
  }
  body.responsive-v174 #modalidades .modality-capsules {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: stretch !important;
    gap: 16px !important;
    width: 100vw !important;
    max-width: none !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 4px max(18px, env(safe-area-inset-right)) 20px max(18px, env(safe-area-inset-left)) !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-x: contain !important;
    scroll-snap-type: x proximity !important;
    scroll-padding-inline: max(18px, env(safe-area-inset-left)) !important;
    scrollbar-width: none !important;
    touch-action: pan-x pan-y !important;
  }
  body.responsive-v174 #modalidades .modality-capsules::-webkit-scrollbar {
    display: none !important;
  }
  body.responsive-v174 #modalidades .modality-capsule {
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    height: auto !important;
    scroll-snap-align: center !important;
    scroll-snap-stop: normal !important;
  }
}

/* Teléfono vertical: se ve una tarjeta y una pista de la siguiente. */
@media (orientation: portrait) and (max-width: 600px) {
  body.responsive-v174 #modalidades .modality-capsule {
    flex: 0 0 min(80vw, 400px) !important;
  }
  body.responsive-v174 #modalidades .modality-capsules {
    gap: 13px !important;
    padding-bottom: 16px !important;
  }
}

/* Tablet vertical: tarjeta más ancha, pero sin ocupar toda la pantalla. */
@media (orientation: portrait) and (min-width: 601px) and (max-width: 1100px) {
  body.responsive-v174 #modalidades .modality-capsule {
    flex: 0 0 min(68vw, 540px) !important;
  }
}

/* Recorrido — teléfono vertical. El alto extra es una pausa física de cada
   marcador; el cambio real de capítulo lo decide JS V174 cerca del 22%.
   El último marcador es más largo porque el sticky se libera una pantalla antes
   del final de la sección: así el capítulo 05 conserva una pausa equivalente. */
@media (orientation: portrait) and (max-width: 600px) {
  body.responsive-v174.mobile-fixes-v160 #recorrido .chapter-step,
  body.responsive-v174.mobile-fixes-v160.scroll-v18 #recorrido .chapter-step {
    min-height: calc(var(--cm-stable-vh, 1svh) * 136) !important;
  }
  body.responsive-v174.mobile-fixes-v160 #recorrido .chapter-step:last-child,
  body.responsive-v174.mobile-fixes-v160.scroll-v18 #recorrido .chapter-step:last-child {
    min-height: calc(var(--cm-stable-vh, 1svh) * 214) !important;
  }
}

/* Recorrido — teléfono/tablet horizontal de poca altura. */
@media (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  body.responsive-v174.mobile-fixes-v160 #recorrido .chapter-step,
  body.responsive-v174.mobile-fixes-v160.scroll-v18 #recorrido .chapter-step {
    min-height: calc(var(--cm-stable-vh, 1svh) * 132) !important;
  }
  body.responsive-v174.mobile-fixes-v160 #recorrido .chapter-step:last-child,
  body.responsive-v174.mobile-fixes-v160.scroll-v18 #recorrido .chapter-step:last-child {
    min-height: calc(var(--cm-stable-vh, 1svh) * 210) !important;
  }
}

/* Recorrido — tablet vertical: misma lógica inmersiva con una duración
   ligeramente menor que teléfono porque dispone de más área visual. */
@media (orientation: portrait) and (min-width: 601px) and (max-width: 1100px) {
  body.responsive-v174.responsive-tour-v156 #recorrido .chapter-step,
  body.responsive-v174.responsive-tour-v156.scroll-v18 #recorrido .chapter-step {
    min-height: calc(var(--cm-stable-vh, 1svh) * 128) !important;
  }
  body.responsive-v174.responsive-tour-v156 #recorrido .chapter-step:last-child,
  body.responsive-v174.responsive-tour-v156.scroll-v18 #recorrido .chapter-step:last-child {
    min-height: calc(var(--cm-stable-vh, 1svh) * 204) !important;
  }
}

/* ============================================================
   V175 — PORTADA MÁS CLARA SIN ALTERAR LA FOTO ORIGINAL
   Recupera detalle del Hero, con un ajuste mayor en celular/tablet y
   sombreado localizado solo donde hace falta para conservar legibilidad.
   ============================================================ */
body.responsive-v175 .hero-media img {
  filter: saturate(1.04) contrast(1.02) brightness(1.09) !important;
}
body.responsive-v175 .hero-shade {
  background:
    radial-gradient(circle at 22% 30%, rgba(196,154,101,.13), transparent 30rem),
    linear-gradient(90deg, rgba(20,14,10,.50), rgba(20,14,10,.14) 48%, rgba(20,14,10,.34)),
    linear-gradient(180deg, rgba(20,14,10,.13), rgba(20,14,10,.54)) !important;
}
@media (max-width: 1100px) {
  body.responsive-v175 .hero-media img {
    object-position: 54% 50% !important;
    filter: saturate(1.06) contrast(1.015) brightness(1.15) !important;
  }
  body.responsive-v175 .hero-shade {
    background:
      radial-gradient(circle at 28% 34%, rgba(196,154,101,.10), transparent 24rem),
      linear-gradient(90deg, rgba(16,11,8,.30), rgba(16,11,8,.06) 52%, rgba(16,11,8,.20)),
      linear-gradient(180deg, rgba(12,9,7,.28) 0%, rgba(12,9,7,.05) 30%, rgba(12,9,7,.08) 57%, rgba(12,9,7,.62) 100%) !important;
  }
}
@media (max-width: 600px) and (orientation: portrait) {
  body.responsive-v175 .hero-media img {
    object-position: 55% 50% !important;
    filter: saturate(1.07) contrast(1.01) brightness(1.18) !important;
  }
  body.responsive-v175 .hero-shade {
    background:
      radial-gradient(circle at 32% 36%, rgba(196,154,101,.08), transparent 20rem),
      linear-gradient(180deg, rgba(10,8,6,.30) 0%, rgba(10,8,6,.04) 27%, rgba(10,8,6,.035) 58%, rgba(10,8,6,.66) 100%) !important;
  }
}
@media (orientation: landscape) and (max-width: 1100px) and (max-height: 650px) {
  body.responsive-v175 .hero-media img {
    object-position: 50% 53% !important;
    filter: saturate(1.06) contrast(1.015) brightness(1.16) !important;
  }
  body.responsive-v175 .hero-shade {
    background:
      linear-gradient(90deg, rgba(12,9,7,.28), rgba(12,9,7,.05) 50%, rgba(12,9,7,.18)),
      linear-gradient(180deg, rgba(10,8,6,.24) 0%, rgba(10,8,6,.03) 44%, rgba(10,8,6,.52) 100%) !important;
  }
}


/* ============================================================
   V176 — HERO LANDSCAPE + DESTACADOS LIMPIOS + MODALIDADES GUIADAS
   1) Hero de celular horizontal: evita empalmes y prioriza legibilidad.
   2) Destacados responsive: crossfade limpio, sin bordes/tramos entrando.
   3) Modalidades verticales: carrusel por fichas con flechas guía.
   ============================================================ */

/* Hero específico para teléfono horizontal / tablet horizontal baja. */
@media (orientation: landscape) and (max-width: 1100px) and (max-height: 650px) {
  body.responsive-v176 .hero-content {
    justify-content: flex-start !important;
    padding-top: max(54px, calc(env(safe-area-inset-top) + 44px)) !important;
    padding-bottom: 20px !important;
  }
  body.responsive-v176 .hero-identity-v154 {
    padding-right: 58px !important;
    max-width: min(54vw, 320px) !important;
  }
  body.responsive-v176 .hero-title {
    font-size: clamp(24px, 4.2vw, 34px) !important;
    line-height: .82 !important;
    letter-spacing: -.055em !important;
    max-width: 6.3ch !important;
    margin: 0 !important;
  }
  body.responsive-v176 .hero-bottom {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
    margin-top: 12px !important;
    max-width: min(62vw, 560px) !important;
  }
  body.responsive-v176 .hero-copy {
    max-width: none !important;
  }
  body.responsive-v176 .hero-copy h2 {
    font-size: clamp(18px, 3.6vw, 26px) !important;
    line-height: .95 !important;
    margin: 0 0 8px !important;
    max-width: 12ch !important;
  }
  body.responsive-v176 .hero-copy p {
    font-size: clamp(9.9px, 1.6vw, 11.6px) !important;
    line-height: 1.34 !important;
    max-width: 62ch !important;
  }
  body.responsive-v176 .hero-actions {
    margin-top: 12px !important;
    gap: 8px !important;
  }
  body.responsive-v176 .hero-card {
    display: none !important;
  }
}

/* Destacados responsive: solo una imagen visible a la vez, sin asomos laterales. */
@media (max-width: 1100px) {
  body.responsive-v176.destacados-v148 #destacados .highlight-carousel {
    overflow: hidden !important;
  }
  body.responsive-v176.destacados-v148 #destacados .highlight-viewport,
  body.responsive-v176.destacados-v148 #destacados .highlight-track {
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
  }
  body.responsive-v176.destacados-v148 #destacados .highlight-card {
    overflow: hidden !important;
    will-change: opacity, transform !important;
    backface-visibility: hidden !important;
    transform-style: preserve-3d !important;
  }
  body.responsive-v176.destacados-v148 #destacados .highlight-card img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
}

/* Modalidades con flechas guía solo en vertical responsive. */
.modality-controls {
  display: none;
}
.modality-nav {
  width: 44px;
  height: 44px;
  border: 1px solid rgba(91,67,48,.18);
  border-radius: 999px;
  background: rgba(255,250,242,.88);
  color: var(--brown-dark);
  box-shadow: 0 10px 26px rgba(45, 29, 20, .10);
  display: inline-grid;
  place-items: center;
  font-size: 20px;
  font-weight: 800;
  line-height: 1;
  transition: transform .2s ease, opacity .2s ease, background .2s ease;
}
.modality-nav:hover,
.modality-nav:focus-visible {
  transform: translateY(-1px);
  background: rgba(255,250,242,.98);
}
.modality-nav.is-hidden,
.modality-nav:disabled {
  opacity: 0;
  pointer-events: none;
}
@media (orientation: portrait) and (max-width: 1100px) {
  body.responsive-v176 #modalidades .modality-capsules {
    scroll-snap-type: x mandatory !important;
  }
  body.responsive-v176 #modalidades .modality-capsule {
    scroll-snap-align: start !important;
    scroll-snap-stop: always !important;
  }
  body.responsive-v176 #modalidades .modality-controls {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100vw !important;
    margin: 2px calc(50% - 50vw) 0 !important;
    padding: 0 max(18px, env(safe-area-inset-right)) 0 max(18px, env(safe-area-inset-left)) !important;
  }
}


/* ============================================================
   V177 — CIERRE DE REGRESIÓN DESTACADOS + FLECHAS MODALIDADES VISIBLES
   - Destacados responsive mantiene todas las láminas exactamente superpuestas;
     el cambio es únicamente por opacidad y nunca desplaza una foto desde un borde.
   - Flechas de Modalidades permanecen a media pantalla mientras la sección está
     activa, para seguir visibles aunque la ficha sea más alta que el viewport.
   ============================================================ */
@media (max-width: 1100px) {
  body.responsive-v177.destacados-v148 #destacados .highlight-carousel,
  body.responsive-v177.destacados-v148 #destacados .highlight-viewport,
  body.responsive-v177.destacados-v148 #destacados .highlight-track {
    position: sticky !important;
    top: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
    min-height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body.responsive-v177.destacados-v148 #destacados .highlight-viewport,
  body.responsive-v177.destacados-v148 #destacados .highlight-track {
    position: relative !important;
  }
  body.responsive-v177.destacados-v148 #destacados .highlight-card,
  body.responsive-v177.destacados-v148 #destacados .highlight-card.is-active,
  body.responsive-v177.destacados-v148 #destacados .highlight-card.is-prev,
  body.responsive-v177.destacados-v148 #destacados .highlight-card.is-next {
    position: absolute !important;
    inset: auto !important;
    left: 50% !important;
    top: 50% !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
    min-height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    transform: translate(-50%, -50%) !important;
    transition: none !important;
    overflow: hidden !important;
  }
  body.responsive-v177.destacados-v148 #destacados .highlight-card img {
    position: absolute !important;
    inset: -1px !important;
    width: calc(100% + 2px) !important;
    height: calc(100% + 2px) !important;
    max-width: none !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    transform: scale(1.012) !important;
  }
}

@media (orientation: portrait) and (max-width: 1100px) {
  body.responsive-v177 #modalidades {
    position: relative !important;
  }
  body.responsive-v177 #modalidades .modality-controls {
    display: flex !important;
    position: sticky !important;
    top: 50svh !important;
    top: calc(var(--cm-stable-vh, 1svh) * 50) !important;
    z-index: 80 !important;
    width: 100vw !important;
    height: 0 !important;
    margin: 0 calc(50% - 50vw) !important;
    padding: 0 max(12px, env(safe-area-inset-right)) 0 max(12px, env(safe-area-inset-left)) !important;
    align-items: center !important;
    justify-content: space-between !important;
    transform: translateY(-22px) !important;
    pointer-events: none !important;
  }
  body.responsive-v177 #modalidades .modality-nav {
    pointer-events: auto !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    min-height: 46px !important;
    background: rgba(255,250,242,.94) !important;
    box-shadow: 0 12px 30px rgba(45,29,20,.18) !important;
  }
  body.responsive-v177 #modalidades .modality-nav.is-hidden,
  body.responsive-v177 #modalidades .modality-nav:disabled {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
  body.responsive-v177 #modalidades .modality-capsules {
    margin-top: 0 !important;
  }
}


/* ============================================================
   V178 — PAUSA GUIADA EN MODALIDADES (VERTICAL RESPONSIVE)
   - Las flechas ya no "bajan" con el scroll: quedan fijas en el viewport.
   - Si la ficha cabe completa, el carrusel hace una meseta breve mediante
     sticky + espacio de salida. El scroll nunca se bloquea ni se intercepta.
   - Al continuar hacia abajo, la meseta termina, las flechas desaparecen y
     el flujo vertical sigue con normalidad.
   ============================================================ */
@media (orientation: portrait) and (max-width: 1100px) {
  body.responsive-v178 #modalidades .modality-controls {
    position: fixed !important;
    top: 50% !important;
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 max(12px, env(safe-area-inset-right)) 0 max(12px, env(safe-area-inset-left)) !important;
    z-index: 90 !important;
    transform: translateY(-23px) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: opacity .18s ease, visibility 0s linear .18s !important;
  }
  body.responsive-v178 #modalidades.is-modality-guide-v178 .modality-controls {
    opacity: 1 !important;
    visibility: visible !important;
    transition: opacity .18s ease !important;
  }
  body.responsive-v178 #modalidades .modality-controls .modality-nav {
    pointer-events: auto !important;
  }

  /* Meseta visual: sólo se activa por JS si la ficha completa cabe en pantalla. */
  body.responsive-v178 #modalidades.is-modality-fit-v178 .modality-capsules {
    position: sticky !important;
    top: var(--modality-stick-top-v178, 12px) !important;
    z-index: 4 !important;
  }
  body.responsive-v178 #modalidades.is-modality-fit-v178::after {
    content: '' !important;
    display: block !important;
    width: 1px !important;
    height: calc(var(--cm-stable-vh, 1svh) * 34) !important;
    pointer-events: none !important;
  }
}

@media (orientation: portrait) and (min-width: 601px) and (max-width: 1100px) {
  body.responsive-v178 #modalidades.is-modality-fit-v178::after {
    height: calc(var(--cm-stable-vh, 1svh) * 28) !important;
  }
}


/* ============================================================
   V179 — TOPE REAL EN MODALIDADES + VOLVER AL INICIO
   El JS detiene el primer gesto exactamente cuando se alcanza el final visible
   de las fichas. Las flechas sólo existen visualmente durante ese tope.
   ============================================================ */
@media (orientation: portrait) and (max-width: 1100px) {
  /* Anula la meseta/sticky de V178: el tope ahora lo gobierna el gesto real. */
  body.responsive-v179 #modalidades .modality-capsules,
  body.responsive-v179 #modalidades.is-modality-fit-v178 .modality-capsules {
    position: relative !important;
    top: auto !important;
    z-index: 4 !important;
  }
  body.responsive-v179 #modalidades.is-modality-fit-v178::after {
    content: none !important;
    display: none !important;
    height: 0 !important;
  }
  body.responsive-v179 #modalidades .modality-controls,
  body.responsive-v179 #modalidades.is-modality-guide-v178 .modality-controls {
    position: fixed !important;
    top: 50% !important;
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 max(12px, env(safe-area-inset-right)) 0 max(12px, env(safe-area-inset-left)) !important;
    z-index: 100 !important;
    transform: translateY(-23px) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: opacity .16s ease, visibility 0s linear .16s !important;
  }
  body.responsive-v179 #modalidades.is-modality-gate-v179 .modality-controls {
    opacity: 1 !important;
    visibility: visible !important;
    transition: opacity .16s ease !important;
  }
  body.responsive-v179 #modalidades.is-modality-gate-v179 .modality-nav:not(.is-hidden):not(:disabled) {
    pointer-events: auto !important;
  }
}


/* ============================================================
   V180 — HERO LANDSCAPE ESTABLE
   Corrige el empalme observado en iPhone Pro Max / Galaxy S24 horizontal.
   La identidad deja de ser absoluta en landscape bajo: título, copy y CTAs
   participan del mismo flujo y no pueden ocupar el mismo espacio.
   ============================================================ */
@media (orientation: landscape) and (max-width: 1100px) and (max-height: 650px) {
  body.responsive-v180.responsive-matrix-v154 .hero,
  body.responsive-v180.responsive-matrix-v154 .hero-content {
    min-height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
    height: auto !important;
  }
  body.responsive-v180 .hero-content,
  body.responsive-v180.responsive-matrix-v154 .hero-content {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    padding:
      max(18px, calc(env(safe-area-inset-top) + 12px))
      max(64px, calc(env(safe-area-inset-right) + 54px))
      max(16px, env(safe-area-inset-bottom))
      max(24px, env(safe-area-inset-left)) !important;
    box-sizing: border-box !important;
  }
  body.responsive-v180 .hero-identity-v154,
  body.responsive-v180.responsive-matrix-v154 .hero-identity-v154 {
    display: grid !important;
    position: static !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: min(52vw, 430px) !important;
    max-width: min(52vw, 430px) !important;
    padding: 0 !important;
    margin: 0 !important;
    gap: 5px !important;
    transform: none !important;
  }
  body.responsive-v180 .hero-identity-v154 .eyebrow {
    max-width: 45ch !important;
    margin: 0 !important;
    font-size: clamp(8px, 1.15vw, 10px) !important;
    line-height: 1.25 !important;
    letter-spacing: .13em !important;
  }
  body.responsive-v180 .hero-title,
  body.responsive-v180.responsive-matrix-v154 .hero-identity-v154 .hero-title {
    width: auto !important;
    max-width: 7.2ch !important;
    margin: 0 !important;
    font-size: clamp(27px, 4vw, 36px) !important;
    line-height: .82 !important;
    letter-spacing: -.045em !important;
  }
  body.responsive-v180 .hero-title span,
  body.responsive-v180.responsive-matrix-v154 .hero-title span {
    display: block !important;
    white-space: nowrap !important;
  }
  body.responsive-v180 .hero-bottom,
  body.responsive-v180.responsive-matrix-v154 .hero-bottom {
    display: block !important;
    position: static !important;
    width: min(58vw, 590px) !important;
    max-width: min(58vw, 590px) !important;
    margin: 10px 0 0 !important;
    padding: 0 !important;
    transform: none !important;
  }
  body.responsive-v180 .hero-copy,
  body.responsive-v180.responsive-matrix-v154 .hero-copy {
    width: 100% !important;
    max-width: none !important;
  }
  body.responsive-v180 .hero-copy h2,
  body.responsive-v180.responsive-matrix-v154 .hero-copy h2 {
    max-width: 17ch !important;
    margin: 0 0 7px !important;
    font-size: clamp(17px, 2.75vw, 23px) !important;
    line-height: .98 !important;
    letter-spacing: -.025em !important;
  }
  body.responsive-v180 .hero-copy p,
  body.responsive-v180.responsive-matrix-v154 .hero-copy p {
    max-width: 68ch !important;
    margin: 0 !important;
    font-size: clamp(9.5px, 1.35vw, 11.5px) !important;
    line-height: 1.32 !important;
  }
  body.responsive-v180 .hero-actions,
  body.responsive-v180.responsive-matrix-v154 .hero-actions {
    margin-top: 10px !important;
    gap: 8px !important;
  }
  body.responsive-v180 .hero-actions .btn,
  body.responsive-v180 .hero-actions .btn:first-child {
    min-height: 34px !important;
    padding: 0 13px !important;
    font-size: 10px !important;
  }
  body.responsive-v180 .hero-card { display: none !important; }
}

/* Landscape extremadamente bajo: compacta una etapa adicional sin ocultar copy. */
@media (orientation: landscape) and (max-width: 1100px) and (max-height: 460px) {
  body.responsive-v180 .hero-content,
  body.responsive-v180.responsive-matrix-v154 .hero-content {
    padding-top: max(12px, calc(env(safe-area-inset-top) + 8px)) !important;
    padding-bottom: max(10px, env(safe-area-inset-bottom)) !important;
  }
  body.responsive-v180 .hero-title,
  body.responsive-v180.responsive-matrix-v154 .hero-identity-v154 .hero-title {
    font-size: clamp(25px, 3.55vw, 32px) !important;
  }
  body.responsive-v180 .hero-copy h2,
  body.responsive-v180.responsive-matrix-v154 .hero-copy h2 {
    font-size: clamp(16px, 2.45vw, 21px) !important;
  }
  body.responsive-v180 .hero-copy p,
  body.responsive-v180.responsive-matrix-v154 .hero-copy p {
    font-size: clamp(9px, 1.18vw, 10.5px) !important;
    line-height: 1.28 !important;
  }
}


/* ============================================================
   V181 — RESERVA MÓVIL SIMPLE
   Alcance: teléfono <=600px. No modifica cálculo, disponibilidad, Conekta ni backend.
   Flujo visual: Modalidad → Fecha → Resumen → Datos → Pago.
   ============================================================ */
.modality-details-toggle-v181,
.modality-action-mobile-v181,
.booking-continue-v181,
.booking-secure-note-v181,
.booking-selected-mode-v181 { display: none; }

@media (max-width: 600px),
       (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  body.responsive-v181 #modalidades .modality-capsule {
    flex-basis: min(82vw, 360px) !important;
    padding: 20px !important;
    border-radius: 28px !important;
  }
  body.responsive-v181 #modalidades .modality-cap-top { padding-bottom: 13px !important; }
  body.responsive-v181 #modalidades .modality-number { width: 38px !important; height: 38px !important; }
  body.responsive-v181 #modalidades .modality-cap-top strong { font-size: clamp(20px, 6vw, 24px) !important; }
  body.responsive-v181 #modalidades .modality-prices { gap: 7px !important; margin: 14px 0 10px !important; }
  body.responsive-v181 #modalidades .modality-prices p { padding: 10px 12px !important; }
  body.responsive-v181 #modalidades .modality-prices b { font-size: clamp(23px, 7vw, 30px) !important; }
  body.responsive-v181 #modalidades .modality-capsule > ul {
    display: none !important; margin-top: 12px !important; gap: 7px !important; font-size: 12px !important;
  }
  body.responsive-v181 #modalidades .modality-capsule.is-details-open-v181 > ul { display: grid !important; }
  body.responsive-v181 #modalidades .modality-details-toggle-v181 {
    display: inline-flex !important; align-items: center !important; min-height: 34px !important;
    padding: 0 !important; border: 0 !important; background: transparent !important; color: var(--brown) !important;
    font: inherit !important; font-size: 12px !important; font-weight: 800 !important;
    text-decoration: underline !important; text-underline-offset: 3px !important;
  }
  body.responsive-v181 #modalidades .modality-action {
    min-height: 48px !important; margin-top: 13px !important; padding: 10px 14px !important;
    border-radius: 999px !important; background: var(--brown-dark) !important; color: var(--cream) !important;
  }
  body.responsive-v181 #modalidades .modality-action > span:last-child {
    width: 32px !important; height: 32px !important; background: rgba(255,255,255,.15) !important;
  }
  body.responsive-v181 #modalidades .modality-action-desktop-v181 { display: none !important; }
  body.responsive-v181 #modalidades .modality-action-mobile-v181 { display: inline !important; }

  /* La pausa rígida de V179 deja de ser necesaria con fichas compactas. */
  body.responsive-v181 #modalidades .modality-controls,
  body.responsive-v181 #modalidades.is-modality-gate-v179 .modality-controls {
    position: relative !important; top: auto !important; left: auto !important; right: auto !important;
    height: auto !important; width: 100% !important; transform: none !important;
    margin: 8px 0 0 !important; padding: 0 var(--safe) !important;
    opacity: 1 !important; visibility: visible !important; pointer-events: auto !important;
    transition: none !important; z-index: 4 !important;
  }
  body.responsive-v181 #modalidades .modality-nav:not(.is-hidden):not(:disabled) { pointer-events: auto !important; }

  /* El calendario es el primer paso real de reserva. */
  body.responsive-v181 #fechas .booking-layout { gap: 14px !important; }
  body.responsive-v181 #fechas .booking-card,
  body.responsive-v181 #fechas .booking-panel { border-radius: 26px !important; padding: 18px !important; }
  body.responsive-v181 #fechas .booking-toolbar {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap: 6px !important; margin-bottom: 12px !important;
  }
  body.responsive-v181 #fechas .booking-toolbar[hidden] { display: none !important; }
  body.responsive-v181 #fechas .booking-mode { min-height: 48px !important; padding: 7px 5px !important; border-radius: 16px !important; }
  body.responsive-v181 #fechas .booking-mode span { font-size: 12px !important; }
  body.responsive-v181 #fechas .booking-mode small { font-size: 9px !important; }
  body.responsive-v181 #fechas .booking-selected-mode-v181:not([hidden]) {
    display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 10px !important;
    margin-bottom: 12px !important; padding: 10px 12px !important; border: 1px solid var(--line) !important;
    border-radius: 16px !important; background: rgba(255,250,242,.56) !important;
  }
  body.responsive-v181 #fechas .booking-selected-mode-v181 strong {
    font-family: var(--serif) !important; font-size: 18px !important; color: var(--brown-dark) !important;
  }
  body.responsive-v181 #fechas .booking-selected-mode-v181 button {
    min-height: 34px !important; padding: 0 10px !important; border: 1px solid var(--line) !important;
    border-radius: 999px !important; background: rgba(255,255,255,.72) !important; color: var(--brown-dark) !important; font-weight: 800 !important;
  }
  body.responsive-v181 #fechas .booking-flow-hint,
  body.responsive-v181 #fechas #availabilityRefresh,
  body.responsive-v181 #fechas #adminNote { display: none !important; }
  body.responsive-v181 #fechas .public-calendar-actions {
    min-height: 0 !important; margin-top: 4px !important; padding: 0 !important; justify-content: flex-end !important;
  }
  body.responsive-v181 #fechas #clearBooking {
    display: none !important; min-height: 34px !important; padding: 0 10px !important; background: transparent !important;
    border: 0 !important; text-decoration: underline !important; text-underline-offset: 3px !important;
  }
  body.responsive-v181 #fechas.has-booking-start-v181 #clearBooking { display: inline-flex !important; }
  body.responsive-v181 #fechas .calendar-legend { gap: 8px 12px !important; margin-top: 10px !important; font-size: 10px !important; }
  body.responsive-v181 #fechas .availability-status { margin: 8px 0 2px !important; font-size: 11px !important; }

  /* Progressive disclosure: antes de una selección completa sólo título + ayuda. */
  body.responsive-v181 #fechas .booking-panel > img,
  body.responsive-v181 #fechas .booking-form-alert,
  body.responsive-v181 #fechas:not(.has-booking-selection-v181) .booking-dates,
  body.responsive-v181 #fechas:not(.has-booking-selection-v181) .guest-counter,
  body.responsive-v181 #fechas:not(.has-booking-selection-v181) .booking-summary,
  body.responsive-v181 #fechas:not(.has-booking-selection-v181) .booking-continue-v181,
  body.responsive-v181 #fechas:not(.show-booking-form-v181) .booking-form { display: none !important; }
  body.responsive-v181 #fechas .booking-panel-title { margin-top: 0 !important; font-size: clamp(23px,7vw,29px) !important; }
  body.responsive-v181 #fechas #bookingHelp { margin-bottom: 0 !important; font-size: 12px !important; line-height: 1.45 !important; }
  body.responsive-v181 #fechas.has-booking-selection-v181 .booking-dates {
    display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 8px !important; margin-top: 14px !important;
  }
  body.responsive-v181 #fechas.has-booking-selection-v181 .booking-dates .date-box { padding: 11px !important; border-radius: 16px !important; }
  body.responsive-v181 #fechas.has-booking-selection-v181 .guest-counter { margin-top: 10px !important; padding: 11px !important; border-radius: 16px !important; }
  body.responsive-v181 #fechas.has-booking-selection-v181 .booking-summary {
    display: block !important; margin-top: 10px !important; padding: 12px !important; border-radius: 16px !important;
  }
  body.responsive-v181 #fechas.has-booking-selection-v181 .booking-summary .summary-line { display: none !important; }
  body.responsive-v181 #fechas.has-booking-selection-v181 .booking-summary .summary-total { padding-top: 0 !important; border-top: 0 !important; }
  body.responsive-v181 #fechas .booking-continue-v181 { width: 100% !important; margin-top: 12px !important; }
  body.responsive-v181 #fechas.has-booking-selection-v181:not(.show-booking-form-v181) .booking-continue-v181 { display: inline-flex !important; }
  body.responsive-v181 #fechas.show-booking-form-v181 .booking-continue-v181 { display: none !important; }
  body.responsive-v181 #fechas.show-booking-form-v181 .booking-form {
    display: grid !important; margin-top: 14px !important; padding-top: 14px !important; border-top: 1px solid var(--line) !important;
  }
  body.responsive-v181 #fechas .booking-form label > span { font-size: 12px !important; }
  body.responsive-v181 #fechas .booking-form input { min-height: 48px !important; }
  body.responsive-v181 #fechas .booking-secure-note-v181 {
    display: block !important; margin: -2px 0 0 !important; text-align: center !important; color: var(--muted) !important; font-size: 10.5px !important;
  }
}


/* V181.1 — teléfono horizontal: mismo flujo simple, con modalidades laterales compactas. */
@media (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  body.responsive-v181 #modalidades { overflow-x: clip !important; }
  body.responsive-v181 #modalidades .modality-capsules {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: stretch !important;
    gap: 12px !important;
    width: 100vw !important;
    max-width: none !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 4px max(18px, env(safe-area-inset-right)) 14px max(18px, env(safe-area-inset-left)) !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important;
  }
  body.responsive-v181 #modalidades .modality-capsules::-webkit-scrollbar { display: none !important; }
  body.responsive-v181 #modalidades .modality-capsule {
    flex: 0 0 min(46vw, 420px) !important;
    scroll-snap-align: center !important;
    scroll-snap-stop: always !important;
  }
  body.responsive-v181 #fechas .booking-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}


/* ============================================================
   V182 — MODALIDADES DENTRO DE RESERVA
   Se elimina la sección independiente de Modalidades. La elección, resumen y
   detalles viven arriba del calendario. Un único flujo para móvil/tablet/PC.
   ============================================================ */
body.responsive-v182 #fechas .booking-mode-choice-v182 {
  margin-bottom: 18px;
}
body.responsive-v182 #fechas .booking-mode-prompt-v182 {
  margin: 0 0 10px;
  color: var(--brown-dark);
  font-size: 13px;
  font-weight: 850;
  letter-spacing: -.01em;
}
body.responsive-v182 #fechas .booking-toolbar {
  margin-bottom: 10px !important;
}
body.responsive-v182 #fechas .booking-mode-info-v182 {
  margin-top: 10px;
}
body.responsive-v182 #fechas .booking-mode-info-card-v182 {
  padding: clamp(16px, 2.2vw, 22px);
  border: 1px solid var(--line);
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.72), rgba(250,244,236,.62));
  box-shadow: 0 12px 34px rgba(65,45,30,.06);
}
body.responsive-v182 #fechas .booking-mode-info-card-v182[hidden] {
  display: none !important;
}
body.responsive-v182 #fechas .booking-mode-info-head-v182 {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 16px;
  align-items: start;
}
body.responsive-v182 #fechas .booking-mode-info-head-v182 strong,
body.responsive-v182 #fechas .booking-mode-info-head-v182 small {
  display: block;
}
body.responsive-v182 #fechas .booking-mode-info-head-v182 strong {
  font-family: var(--serif);
  color: var(--brown-dark);
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1;
}
body.responsive-v182 #fechas .booking-mode-info-head-v182 small {
  margin-top: 5px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
body.responsive-v182 #fechas .booking-mode-price-pair-v182 {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 7px;
}
body.responsive-v182 #fechas .booking-mode-price-pair-v182.single {
  grid-template-columns: minmax(150px,1fr);
}
body.responsive-v182 #fechas .booking-mode-price-pair-v182 > span {
  min-width: 132px;
  padding: 9px 12px;
  border-radius: 14px;
  background: rgba(255,250,242,.74);
  border: 1px solid rgba(91,67,48,.10);
}
body.responsive-v182 #fechas .booking-mode-price-pair-v182 b,
body.responsive-v182 #fechas .booking-mode-price-pair-v182 em {
  display: block;
  font-style: normal;
}
body.responsive-v182 #fechas .booking-mode-price-pair-v182 b {
  color: var(--brown-dark);
  font-size: 18px;
}
body.responsive-v182 #fechas .booking-mode-price-pair-v182 em {
  margin-top: 2px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 750;
}
body.responsive-v182 #fechas .booking-mode-quick-v182 {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin-top: 12px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}
body.responsive-v182 #fechas .booking-mode-quick-v182 span {
  position: relative;
  padding-left: 12px;
}
body.responsive-v182 #fechas .booking-mode-quick-v182 span::before {
  content: '•';
  position: absolute;
  left: 0;
  color: var(--brown);
}
body.responsive-v182 #fechas .booking-mode-more-toggle-v182 {
  min-height: 36px;
  margin-top: 8px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--brown);
  font: inherit;
  font-size: 11px;
  font-weight: 850;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
body.responsive-v182 #fechas .booking-mode-more-v182 {
  margin-top: 7px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.42;
}
body.responsive-v182 #fechas .booking-mode-more-v182[hidden] {
  display: none !important;
}
body.responsive-v182 #fechas .booking-mode-more-v182 p {
  margin: 4px 0;
}

/* La nueva elección de modalidad es siempre visible; ya no existe un segundo
   selector ni el chip "Cambiar" de V181. */
body.responsive-v182 #fechas .booking-toolbar[hidden] {
  display: grid !important;
}
body.responsive-v182 #fechas .booking-selected-mode-v181 {
  display: none !important;
}

/* Reducir instrucciones administrativas/repetidas: disponibilidad se actualiza
   automáticamente; la acción de limpiar sigue disponible cuando corresponde. */
body.responsive-v182 #fechas .booking-flow-hint,
body.responsive-v182 #fechas #availabilityRefresh,
body.responsive-v182 #fechas #adminNote {
  display: none !important;
}
body.responsive-v182 #fechas .public-calendar-actions {
  min-height: 0 !important;
  justify-content: flex-end !important;
  margin-top: 4px !important;
}

@media (max-width: 700px) {
  body.responsive-v182 #fechas .booking-card,
  body.responsive-v182 #fechas .booking-panel {
    padding: 16px !important;
  }
  body.responsive-v182 #fechas .booking-mode-choice-v182 {
    margin-bottom: 12px;
  }
  body.responsive-v182 #fechas .booking-mode-prompt-v182 {
    font-size: 12px;
    margin-bottom: 8px;
  }
  body.responsive-v182 #fechas .booking-toolbar {
    gap: 6px !important;
    margin-bottom: 8px !important;
  }
  body.responsive-v182 #fechas .booking-mode {
    min-height: 46px !important;
    padding: 6px 4px !important;
  }
  body.responsive-v182 #fechas .booking-mode span {
    font-size: 11.5px !important;
  }
  body.responsive-v182 #fechas .booking-mode small {
    font-size: 8.5px !important;
  }
  body.responsive-v182 #fechas .booking-mode-info-card-v182 {
    padding: 14px;
    border-radius: 18px;
  }
  body.responsive-v182 #fechas .booking-mode-info-head-v182 {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  body.responsive-v182 #fechas .booking-mode-info-head-v182 strong {
    font-size: 21px;
  }
  body.responsive-v182 #fechas .booking-mode-price-pair-v182,
  body.responsive-v182 #fechas .booking-mode-price-pair-v182.single {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  body.responsive-v182 #fechas .booking-mode-price-pair-v182.single > span {
    grid-column: 1 / -1;
  }
  body.responsive-v182 #fechas .booking-mode-price-pair-v182 > span {
    min-width: 0;
    padding: 8px 9px;
  }
  body.responsive-v182 #fechas .booking-mode-price-pair-v182 b {
    font-size: 17px;
  }
  body.responsive-v182 #fechas .booking-mode-quick-v182 {
    display: grid;
    gap: 5px;
    margin-top: 10px;
    font-size: 11px;
  }
}

@media (orientation: landscape) and (max-width: 1024px) and (max-height: 540px) {
  body.responsive-v182 #fechas .booking-mode-info-card-v182 {
    padding: 11px 13px;
  }
  body.responsive-v182 #fechas .booking-mode-info-head-v182 {
    grid-template-columns: minmax(0,1fr) minmax(220px,.9fr);
    gap: 10px;
  }
  body.responsive-v182 #fechas .booking-mode-info-head-v182 strong {
    font-size: 18px;
  }
  body.responsive-v182 #fechas .booking-mode-info-head-v182 small,
  body.responsive-v182 #fechas .booking-mode-quick-v182,
  body.responsive-v182 #fechas .booking-mode-more-v182 {
    font-size: 9.5px;
  }
  body.responsive-v182 #fechas .booking-mode-price-pair-v182 b {
    font-size: 15px;
  }
}


/* ============================================================
   V185 — HERO LANDSCAPE BALANCEADO
   Ajuste quirúrgico exclusivo del Hero en celulares/tablets horizontales bajos.
   Redistribuye el bloque verticalmente y reduce la altura del copy sin tocar
   fotografía, navegación, Destacados, Recorrido, Reserva ni backend.
   ============================================================ */
@media (orientation: landscape) and (max-width: 1100px) and (max-height: 650px) {
  body.responsive-v185.responsive-matrix-v154 .hero,
  body.responsive-v185.responsive-matrix-v154 .hero-content {
    min-height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
  }
  body.responsive-v185 .hero-content,
  body.responsive-v185.responsive-matrix-v154 .hero-content {
    justify-content: center !important;
    padding-top: max(18px, calc(env(safe-area-inset-top) + 12px)) !important;
    padding-bottom: max(18px, env(safe-area-inset-bottom)) !important;
  }
  body.responsive-v185 .hero-identity-v154,
  body.responsive-v185.responsive-matrix-v154 .hero-identity-v154 {
    width: min(62vw, 560px) !important;
    max-width: min(62vw, 560px) !important;
    gap: 4px !important;
  }
  body.responsive-v185 .hero-identity-v154 .eyebrow {
    max-width: 54ch !important;
    font-size: clamp(8px, 1.05vw, 10px) !important;
    line-height: 1.22 !important;
    margin-bottom: 1px !important;
  }
  body.responsive-v185 .hero-title,
  body.responsive-v185.responsive-matrix-v154 .hero-identity-v154 .hero-title {
    max-width: 8.2ch !important;
    font-size: clamp(26px, 3.55vw, 34px) !important;
    line-height: .84 !important;
  }
  body.responsive-v185 .hero-bottom,
  body.responsive-v185.responsive-matrix-v154 .hero-bottom {
    width: min(64vw, 610px) !important;
    max-width: min(64vw, 610px) !important;
    margin-top: clamp(10px, 2.2vh, 14px) !important;
  }
  body.responsive-v185 .hero-copy h2,
  body.responsive-v185.responsive-matrix-v154 .hero-copy h2 {
    max-width: 23ch !important;
    font-size: clamp(17px, 2.28vw, 21px) !important;
    line-height: 1.02 !important;
    margin-bottom: 7px !important;
  }
  body.responsive-v185 .hero-copy p,
  body.responsive-v185.responsive-matrix-v154 .hero-copy p {
    max-width: 80ch !important;
    font-size: clamp(9px, 1.18vw, 10.5px) !important;
    line-height: 1.30 !important;
  }
  body.responsive-v185 .hero-actions,
  body.responsive-v185.responsive-matrix-v154 .hero-actions {
    margin-top: clamp(9px, 2vh, 12px) !important;
  }
}

/* iPhone SE y horizontales especialmente bajos: conservar aire arriba/abajo
   reduciendo una etapa adicional, sin ocultar contenido. */
@media (orientation: landscape) and (max-width: 720px) and (max-height: 410px) {
  body.responsive-v185 .hero-content,
  body.responsive-v185.responsive-matrix-v154 .hero-content {
    padding-left: max(20px, env(safe-area-inset-left)) !important;
    padding-right: max(56px, calc(env(safe-area-inset-right) + 48px)) !important;
  }
  body.responsive-v185 .hero-identity-v154,
  body.responsive-v185.responsive-matrix-v154 .hero-identity-v154,
  body.responsive-v185 .hero-bottom,
  body.responsive-v185.responsive-matrix-v154 .hero-bottom {
    width: min(66vw, 430px) !important;
    max-width: min(66vw, 430px) !important;
  }
  body.responsive-v185 .hero-title,
  body.responsive-v185.responsive-matrix-v154 .hero-identity-v154 .hero-title {
    font-size: clamp(24px, 4.0vw, 28px) !important;
  }
  body.responsive-v185 .hero-copy h2,
  body.responsive-v185.responsive-matrix-v154 .hero-copy h2 {
    font-size: clamp(15.5px, 2.55vw, 18px) !important;
    max-width: 24ch !important;
    margin-bottom: 5px !important;
  }
  body.responsive-v185 .hero-copy p,
  body.responsive-v185.responsive-matrix-v154 .hero-copy p {
    font-size: clamp(8.6px, 1.35vw, 9.7px) !important;
    line-height: 1.25 !important;
  }
  body.responsive-v185 .hero-actions,
  body.responsive-v185.responsive-matrix-v154 .hero-actions {
    margin-top: 8px !important;
  }
  body.responsive-v185 .hero-actions .btn,
  body.responsive-v185 .hero-actions .btn:first-child {
    min-height: 31px !important;
    padding-inline: 12px !important;
    font-size: 9.5px !important;
  }
}


/* ============================================================
   V186 — HERO LANDSCAPE RESPIRADO
   En móvil horizontal separa la identidad (arriba) del mensaje/CTA (abajo).
   Evita el bloque compacto centrado de V185 y crea dos zonas editoriales
   con aire real entre ellas. No toca foto, scroll ni lógica funcional.
   ============================================================ */
@media (orientation: landscape) and (max-width: 1100px) and (max-height: 650px) {
  body.responsive-v186 .hero-content,
  body.responsive-v186.responsive-matrix-v154 .hero-content {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    min-height: calc(var(--cm-stable-vh, 1svh) * 100) !important;
    padding:
      max(24px, calc(env(safe-area-inset-top) + 18px))
      max(64px, calc(env(safe-area-inset-right) + 54px))
      max(24px, calc(env(safe-area-inset-bottom) + 16px))
      max(28px, calc(env(safe-area-inset-left) + 20px)) !important;
  }

  body.responsive-v186 .hero-identity-v154,
  body.responsive-v186.responsive-matrix-v154 .hero-identity-v154 {
    width: min(58vw, 520px) !important;
    max-width: min(58vw, 520px) !important;
    margin: 0 !important;
    gap: 8px !important;
  }
  body.responsive-v186 .hero-identity-v154 .eyebrow {
    max-width: 56ch !important;
    margin: 0 !important;
    font-size: clamp(8.8px, 1.05vw, 10.5px) !important;
    line-height: 1.28 !important;
    letter-spacing: .14em !important;
  }
  body.responsive-v186 .hero-title,
  body.responsive-v186.responsive-matrix-v154 .hero-identity-v154 .hero-title {
    max-width: 8.2ch !important;
    font-size: clamp(28px, 3.8vw, 38px) !important;
    line-height: .86 !important;
    letter-spacing: -.045em !important;
  }

  body.responsive-v186 .hero-bottom,
  body.responsive-v186.responsive-matrix-v154 .hero-bottom {
    width: min(64vw, 610px) !important;
    max-width: min(64vw, 610px) !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body.responsive-v186 .hero-copy h2,
  body.responsive-v186.responsive-matrix-v154 .hero-copy h2 {
    max-width: 19ch !important;
    margin: 0 0 10px !important;
    font-size: clamp(18px, 2.45vw, 23px) !important;
    line-height: 1.04 !important;
  }
  body.responsive-v186 .hero-copy p,
  body.responsive-v186.responsive-matrix-v154 .hero-copy p {
    max-width: 72ch !important;
    margin: 0 !important;
    font-size: clamp(9.4px, 1.15vw, 10.8px) !important;
    line-height: 1.38 !important;
  }
  body.responsive-v186 .hero-actions,
  body.responsive-v186.responsive-matrix-v154 .hero-actions {
    margin-top: 14px !important;
    gap: 9px !important;
  }
}

/* iPhone SE / landscape muy bajo: mantener las dos zonas sin que se toquen. */
@media (orientation: landscape) and (max-width: 720px) and (max-height: 410px) {
  body.responsive-v186 .hero-content,
  body.responsive-v186.responsive-matrix-v154 .hero-content {
    padding-top: max(18px, calc(env(safe-area-inset-top) + 12px)) !important;
    padding-bottom: max(18px, calc(env(safe-area-inset-bottom) + 12px)) !important;
  }
  body.responsive-v186 .hero-identity-v154,
  body.responsive-v186.responsive-matrix-v154 .hero-identity-v154 {
    width: min(62vw, 400px) !important;
    max-width: min(62vw, 400px) !important;
    gap: 5px !important;
  }
  body.responsive-v186 .hero-title,
  body.responsive-v186.responsive-matrix-v154 .hero-identity-v154 .hero-title {
    font-size: clamp(26px, 4.2vw, 30px) !important;
  }
  body.responsive-v186 .hero-bottom,
  body.responsive-v186.responsive-matrix-v154 .hero-bottom {
    width: min(66vw, 430px) !important;
    max-width: min(66vw, 430px) !important;
  }
  body.responsive-v186 .hero-copy h2,
  body.responsive-v186.responsive-matrix-v154 .hero-copy h2 {
    max-width: 20ch !important;
    font-size: clamp(15.5px, 2.55vw, 18px) !important;
    line-height: 1.03 !important;
    margin-bottom: 7px !important;
  }
  body.responsive-v186 .hero-copy p,
  body.responsive-v186.responsive-matrix-v154 .hero-copy p {
    font-size: clamp(8.6px, 1.3vw, 9.6px) !important;
    line-height: 1.32 !important;
  }
  body.responsive-v186 .hero-actions,
  body.responsive-v186.responsive-matrix-v154 .hero-actions {
    margin-top: 10px !important;
  }
}


/* ============================================================
   V187 — RESERVA MÓVIL MÁS COMPACTA + CONTENCIÓN DE TEXTO
   Cambio exclusivamente visual/responsive. No altera lógica de reserva,
   calendario, precios, Conekta, Supabase ni Recorrido.
   ============================================================ */

/* Salvaguarda de texto para componentes encerrados en tarjetas responsive.
   Solo actúa cuando una cadena sería demasiado larga para su contenedor. */
@media (max-width: 1100px) {
  body.responsive-v187 :is(
    .amenity-card,
    .info-panel,
    .privacy-card,
    .location-card,
    .croquis-card,
    .booking-card,
    .booking-panel,
    .booking-mode,
    .booking-mode-info-card-v182,
    .contact-pill,
    .faq-list details
  ) {
    min-width: 0 !important;
    max-width: 100%;
  }

  body.responsive-v187 :is(
    .amenity-card,
    .info-panel,
    .privacy-card,
    .location-card,
    .croquis-card,
    .booking-card,
    .booking-panel,
    .booking-mode,
    .booking-mode-info-card-v182,
    .contact-pill,
    .faq-list details
  ) :is(h2,h3,h4,p,span,strong,small,li,a) {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: normal;
  }

  body.responsive-v187 #fechas .booking-toolbar {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  body.responsive-v187 #fechas .booking-mode {
    min-width: 0 !important;
    overflow: hidden !important;
  }
  body.responsive-v187 #fechas .booking-mode span,
  body.responsive-v187 #fechas .booking-mode small {
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    line-height: 1.05 !important;
  }
  body.responsive-v187 #fechas .booking-mode-info-head-v182,
  body.responsive-v187 #fechas .booking-mode-price-pair-v182,
  body.responsive-v187 #fechas .booking-mode-price-pair-v182 > span {
    min-width: 0 !important;
  }
}

/* Teléfono vertical: calendario y selector más compactos para reducir
   recorrido sin sacrificar áreas táctiles de ~44px. */
@media (orientation: portrait) and (max-width: 600px) {
  body.responsive-v187 #fechas {
    padding-top: 62px !important;
    padding-bottom: 70px !important;
  }
  body.responsive-v187 #fechas > .section-title-row {
    margin-bottom: 18px !important;
  }
  body.responsive-v187 #fechas > .section-title-row h2 {
    font-size: clamp(26px, 7.2vw, 31px) !important;
    line-height: .96 !important;
  }
  body.responsive-v187 #fechas .booking-layout {
    gap: 14px !important;
  }
  body.responsive-v187 #fechas .booking-card,
  body.responsive-v187 #fechas .booking-panel {
    padding: 12px !important;
    border-radius: 24px !important;
  }
  body.responsive-v187 #fechas .booking-mode-choice-v182 {
    margin-bottom: 9px !important;
  }
  body.responsive-v187 #fechas .booking-mode-prompt-v182 {
    margin-bottom: 6px !important;
    font-size: 11.5px !important;
  }
  body.responsive-v187 #fechas .booking-toolbar {
    gap: 5px !important;
    margin-bottom: 6px !important;
  }
  body.responsive-v187 #fechas .booking-mode {
    min-height: 44px !important;
    padding: 5px 6px !important;
    border-radius: 14px !important;
  }
  body.responsive-v187 #fechas .booking-mode span {
    font-size: clamp(10px, 3vw, 11.5px) !important;
  }
  body.responsive-v187 #fechas .booking-mode small {
    margin-top: 2px !important;
    font-size: clamp(7.2px, 2.25vw, 8.4px) !important;
    letter-spacing: .02em !important;
  }
  body.responsive-v187 #fechas .booking-mode-info-v182 {
    margin-top: 7px !important;
  }
  body.responsive-v187 #fechas .booking-mode-info-card-v182 {
    padding: 11px !important;
    border-radius: 16px !important;
  }
  body.responsive-v187 #fechas .booking-mode-info-head-v182 {
    gap: 7px !important;
  }
  body.responsive-v187 #fechas .booking-mode-info-head-v182 strong {
    font-size: 19px !important;
  }
  body.responsive-v187 #fechas .booking-mode-info-head-v182 small {
    margin-top: 3px !important;
    font-size: 9.5px !important;
  }
  body.responsive-v187 #fechas .booking-mode-price-pair-v182,
  body.responsive-v187 #fechas .booking-mode-price-pair-v182.single {
    gap: 5px !important;
  }
  body.responsive-v187 #fechas .booking-mode-price-pair-v182 > span {
    padding: 6px 8px !important;
    border-radius: 11px !important;
  }
  body.responsive-v187 #fechas .booking-mode-price-pair-v182 b {
    font-size: 15.5px !important;
  }
  body.responsive-v187 #fechas .booking-mode-price-pair-v182 em {
    font-size: 8.8px !important;
  }
  body.responsive-v187 #fechas .booking-mode-quick-v182 {
    gap: 3px !important;
    margin-top: 7px !important;
    font-size: 10px !important;
    line-height: 1.28 !important;
  }
  body.responsive-v187 #fechas .booking-mode-more-toggle-v182 {
    min-height: 30px !important;
    margin-top: 4px !important;
    font-size: 10px !important;
  }

  body.responsive-v187 #fechas .calendar-top {
    margin-bottom: 8px !important;
    gap: 6px !important;
  }
  body.responsive-v187 #fechas .calendar-top h3 {
    font-size: clamp(24px, 7vw, 30px) !important;
    line-height: 1 !important;
  }
  body.responsive-v187 #fechas .calendar-top button {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
  }
  body.responsive-v187 #fechas .weekday-row,
  body.responsive-v187 #fechas .calendar-grid {
    gap: 3px !important;
  }
  body.responsive-v187 #fechas .weekday-row {
    margin-bottom: 4px !important;
    font-size: 9.5px !important;
    letter-spacing: 0 !important;
  }
  body.responsive-v187 #fechas .day {
    min-height: 44px !important;
    height: 44px !important;
    padding: 5px !important;
    border-radius: 10px !important;
    font-size: 11.5px !important;
    justify-content: flex-start !important;
  }
  body.responsive-v187 #fechas .day small {
    display: none !important;
  }
  body.responsive-v187 #fechas .calendar-legend {
    gap: 6px 10px !important;
    margin-top: 8px !important;
    font-size: 9.5px !important;
    line-height: 1.2 !important;
  }
  body.responsive-v187 #fechas .calendar-legend span {
    gap: 4px !important;
  }
  body.responsive-v187 #fechas .calendar-legend i {
    width: 8px !important;
    height: 8px !important;
  }
  body.responsive-v187 #fechas .public-calendar-actions {
    margin-top: 1px !important;
  }
}

/* Pantallas verticales especialmente estrechas: impedir que subtítulos de
   modalidades como COTIZACIÓN / CUSTOM QUOTE salgan de su botón. */
@media (orientation: portrait) and (max-width: 360px) {
  body.responsive-v187 #fechas .booking-mode {
    padding-inline: 4px !important;
  }
  body.responsive-v187 #fechas .booking-mode span {
    font-size: 9.7px !important;
  }
  body.responsive-v187 #fechas .booking-mode small {
    font-size: 7px !important;
  }
}


/* ============================================================
   V188 — SELECTOR DE MODALIDAD CENTRADO Y RESPIRADO
   Ajuste exclusivamente visual del selector de modalidad dentro de Reserva.
   Evita palabras partidas y textos pegados a los bordes en responsive.
   ============================================================ */
@media (max-width: 1100px) {
  body.responsive-v188 #fechas .booking-toolbar {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  body.responsive-v188 #fechas .booking-mode {
    min-width: 0 !important;
    min-height: 58px !important;
    padding: 9px 8px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    text-align: center !important;
    overflow: hidden !important;
  }
  body.responsive-v188 #fechas .booking-mode span,
  body.responsive-v188 #fechas .booking-mode small {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    line-height: 1.05 !important;
  }
  body.responsive-v188 #fechas .booking-mode span {
    font-size: clamp(11px, 2.1vw, 14px) !important;
  }
  body.responsive-v188 #fechas .booking-mode small {
    font-size: clamp(8px, 1.5vw, 10px) !important;
    letter-spacing: .035em !important;
  }
}

@media (orientation: portrait) and (max-width: 600px) {
  body.responsive-v188 #fechas .booking-toolbar {
    gap: 6px !important;
  }
  body.responsive-v188 #fechas .booking-mode {
    min-height: 56px !important;
    padding: 8px 6px !important;
    border-radius: 15px !important;
  }
  body.responsive-v188 #fechas .booking-mode span {
    font-size: clamp(10.5px, 3.05vw, 12.5px) !important;
  }
  body.responsive-v188 #fechas .booking-mode small {
    font-size: clamp(7.5px, 2.15vw, 9px) !important;
  }
}

@media (orientation: portrait) and (max-width: 360px) {
  body.responsive-v188 #fechas .booking-toolbar {
    gap: 5px !important;
  }
  body.responsive-v188 #fechas .booking-mode {
    padding-inline: 5px !important;
  }
  body.responsive-v188 #fechas .booking-mode span {
    font-size: 10.25px !important;
  }
  body.responsive-v188 #fechas .booking-mode small {
    font-size: 7.3px !important;
    letter-spacing: .02em !important;
  }
}


/* ============================================================
   V189 — AVISO INFORMATIVO EN FOOTER
   Componente aislado: footer + modal bilingüe.
   No modifica lógica de reservas, scroll, recorrido ni navegación.
   ============================================================ */
.cm-site-legal-v189 {
  position: relative;
  z-index: 3;
  padding: 18px max(20px, var(--safe)) 20px;
  background: #241a14;
  color: rgba(255, 250, 242, .7);
  border-top: 1px solid rgba(255, 255, 255, .08);
}

.cm-site-legal-inner-v189 {
  width: min(1180px, 100%);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 7px;
  text-align: center;
  font-size: 11px;
  line-height: 1.45;
  letter-spacing: .035em;
}

.cm-site-legal-link-v189 {
  appearance: none;
  border: 0;
  padding: 0;
  margin: 0;
  background: none;
  color: rgba(255, 250, 242, .82);
  font: inherit;
  letter-spacing: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  cursor: pointer;
}

.cm-site-legal-link-v189:hover,
.cm-site-legal-link-v189:focus-visible {
  color: #fffaf2;
}

.cm-site-legal-link-v189:focus-visible,
.cm-legal-dialog-close-v189:focus-visible {
  outline: 2px solid rgba(255, 250, 242, .78);
  outline-offset: 4px;
}

.cm-legal-en-v189 {
  display: none;
}

html[data-cm-lang="en"] .cm-legal-es-v189 {
  display: none !important;
}

html[data-cm-lang="en"] .cm-legal-en-v189 {
  display: block;
}

.cm-site-legal-link-v189 .cm-legal-en-v189 {
  display: none;
}

html[data-cm-lang="en"] .cm-site-legal-link-v189 .cm-legal-en-v189 {
  display: inline;
}

.cm-legal-dialog-v189 {
  width: min(720px, calc(100vw - 32px));
  max-height: min(82svh, 760px);
  margin: auto;
  padding: 0;
  border: 1px solid rgba(88, 61, 42, .18);
  border-radius: 24px;
  background: #fffaf2;
  color: #4b3425;
  box-shadow: 0 30px 90px rgba(18, 13, 10, .38);
  overflow: hidden;
}

.cm-legal-dialog-v189::backdrop {
  background: rgba(18, 13, 10, .68);
  backdrop-filter: blur(5px);
}

.cm-legal-dialog-card-v189 {
  position: relative;
  max-height: min(82svh, 760px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: clamp(28px, 5vw, 48px);
}

.cm-legal-dialog-close-v189 {
  position: sticky;
  top: 0;
  float: right;
  z-index: 2;
  width: 38px;
  height: 38px;
  margin: -10px -10px 8px 16px;
  border: 1px solid rgba(75, 52, 37, .15);
  border-radius: 50%;
  background: rgba(255, 250, 242, .94);
  color: #4b3425;
  display: grid;
  place-items: center;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}

.cm-legal-dialog-eyebrow-v189 {
  display: block;
  margin-bottom: 9px;
  color: #81604a;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.cm-legal-dialog-copy-v189 h2 {
  margin: 0 44px 20px 0;
  font-family: var(--serif);
  font-size: clamp(31px, 5vw, 46px);
  font-weight: 600;
  line-height: .98;
  color: #4b3425;
}

.cm-legal-dialog-copy-v189 p {
  margin: 0;
  color: #6f5b4d;
  font-size: 14px;
  line-height: 1.72;
}

.cm-legal-dialog-copy-v189 p + p {
  margin-top: 14px;
}

.cm-legal-visually-hidden-v189 {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (max-width: 600px) {
  .cm-site-legal-v189 {
    padding: 15px 18px 16px;
  }

  .cm-site-legal-inner-v189 {
    gap: 5px;
    font-size: 10px;
    letter-spacing: .02em;
  }

  .cm-site-legal-separator-v189 {
    display: none;
  }

  .cm-site-legal-link-v189 {
    flex-basis: 100%;
  }

  .cm-legal-dialog-v189 {
    width: calc(100vw - 22px);
    max-height: 86svh;
    border-radius: 20px;
  }

  .cm-legal-dialog-card-v189 {
    max-height: 86svh;
    padding: 26px 22px 28px;
  }

  .cm-legal-dialog-copy-v189 h2 {
    margin-right: 36px;
    font-size: clamp(29px, 9vw, 38px);
  }

  .cm-legal-dialog-copy-v189 p {
    font-size: 13px;
    line-height: 1.68;
  }
}


/* ============================================================
   V220.94 — Sitio público · foco de teclado consistente.
   No altera estados hover/touch ni la composición visual normal.
   ============================================================ */
:where(a[href], button, summary):focus-visible {
  outline: 3px solid rgba(196, 154, 101, .92);
  outline-offset: 3px;
}

:where(input, select, textarea):focus-visible {
  outline: 2px solid rgba(129, 95, 70, .58);
  outline-offset: 2px;
}
