:root {
  --ink: #17342f;
  --deep: #082f2c;
  --forest: #0d4b3e;
  --forest-2: #145c49;
  --emerald: #1b7258;
  --ocean: #0b6472;
  --lagoon: #218985;
  --sage: #77966b;
  --leaf: #9bb46a;
  --gold: #d8b56a;
  --coral: #d7795d;
  --ivory: #fbf8f1;
  --paper: #fffdf9;
  --sand: #efe6d7;
  --mist: #eef4ef;
  --muted: #697a75;
  --line: rgba(23, 52, 47, .12);
  --line-light: rgba(255, 255, 255, .16);
  --shadow-sm: 0 10px 30px rgba(8, 47, 44, .08);
  --shadow: 0 24px 70px rgba(8, 47, 44, .14);
  --shadow-deep: 0 30px 90px rgba(2, 26, 24, .28);
  --radius-sm: 16px;
  --radius: 26px;
  --radius-lg: 38px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: 'DM Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.container { width: min(1240px, calc(100% - 44px)); margin-inline: auto; }
.site-body { overflow-x: hidden; }
.muted { color: var(--muted); }

/* ---------- HEADER ---------- */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 90;
  padding-top: 14px;
  color: #fff;
  pointer-events: none;
}
.header-inner {
  min-height: 72px;
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 9px 12px 9px 14px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 22px;
  background: linear-gradient(120deg, rgba(7,45,41,.76), rgba(7,45,41,.48));
  backdrop-filter: blur(18px) saturate(125%);
  box-shadow: 0 14px 38px rgba(0,0,0,.10);
  transition: background .25s, box-shadow .25s, border-color .25s, color .25s;
  pointer-events: auto;
}
.site-header.scrolled .header-inner {
  color: var(--deep);
  background: rgba(251,248,241,.96);
  border-color: rgba(23,52,47,.09);
  box-shadow: 0 12px 38px rgba(8,47,44,.13);
}
.brand { display: flex; align-items: center; gap: 11px; min-width: 220px; }
.brand-mark {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 5px 18px rgba(0,0,0,.16);
}
.brand-mark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: scale(1.10);
  clip-path: circle(48% at 50% 48%);
}
.brand-copy { display: flex; flex-direction: column; line-height: .95; }
.brand-copy strong { font-size: 16px; letter-spacing: .055em; }
.brand-copy b { margin-top: 5px; font-size: 13px; letter-spacing: .34em; color: #bed36f; }
.site-header.scrolled .brand-copy b { color: var(--emerald); }
.brand-copy small { margin-top: 7px; font-size: 9px; letter-spacing: .02em; opacity: .74; }

.desktop-nav {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(13px, 1.35vw, 22px);
  white-space: nowrap;
  font-size: 12px;
  font-weight: 600;
}
.desktop-nav a { position: relative; padding: 9px 0; opacity: .86; transition: opacity .2s, color .2s; }
.desktop-nav a:hover, .desktop-nav a.active { opacity: 1; }
.desktop-nav a::after {
  content: '';
  position: absolute;
  left: 50%; bottom: 1px;
  width: 0; height: 2px;
  background: var(--gold);
  border-radius: 999px;
  transform: translateX(-50%);
  transition: width .2s;
}
.desktop-nav a:hover::after, .desktop-nav a.active::after { width: 20px; }

.whatsapp-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 16px;
  border-radius: 15px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(26,112,82,.82);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  box-shadow: 0 8px 24px rgba(4,40,35,.16);
  transition: .2s;
}
.whatsapp-button:hover { transform: translateY(-1px); background: #1d7659; }
.whatsapp-button svg { width: 19px; height: 19px; fill: currentColor; }
.site-header.scrolled .whatsapp-button { border-color: transparent; background: var(--forest); }

.menu-button {
  display: none;
  margin-left: auto;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 14px;
  background: rgba(5,52,46,.55);
  place-items: center;
  padding: 11px;
}
.site-header.scrolled .menu-button { background: var(--forest); border-color: transparent; }
.menu-button span { display: block; width: 21px; height: 2px; background: #fff; border-radius: 2px; margin: 3px auto; transition: .22s; }
.menu-button.open span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.menu-button.open span:nth-child(2) { opacity: 0; }
.menu-button.open span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }

.mobile-menu-backdrop {
  position: fixed;
  inset: 0;
  z-index: 96;
  background: rgba(2,23,21,.58);
  backdrop-filter: blur(5px);
  opacity: 0;
  visibility: hidden;
  transition: .25s;
}
.mobile-menu-backdrop.open { opacity: 1; visibility: visible; }
.mobile-menu {
  position: fixed;
  z-index: 97;
  top: 0; right: 0; bottom: 0;
  width: min(420px, 92vw);
  padding: 24px;
  background: linear-gradient(160deg, #fffdf8, #f0eadf);
  color: var(--ink);
  box-shadow: -30px 0 80px rgba(0,0,0,.22);
  transform: translateX(105%);
  transition: transform .32s cubic-bezier(.2,.8,.2,1);
  overflow-y: auto;
}
.mobile-menu.open { transform: translateX(0); }
.mobile-menu-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.mobile-brand { display: flex; align-items: center; gap: 10px; }
.mobile-brand .brand-mark { width: 50px; height: 50px; flex-basis: 50px; }
.mobile-brand > span:last-child { display: flex; flex-direction: column; }
.mobile-brand strong { font-size: 14px; }
.mobile-brand small { color: var(--muted); font-size: 10px; margin-top: 2px; }
.mobile-menu-close { border: 0; background: #e9eee8; color: var(--deep); width: 42px; height: 42px; border-radius: 50%; font-size: 27px; line-height: 1; }
.mobile-menu-intro { padding: 34px 2px 18px; border-bottom: 1px solid var(--line); }
.mobile-menu-intro p { margin: 6px 0 0; color: var(--muted); max-width: 300px; }
.mobile-menu nav { display: grid; padding: 12px 0 18px; }
.mobile-menu nav a {
  display: grid;
  grid-template-columns: 34px 1fr;
  align-items: center;
  gap: 8px;
  padding: 14px 2px;
  border-bottom: 1px solid var(--line);
  font-family: 'Fraunces', Georgia, serif;
  font-size: 22px;
  font-weight: 600;
}
.mobile-menu nav a span { font-family: 'DM Sans', sans-serif; font-size: 9px; letter-spacing: .1em; color: var(--sage); }
.mobile-menu-wa { display: flex; justify-content: space-between; align-items: center; background: var(--forest); color: #fff; padding: 15px 17px; border-radius: 16px; font-weight: 700; }

/* ---------- TYPOGRAPHY + BUTTONS ---------- */
.hero-kicker, .eyebrow { display: block; font-size: 10px; font-weight: 800; letter-spacing: .20em; text-transform: uppercase; color: var(--emerald); }
.eyebrow.light, .hero-kicker { color: #d2c77f; }
h1,h2,h3,h4,p { overflow-wrap: break-word; }
.hero h1, .page-hero h1, .experience-hero h1, .split-heading h2, .impact-copy h2, .cta-card h2, .detail-main h2, .editorial-grid h2, .catalog-section-heading h2 {
  font-family: 'Fraunces', Georgia, serif;
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 46px;
  padding: 12px 18px;
  border: 1px solid transparent;
  border-radius: 14px;
  font-weight: 700;
  font-size: 13px;
  transition: transform .2s, box-shadow .2s, background .2s, border-color .2s;
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(8,47,44,.13); }
.btn-primary { color: #fff; background: linear-gradient(135deg, #1f7758, #386f45); border-color: rgba(255,255,255,.08); }
.btn-ghost { color: #fff; border-color: rgba(255,255,255,.58); background: rgba(6,51,46,.22); backdrop-filter: blur(6px); }
.btn-outline { color: var(--forest); border-color: rgba(13,75,62,.28); background: #fff; }
.btn-small { min-height: 36px; padding: 7px 12px; font-size: 11px; border-radius: 11px; }
.btn.full { width: 100%; }
.text-link { color: var(--forest); font-size: 12px; font-weight: 700; }
.subtle-action { display: block; margin-top: 13px; font-size: 11px; text-align: center; color: var(--emerald); font-weight: 700; }

/* ---------- HERO ---------- */
.hero {
  position: relative;
  min-height: 760px;
  color: #fff;
  background: var(--deep);
  overflow: hidden;
}
.hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 46%; filter: saturate(1.04) contrast(1.02); }
.hero-overlay {
  position: absolute; inset: 0;
  background:
    radial-gradient(circle at 72% 38%, transparent 0 20%, rgba(3,30,27,.12) 47%, rgba(3,30,27,.36) 78%),
    linear-gradient(90deg, rgba(4,38,34,.96) 0%, rgba(4,38,34,.78) 32%, rgba(4,38,34,.18) 67%, rgba(4,38,34,.25) 100%),
    linear-gradient(0deg, rgba(2,27,24,.50), transparent 42%);
}
.hero-content {
  position: relative;
  z-index: 2;
  min-height: 760px;
  padding-top: 152px;
  padding-bottom: 120px;
  display: grid;
  grid-template-columns: minmax(0,1.08fr) minmax(330px,.62fr);
  align-items: center;
  gap: 70px;
}
.hero-copy { max-width: 670px; }
.hero h1 { margin: 15px 0 22px; font-size: clamp(58px, 6.8vw, 96px); line-height: .93; font-weight: 600; letter-spacing: -.04em; }
.hero h1 em, .impact-copy h2 em { color: #d9bf7b; font-weight: 500; font-style: italic; }
.hero-copy > p { margin: 0; max-width: 560px; font-size: 17px; color: rgba(255,255,255,.88); }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }

.season-card {
  position: relative;
  justify-self: end;
  width: min(430px, 100%);
  min-height: 290px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 30px;
  background: rgba(5,48,43,.40);
  box-shadow: var(--shadow-deep);
  backdrop-filter: blur(14px);
}
.season-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .78; }
.season-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,42,38,.94), rgba(4,42,38,.48) 62%, rgba(4,42,38,.15)); }
.season-card-content { position: relative; z-index: 2; width: 74%; padding: 34px; }
.season-card h2 { margin: 5px 0 8px; font-family: 'Fraunces',Georgia,serif; font-size: 40px; }
.season-card p { margin: 0 0 3px; }
.season-card small { color: rgba(255,255,255,.72); }
.season-link { display: inline-flex; margin-top: 25px; font-size: 12px; font-weight: 700; }
.hero-wave {
  position: absolute;
  z-index: 3;
  left: -5%; right: -5%; bottom: -58px;
  height: 115px;
  background: var(--paper);
  border-radius: 50% 50% 0 0 / 50% 50% 0 0;
  transform: rotate(-.35deg);
}

/* ---------- SECTIONS / CARDS ---------- */
.section { padding: 82px 0; }
.section.soft { background: #f3efe6; }
.split-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.split-heading h2, .catalog-section-heading h2 { margin: 5px 0 0; font-size: clamp(34px,4vw,54px); line-height: 1.02; letter-spacing: -.035em; }
.split-heading p, .catalog-section-heading p { margin: 8px 0 0; color: var(--muted); max-width: 680px; }
.home-grid { display: grid; grid-template-columns: minmax(0,1fr) 370px; gap: 26px; align-items: start; }
.experience-scroller { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.cards-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.main-experience-grid { grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 850px; }
.catalog-section-heading { max-width: 780px; margin-bottom: 28px; }
.catalog-divider { height: 1px; margin: 64px 0; background: linear-gradient(90deg, transparent, rgba(13,75,62,.20), transparent); }

.experience-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 23px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 8px 24px rgba(8,47,44,.055);
  transition: transform .24s, box-shadow .24s, border-color .24s;
}
.experience-card:hover { transform: translateY(-6px); border-color: rgba(27,114,88,.24); box-shadow: 0 22px 50px rgba(8,47,44,.12); }
.experience-card-media { position: relative; display: block; height: 188px; overflow: hidden; background: #e8eee9; }
.experience-card-media::after { content:''; position:absolute; inset:auto 0 0 0; height:48%; background:linear-gradient(to top,rgba(8,47,44,.28),transparent); pointer-events:none; }
.experience-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.experience-card:hover .experience-card-media img { transform: scale(1.045); }
.experience-icon { position: absolute; z-index: 2; left: 16px; bottom: 12px; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--forest); border: 1px solid rgba(255,255,255,.62); box-shadow: 0 6px 18px rgba(0,0,0,.18); }
.status-chip { position: absolute; z-index: 2; top: 12px; right: 12px; padding: 7px 10px; border-radius: 999px; background: rgba(255,255,255,.93); color: var(--forest); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.complement-chip { color: #744f1f; background: rgba(248,234,202,.95); }
.experience-card-body { display: flex; flex: 1; flex-direction: column; padding: 20px 18px 18px; }
.experience-card-body .eyebrow { font-size: 8px; }
.experience-card h3 { margin: 6px 0 7px; font-family: 'Fraunces', Georgia, serif; font-size: 23px; line-height: 1.03; }
.experience-card p { margin: 0 0 13px; color: var(--muted); font-size: 12px; }
.prerequisite-note { margin: 0 0 13px; padding: 8px 10px; border-left: 2px solid var(--gold); border-radius: 0 8px 8px 0; background: #faf4e8; color: #705b36; font-size: 10px; }
.experience-card-footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--line); }
.experience-card-footer strong { color: var(--forest); font-size: 15px; }
.experience-card-footer a { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; background: var(--mist); color: var(--forest); transition: .2s; }
.experience-card-footer a:hover { background: var(--forest); color: #fff; }
.is-complementary { background: linear-gradient(180deg,#fff,#fffdf8); }

/* ---------- DEPARTURES ---------- */
.departures-panel {
  position: sticky;
  top: 104px;
  padding: 20px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 25px;
  color: #fff;
  background: radial-gradient(circle at 100% 0, rgba(47,139,119,.22), transparent 34%), linear-gradient(155deg,#0b4a3d,#082f2c);
  box-shadow: var(--shadow);
}
.panel-title { display: flex; justify-content: space-between; align-items: center; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.14); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.panel-title a { color: #dbe5cf; letter-spacing: 0; text-decoration: underline; }
.departure-card { padding: 16px 2px; border-bottom: 1px solid rgba(255,255,255,.10); }
.departure-head { display: grid; grid-template-columns: 40px 1fr auto; gap: 10px; align-items: center; }
.departure-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: #758f45; color: #fff; border: 1px solid rgba(255,255,255,.22); }
.departure-copy h4 { margin: 0 0 2px; font-size: 12px; }
.departure-copy p { margin: 0; font-size: 10px; color: rgba(255,255,255,.68); }
.departure-head > strong { font-size: 11px; }
.progress { height: 5px; margin: 10px 0 8px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.13); }
.progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#91a94f,#d6b25e); }
.departure-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.status-text { font-size: 9px; color: #dbe4d8; }
.status-text.confirmed { color: #c1e98a; }
.calendar-link { display: block; margin-top: 14px; padding: 10px; border: 1px solid rgba(255,255,255,.24); border-radius: 12px; text-align: center; font-size: 11px; font-weight: 700; }
.departure-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.departure-grid.large { grid-template-columns: repeat(2,minmax(0,1fr)); }
.departure-grid .departure-card { padding: 20px; border: 1px solid var(--line); border-radius: 20px; background: #fff; color: var(--ink); box-shadow: var(--shadow-sm); }
.departure-grid .departure-copy p, .departure-grid .status-text { color: var(--muted); }
.departure-grid .progress { background: #e4eae5; }

/* ---------- COMMUNITY / STORY ---------- */
.impact-section { position: relative; overflow: hidden; padding: 76px 0; color: #fff; background: radial-gradient(circle at 12% 10%,rgba(140,166,93,.20),transparent 28%), linear-gradient(145deg,#0b463a,#062d29 74%); }
.impact-section::before { content:''; position:absolute; width:560px; height:560px; right:-250px; bottom:-360px; border:1px solid rgba(216,181,106,.18); border-radius:50%; }
.impact-grid { position: relative; display: grid; grid-template-columns: .82fr 1.18fr; gap: 36px; align-items: stretch; }
.impact-copy h2 { margin: 6px 0 27px; font-size: clamp(38px,4.5vw,58px); line-height: 1.02; }
.impact-stats { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }
.impact-stats > div { min-height: 125px; padding: 15px; border: 1px solid rgba(255,255,255,.12); border-radius: 18px; background: rgba(255,255,255,.035); }
.impact-stats strong, .impact-stats span, .impact-stats small { display: block; }
.impact-stats strong { font-family:'Fraunces'; font-size: 30px; color:#d4c67c; }
.impact-stats span { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.impact-stats small { margin-top: 5px; color: rgba(255,255,255,.68); font-size: 10px; }
.story-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.story-cards a { position: relative; min-height: 390px; overflow: hidden; border-radius: 23px; background:#183d36; }
.story-cards img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .45s; }
.story-cards a:hover img { transform:scale(1.04); }
.story-cards a::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(3,29,26,.88),transparent 58%); }
.story-cards a > div { position:absolute; z-index:2; left:17px; right:17px; bottom:17px; }
.story-cards strong,.story-cards span { display:block; }
.story-cards strong { font-family:'Fraunces'; font-size:20px; }
.story-cards span { margin-top:3px; font-size:10px; color:rgba(255,255,255,.72); }

.cta-card { display: flex; justify-content: space-between; align-items: center; gap: 28px; padding: 37px; border: 1px solid var(--line); border-radius: 28px; background: linear-gradient(115deg,#fff,#f4efe5); box-shadow: var(--shadow-sm); }
.cta-card h2 { margin: 5px 0 7px; font-size: 46px; line-height: 1; }
.cta-card p { margin: 0; color: var(--muted); }
.cta-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* ---------- PAGE HERO ---------- */
.page-hero { position: relative; overflow: hidden; padding: 175px 0 82px; color: #fff; background: linear-gradient(135deg,#0c4b3e,#0a5a60); }
.page-hero::before { content:''; position:absolute; width:520px; height:520px; right:-210px; top:-250px; border:1px solid rgba(255,255,255,.11); border-radius:50%; }
.page-hero.compact { padding-bottom: 65px; }
.page-hero h1 { position:relative; z-index:1; max-width:900px; margin:10px 0 13px; font-size:clamp(48px,6vw,78px); line-height:.98; letter-spacing:-.035em; }
.page-hero p { position:relative; z-index:1; max-width:700px; margin:0; color:rgba(255,255,255,.82); font-size:16px; }
.image-page { min-height: 600px; display:flex; align-items:flex-end; background-image: linear-gradient(90deg,rgba(4,38,34,.82),rgba(4,38,34,.18)), var(--page-bg); background-size:cover; background-position:center; }
.experiences-page-hero { background: radial-gradient(circle at 80% 30%,rgba(48,139,126,.25),transparent 28%), linear-gradient(135deg,#0b4439,#0a5961); }

.experience-hero { position:relative; height:650px; display:flex; align-items:flex-end; overflow:hidden; color:#fff; background:var(--deep); }
.experience-hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.experience-hero-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(4,34,31,.90),rgba(4,34,31,.12) 68%); }
.experience-hero-copy { position:relative; z-index:2; padding-bottom:70px; }
.experience-hero h1 { max-width:930px; margin:10px 0 12px; font-size:clamp(50px,6vw,82px); line-height:.98; letter-spacing:-.035em; }
.experience-hero p { max-width:670px; margin:0; color:rgba(255,255,255,.84); font-size:17px; }

/* ---------- DETAILS ---------- */
.detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 350px; gap:55px; align-items:start; }
.lead { font-family:'Fraunces',Georgia,serif; font-size:27px; line-height:1.36; color:#25433e; }
.quick-facts { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:34px 0; }
.quick-facts > div { min-height:105px; padding:18px; display:flex; flex-direction:column; justify-content:center; border:1px solid var(--line); border-radius:17px; background:#fff; }
.quick-facts span { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.11em; }
.quick-facts strong { margin-top:5px; font-family:'Fraunces'; font-size:20px; line-height:1.1; }
.quick-facts small { color:var(--muted); font-size:9px; }
.season-note,.notice { margin:20px 0; padding:15px 17px; border:1px solid #dfd2af; border-radius:14px; background:#f6edd9; color:#665535; }
.detail-columns { display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:35px; }
.detail-columns h2 { margin-bottom:8px; font-size:30px; }
.check-list,.plain-list { list-style:none; padding:0; margin:10px 0; }
.check-list li,.plain-list li { position:relative; padding:10px 0 10px 27px; border-bottom:1px solid var(--line); }
.check-list li::before { content:'✓'; position:absolute; left:0; color:var(--emerald); font-weight:900; }
.plain-list li::before { content:'•'; position:absolute; left:7px; color:var(--gold); }
.booking-box { position:sticky; top:104px; padding:25px; border:1px solid var(--line); border-radius:24px; background:#fff; box-shadow:var(--shadow-sm); }
.booking-box h3 { margin:6px 0 8px; font-family:'Fraunces'; font-size:29px; }
.booking-box p { color:var(--muted); }
.booking-box .btn { margin-top:9px; }
.mini-meta { display:flex; flex-direction:column; margin-top:20px; padding-top:15px; border-top:1px solid var(--line); }
.mini-meta span { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.09em; }

.dependency-banner { display:grid; grid-template-columns:50px 1fr; gap:16px; align-items:start; margin-bottom:25px; padding:20px; border:1px solid rgba(216,181,106,.38); border-radius:20px; background:linear-gradient(135deg,#fffaf0,#f7efe0); }
.dependency-banner.compact-dependency { margin:0 0 30px; }
.dependency-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:50%; background:var(--forest); color:#fff; font-size:21px; font-weight:800; }
.dependency-banner h2 { margin:3px 0 5px; font-family:'Fraunces'; font-size:27px; }
.dependency-banner p { margin:0; color:#6a665b; }

/* ---------- FORMS / RESERVATIONS ---------- */
.reservation-layout,.reservation-status-grid,.partners-grid,.contact-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.75fr); gap:35px; align-items:start; }
.form-card,.order-summary,.contact-panel { padding:29px; border:1px solid var(--line); border-radius:24px; background:#fff; box-shadow:0 9px 32px rgba(8,47,44,.055); }
.form-card h2,.order-summary h2,.contact-panel h2 { margin-top:0; font-family:'Fraunces'; font-size:31px; line-height:1.08; }
.form-card h3 { margin:28px 0 9px; font-family:'Fraunces'; font-size:22px; }
.form-card label { display:flex; flex-direction:column; gap:7px; margin:14px 0; color:#34504a; font-size:11px; font-weight:700; }
.form-card label small { color:var(--muted); font-weight:500; }
.form-card input,.form-card select,.form-card textarea { width:100%; padding:12px 13px; border:1px solid #cad5d0; border-radius:11px; outline:none; background:#fffefb; transition:.2s; }
.form-card input:focus,.form-card select:focus,.form-card textarea:focus { border-color:var(--emerald); box-shadow:0 0 0 3px rgba(27,114,88,.10); }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0 16px; }
.check-field { flex-direction:row!important; align-items:flex-start; }
.check-field input { width:auto!important; margin-top:3px; }
.form-section-title { display:flex; align-items:center; gap:12px; margin:4px 0 8px; }
.form-section-title h2,.form-section-title h3 { margin:0; }
.step-number { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:var(--mist); color:var(--forest); font-size:10px; font-weight:800; }
.order-summary { position:sticky; top:104px; overflow:hidden; }
.order-summary > img { width:100%; height:210px; object-fit:cover; margin-bottom:20px; border-radius:18px; background:#e8eee9; }
.summary-note { color:var(--muted); font-size:12px; }
.summary-row,.summary-total { display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-top:1px solid var(--line); }
.summary-total { margin-top:8px; font-size:19px; }
.summary-total strong { color:var(--emerald); }
.order-summary > small { display:block; margin-top:14px; color:var(--muted); }
.success-box,.error-box { margin:14px 0; padding:13px 15px; border-radius:12px; }
.success-box { color:#245d38; background:#e8f4e9; }
.error-box { color:#873e31; background:#f9e8e2; }
.status-badge { display:inline-flex; padding:7px 10px; border-radius:999px; color:#526b34; background:#eef2e5; font-size:9px; font-weight:800; }
.reservation-title-row { display:flex; justify-content:space-between; align-items:flex-start; gap:15px; }
.info-list { margin:24px 0; }
.info-list > div { display:flex; justify-content:space-between; gap:20px; padding:11px 0; border-bottom:1px solid var(--line); }
.info-list span { color:var(--muted); }
.payment-history > div { display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--line); }
.base-reservation-summary { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin:18px 0; padding:15px; border-radius:15px; background:var(--mist); }
.base-reservation-summary div { display:flex; flex-direction:column; }
.base-reservation-summary span { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.07em; }
.base-reservation-summary strong { margin-top:2px; font-size:12px; }
.standalone-link { display:block; margin-top:15px; text-align:center; }
.linked-reservation { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:18px 0; padding:12px 14px; border-radius:13px; background:#f6f0e4; }
.linked-reservation span { color:var(--muted); font-size:10px; }
.linked-reservation a { margin-left:auto; color:var(--emerald); font-size:10px; font-weight:700; }
.reservation-addons-list { margin:25px 0; padding-top:20px; border-top:1px solid var(--line); }
.reservation-addons-list h3 { margin-top:4px; }
.reservation-addons-list a { display:flex; justify-content:space-between; gap:15px; padding:10px 0; border-bottom:1px solid var(--line); font-size:11px; }
.reservation-addons-list a strong { color:var(--forest); }

.addons-section { background:linear-gradient(180deg,#f4efe6,#fbf8f1); }
.addon-cards { grid-template-columns:repeat(3,1fr); }
.addon-card { overflow:hidden; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:var(--shadow-sm); }
.addon-card > img { width:100%; height:190px; object-fit:cover; background:#e8eee9; }
.addon-card > div { padding:18px; }
.addon-card h3 { margin:4px 0 6px; font-family:'Fraunces'; font-size:23px; }
.addon-card p { color:var(--muted); font-size:12px; }
.addon-card-foot { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-top:12px; border-top:1px solid var(--line); }
.addon-card-foot strong { color:var(--forest); }

/* ---------- GALLERY / EDITORIAL / FAQ ---------- */
.filter-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:25px; }
.filter-row a { padding:8px 12px; border:1px solid var(--line); border-radius:999px; background:#fff; font-size:11px; }
.gallery-grid { columns:3; column-gap:16px; }
.gallery-grid figure { position:relative; margin:0 0 16px; break-inside:avoid; overflow:hidden; border-radius:20px; background:#e9eee9; }
.gallery-grid img { width:100%; height:auto; min-height:180px; object-fit:cover; }
.gallery-grid figcaption { position:absolute; left:0; right:0; bottom:0; padding:40px 15px 14px; color:#fff; background:linear-gradient(to top,rgba(4,33,30,.86),transparent); }
.gallery-grid figcaption strong,.gallery-grid figcaption span { display:block; }
.gallery-grid figcaption span { font-size:10px; opacity:.75; }
.editorial-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.editorial-grid.reverse > img { order:0; }
.editorial-grid img { width:100%; height:520px; object-fit:cover; border-radius:29px; background:#e8eee9; }
.editorial-grid h2 { margin:5px 0 14px; font-size:clamp(36px,4vw,54px); line-height:1.03; }
.editorial-grid p { color:var(--muted); }
.contact-panel a,.contact-panel > div { display:flex; justify-content:space-between; gap:15px; padding:14px 0; border-bottom:1px solid var(--line); }
.contact-panel span { color:var(--muted); text-align:right; }
.faq-list { max-width:880px; }
.faq-list details { padding:18px 0; border-bottom:1px solid var(--line); }
.faq-list summary { cursor:pointer; font-family:'Fraunces'; font-size:23px; font-weight:600; }
.faq-list p { max-width:760px; color:var(--muted); }
.empty-card { max-width:720px; padding:44px; border-radius:24px; background:#f3efe6; }
.empty-card h2 { margin-top:0; font-family:'Fraunces'; font-size:36px; }

/* ---------- FOOTER ---------- */
.site-footer { padding:70px 0 24px; color:#e9f0ea; background:#052d29; }
.footer-grid { display:grid; grid-template-columns:1.35fr .7fr .9fr .65fr; gap:38px; }
.footer-brand { display:flex; align-items:center; gap:12px; margin-bottom:15px; }
.footer-brand .brand-mark { width:58px; height:58px; flex-basis:58px; }
.footer-brand strong { font-family:'Fraunces'; font-size:24px; }
.footer-grid p { max-width:390px; color:rgba(255,255,255,.72); }
.footer-grid h4 { margin:0 0 12px; color:#d5c37a; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.footer-grid > div:not(:first-child) { display:flex; flex-direction:column; gap:8px; font-size:12px; }
.footer-grid a,.footer-grid span { color:rgba(255,255,255,.78); }
.footer-grid a:hover { color:#fff; }
.footer-bottom { display:flex; justify-content:space-between; gap:15px; margin-top:45px; padding-top:18px; border-top:1px solid rgba(255,255,255,.10); color:rgba(255,255,255,.52); font-size:10px; }
.floating-wa { position:fixed; z-index:78; right:22px; bottom:22px; width:57px; height:57px; display:grid; place-items:center; border-radius:50%; background:#1b8050; color:#fff; box-shadow:0 14px 32px rgba(0,0,0,.23); transition:.2s; }
.floating-wa:hover { transform:translateY(-3px) scale(1.03); }
.floating-wa svg { width:28px; height:28px; fill:currentColor; }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1120px) {
  .desktop-nav { display:none; }
  .menu-button { display:block; }
  .header-inner { min-height:68px; }
  .brand { min-width:0; }
  .hero-content { grid-template-columns:1fr .58fr; gap:34px; }
  .home-grid { grid-template-columns:1fr; }
  .departures-panel { position:relative; top:auto; }
  .experience-scroller { grid-template-columns:repeat(3,1fr); }
  .impact-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 780px) {
  .container { width:min(100% - 28px, 660px); }
  .site-header { padding-top:9px; }
  .header-inner { min-height:62px; padding:7px 8px 7px 10px; border-radius:18px; }
  .brand-mark { width:46px; height:46px; flex-basis:46px; }
  .brand-copy strong { font-size:14px; }
  .brand-copy b { font-size:11px; }
  .brand-copy small { display:none; }
  .desktop-only { display:none; }
  .menu-button { width:42px; height:42px; border-radius:12px; }

  .hero { min-height:760px; }
  .hero-bg { object-position:54% center; }
  .hero-overlay { background:linear-gradient(180deg,rgba(4,35,32,.46),rgba(4,35,32,.26) 28%,rgba(4,35,32,.92) 78%); }
  .hero-content { min-height:760px; display:flex; flex-direction:column; justify-content:flex-end; align-items:stretch; padding-top:112px; padding-bottom:82px; }
  .hero-copy { margin-top:auto; }
  .hero h1 { font-size:clamp(46px,13vw,62px); }
  .hero-copy > p { font-size:14px; max-width:440px; }
  .hero-actions { display:grid; grid-template-columns:1fr; }
  .hero-actions .btn { width:100%; }
  .season-card { width:100%; min-height:205px; }
  .season-card-content { width:78%; padding:22px; }
  .season-card h2 { font-size:31px; }
  .hero-wave { bottom:-70px; height:112px; }

  .section { padding:58px 0; }
  .split-heading { align-items:flex-start; }
  .split-heading .text-link { display:none; }
  .split-heading h2,.catalog-section-heading h2 { font-size:37px; }
  .home-grid { gap:20px; }
  .experience-scroller { display:flex; overflow-x:auto; gap:12px; padding:4px 1px 13px; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .experience-scroller::-webkit-scrollbar { display:none; }
  .experience-card { min-width:76vw; scroll-snap-align:start; }
  .experience-card-media { height:210px; }
  .cards-grid,.main-experience-grid { grid-template-columns:1fr; max-width:none; }
  .catalog-divider { margin:48px 0; }

  .impact-section { padding:58px 0; }
  .impact-copy h2 { font-size:42px; }
  .impact-stats { grid-template-columns:repeat(2,1fr); }
  .story-cards { display:flex; overflow-x:auto; gap:12px; scrollbar-width:none; }
  .story-cards::-webkit-scrollbar { display:none; }
  .story-cards a { min-width:78vw; min-height:320px; }
  .cta-card { display:block; padding:25px; }
  .cta-card h2 { font-size:36px; }
  .cta-actions { display:grid; margin-top:20px; }

  .page-hero { padding:145px 0 56px; }
  .page-hero h1 { font-size:48px; }
  .page-hero p { font-size:14px; }
  .image-page { min-height:520px; }
  .experience-hero { height:560px; }
  .experience-hero-copy { padding-bottom:45px; }
  .experience-hero h1 { font-size:48px; }

  .detail-grid,.reservation-layout,.reservation-status-grid,.partners-grid,.contact-grid,.editorial-grid { grid-template-columns:1fr; gap:27px; }
  .booking-box,.order-summary { position:relative; top:auto; }
  .quick-facts { grid-template-columns:1fr 1fr; }
  .detail-columns { grid-template-columns:1fr; }
  .detail-columns h2 { font-size:28px; }
  .lead { font-size:23px; }
  .departure-grid,.departure-grid.large { grid-template-columns:1fr; }
  .gallery-grid { columns:2; }
  .editorial-grid img { height:390px; }
  .editorial-grid.reverse > img { order:2; }
  .form-grid { grid-template-columns:1fr; }
  .base-reservation-summary { grid-template-columns:1fr; }
  .reservation-title-row { flex-direction:column; }
  .linked-reservation a { margin-left:0; width:100%; }
  .addon-cards { grid-template-columns:1fr; }

  .footer-grid { grid-template-columns:1fr 1fr; gap:25px; }
  .footer-grid > div:first-child { grid-column:1/-1; }
  .site-footer { padding-bottom:90px; }
  .floating-wa { right:15px; bottom:16px; }
}

@media (max-width: 500px) {
  .container { width:calc(100% - 24px); }
  .header-inner { padding-left:8px; }
  .brand { gap:8px; }
  .brand-copy strong { font-size:13px; }
  .brand-copy b { font-size:10px; letter-spacing:.28em; }
  .mobile-menu { width:94vw; padding:20px; }
  .hero h1 { font-size:45px; }
  .experience-card { min-width:84vw; }
  .quick-facts { grid-template-columns:1fr; }
  .impact-stats { grid-template-columns:1fr 1fr; }
  .impact-stats small { display:none; }
  .gallery-grid { columns:1; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-grid > div:first-child { grid-column:auto; }
  .contact-panel a,.contact-panel > div { flex-direction:column; gap:3px; }
  .contact-panel span { text-align:left; }
  .dependency-banner { grid-template-columns:1fr; }
  .dependency-icon { width:40px; height:40px; }
}

/* ========================================================================== 
   ASOPAPAYAL PLAYA · EXPERIENCE DESIGN V3
   Refinamiento visual: composición editorial, naturaleza, movimiento y móvil.
   ========================================================================== */
:root {
  --v3-deep: #063b34;
  --v3-deep-2: #052b28;
  --v3-teal: #0c665f;
  --v3-tide: #167d79;
  --v3-leaf: #789746;
  --v3-lime: #a7bd61;
  --v3-amber: #d9b96f;
  --v3-clay: #b96f50;
  --v3-cream: #fbf7ee;
  --v3-paper: #fffdf8;
  --v3-ink: #143b35;
  --v3-soft-shadow: 0 18px 58px rgba(4, 46, 41, .10);
  --v3-card-shadow: 0 25px 65px rgba(4, 42, 38, .14);
}

html { font-size: 16px; }
body {
  background:
    radial-gradient(circle at 7% 18%, rgba(123,151,77,.07), transparent 20%),
    radial-gradient(circle at 94% 42%, rgba(22,125,121,.055), transparent 22%),
    var(--v3-paper);
  font-size: 15px;
}
.ambient-grain {
  position: fixed;
  inset: 0;
  z-index: 999;
  opacity: .022;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
}
.site-scroll-progress { position:fixed; z-index:120; top:0; left:0; width:0; height:2px; background:linear-gradient(90deg,var(--v3-amber),var(--v3-lime),var(--v3-tide)); box-shadow:0 0 12px rgba(217,185,111,.45); }

/* Header limpio, logo sin caja blanca */
.site-header { padding-top: 18px; }
.header-inner {
  min-height: 76px;
  border-radius: 26px;
  border-color: rgba(255,255,255,.12);
  background: linear-gradient(115deg, rgba(4,43,38,.73), rgba(5,50,46,.38));
  backdrop-filter: blur(22px) saturate(138%);
  box-shadow: 0 18px 48px rgba(0,0,0,.10);
}
.site-header.scrolled .header-inner { background:rgba(253,249,241,.91); backdrop-filter:blur(24px) saturate(130%); }
.brand-mark,
.footer-brand .brand-mark,
.mobile-brand .brand-mark {
  background: transparent;
  box-shadow: none;
  overflow: visible;
  border-radius: 0;
}
.brand-mark img,
.footer-brand .brand-mark img,
.mobile-brand .brand-mark img {
  object-fit: contain;
  clip-path: none;
  transform: none;
  filter: drop-shadow(0 7px 10px rgba(0,0,0,.12));
}
.brand-copy strong { font-size: 15px; letter-spacing:.07em; }
.brand-copy b { color:#d3c978; }
.desktop-nav { font-size: 11px; gap: clamp(13px,1.25vw,21px); }
.desktop-nav a { opacity:.82; }
.whatsapp-button { border-radius:999px; padding:12px 17px; }

/* Reveals */
.js-ready [data-reveal] { opacity:0; transform:translateY(26px); transition:opacity .75s cubic-bezier(.2,.7,.2,1), transform .75s cubic-bezier(.2,.7,.2,1); }
.js-ready [data-reveal].is-visible { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; }
  .js-ready [data-reveal] { opacity:1; transform:none; }
}

/* Home hero: más editorial y menos plantilla */
.hero-v3 { min-height: 830px; background:var(--v3-deep-2); isolation:isolate; }
.hero-v3 .hero-bg { transform:scale(1.035); filter:saturate(.92) contrast(1.04); will-change:transform; }
.hero-v3 .hero-overlay {
  background:
    linear-gradient(90deg, rgba(2,31,29,.91) 0%, rgba(3,42,38,.73) 34%, rgba(2,39,36,.18) 70%),
    linear-gradient(180deg, rgba(3,25,24,.18), rgba(3,30,27,.20) 64%, rgba(3,28,25,.76));
}
.hero-nature-lines { position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; opacity:.32; }
.hero-nature-lines span { position:absolute; border:1px solid rgba(220,196,116,.30); border-radius:50%; }
.hero-nature-lines span:nth-child(1){ width:560px; height:560px; right:-170px; top:130px; }
.hero-nature-lines span:nth-child(2){ width:760px; height:760px; right:-285px; top:45px; }
.hero-nature-lines span:nth-child(3){ width:980px; height:980px; right:-390px; top:-60px; }
.hero-content-v3 { min-height:830px; grid-template-columns:minmax(0,1.1fr) minmax(340px,.62fr); gap:clamp(42px,6vw,100px); align-items:center; padding-top:105px; padding-bottom:115px; }
.hero-v3 .hero-copy { max-width:720px; }
.hero-v3 .hero-kicker { display:flex; align-items:center; gap:10px; color:#dfd18d; }
.hero-v3 .hero-kicker i { width:25px; height:1px; background:currentColor; }
.hero-v3 h1 { margin:15px 0 23px; font-size:clamp(62px,7.1vw,108px); line-height:.88; letter-spacing:-.048em; text-shadow:0 12px 38px rgba(0,0,0,.22); }
.hero-v3 h1 em { display:inline-block; margin-top:8px; color:#d8c47a; font-size:.67em; font-weight:500; letter-spacing:-.025em; }
.hero-v3 .hero-copy > p { max-width:600px; font-size:clamp(16px,1.28vw,19px); line-height:1.62; color:rgba(255,255,255,.84); }
.hero-v3 .hero-actions { margin-top:32px; }
.hero-v3 .btn { min-height:52px; padding-inline:21px; border-radius:16px; }
.hero-signals { display:flex; gap:0; margin-top:38px; padding-top:20px; border-top:1px solid rgba(255,255,255,.15); max-width:570px; }
.hero-signals > div { min-width:130px; padding-right:27px; margin-right:27px; border-right:1px solid rgba(255,255,255,.13); }
.hero-signals > div:last-child { border-right:0; margin-right:0; }
.hero-signals strong,.hero-signals span { display:block; }
.hero-signals strong { font-family:'Fraunces',Georgia,serif; font-size:23px; color:#fff; }
.hero-signals span { margin-top:2px; color:rgba(255,255,255,.61); font-size:9px; text-transform:uppercase; letter-spacing:.13em; }
.season-card-v3 { min-height:420px; border-radius:34px; border:1px solid rgba(255,255,255,.28); box-shadow:0 32px 95px rgba(0,0,0,.26); transform:translateY(28px); }
.season-card-v3 img { filter:saturate(.86) contrast(1.04); }
.season-card-v3::after { background:linear-gradient(180deg,rgba(4,37,34,.08),rgba(3,27,25,.93)); }
.season-glass { position:absolute; inset:15px; z-index:1; border:1px solid rgba(255,255,255,.16); border-radius:25px; pointer-events:none; }
.season-card-v3 .season-card-content { width:100%; align-self:flex-end; padding:34px; }
.season-card-v3 h2 { font-size:52px; }
.season-card-v3 .season-link { display:inline-flex; gap:12px; align-items:center; margin-top:19px; padding:9px 13px; border-radius:999px; background:rgba(255,255,255,.11); border:1px solid rgba(255,255,255,.15); width:max-content; }
.hero-bottom-ribbon { position:absolute; z-index:3; left:50%; bottom:28px; transform:translateX(-50%); display:flex; gap:15px; align-items:center; color:rgba(255,255,255,.57); font-size:9px; letter-spacing:.18em; text-transform:uppercase; white-space:nowrap; }
.hero-bottom-ribbon span { color:#d8c47a; }
.hero-wave-v3 { bottom:-92px; height:165px; background:var(--v3-paper); border-radius:52% 48% 0 0 / 35% 38% 0 0; transform:scaleX(1.08); box-shadow:0 -1px 0 rgba(255,255,255,.08); }

/* Secciones con profundidad */
.experiences-section-v3 { position:relative; padding-top:96px; background:linear-gradient(180deg,var(--v3-paper),#f8f3e8 74%,#f7f1e5); }
.section-orbit { position:absolute; pointer-events:none; border:1px solid rgba(17,91,73,.08); border-radius:50%; }
.orbit-one { width:520px; height:520px; left:-340px; top:180px; box-shadow:0 0 0 60px rgba(17,91,73,.018),0 0 0 120px rgba(17,91,73,.012); }
.split-heading h2 em { color:var(--v3-teal); font-weight:500; }
.section-intro { max-width:650px; margin:10px 0 0; color:var(--muted); font-size:14px; }
.home-grid-v3 { grid-template-columns:minmax(0,1fr) 350px; gap:25px; align-items:start; }

/* Cards de experiencias */
.experience-card-v3 { border:1px solid rgba(15,75,63,.10); border-radius:24px; box-shadow:0 15px 42px rgba(6,55,49,.075); transition:transform .35s cubic-bezier(.2,.75,.2,1), box-shadow .35s; }
.experience-card-v3:hover { transform:translateY(-7px); box-shadow:0 26px 62px rgba(6,55,49,.13); }
.experience-card-v3 .experience-card-media { height:220px; }
.experience-card-v3 .experience-card-media::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(3,35,31,.30),transparent 50%); }
.media-sheen { position:absolute; z-index:1; inset:0; background:linear-gradient(120deg,transparent 35%,rgba(255,255,255,.19) 50%,transparent 65%); transform:translateX(-115%); transition:transform .75s; }
.experience-card-v3:hover .media-sheen { transform:translateX(115%); }
.experience-card-v3 .experience-icon { z-index:3; width:44px; height:44px; bottom:14px; background:rgba(5,66,55,.88); backdrop-filter:blur(8px); }
.experience-card-v3 .experience-card-body { padding:20px 19px 18px; }
.experience-card-v3 h3 { min-height:47px; font-size:22px; }
.experience-card-v3 p { min-height:56px; font-size:11.5px; line-height:1.5; }
.experience-card-v3 .prerequisite-note { min-height:47px; }
.experience-card-v3 .experience-card-footer > div { display:flex; flex-direction:column; }
.experience-card-v3 .experience-card-footer small { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.12em; }
.experience-card-v3 .experience-card-footer strong { font-size:16px; }
.experience-card-v3 .experience-card-footer a { width:37px; height:37px; }
.experience-slug-pasadia-papayal-playa .experience-card-media img { object-position:center 58%; }
.experience-slug-avistamiento-ballenas-tumaco .experience-card-media img { object-position:center 46%; }
.experience-slug-observacion-aves .experience-card-media img { object-position:center 35%; }
.experience-slug-ruta-piangua-manglar .experience-card-media img { object-position:center center; }
.experience-slug-pesca-artesanal .experience-card-media img { object-position:center 42%; }
.experience-slug-sendero-santa-barbara .experience-card-media img { object-position:center 50%; }

/* Salidas: mínimo != máximo */
.departures-panel-v3 { position:sticky; top:108px; border-radius:29px; padding:21px; background:
  radial-gradient(circle at 88% 5%,rgba(170,195,103,.18),transparent 25%),
  linear-gradient(154deg,#0b5145 0%,#06362f 60%,#052c29 100%); }
.live-dot { display:inline-block; width:7px; height:7px; margin-right:7px; border-radius:50%; background:#bad873; box-shadow:0 0 0 0 rgba(186,216,115,.45); animation:livePulse 2s infinite; }
@keyframes livePulse { 70%{box-shadow:0 0 0 8px rgba(186,216,115,0)} 100%{box-shadow:0 0 0 0 rgba(186,216,115,0)} }
.departure-card { padding:17px 2px; }
.departure-count { display:flex; flex-direction:column; align-items:flex-end; line-height:1.05; }
.departure-count small { margin-top:3px; color:rgba(255,255,255,.53); font-size:7px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; }
.departure-meta-line { display:flex; justify-content:space-between; gap:8px; margin:-1px 0 10px; color:rgba(255,255,255,.52); font-size:8px; }
.departure-meta-line strong { color:rgba(255,255,255,.82); }
.status-text.confirmed { color:#c9ec91; }
.status-text.full { color:#f4cb91; }
.departure-grid .departure-count small,.departure-grid .departure-meta-line { color:var(--muted); }
.departure-grid .departure-meta-line strong { color:var(--ink); }
.departure-grid .status-text.confirmed { color:#2c815e; font-weight:700; }
.departures-page-hero { background:
  radial-gradient(circle at 85% 20%,rgba(170,194,97,.17),transparent 24%),
  radial-gradient(circle at 12% 80%,rgba(26,133,129,.20),transparent 28%),
  linear-gradient(135deg,#063b34,#0a5b58); }
.departures-catalog-section { background:linear-gradient(180deg,#fbf7ef,#fffdf8); }
.departure-explainer { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:31px; }
.departure-explainer > div { display:grid; grid-template-columns:37px 1fr; gap:12px; padding:16px; border:1px solid rgba(18,68,58,.10); border-radius:18px; background:rgba(255,255,255,.72); box-shadow:var(--shadow-sm); }
.departure-explainer > div > span { width:37px; height:37px; display:grid; place-items:center; border-radius:12px; background:#edf2e8; color:var(--forest); font-size:9px; font-weight:800; }
.departure-explainer p { margin:0; color:var(--muted); font-size:11px; }
.departure-explainer strong { display:block; margin-bottom:3px; color:var(--ink); font-size:12px; }

/* Impacto: foto + geometría orgánica */
.impact-section-v3 { padding:92px 0; background:
  radial-gradient(circle at 12% 12%,rgba(165,187,89,.15),transparent 24%),
  linear-gradient(145deg,#073e36 0%,#052f2b 62%,#062824 100%); }
.impact-photo-strip { position:absolute; right:-4%; top:-11%; width:36vw; height:125%; opacity:.085; transform:rotate(-8deg); background:url('../images/flora.jpg') center/cover; mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 85%,transparent); }
.impact-lead { max-width:600px; color:rgba(255,255,255,.70); font-size:14px; }
.impact-stats > div { transition:transform .25s,background .25s; }
.impact-stats > div:hover { transform:translateY(-3px); background:rgba(255,255,255,.06); }
.story-cards-v3 { grid-template-columns:1.06fr .94fr; grid-template-rows:1fr 1fr; }
.story-cards-v3 a:first-child { grid-row:1/3; min-height:520px; }
.story-cards-v3 a:not(:first-child) { min-height:252px; }
.story-cards-v3 a > div span { display:inline-grid; place-items:center; width:31px; height:31px; margin-bottom:9px; border-radius:50%; background:rgba(255,255,255,.14); font-family:'DM Sans'; font-size:8px; }
.story-cards-v3 a > div small { display:block; margin-top:4px; color:rgba(255,255,255,.68); }

/* CTA */
.cta-section-v3 { background:linear-gradient(180deg,#fbf7ef,#fffdf9); }
.cta-card-v3 { position:relative; overflow:hidden; padding:46px; border:1px solid rgba(17,78,65,.11); background:
  radial-gradient(circle at 88% 20%,rgba(170,190,99,.15),transparent 24%),
  linear-gradient(110deg,#fffdf9,#f1ecdf); }
.cta-card-v3::after { content:''; position:absolute; width:300px; height:300px; right:-150px; bottom:-180px; border:1px solid rgba(15,91,77,.10); border-radius:50%; box-shadow:0 0 0 50px rgba(15,91,77,.025),0 0 0 100px rgba(15,91,77,.018); }
.cta-card-v3 > * { position:relative; z-index:1; }
.cta-nature-mark { position:absolute; right:28%; top:18px; font-size:42px; color:rgba(16,104,86,.10); }
.cta-card-v3 h2 em { color:var(--v3-teal); font-weight:500; }

/* Héroes interiores con textura visual */
.page-hero { background:
  radial-gradient(circle at 82% 18%,rgba(172,193,102,.15),transparent 23%),
  radial-gradient(circle at 12% 86%,rgba(33,139,133,.17),transparent 25%),
  linear-gradient(135deg,#073f37,#0b6562); }
.page-hero::after { content:''; position:absolute; inset:0; opacity:.09; background-image:repeating-linear-gradient(118deg,transparent 0 38px,rgba(255,255,255,.11) 39px 40px); mask-image:linear-gradient(to left,#000,transparent 70%); }
.page-hero .container { position:relative; z-index:2; }
.experience-hero > img { transform:scale(1.012); transition:transform 8s ease-out; }
.experience-hero:hover > img { transform:scale(1.045); }
.experience-slug-pasadia-papayal-playa.experience-hero > img { object-position:center 58%; }
.experience-slug-avistamiento-ballenas-tumaco.experience-hero > img { object-position:center 44%; }
.experience-slug-observacion-aves.experience-hero > img { object-position:center 30%; }
.experience-slug-ruta-piangua-manglar.experience-hero > img { object-position:center center; }
.experience-slug-pesca-artesanal.experience-hero > img { object-position:center 42%; }
.experience-slug-sendero-santa-barbara.experience-hero > img { object-position:center 50%; }

/* Formularios: wizard compacto, simétrico y legible */
.reservation-hero-v3 { padding-bottom:70px; }
.reservation-hero-inner { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; }
.reservation-hero-inner h1 { max-width:800px; }
.reservation-hero-art { position:absolute; right:4%; bottom:-70px; width:330px; height:330px; border:1px solid rgba(255,255,255,.10); border-radius:48% 52% 60% 40% / 45% 38% 62% 55%; box-shadow:0 0 0 45px rgba(255,255,255,.025),0 0 0 90px rgba(255,255,255,.015); transform:rotate(17deg); }
.hero-mini-fact { min-width:220px; padding:14px 16px; border:1px solid rgba(255,255,255,.16); border-radius:18px; background:rgba(255,255,255,.07); backdrop-filter:blur(12px); }
.hero-mini-fact span,.hero-mini-fact strong { display:block; }
.hero-mini-fact span { color:rgba(255,255,255,.60); font-size:8px; text-transform:uppercase; letter-spacing:.15em; }
.hero-mini-fact strong { margin-top:4px; color:#fff; font-size:12px; }
.reservation-section-v3 { position:relative; background:
  radial-gradient(circle at 2% 20%,rgba(112,151,75,.07),transparent 21%),
  radial-gradient(circle at 96% 72%,rgba(24,127,122,.055),transparent 22%),
  linear-gradient(180deg,#fbf7ef,#fffdf9); }
.reservation-layout-v3 { grid-template-columns:minmax(0,1.25fr) minmax(300px,.68fr); gap:28px; }
.form-card-v3 { min-height:570px; padding:31px 34px 26px; border-radius:28px; border:1px solid rgba(18,74,62,.10); background:rgba(255,255,255,.90); box-shadow:0 24px 65px rgba(5,54,47,.085); backdrop-filter:blur(8px); }
.wizard-topbar { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.wizard-topbar h2 { margin:3px 0 0; font-size:31px; }
.wizard-progress-copy { display:flex; align-items:baseline; gap:2px; color:var(--muted); font-size:10px; }
.wizard-progress-copy [data-step-current] { color:var(--forest); font-family:'Fraunces'; font-size:24px; font-weight:700; }
.wizard-progress { height:4px; margin:20px 0 26px; overflow:hidden; border-radius:999px; background:#e9eee9; }
.wizard-progress span { display:block; width:20%; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--v3-teal),var(--v3-lime)); transition:width .38s cubic-bezier(.2,.75,.2,1); }
.js-ready .wizard-step { display:none; }
.js-ready .wizard-step.is-active { display:block; animation:wizardIn .36s ease both; }
@keyframes wizardIn { from{opacity:0;transform:translateX(16px)} to{opacity:1;transform:none} }
.wizard-step { min-height:310px; }
.wizard-step-head { display:flex; align-items:center; gap:13px; margin-bottom:18px; }
.wizard-step-head > span { width:40px; height:40px; flex:0 0 40px; display:grid; place-items:center; border-radius:13px; background:linear-gradient(145deg,#edf2e8,#f7f4e8); border:1px solid rgba(25,91,75,.08); color:var(--forest); font-size:9px; font-weight:800; }
.wizard-step-head small { color:var(--emerald); font-size:8px; font-weight:800; letter-spacing:.15em; }
.wizard-step-head h3 { margin:0; font-size:25px; }
.form-card-v3 label { margin:9px 0; font-size:11px; }
.form-card-v3 input,.form-card-v3 select,.form-card-v3 textarea { min-height:46px; padding:11px 13px; border-radius:12px; background:#fffdfa; }
.form-card-v3 textarea { min-height:102px; resize:vertical; }
.form-grid-balanced { gap:13px; align-items:start; }
.form-grid-balanced > * { min-width:0; }
.field-readonly { display:flex; flex-direction:column; justify-content:center; min-height:74px; margin:9px 0; padding:11px 13px; border:1px solid #dbe3dd; border-radius:12px; background:#f5f3eb; }
.field-readonly span { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.field-readonly strong { margin-top:3px; font-size:12px; }
.selected-departure-banner { display:grid; grid-template-columns:auto 1fr; gap:2px 14px; margin-bottom:14px; padding:12px 14px; border-radius:14px; background:linear-gradient(110deg,#edf4eb,#f8f4e8); border:1px solid rgba(22,103,84,.09); }
.selected-departure-banner > span { grid-row:1/3; align-self:center; padding:7px 9px; border-radius:9px; background:var(--forest); color:#fff; font-size:8px; text-transform:uppercase; letter-spacing:.08em; }
.selected-departure-banner strong { font-size:12px; }
.selected-departure-banner small { color:var(--muted); font-size:9px; }
.compact-dependency { margin:0 0 22px; padding:13px 15px; }
.compact-dependency h3 { margin:1px 0 2px; font-size:17px; }
.compact-dependency p { margin:0; font-size:10px; }
.premium-summary { margin:14px 0 0; border-radius:15px; background:linear-gradient(120deg,#f4f6ef,#faf6ec); }
.review-card { display:grid; grid-template-columns:45px 1fr; gap:13px; padding:16px; border-radius:16px; background:linear-gradient(130deg,#eff5ef,#faf5e8); border:1px solid rgba(20,87,72,.09); }
.review-icon { width:45px; height:45px; display:grid; place-items:center; border-radius:50%; background:var(--forest); color:#fff; }
.review-card p { margin:4px 0 0; color:var(--muted); font-size:11px; }
.check-field-premium { flex-direction:row !important; align-items:flex-start; gap:10px !important; margin-top:18px !important; padding:13px; border-radius:13px; background:#faf8f1; }
.check-field-premium input { width:18px !important; min-height:18px !important; height:18px; flex:0 0 18px; margin-top:1px; }
.wizard-actions { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; margin-top:24px; padding-top:19px; border-top:1px solid var(--line); }
.wizard-actions .btn { min-height:43px; border-radius:13px; padding:10px 15px; }
.btn-soft { border:1px solid var(--line); background:#f5f3ec; color:var(--ink); }
.wizard-dots { display:flex; justify-content:center; gap:6px; }
.wizard-dots i { width:6px; height:6px; border-radius:50%; background:#d5dcd6; transition:.25s; }
.wizard-dots i.active { width:20px; border-radius:99px; background:var(--emerald); }
.wizard-submit { display:none; }
.wizard-form.is-last-step .wizard-next { display:none; }
.wizard-form.is-last-step .wizard-submit { display:inline-flex; }
.wizard-form.is-first-step .wizard-prev { visibility:hidden; }
.wizard-error { margin:0 0 16px; }
.order-summary-v3 { padding:18px; border-radius:28px; background:linear-gradient(180deg,#fff,#fbf8f0); box-shadow:0 25px 65px rgba(5,54,47,.10); }
.summary-image-shell { position:relative; height:250px; margin-bottom:20px; overflow:hidden; border-radius:21px; background:#e8eee9; }
.summary-image-shell img { width:100%; height:100%; object-fit:cover; }
.summary-image-shell > span { position:absolute; left:14px; bottom:14px; padding:7px 9px; border-radius:999px; color:#fff; background:rgba(3,44,39,.76); backdrop-filter:blur(8px); font-size:8px; font-weight:800; letter-spacing:.1em; }
.summary-image-shell.experience-slug-pasadia-papayal-playa img { object-position:center 58%; }
.summary-image-shell.experience-slug-avistamiento-ballenas-tumaco img { object-position:center 45%; }
.summary-image-shell.experience-slug-observacion-aves img { object-position:center 33%; }
.summary-image-shell.experience-slug-pesca-artesanal img { object-position:center 42%; }
.order-summary-v3 h2 { font-size:28px; }
.summary-trust { display:grid; gap:9px; margin-top:17px; padding-top:15px; border-top:1px solid var(--line); }
.summary-trust > div { display:grid; grid-template-columns:32px 1fr; gap:9px; align-items:center; }
.summary-trust > div > span { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:#edf4eb; color:var(--forest); }
.summary-trust p,.summary-trust strong,.summary-trust small { display:block; margin:0; }
.summary-trust strong { font-size:10px; }
.summary-trust small { color:var(--muted); font-size:8px; }

/* Galería más resiliente */
.gallery-grid figure { box-shadow:0 15px 40px rgba(5,55,48,.07); }
.gallery-grid img { background:linear-gradient(135deg,#edf0e9,#f5efe4); }

/* Footer */
.site-footer { position:relative; overflow:hidden; background:linear-gradient(150deg,#052f2b,#032622); }
.site-footer::before { content:''; position:absolute; width:520px; height:520px; right:-290px; bottom:-330px; border:1px solid rgba(216,181,106,.10); border-radius:50%; box-shadow:0 0 0 55px rgba(216,181,106,.025),0 0 0 110px rgba(216,181,106,.015); }

/* Hover magnético solo con puntero fino */
@media (pointer:fine) {
  .magnetic { transition:transform .18s ease, box-shadow .2s, background .2s; }
}

/* Responsive V3 */
@media (max-width:1120px) {
  .home-grid-v3 { grid-template-columns:1fr; }
  .departures-panel-v3 { position:relative; top:auto; }
  .hero-content-v3 { grid-template-columns:1fr .54fr; gap:35px; }
  .story-cards-v3 { grid-template-columns:repeat(3,1fr); grid-template-rows:1fr; }
  .story-cards-v3 a:first-child { grid-row:auto; min-height:370px; }
  .story-cards-v3 a:not(:first-child){ min-height:370px; }
}

@media (max-width:780px) {
  body { font-size:14px; }
  .site-header { padding-top:10px; }
  .header-inner { min-height:64px; border-radius:20px; }
  .brand-mark { width:47px; height:47px; flex-basis:47px; }
  .brand-copy strong { font-size:13px; }
  .brand-copy b { margin-top:4px; font-size:10px; }

  .hero-v3 { min-height:790px; }
  .hero-v3 .hero-bg { object-position:58% center; transform:scale(1.07); }
  .hero-v3 .hero-overlay { background:linear-gradient(180deg,rgba(3,37,34,.33) 0%,rgba(3,37,34,.18) 26%,rgba(3,37,34,.91) 71%,rgba(3,29,27,.98) 100%); }
  .hero-content-v3 { min-height:790px; display:flex; flex-direction:column; justify-content:flex-end; gap:18px; padding-top:115px; padding-bottom:78px; }
  .hero-v3 .hero-copy { width:100%; }
  .hero-v3 h1 { font-size:clamp(48px,13vw,66px); line-height:.91; }
  .hero-v3 h1 em { margin-top:5px; font-size:.68em; }
  .hero-v3 .hero-copy > p { font-size:14px; line-height:1.55; }
  .hero-v3 .hero-actions { margin-top:22px; }
  .hero-signals { margin-top:23px; padding-top:15px; }
  .hero-signals > div { min-width:0; flex:1; margin-right:13px; padding-right:13px; }
  .hero-signals strong { font-size:19px; }
  .hero-signals span { font-size:7px; }
  .season-card-v3 { display:none; }
  .hero-bottom-ribbon { bottom:25px; font-size:7px; gap:8px; max-width:calc(100% - 30px); overflow:hidden; }
  .hero-wave-v3 { bottom:-74px; height:119px; }

  .experiences-section-v3 { padding-top:72px; }
  .section-intro { font-size:12px; }
  .experience-scroller { scroll-padding-left:0; }
  .experience-card-v3 { min-width:78vw; }
  .experience-card-v3 .experience-card-media { height:215px; }
  .experience-card-v3 h3 { min-height:auto; font-size:24px; }
  .experience-card-v3 p { min-height:auto; }

  .departure-meta-line { font-size:8px; }
  .departure-explainer { grid-template-columns:1fr; }

  .impact-section-v3 { padding:64px 0; }
  .impact-photo-strip { width:80vw; right:-40%; opacity:.05; }
  .story-cards-v3 { display:flex; overflow-x:auto; gap:12px; }
  .story-cards-v3 a,.story-cards-v3 a:first-child,.story-cards-v3 a:not(:first-child) { min-width:78vw; min-height:340px; }

  .cta-card-v3 { padding:28px 24px; }

  .reservation-hero-v3 { padding-bottom:52px; }
  .reservation-hero-inner { display:block; }
  .hero-mini-fact { display:none; }
  .reservation-layout-v3 { grid-template-columns:1fr; gap:18px; }
  .form-card-v3 { order:1; min-height:0; padding:23px 19px 20px; border-radius:23px; }
  .order-summary-v3 { order:0; position:relative; top:auto; display:grid; grid-template-columns:112px 1fr; column-gap:15px; padding:12px; border-radius:20px; }
  .summary-image-shell { grid-row:1/6; height:145px; margin:0; border-radius:15px; }
  .order-summary-v3 h2 { margin:5px 0 3px; font-size:21px; }
  .order-summary-v3 .summary-note { margin:0 0 5px; font-size:9px; }
  .order-summary-v3 .summary-row { padding:5px 0; font-size:9px; }
  .order-summary-v3 .summary-total { margin-top:3px; padding-top:6px; }
  .order-summary-v3 .summary-total strong { font-size:16px; }
  .summary-trust { display:none; }
  .wizard-topbar h2 { font-size:26px; }
  .wizard-step { min-height:292px; }
  .wizard-step-head h3 { font-size:22px; }
  .form-grid-balanced { grid-template-columns:1fr 1fr; gap:9px; }
  .form-card-v3 input,.form-card-v3 select,.form-card-v3 textarea { min-height:45px; padding:10px 11px; font-size:13px; }
  .form-card-v3 textarea { min-height:95px; }
  .wizard-actions { grid-template-columns:auto 1fr auto; gap:7px; }
  .wizard-actions .btn { padding:9px 11px; font-size:10px; }
  .compact-dependency { grid-template-columns:35px 1fr; }

  .page-hero h1 { font-size:clamp(44px,11vw,58px); }
  .page-hero p { font-size:13px; }
}

@media (max-width:520px) {
  .container { width:calc(100% - 22px); }
  .brand-copy strong { font-size:12px; }
  .brand-copy b { font-size:9px; }
  .menu-button { width:41px; height:41px; }
  .hero-v3 { min-height:770px; }
  .hero-v3 h1 { font-size:47px; }
  .hero-v3 .hero-kicker { font-size:8px; letter-spacing:.16em; }
  .hero-v3 .btn { min-height:48px; }
  .hero-signals > div { margin-right:10px; padding-right:10px; }

  .experience-card-v3 { min-width:83vw; }
  .experience-card-v3 .experience-card-media { height:205px; }
  .departures-panel-v3 { padding:17px; border-radius:23px; }
  .departure-head { grid-template-columns:36px 1fr auto; }
  .departure-icon { width:35px; height:35px; }
  .departure-copy h4 { font-size:11px; }
  .departure-copy p { font-size:9px; }
  .departure-foot { align-items:flex-start; }
  .departure-foot .btn-small { flex:0 0 auto; }
  .departure-meta-line { flex-direction:column; gap:2px; }

  .impact-stats { grid-template-columns:1fr 1fr; gap:9px; }
  .impact-stats > div { min-height:110px; padding:12px; }
  .impact-stats strong { font-size:24px; }
  .impact-stats small { display:block; font-size:8px; }

  .reservation-hero-v3 { padding-top:132px; }
  .reservation-hero-inner h1 { font-size:41px; }
  .order-summary-v3 { grid-template-columns:96px 1fr; }
  .summary-image-shell { height:130px; }
  .form-card-v3 { padding:20px 15px 18px; }
  .wizard-progress { margin:16px 0 20px; }
  .wizard-step { min-height:315px; }
  .wizard-step-head { margin-bottom:13px; }
  .form-grid-balanced { grid-template-columns:1fr; gap:2px; }
  .selected-departure-banner { grid-template-columns:1fr; }
  .selected-departure-banner > span { grid-row:auto; width:max-content; }
  .premium-summary { grid-template-columns:1fr 1fr; }
  .wizard-actions { position:sticky; bottom:8px; z-index:5; margin:18px -4px 0; padding:10px; border:1px solid rgba(20,72,61,.10); border-radius:16px; background:rgba(255,253,248,.94); backdrop-filter:blur(13px); box-shadow:0 12px 35px rgba(6,45,40,.12); }
  .wizard-dots { gap:4px; }
  .wizard-dots i { width:5px; height:5px; }
  .wizard-dots i.active { width:14px; }
  .wizard-actions .btn { min-width:82px; }

  .mobile-menu { width:92vw; padding:18px; border-radius:26px 0 0 26px; }
  .mobile-menu nav a { font-size:20px; padding:12px 2px; }
}

/* ========================================================================== 
   ASOPAPAYAL PLAYA · V4 — sistema visual vivo, editorial y responsivo
   ========================================================================== */
:root{
  --v4-forest:#063b34;
  --v4-forest-2:#032f2a;
  --v4-water:#177a76;
  --v4-water-soft:#dcefed;
  --v4-moss:#829a55;
  --v4-sand:#e7d6aa;
  --v4-gold:#d8b86f;
  --v4-coral:#c4785c;
  --v4-ivory:#fffdf7;
  --v4-paper:#f8f4e9;
  --v4-ink:#143b35;
  --v4-muted:#60746f;
  --v4-line:rgba(9,69,61,.13);
  --v4-shadow:0 24px 70px rgba(6,55,49,.12);
  --v4-shadow-soft:0 14px 42px rgba(6,55,49,.08);
}
.ui-icon{display:inline-block;vertical-align:middle;flex:0 0 auto}
.btn-icon{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.icon-back{transform:rotate(180deg)}

/* Navegación de marca */
.site-header-v4{padding-top:16px;pointer-events:none}
.header-inner-v4{pointer-events:auto;min-height:72px;padding:8px 10px 8px 13px;border-radius:24px;background:linear-gradient(120deg,rgba(3,47,42,.82),rgba(4,61,54,.58));border:1px solid rgba(255,255,255,.14);box-shadow:0 20px 60px rgba(0,0,0,.16);backdrop-filter:blur(24px) saturate(140%)}
.site-header.scrolled .header-inner-v4{background:rgba(255,253,247,.94);border-color:rgba(4,62,55,.1);box-shadow:0 16px 45px rgba(8,55,49,.11)}
.brand-v4{min-width:178px}
.brand-mark-v4{width:47px;height:47px;display:grid;place-items:center}
.brand-mark-v4 img{width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 7px 10px rgba(0,0,0,.12))}
.desktop-nav-v4{display:flex;align-items:center;justify-content:center;gap:4px;padding:5px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);border-radius:17px}
.site-header.scrolled .desktop-nav-v4{background:rgba(7,72,63,.035);border-color:rgba(7,72,63,.06)}
.desktop-nav-v4>a,.nav-cluster-button{position:relative;display:flex;align-items:center;gap:6px;min-height:38px;padding:0 11px;border-radius:12px;border:0;background:transparent;color:rgba(255,255,255,.81);font:600 11px/1 'DM Sans',sans-serif;letter-spacing:.01em;white-space:nowrap;transition:.25s ease;cursor:pointer}
.site-header.scrolled .desktop-nav-v4>a,.site-header.scrolled .nav-cluster-button{color:#315a53}
.desktop-nav-v4>a:hover,.desktop-nav-v4>a.active,.nav-cluster:hover>.nav-cluster-button{color:#fff;background:rgba(255,255,255,.12)}
.site-header.scrolled .desktop-nav-v4>a:hover,.site-header.scrolled .desktop-nav-v4>a.active,.site-header.scrolled .nav-cluster:hover>.nav-cluster-button{color:var(--v4-forest);background:#fff;box-shadow:0 6px 20px rgba(6,55,49,.08)}
.desktop-nav-v4>a.active::after{content:"";position:absolute;left:13px;right:13px;bottom:4px;height:2px;border-radius:10px;background:var(--v4-gold)}
.nav-cluster{position:relative}
.nav-cluster-panel{position:absolute;top:calc(100% + 14px);left:50%;width:310px;padding:9px;transform:translate(-50%,8px);opacity:0;visibility:hidden;border-radius:20px;background:rgba(255,253,247,.98);border:1px solid rgba(6,55,49,.08);box-shadow:0 25px 70px rgba(3,46,41,.18);transition:.22s ease}
.nav-cluster:hover .nav-cluster-panel,.nav-cluster.open .nav-cluster-panel{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nav-cluster-panel::before{content:"";position:absolute;top:-7px;left:50%;width:14px;height:14px;background:#fffdf7;transform:translateX(-50%) rotate(45deg);border-left:1px solid rgba(6,55,49,.08);border-top:1px solid rgba(6,55,49,.08)}
.nav-cluster-panel a{position:relative;z-index:1;display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:center;padding:10px;border-radius:14px;color:var(--v4-ink);transition:.2s ease}
.nav-cluster-panel a:hover{background:#f1f6ef;transform:translateX(2px)}
.nav-panel-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#e8f3ee,#f7f1df);color:var(--v4-forest)}
.nav-cluster-panel strong,.nav-cluster-panel small{display:block}.nav-cluster-panel strong{font-size:12px}.nav-cluster-panel small{margin-top:2px;color:#78908a;font-size:10px}
.header-actions{display:flex;align-items:center;gap:7px}
.reservation-lookup-link{height:42px;display:flex;align-items:center;gap:6px;padding:0 11px;border-radius:13px;color:rgba(255,255,255,.83);font-size:11px;font-weight:700;transition:.2s ease}
.reservation-lookup-link:hover,.reservation-lookup-link.active{background:rgba(255,255,255,.1);color:#fff}
.site-header.scrolled .reservation-lookup-link{color:#315a53}.site-header.scrolled .reservation-lookup-link:hover{background:#edf4ef;color:var(--v4-forest)}
.whatsapp-button{min-height:42px;padding:0 14px;background:linear-gradient(135deg,#207f69,#126758);box-shadow:0 10px 30px rgba(7,88,74,.22)}

/* Menú móvil: no es una lista genérica */
.mobile-menu-v4{background:radial-gradient(circle at 90% 8%,rgba(216,184,111,.15),transparent 24%),linear-gradient(165deg,#fffdf7,#f1f6ef);border-left:1px solid rgba(6,55,49,.08)}
.mobile-nav-grid{display:grid!important;grid-template-columns:1fr 1fr;gap:9px!important;margin-top:16px}
.mobile-nav-grid a{min-height:82px!important;display:flex!important;flex-direction:column;align-items:flex-start!important;justify-content:space-between;padding:13px!important;border-radius:16px!important;border:1px solid rgba(6,55,49,.08)!important;background:rgba(255,255,255,.7)!important;color:var(--v4-ink)!important;box-shadow:0 8px 24px rgba(6,55,49,.05)}
.mobile-nav-grid a>span{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(145deg,#e2f0e9,#f5edd9);color:var(--v4-forest)}
.mobile-nav-grid a strong{font-size:12px}.mobile-menu-wa{display:flex!important;align-items:center;justify-content:center;gap:9px}

/* Salidas: mínimo y cupo máximo se leen distinto */
.departure-card-v4{position:relative;overflow:hidden;border:1px solid rgba(6,55,49,.1);background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(247,245,237,.92));box-shadow:var(--v4-shadow-soft);border-radius:23px;padding:17px;transition:transform .28s ease,box-shadow .28s ease}
.departure-card-v4:hover{transform:translateY(-3px);box-shadow:var(--v4-shadow)}
.departure-accent{position:absolute;right:-45px;top:-55px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(23,122,118,.12),transparent 65%);pointer-events:none}
.departure-card-v4 .departure-head{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center}
.departure-icon-shell{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#e0f0e9,#f5ead2);color:var(--v4-forest)}
.departure-date-kicker{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--v4-water)}
.departure-card-v4 h4{margin:2px 0 1px;font-size:15px;line-height:1.15}.departure-card-v4 .departure-copy p{font-size:10px;color:#748680;margin:0}
.departure-count-v4{text-align:right;min-width:76px}.departure-count-v4 strong{display:block;font:700 27px/1 'Fraunces',serif;color:var(--v4-forest)}.departure-count-v4 small{display:block;margin-top:3px;max-width:74px;font-size:8px;line-height:1.15;color:#778a84}
.minimum-progress-wrap{margin-top:15px;padding:12px;border-radius:16px;background:rgba(228,239,232,.54)}
.minimum-progress-copy{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:9px;color:#61756f}.minimum-progress-copy strong{color:var(--v4-forest);font-size:10px}
.progress-v4{height:7px;border-radius:99px;background:rgba(6,55,49,.09);overflow:hidden}.progress-v4 span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--v4-water),var(--v4-moss),var(--v4-gold));box-shadow:0 0 14px rgba(23,122,118,.22);transition:width .6s ease}
.departure-meta-chips{display:flex;flex-wrap:wrap;gap:7px;margin:11px 0}.departure-meta-chips span{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border-radius:999px;background:#fff;border:1px solid rgba(6,55,49,.08);font-size:8.5px;color:#5f746e}.departure-meta-chips strong{color:var(--v4-forest)}
.departure-foot-v4{align-items:center!important}.status-text{display:inline-flex;align-items:center;gap:5px}.status-text.confirmed{color:#176d5f}.status-text.forming_group{color:#7b704c}

/* Consulta de reserva */
.lookup-hero{background:linear-gradient(125deg,#073d36,#0f6259 66%,#567b58);position:relative;overflow:hidden}.lookup-hero::after{content:"";position:absolute;width:380px;height:380px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-110px;top:-180px;box-shadow:0 0 0 70px rgba(255,255,255,.03),0 0 0 140px rgba(255,255,255,.02)}
.lookup-hero-grid{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end}.lookup-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr);gap:22px;align-items:start}
.lookup-card,.lookup-help{border-radius:26px;border:1px solid var(--v4-line);background:rgba(255,255,255,.92);box-shadow:var(--v4-shadow-soft)}.lookup-card{padding:28px;display:grid;grid-template-columns:54px 1fr;gap:10px 17px}.lookup-card>*:nth-child(n+3){grid-column:1/-1}.lookup-icon,.lookup-help-art{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(145deg,#dbeee8,#f2e7ca);color:var(--v4-forest)}
.lookup-card h2{margin:2px 0 6px;font-size:31px}.lookup-card p,.lookup-help p{color:#677d77}.lookup-field{margin-top:10px}.lookup-field>span{display:block;margin-bottom:7px;font-weight:700;font-size:11px}.lookup-field>div{display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid rgba(6,55,49,.13);border-radius:14px;background:#fff}.lookup-field input{border:0!important;box-shadow:none!important;padding-left:0!important}.lookup-help{padding:25px;position:sticky;top:115px}.lookup-help h3{font:600 26px 'Fraunces',serif;margin:14px 0 7px}.lookup-help a{display:inline-flex;align-items:center;gap:5px;margin-top:14px;color:var(--v4-water);font-size:11px;font-weight:700}
.lookup-results{margin-top:45px}.lookup-result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.lookup-result-card{padding:18px;border-radius:20px;background:#fff;border:1px solid var(--v4-line);box-shadow:var(--v4-shadow-soft)}.lookup-result-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.reservation-code{display:inline-flex;align-items:center;gap:5px;font-weight:800;font-size:10px;color:var(--v4-water)}.lookup-result-card h3{font-size:19px;margin:15px 0 10px}.lookup-result-meta{display:flex;flex-wrap:wrap;gap:8px}.lookup-result-meta span{display:flex;align-items:center;gap:4px;font-size:9px;color:#667b75}.lookup-result-card p{font-size:10px;color:#70827d}.status-pill{display:inline-flex;align-items:center;padding:5px 8px;border-radius:99px;font-size:8px;font-weight:800;background:#edf4ef;color:#3f655c}.status-paid,.status-confirmed,.status-completed{background:#dff1e8;color:#176b58}.status-cancelled{background:#f7e6e1;color:#994f40}

/* Formulario guiado: compacto, dos campos por paso y jerarquía móvil */
.reservation-hero-v4{background:linear-gradient(120deg,#073d36,#0e6258 68%,#718c5b)}.reservation-section-v4{position:relative;background:radial-gradient(circle at 10% 8%,rgba(132,154,85,.08),transparent 25%),radial-gradient(circle at 92% 60%,rgba(23,122,118,.07),transparent 24%)}
.reservation-layout-v4{grid-template-columns:minmax(0,1.45fr) minmax(310px,.55fr);gap:24px;align-items:start}.form-card-v4,.order-summary-v4{border:1px solid rgba(6,55,49,.1);box-shadow:var(--v4-shadow);border-radius:28px;background:rgba(255,255,255,.94)}.form-card-v4{padding:27px;min-height:540px}.wizard-topbar-v4{padding-bottom:17px}.wizard-topbar-v4 h2{font-size:30px}.wizard-progress-copy{display:flex;align-items:baseline;gap:4px}.wizard-progress-copy i{font-style:normal;opacity:.35}.wizard-progress-v4{height:5px;background:rgba(6,55,49,.07)}.wizard-progress-v4 span{background:linear-gradient(90deg,var(--v4-water),var(--v4-moss),var(--v4-gold))}.wizard-step{padding-top:25px}.wizard-step-head{margin-bottom:23px}.wizard-step-head>span{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#e4f0e8,#f3ead3);color:var(--v4-forest);font:700 16px 'Fraunces',serif}.wizard-step-head h3{font-size:26px;margin-top:2px}.form-grid-balanced{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.form-card-v4 label{font-size:11px;color:#315b53}.form-card-v4 input,.form-card-v4 select,.form-card-v4 textarea{min-height:47px;border-radius:13px;border:1px solid rgba(6,55,49,.13);background:#fffdf9;font-size:14px;color:var(--v4-ink);transition:border-color .2s,box-shadow .2s,background .2s}.form-card-v4 textarea{min-height:92px}.form-card-v4 input:focus,.form-card-v4 select:focus,.form-card-v4 textarea:focus{outline:0;border-color:rgba(23,122,118,.6);box-shadow:0 0 0 4px rgba(23,122,118,.08);background:#fff}.form-card-v4 label small{display:block;margin-top:6px;font-size:9px;line-height:1.45;color:#7c8e88}.field-card{padding:15px;border-radius:17px;background:#f5f8f3;border:1px solid rgba(6,55,49,.08)}.field-with-icon{display:flex;align-items:center;gap:8px;margin-top:7px;padding-left:11px;border:1px solid rgba(6,55,49,.11);border-radius:13px;background:#fff}.field-with-icon input{border:0!important;box-shadow:none!important;padding-left:0!important;width:100%}
.verified-reservation-card,.selected-departure-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:17px;border-radius:19px;background:linear-gradient(145deg,#eaf5ee,#f7f2e1);border:1px solid rgba(23,122,118,.15)}.verified-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#fff;color:#19735f;box-shadow:0 8px 18px rgba(7,73,62,.08)}.verified-reservation-card span,.selected-departure-card>div:nth-child(2)>span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#688078}.verified-reservation-card strong,.selected-departure-card strong{display:block;margin:3px 0;font-size:14px}.verified-reservation-card small,.selected-departure-card small{font-size:9px;color:#72847e}.selected-date{width:52px;height:58px;border-radius:15px;background:var(--v4-forest);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.selected-date>span{font:700 25px/1 'Fraunces',serif}.selected-date small{font-size:8px;color:#d9c985;margin-top:3px}.suggested-departures{margin-top:17px;border:1px solid rgba(6,55,49,.09);border-radius:18px;overflow:hidden}.suggested-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#f1f6f1;font-size:9px;color:#627771}.suggested-head>span{display:flex;align-items:center;gap:5px;font-weight:700}.suggested-departure-list a{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-top:1px solid rgba(6,55,49,.07);color:var(--v4-ink);transition:.2s}.suggested-departure-list a:hover{background:#fffaf0}.suggested-date{height:42px;border-radius:12px;background:#e8f1e8;display:flex;flex-direction:column;align-items:center;justify-content:center;font:700 18px/1 'Fraunces',serif;color:var(--v4-forest)}.suggested-date small{font:700 7px 'DM Sans';margin-top:2px}.suggested-departure-list strong,.suggested-departure-list small{display:block}.suggested-departure-list strong{font-size:10px}.suggested-departure-list small{font-size:8px;color:#768882;margin-top:2px}
.group-rule-note,.booking-rule-card{display:flex;gap:10px;align-items:flex-start;margin-top:16px;padding:12px 14px;border-radius:16px;background:linear-gradient(135deg,rgba(220,239,235,.65),rgba(246,239,216,.6));color:#496760}.group-rule-note p,.booking-rule-card p{margin:0;font-size:10px;line-height:1.5}.group-rule-note strong,.booking-rule-card strong{color:var(--v4-forest)}.review-card-v4{border-radius:18px;background:#f4f7f1}.review-icon{display:grid;place-items:center}.wizard-actions-v4{margin-top:27px;padding-top:17px;border-top:1px solid rgba(6,55,49,.08)}.wizard-dots{display:flex;gap:5px}.wizard-dots i{width:6px;height:6px;border-radius:99px;background:rgba(6,55,49,.13);transition:.2s}.wizard-dots i.active{width:20px;background:var(--v4-water)}
.order-summary-v4{padding:0;overflow:hidden;position:sticky;top:115px}.order-summary-v4 .summary-image-shell{height:225px;border-radius:0}.summary-body-v4{padding:20px}.summary-body-v4 h2{font-size:27px;margin:0 0 13px}.summary-feature{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid rgba(6,55,49,.07);font-size:10px;color:#5d736d}.summary-feature .ui-icon{color:var(--v4-water)}.summary-trust-v4>div{align-items:flex-start}.summary-trust-v4 .ui-icon{color:var(--v4-water);margin-top:2px}

/* Estado, avisos 48/24h y decisiones */
.reservation-status-hero{background:linear-gradient(120deg,#073d36,#0c655b 70%,#81975e)}.reservation-status-hero-grid{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end}.reservation-status-grid-v4{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:22px}.reservation-main-card,.payment-card-v4{border-radius:27px;border:1px solid var(--v4-line);box-shadow:var(--v4-shadow-soft);background:#fff}.reservation-title-row-v4 h2{font-size:30px}.notice-row{display:flex;align-items:flex-start;gap:9px}.notice-row p{margin:0 0 4px}.linked-reservation-v4{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:10px}.linked-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#e9f2eb;color:var(--v4-forest)}.linked-reservation-v4 a{display:inline-flex;align-items:center;gap:4px}.info-list-v4{grid-template-columns:1fr 1fr}.info-list-v4>div{position:relative;padding-left:28px}.info-list-v4>div>.ui-icon{position:absolute;left:0;top:50%;transform:translateY(-50%);color:var(--v4-water)}
.group-status-card{margin-top:18px;padding:18px;border-radius:20px;border:1px solid rgba(6,55,49,.09);background:linear-gradient(145deg,#f1f7f2,#fffaf0)}.group-status-confirmed{background:linear-gradient(145deg,#e7f5ee,#f7f3df)}.group-status-head{display:flex;gap:12px;align-items:flex-start}.group-status-icon{width:45px;height:45px;border-radius:14px;display:grid;place-items:center;background:#fff;color:var(--v4-water);box-shadow:0 8px 20px rgba(6,55,49,.08)}.group-status-head span{font-size:8px;font-weight:800;letter-spacing:.13em;color:#6e827b}.group-status-head h3{margin:2px 0 2px;font-size:22px}.group-status-head p{margin:0;font-size:9px;color:#6d817b}.group-status-card .progress{margin-top:13px}.group-status-foot{display:flex;justify-content:space-between;gap:10px;margin-top:9px;font-size:8.5px;color:#6d817b}.group-status-foot strong{display:flex;align-items:center;gap:4px;color:var(--v4-forest)}
.decision-card{margin-top:18px;padding:18px;border-radius:21px;border:1px solid rgba(6,55,49,.1);background:#fff}.decision-warning{background:linear-gradient(145deg,#fff9e8,#f7f3df);border-color:rgba(179,139,56,.18)}.decision-mandatory{background:linear-gradient(145deg,#fff0eb,#fff9f2);border-color:rgba(180,82,59,.18)}.payment-decision{background:linear-gradient(145deg,#eaf6ef,#f7f5e6)}.decision-heading{display:grid;grid-template-columns:44px 1fr;gap:11px}.decision-heading>div:first-child{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.8);color:var(--v4-forest)}.decision-heading span{font-size:8px;font-weight:800;letter-spacing:.11em;color:#7d7255}.decision-heading h3{margin:2px 0 5px;font-size:21px}.decision-heading p{margin:0;font-size:9.5px;line-height:1.5;color:#687b75}.decision-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.decision-actions-grid form{display:contents}.decision-option{width:100%;min-height:72px;display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:center;text-align:left;padding:11px;border-radius:15px;border:1px solid rgba(6,55,49,.1);background:rgba(255,255,255,.75);color:var(--v4-ink);cursor:pointer;transition:.2s}.decision-option:hover{background:#fff;transform:translateY(-2px);box-shadow:0 10px 25px rgba(6,55,49,.08)}.decision-option.emphasized{background:var(--v4-forest);color:#fff}.decision-option>span strong,.decision-option>span small{display:block}.decision-option>span strong{font-size:10px}.decision-option>span small{margin-top:3px;font-size:8px;opacity:.68}.reprogram-panel{margin-top:15px;padding:17px;border-radius:18px;background:#f1f6f2;border:1px solid rgba(6,55,49,.09)}.reprogram-panel[hidden]{display:none}.reprogram-panel h3{margin:2px 0 4px}.reprogram-panel p{font-size:9px;color:#6d817b}.reprogram-actions{display:flex;gap:8px;margin-top:10px}.reservation-help-row{display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;margin-top:20px;padding-top:16px;border-top:1px solid rgba(6,55,49,.08)}.reservation-help-row p{margin:1px 0 0;font-size:9px;color:#758680}.reservation-help-row .text-link{display:inline-flex;align-items:center;gap:4px;font-size:9px}
.payment-card-head{display:flex;align-items:center;gap:10px}.payment-card-icon,.payment-waiting-icon{width:45px;height:45px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#e1f1ea,#f4ead0);color:var(--v4-forest)}.payment-card-head h2{margin:2px 0;font-size:26px}.payment-waiting{text-align:left}.payment-waiting h2{font-size:27px;margin:13px 0 8px}.payment-waiting p{font-size:10px;color:#687d76;line-height:1.6}.file-field input{padding:10px!important}.addons-section-v4{background:linear-gradient(180deg,#f4f7f1,#fffaf2)}.addon-card-v4{overflow:hidden;border-radius:20px}.addon-card-media{position:relative}.addon-card-media>span{position:absolute;right:11px;bottom:-18px;width:38px;height:38px;border-radius:12px;background:#fff;display:grid;place-items:center;color:var(--v4-forest);box-shadow:0 8px 20px rgba(6,55,49,.15)}

/* Microinteracciones de foco y profundidad */
.experience-card,.story-cards-v3 a,.addon-card-v4,.cta-card-v3{transform-style:preserve-3d}.experience-card img,.story-cards-v3 img,.addon-card-v4 img{transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .45s ease}.experience-card:hover img,.story-cards-v3 a:hover img,.addon-card-v4:hover img{transform:scale(1.045);filter:saturate(1.03) contrast(1.02)}

@media(max-width:1180px){
  .desktop-nav-v4>a,.nav-cluster-button{padding:0 8px;font-size:10px}.desktop-nav-v4{gap:2px}.brand-copy small{display:none}.reservation-lookup-link span{display:none}.reservation-lookup-link{width:42px;justify-content:center}
}
@media(max-width:980px){.desktop-nav-v4,.desktop-only{display:none!important}.menu-button{display:flex}.header-inner-v4{min-height:64px;border-radius:20px}.brand-mark-v4{width:42px;height:42px}.brand-mark-v4 img{width:41px;height:41px}}
@media(max-width:780px){
  body{font-size:15px}.site-header-v4{padding-top:10px}.header-inner-v4{width:calc(100% - 18px);padding:7px 8px 7px 10px}.brand-copy strong{font-size:13px}.brand-copy b{font-size:9px}.menu-button{width:43px;height:43px;border-radius:13px}
  .lookup-hero-grid,.reservation-status-hero-grid{grid-template-columns:1fr}.lookup-hero .hero-mini-fact,.reservation-status-hero .hero-mini-fact{display:none}.lookup-layout,.reservation-layout-v4,.reservation-status-grid-v4{grid-template-columns:1fr}.lookup-help,.order-summary-v4{position:relative;top:auto}.lookup-help{order:-1}.lookup-result-grid{grid-template-columns:1fr}.lookup-card{grid-template-columns:44px 1fr;padding:20px}.lookup-icon{width:44px;height:44px;border-radius:14px}.lookup-card h2{font-size:25px}
  .form-card-v4{padding:18px;min-height:510px;border-radius:22px}.wizard-topbar-v4 h2{font-size:25px}.wizard-step{padding-top:19px}.wizard-step-head{margin-bottom:18px}.wizard-step-head h3{font-size:23px}.wizard-step-head>span{width:39px;height:39px;border-radius:12px}.form-grid-balanced{grid-template-columns:1fr;gap:11px}.form-card-v4 input,.form-card-v4 select{min-height:51px;font-size:16px}.form-card-v4 textarea{font-size:16px}.wizard-actions-v4{display:grid;grid-template-columns:auto 1fr auto;gap:7px}.wizard-dots{justify-content:center}.wizard-actions-v4 .btn{min-height:45px;padding:0 13px}.wizard-actions-v4 .wizard-submit{grid-column:3}.order-summary-v4{display:grid;grid-template-columns:122px 1fr;border-radius:20px}.order-summary-v4 .summary-image-shell{height:100%;min-height:190px}.summary-body-v4{padding:15px}.summary-body-v4 h2{font-size:21px}.summary-trust-v4{display:none}
  .info-list-v4{grid-template-columns:1fr}.decision-actions-grid{grid-template-columns:1fr}.group-status-foot{flex-direction:column}.reservation-help-row{grid-template-columns:26px 1fr}.reservation-help-row .text-link{grid-column:2}.reprogram-actions{display:grid}.linked-reservation-v4{grid-template-columns:36px 1fr}.linked-reservation-v4 a{grid-column:2}.departure-card-v4 .departure-head{grid-template-columns:40px 1fr auto}.departure-count-v4{min-width:64px}.departure-count-v4 strong{font-size:24px}.departure-meta-chips{gap:5px}
}
@media(max-width:520px){
  .mobile-menu-v4{width:96vw;padding:17px}.mobile-nav-grid a{min-height:76px!important;padding:11px!important}.mobile-menu-intro p{font-size:11px}.page-hero h1{font-size:42px}.reservation-hero-v4 h1{font-size:40px}.form-card-v4{padding:15px;border-radius:19px}.wizard-topbar-v4{align-items:flex-start}.wizard-progress-copy{font-size:12px}.wizard-step-head{gap:9px}.wizard-step-head h3{font-size:21px}.verified-reservation-card,.selected-departure-card{grid-template-columns:42px 1fr}.verified-reservation-card>.ui-icon,.selected-departure-card>.ui-icon{display:none}.suggested-head{align-items:flex-start;gap:5px;flex-direction:column}.order-summary-v4{grid-template-columns:100px 1fr}.summary-body-v4{padding:12px}.summary-body-v4 h2{font-size:18px}.summary-row,.summary-total{font-size:9px}.departure-card-v4{padding:14px;border-radius:19px}.departure-card-v4 .departure-copy h4{font-size:13px}.departure-count-v4 small{display:none}.departure-meta-chips span{font-size:8px}.status-text{font-size:8.5px}.departure-foot-v4 .btn{min-width:86px}.lookup-card{padding:16px}.lookup-card h2{font-size:22px}.decision-card{padding:14px}.decision-heading{grid-template-columns:38px 1fr}.decision-heading>div:first-child{width:38px;height:38px}.decision-heading h3{font-size:19px}.group-status-card{padding:14px}.group-status-head h3{font-size:19px}
}
.hero-signals-v4>div{position:relative;padding-left:26px}.hero-signals-v4>div>.ui-icon{position:absolute;left:0;top:1px;color:#d9ca86;opacity:.9}.calendar-link{display:flex!important;align-items:center;justify-content:center;gap:7px}.departure-explainer>div>span{display:grid!important;place-items:center;color:var(--v4-forest)}
.deadline-guide{margin:18px 0 28px;padding:18px;border-radius:22px;border:1px solid rgba(6,55,49,.09);background:linear-gradient(145deg,#eef6f0,#fff8e9);box-shadow:0 12px 34px rgba(6,55,49,.055)}.deadline-guide-title{display:flex;gap:10px;align-items:center}.deadline-guide-title>.ui-icon{color:var(--v4-water)}.deadline-guide-title h3{margin:2px 0;font-size:21px}.deadline-guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px}.deadline-guide-grid>div{padding:12px;border-radius:15px;background:rgba(255,255,255,.72);border:1px solid rgba(6,55,49,.06)}.deadline-guide-grid strong,.deadline-guide-grid span{display:block}.deadline-guide-grid strong{font:700 18px 'Fraunces',serif;color:var(--v4-forest)}.deadline-guide-grid span{margin:2px 0 5px;font-size:8px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--v4-water)}.deadline-guide-grid p{margin:0;font-size:9px;line-height:1.5;color:#687d77}@media(max-width:780px){.deadline-guide-grid{grid-template-columns:1fr}.deadline-guide{padding:14px}.deadline-guide-title h3{font-size:18px}}
.quick-facts-v4>div{position:relative;padding-top:38px}.quick-facts-v4>div>.ui-icon{position:absolute;top:13px;left:14px;color:var(--v4-water)}.season-note{display:flex;align-items:center;gap:6px}.check-list li{display:flex;align-items:flex-start;gap:7px}.check-list li .ui-icon{margin-top:2px;color:var(--v4-water)}.notice{display:flex;gap:8px;align-items:flex-start}.booking-box-v4{position:sticky;top:115px;overflow:hidden}.booking-box-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,#e4f1ea,#f5ead1);color:var(--v4-forest);margin-bottom:14px}.subtle-action{display:flex!important;align-items:center;justify-content:center;gap:5px}.mini-meta span{display:flex;align-items:center;gap:5px}@media(max-width:780px){.booking-box-v4{position:relative;top:auto}.quick-facts-v4>div{padding-top:34px}}

/* =========================================================
   V5 · navegación única por dispositivo + validación en campo
   ========================================================= */
.field-validation-wrap{display:flex;flex-direction:column;gap:7px}
.field-validation-message{display:none;margin-top:6px;padding:9px 11px;border-radius:11px;font-size:11px;font-weight:700;line-height:1.45}
.field-validation-message:not(:empty){display:block}
.field-validation-message.is-error{color:#8b3d32;background:#fff0ed;border:1px solid rgba(165,72,58,.18)}
.field-validation-message.is-ok{color:#17664f;background:#edf8f2;border:1px solid rgba(23,102,79,.13)}
.group-fields-wrap{border-radius:17px;transition:background .2s,border-color .2s,box-shadow .2s}
.group-fields-wrap.has-error{padding:10px;margin:-10px;background:rgba(255,240,237,.58);border:1px solid rgba(165,72,58,.16)}
.form-card-v4 input[aria-invalid="true"],.form-card-v4 select[aria-invalid="true"],.form-card-v4 textarea[aria-invalid="true"]{border-color:#b85d50!important;box-shadow:0 0 0 4px rgba(184,93,80,.09)!important;background:#fffafa}
.group-validation-message{grid-column:1/-1;margin-top:8px}

/* Un solo sistema de navegación: barra superior en escritorio,
   botón hamburguesa + panel móvil en tablet/teléfono. */
@media (min-width:1121px){
  .desktop-nav-v4{display:flex!important}
  .desktop-only{display:inline-flex!important}
  .menu-button,.mobile-menu,.mobile-menu-backdrop{display:none!important}
}
@media (max-width:1120px){
  .desktop-nav-v4,.desktop-only{display:none!important}
  .menu-button{display:grid!important}
  .mobile-menu-backdrop{display:block!important;z-index:159!important}
  .mobile-menu-v4{
    display:block!important;
    z-index:160!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    height:100dvh!important;
    width:min(420px,100vw)!important;
    padding:max(18px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom))!important;
    border-radius:0!important;
    border-left:1px solid rgba(6,55,49,.08)!important;
  }
  .mobile-menu-head{position:relative;margin:0;padding:0 0 14px;border-bottom:1px solid rgba(6,55,49,.08)}
}
@media (max-width:520px){
  .mobile-menu-v4{width:100vw!important;padding-left:17px!important;padding-right:17px!important}
  .group-fields-wrap.has-error{padding:8px;margin:-8px}
  .field-validation-message{font-size:10.5px}
}

/* =========================================================
   V6 · corrección definitiva de navegación responsive
   ========================================================= */

/* La zona de acciones debe ocupar el extremo derecho cuando no hay menú de escritorio. */
.header-actions{
  margin-left:auto;
  flex:0 0 auto;
}

/* El logotipo nunca debe recortarse ni forzar el ancho de la barra. */
.brand-v4{
  min-width:0;
  flex:0 1 auto;
  overflow:visible;
}
.brand-mark-v4{
  flex:0 0 47px;
  overflow:visible;
}
.brand-mark-v4 img{
  max-width:none;
}
.brand-copy{
  min-width:0;
}
.brand-copy strong,
.brand-copy b{
  white-space:nowrap;
}

@media (min-width:1121px){
  .site-header-v4{
    padding-top:16px;
  }
  .header-inner-v4{
    justify-content:flex-start;
  }
  .header-actions{
    margin-left:0;
  }
}

@media (max-width:1120px){
  /* En tablet y teléfono solo existe una navegación: encabezado + hamburguesa. */
  .site-header-v4{
    padding-top:0!important;
    inset:0 0 auto 0!important;
  }
  .header-inner-v4{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    min-height:70px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    padding:max(9px,env(safe-area-inset-top)) 16px 9px!important;
    border-radius:0 0 22px 22px!important;
    border-top:0!important;
  }
  .desktop-nav-v4,
  .desktop-only{
    display:none!important;
  }
  .brand-v4{
    min-width:0!important;
    max-width:calc(100% - 68px)!important;
    gap:10px!important;
  }
  .brand-mark-v4{
    width:46px!important;
    height:46px!important;
    flex:0 0 46px!important;
  }
  .brand-mark-v4 img{
    width:46px!important;
    height:46px!important;
  }
  .brand-copy strong{
    font-size:14px!important;
    line-height:1.05!important;
    letter-spacing:.055em!important;
  }
  .brand-copy b{
    margin-top:5px!important;
    font-size:10px!important;
    line-height:1!important;
    letter-spacing:.30em!important;
  }
  .brand-copy small{
    display:none!important;
  }
  .header-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    margin-left:auto!important;
    flex:0 0 auto!important;
  }
  .menu-button{
    display:grid!important;
    place-items:center!important;
    margin:0!important;
    width:46px!important;
    height:46px!important;
    flex:0 0 46px!important;
    padding:11px!important;
    border-radius:14px!important;
  }

  /* El panel lateral arranca realmente en la parte superior de la pantalla. */
  .mobile-menu-v4{
    top:0!important;
    right:0!important;
    bottom:auto!important;
    height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    border-radius:0!important;
    padding:max(16px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom))!important;
    overscroll-behavior:contain;
  }
  .mobile-menu-head{
    position:sticky!important;
    top:0!important;
    z-index:2!important;
    background:linear-gradient(180deg,rgba(255,253,247,.98) 82%,rgba(255,253,247,0));
    padding-bottom:14px!important;
  }
}

@media (max-width:520px){
  .header-inner-v4{
    min-height:66px!important;
    padding:max(8px,env(safe-area-inset-top)) 12px 8px!important;
    border-radius:0 0 18px 18px!important;
  }
  .brand-v4{
    max-width:calc(100% - 58px)!important;
    gap:8px!important;
  }
  .brand-mark-v4{
    width:42px!important;
    height:42px!important;
    flex-basis:42px!important;
  }
  .brand-mark-v4 img{
    width:42px!important;
    height:42px!important;
  }
  .brand-copy strong{
    font-size:12.5px!important;
    letter-spacing:.05em!important;
  }
  .brand-copy b{
    font-size:9px!important;
    letter-spacing:.26em!important;
  }
  .menu-button{
    width:42px!important;
    height:42px!important;
    flex-basis:42px!important;
    border-radius:13px!important;
  }
  .mobile-menu-v4{
    width:100vw!important;
    padding-left:16px!important;
    padding-right:16px!important;
  }
}

/* =========================================================
   V7 · navegación responsive estable y sin duplicados
   Un único menú por dispositivo:
   - >= 901px: navegación horizontal.
   - <= 900px: botón hamburguesa + panel móvil.
   ========================================================= */

/* Escritorio por defecto: tres zonas claras (marca / navegación / acciones). */
.site-header-v4 .header-inner-v4{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  justify-content:initial!important;
  column-gap:14px!important;
}
.site-header-v4 .brand-v4{
  grid-column:1!important;
  min-width:0!important;
  max-width:none!important;
  justify-self:start!important;
}
.site-header-v4 .desktop-nav-v4{
  grid-column:2!important;
  display:flex!important;
  justify-self:center!important;
  min-width:0!important;
  max-width:100%!important;
}
.site-header-v4 .header-actions{
  grid-column:3!important;
  display:flex!important;
  justify-self:end!important;
  align-items:center!important;
  margin-left:0!important;
}
.site-header-v4 .desktop-only{display:inline-flex!important}
.site-header-v4 .menu-button{display:none!important}
.mobile-menu-v4,
.mobile-menu-backdrop{display:none!important}

/* Laptops compactos: conserva la barra horizontal pero reduce ruido visual. */
@media (min-width:901px) and (max-width:1180px){
  .site-header-v4 .header-inner-v4{column-gap:8px!important;padding-inline:10px!important}
  .site-header-v4 .brand-v4{gap:8px!important}
  .site-header-v4 .brand-mark-v4{width:42px!important;height:42px!important;flex-basis:42px!important}
  .site-header-v4 .brand-mark-v4 img{width:42px!important;height:42px!important}
  .site-header-v4 .brand-copy strong{font-size:12px!important}
  .site-header-v4 .brand-copy b{font-size:9px!important;letter-spacing:.24em!important}
  .site-header-v4 .brand-copy small{display:none!important}
  .site-header-v4 .desktop-nav-v4{gap:2px!important;padding:4px!important}
  .site-header-v4 .desktop-nav-v4>a,
  .site-header-v4 .nav-cluster-button{padding-inline:7px!important;font-size:9.5px!important;min-height:36px!important}
  .site-header-v4 .desktop-nav-v4>a>.ui-icon,
  .site-header-v4 .nav-cluster-button>.ui-icon{display:none!important}
  .site-header-v4 .reservation-lookup-link{width:38px!important;height:38px!important;padding:0!important;justify-content:center!important}
  .site-header-v4 .reservation-lookup-link span{display:none!important}
  .site-header-v4 .whatsapp-button{padding:10px 11px!important;font-size:10px!important}
}

/* Teléfono/tablet: solo marca + hamburguesa. */
@media (max-width:900px){
  .site-header-v4{
    inset:0 0 auto 0!important;
    padding:0!important;
  }
  .site-header-v4 .header-inner-v4{
    width:100%!important;
    max-width:none!important;
    min-height:68px!important;
    margin:0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:12px!important;
    padding:max(9px,env(safe-area-inset-top)) 14px 9px!important;
    border-radius:0 0 20px 20px!important;
    border-top:0!important;
  }
  .site-header-v4 .brand-v4{
    grid-column:1!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:visible!important;
    justify-self:start!important;
  }
  .site-header-v4 .brand-mark-v4{
    width:44px!important;
    height:44px!important;
    flex:0 0 44px!important;
  }
  .site-header-v4 .brand-mark-v4 img{
    width:44px!important;
    height:44px!important;
  }
  .site-header-v4 .brand-copy{min-width:0!important}
  .site-header-v4 .brand-copy strong{font-size:13px!important;line-height:1!important;letter-spacing:.05em!important}
  .site-header-v4 .brand-copy b{font-size:9px!important;line-height:1!important;letter-spacing:.26em!important;margin-top:5px!important}
  .site-header-v4 .brand-copy small{display:none!important}

  .site-header-v4 .desktop-nav-v4,
  .site-header-v4 .desktop-only{display:none!important}
  .site-header-v4 .header-actions{
    grid-column:2!important;
    display:flex!important;
    justify-self:end!important;
    align-items:center!important;
    margin:0!important;
    width:auto!important;
  }
  .site-header-v4 .menu-button{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    width:46px!important;
    height:46px!important;
    margin:0!important;
    padding:0!important;
    flex:0 0 46px!important;
    border-radius:14px!important;
  }
  .site-header-v4 .menu-button span{
    width:21px!important;
    margin:2.5px 0!important;
  }

  /* El panel existe solo en modo móvil; cerrado permanece fuera de pantalla. */
  .mobile-menu-backdrop{
    display:block!important;
    position:fixed!important;
    inset:0!important;
    z-index:159!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    background:rgba(1,25,22,.48)!important;
    backdrop-filter:blur(3px)!important;
    transition:opacity .25s ease,visibility .25s ease!important;
  }
  .mobile-menu-backdrop.open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  .mobile-menu-v4{
    display:flex!important;
    flex-direction:column!important;
    position:fixed!important;
    inset:0 0 0 auto!important;
    z-index:160!important;
    width:min(420px,100vw)!important;
    height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    padding:max(16px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom))!important;
    border-radius:0!important;
    overflow-y:auto!important;
    transform:translate3d(102%,0,0)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .22s ease,visibility .22s ease!important;
  }
  .mobile-menu-v4.open{
    transform:translate3d(0,0,0)!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  .mobile-menu-v4 .mobile-menu-head{
    position:relative!important;
    top:auto!important;
    z-index:2!important;
    flex:0 0 auto!important;
    margin:0!important;
    padding:0 0 14px!important;
    background:transparent!important;
    border-bottom:1px solid rgba(6,55,49,.09)!important;
  }
  body.menu-open{overflow:hidden!important}
}

@media (max-width:520px){
  .site-header-v4 .header-inner-v4{
    min-height:64px!important;
    padding:max(8px,env(safe-area-inset-top)) 11px 8px!important;
    border-radius:0 0 17px 17px!important;
  }
  .site-header-v4 .brand-v4{gap:7px!important}
  .site-header-v4 .brand-mark-v4{width:40px!important;height:40px!important;flex-basis:40px!important}
  .site-header-v4 .brand-mark-v4 img{width:40px!important;height:40px!important}
  .site-header-v4 .brand-copy strong{font-size:12px!important}
  .site-header-v4 .brand-copy b{font-size:8.5px!important;letter-spacing:.24em!important}
  .site-header-v4 .menu-button{width:42px!important;height:42px!important;flex-basis:42px!important;border-radius:13px!important}
  .mobile-menu-v4{width:100vw!important;padding-left:16px!important;padding-right:16px!important}
}

/* =========================================================
   V8 · formularios claros y acciones contextuales
   ========================================================= */
/* El botón final solo existe visualmente en el último paso. */
.wizard-form [data-wizard-submit]{display:none!important}
.wizard-form:not(.is-last-step) [data-wizard-next]{display:inline-flex!important}
.wizard-form.is-last-step [data-wizard-next]{display:none!important}
.wizard-form.is-last-step [data-wizard-submit]{display:inline-flex!important}

/* El texto de ayuda del placeholder desaparece al entrar al campo y vuelve al salir. */
input:focus::placeholder,
textarea:focus::placeholder{color:transparent!important;opacity:0!important}
input::placeholder,
textarea::placeholder{transition:opacity .14s ease,color .14s ease}

/* =========================================================
   V10 · PWA instalable + centro de avisos + Web Push
   ========================================================= */
:root{--pwa-banner-height:0px}
.pwa-banner-visible main{padding-top:var(--pwa-banner-height)}
.site-header-v4{top:var(--pwa-banner-height)!important}

.pwa-install-banner[hidden],.pwa-install-modal[hidden],.pwa-toast[hidden],.pwa-bell[hidden]{display:none!important}
.pwa-install-banner{position:fixed;inset:0 0 auto 0;z-index:150;background:linear-gradient(100deg,#082f2c,#0d5a4b 55%,#0a6a70);color:#fff;border-bottom:1px solid rgba(255,255,255,.16);box-shadow:0 8px 28px rgba(2,31,28,.16)}
.pwa-install-banner-inner{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding-block:7px}
.pwa-install-copy{display:flex;align-items:center;gap:10px;min-width:0}.pwa-install-copy>span:last-child{display:grid;gap:1px;min-width:0}.pwa-install-copy strong{font-size:13px;letter-spacing:.01em}.pwa-install-copy small{font-size:11px;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:720px}.pwa-install-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:11px;background:rgba(255,255,255,.08);flex:0 0 auto}
.pwa-install-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.pwa-install-action{min-height:38px;display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.2);border-radius:12px;padding:0 13px;background:#fff;color:#083d36;font-weight:800;font-size:11px;box-shadow:0 5px 16px rgba(0,0,0,.12)}.pwa-install-action:hover{transform:translateY(-1px)}.pwa-install-close{width:34px;height:34px;border:0;border-radius:10px;background:rgba(255,255,255,.08);color:#fff;font-size:22px;line-height:1}
.pwa-install-modal{position:fixed;inset:0;z-index:220;display:grid;place-items:center;padding:20px}.pwa-install-modal-backdrop{position:absolute;inset:0;background:rgba(2,28,25,.7);backdrop-filter:blur(7px)}.pwa-install-modal-card{position:relative;z-index:1;width:min(470px,100%);padding:28px;border-radius:24px;background:#fffdf8;box-shadow:0 30px 100px rgba(0,0,0,.28)}.pwa-install-modal-card h2{font-family:'Fraunces',Georgia,serif;font-size:28px;margin:7px 0 14px}.pwa-modal-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:#e8f1ea;color:var(--forest);margin-bottom:15px}.pwa-modal-close{position:absolute;right:14px;top:14px;width:38px;height:38px;border:0;border-radius:50%;background:#edf1ed;color:var(--deep);font-size:23px}.pwa-install-instructions{font-size:14px;color:var(--muted);line-height:1.65;margin-bottom:18px}.pwa-install-instructions ol{margin:0 0 12px;padding-left:20px}.pwa-install-instructions li{margin:7px 0}.pwa-install-reason{padding:10px 12px;border-radius:12px;background:#fff3d7;color:#71551a;font-weight:700}.pwa-modal-open{overflow:hidden}
.pwa-toast{position:fixed;left:50%;bottom:max(22px,env(safe-area-inset-bottom));z-index:230;transform:translateX(-50%);width:min(520px,calc(100% - 28px));padding:12px 16px;border-radius:14px;background:#093f37;color:#fff;font-size:12px;font-weight:700;box-shadow:0 16px 48px rgba(0,0,0,.24);text-align:center}.pwa-toast[data-kind="warn"]{background:#765a18}.pwa-toast[data-kind="error"]{background:#873d35}
.pwa-bell{position:relative;width:40px;height:40px;display:inline-grid;place-items:center;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:inherit}.site-header.scrolled .pwa-bell{background:#edf3ef;border-color:#d7e3dc;color:var(--forest)}.pwa-bell>span{position:absolute;right:-4px;top:-5px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border-radius:999px;background:#d56c54;color:#fff;font-size:9px;font-weight:900;border:2px solid #fff}

.reservation-app-card{margin:18px 0 22px;padding:18px;border-radius:20px;border:1px solid #d7e5dc;background:linear-gradient(135deg,#f3f8f3,#fffaf0);box-shadow:0 10px 32px rgba(8,55,49,.06)}.reservation-app-head{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}.reservation-app-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:var(--forest);color:#fff}.reservation-app-head h3{margin:4px 0;font-size:18px}.reservation-app-head p{margin:0;color:var(--muted);font-size:12.5px;max-width:680px}.reservation-app-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:14px}.reservation-app-actions .btn{min-height:42px}.reservation-app-actions .btn.is-active{background:#e6f1e5;color:#315e2d;border-color:#c8dfc7}.push-state{font-size:11px;color:var(--muted);flex:1 1 250px}
.reservation-notification-center{margin-top:18px;padding-top:17px;border-top:1px solid #dbe6df}.notification-center-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.notification-center-head h3{margin:3px 0 0;font-size:17px}.notification-center-count{font-size:10px;font-weight:800;color:var(--forest);background:#eaf2ec;border-radius:999px;padding:6px 9px;white-space:nowrap}.notification-center-list{display:grid;gap:8px}.notification-center-item{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:11px 12px;border:1px solid #e2eae5;border-radius:13px;background:rgba(255,255,255,.74)}.notification-center-item.is-unread{border-color:#aec9b5;background:#f5faf5}.notification-center-dot{width:8px;height:8px;border-radius:50%;background:#aab7b0;margin-top:6px}.notification-center-item.is-unread .notification-center-dot{background:#2f805e;box-shadow:0 0 0 4px rgba(47,128,94,.1)}.notification-center-item strong{display:block;font-size:12.5px}.notification-center-item p{margin:3px 0;color:var(--muted);font-size:11.5px;line-height:1.5}.notification-center-item time{font-size:10px;color:#83918b}.notification-center-empty{padding:16px;border:1px dashed #cedbd3;border-radius:12px;color:var(--muted);font-size:12px;text-align:center}

@media(max-width:900px){
  .site-header-v4{inset:var(--pwa-banner-height) 0 auto 0!important;top:var(--pwa-banner-height)!important}
  .pwa-install-banner-inner{width:100%;padding:7px 10px;gap:8px}.pwa-install-copy small{max-width:45vw}.pwa-install-action{padding:0 10px}.pwa-install-close{width:32px;height:32px}.pwa-bell{width:42px;height:42px;margin-right:5px}
}
@media(max-width:620px){
  .pwa-install-banner-inner{min-height:58px}.pwa-install-copy{gap:7px}.pwa-install-icon{width:32px;height:32px}.pwa-install-copy strong{font-size:11px}.pwa-install-copy small{display:none}.pwa-install-action{min-height:36px;font-size:10px;border-radius:10px}.pwa-install-action .ui-icon{display:none}.pwa-install-close{font-size:20px}.reservation-app-card{padding:14px;border-radius:17px}.reservation-app-head{grid-template-columns:1fr}.reservation-app-icon{width:40px;height:40px}.reservation-app-actions{display:grid;grid-template-columns:1fr}.reservation-app-actions .btn{width:100%}.push-state{font-size:10.5px}.notification-center-head{align-items:center}.notification-center-item{padding:10px}
}

/* =========================================================
   V11 · Complementarias: búsqueda inmediata y flujo corto
   ========================================================= */
.complementary-quick-form{min-height:auto!important;padding:24px!important}
.quick-booking-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid rgba(6,55,49,.09)}
.quick-booking-head h2{margin:4px 0 6px;font-size:30px}.quick-booking-head p{margin:0;max-width:620px;color:var(--muted);font-size:12px;line-height:1.55}
.quick-flow-badge{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:8px 10px;border-radius:999px;background:#eaf4ed;color:var(--forest);font-size:9px;font-weight:800;letter-spacing:.03em}
.quick-activity-strip{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin:18px 0;padding:13px 14px;border-radius:17px;background:linear-gradient(135deg,#f4f8f4,#fff9ee);border:1px solid rgba(6,55,49,.08)}
.quick-activity-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--forest);color:#fff}.quick-activity-strip>div{display:grid;gap:2px}.quick-activity-strip small{font-size:8px;letter-spacing:.12em;font-weight:900;color:#71827b}.quick-activity-strip strong{font-size:14px}.quick-activity-strip span:not(.quick-activity-icon){font-size:10px;color:var(--muted)}
.quick-reservation-block,.quick-add-details{padding:18px 0}.quick-add-details{border-top:1px solid rgba(6,55,49,.09)}.quick-section-title{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:center;margin-bottom:12px}.quick-section-title>span{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:#e9f2eb;color:var(--forest);font-weight:900;font-size:12px}.quick-section-title small{display:block;font-size:8px;letter-spacing:.12em;color:#7b8a84;font-weight:900}.quick-section-title h3{margin:1px 0 0;font-size:21px}
.recent-reservation-hint{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:12px;padding:11px 12px;border-radius:14px;background:#fff7e6;border:1px solid #efe0b8;color:#6b5728}.recent-reservation-hint>.ui-icon{color:#9b7e32}.recent-reservation-hint div{display:grid}.recent-reservation-hint small{font-size:7.5px;font-weight:900;letter-spacing:.1em}.recent-reservation-hint strong{font-size:11px}
.quick-search-panel{padding:16px;border-radius:18px;background:#f7faf8;border:1px solid #dbe7df}.quick-search-label{display:grid;gap:7px;font-size:10px;font-weight:800;color:#314d47}.quick-search-input{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;background:#fff;border:1px solid #cbdcd2;border-radius:14px;padding:0 12px;transition:.18s}.quick-search-input:focus-within{border-color:#7aa995;box-shadow:0 0 0 4px rgba(47,128,94,.08)}.quick-search-input input{min-height:50px!important;padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important;font-size:14px!important}.quick-search-input>.ui-icon{color:#6b8279}.quick-search-help{margin:7px 2px 0;font-size:9px;color:#788a83;line-height:1.45}
.quick-search-spinner{width:18px;height:18px;border:2px solid #d7e5dc;border-top-color:var(--forest);border-radius:50%;animation:quickSpin .7s linear infinite}@keyframes quickSpin{to{transform:rotate(360deg)}}
.quick-search-state{min-height:18px;margin-top:9px;font-size:10px;font-weight:700;color:#6d8179}.quick-search-state.is-ok{color:#2e7356}.quick-search-state.is-empty{color:#8a642c}.quick-search-state.is-error{color:#9f4a40}.quick-search-state.is-loading,.quick-search-state.is-hint{color:#74857f;font-weight:600}
.quick-search-results{display:grid;gap:8px;margin-top:8px}.quick-search-result{width:100%;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;text-align:left;padding:12px;border:1px solid #d7e4dc;border-radius:14px;background:#fff;color:var(--deep);cursor:pointer;transition:.16s}.quick-search-result:hover:not(:disabled){transform:translateY(-1px);border-color:#9fbfad;box-shadow:0 8px 20px rgba(6,55,49,.07)}.quick-search-result>span:first-child{display:grid;gap:3px;min-width:0}.quick-search-result strong{font-size:12px}.quick-search-result small{font-size:9px;color:#73857f;line-height:1.4}.quick-result-action{font-size:9px;font-weight:900;color:var(--forest);white-space:nowrap}.quick-search-result.is-unavailable{opacity:.72;background:#fbf8f1;cursor:not-allowed}.quick-search-result.is-unavailable .quick-result-action{max-width:180px;white-space:normal;text-align:right;color:#8a642c}.quick-search-empty-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}
.quick-selected-reservation{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:15px;border-radius:18px;background:linear-gradient(135deg,#eaf5ee,#f8fbf8);border:1px solid #bbd5c4}.quick-selected-check{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:var(--forest);color:#fff}.quick-selected-copy{display:grid;gap:3px}.quick-selected-copy>small{font-size:8px;letter-spacing:.12em;font-weight:900;color:#61816f}.quick-selected-copy>strong{font-size:15px}.quick-selected-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:3px}.quick-selected-meta span{display:inline-flex;align-items:center;gap:4px;font-size:9px;color:#60766d}.quick-selected-meta b{font-weight:800;color:#405b52}.quick-change-reservation{border:0;background:transparent;color:var(--forest);font-size:9px;font-weight:900;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.quick-participant-card{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:14px 15px;border-radius:17px;background:#fff;border:1px solid #dce7e0}.quick-participant-card>div:first-child{display:grid;gap:3px}.quick-participant-card strong{font-size:12px}.quick-participant-card small{font-size:9px;color:#71837c}.quantity-control{display:grid;grid-template-columns:38px 54px 38px;align-items:center;border:1px solid #ccddd3;border-radius:13px;overflow:hidden;background:#f8fbf9}.quantity-control button{height:40px;border:0;background:transparent;color:var(--forest);font-size:20px;font-weight:700;cursor:pointer}.quantity-control button:hover{background:#eaf3ed}.quantity-control input{width:54px!important;min-height:40px!important;height:40px!important;padding:0 3px!important;border:0!important;border-left:1px solid #d9e5de!important;border-right:1px solid #d9e5de!important;border-radius:0!important;text-align:center;font-weight:900;font-size:14px!important;background:#fff!important;appearance:textfield}.quantity-control input::-webkit-inner-spin-button,.quantity-control input::-webkit-outer-spin-button{appearance:none;margin:0}.quantity-control-small{grid-template-columns:34px 48px 34px}.quantity-control-small button{height:36px}.quantity-control-small input{width:48px!important;min-height:36px!important;height:36px!important}
.quick-use-all{display:inline-flex;margin:8px 0 0;padding:0;border:0;background:transparent;color:#356d58;font-size:9px;font-weight:700;cursor:pointer}.quick-use-all:hover{text-decoration:underline;text-underline-offset:3px}.quick-notes{margin-top:12px;border:1px solid #e0e9e4;border-radius:14px;background:#fbfdfc;overflow:hidden}.quick-notes summary{display:flex;align-items:center;gap:7px;padding:11px 12px;cursor:pointer;font-size:10px;font-weight:800;color:#4b665d}.quick-notes summary span{margin-left:auto;font-size:8px;color:#87978f;font-weight:700}.quick-notes label{display:grid;gap:6px;padding:0 12px 12px;font-size:9px}.quick-notes textarea{font-size:13px!important}
.quick-confirm-card{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;margin-top:12px;padding:14px 15px;border-radius:17px;background:#0c4f45;color:#fff}.quick-confirm-card>div:first-child{display:grid;gap:3px}.quick-confirm-card small{font-size:7.5px;letter-spacing:.1em;opacity:.7;font-weight:900}.quick-confirm-card strong{font-size:12px}.quick-confirm-card span{font-size:9px;opacity:.82}.quick-confirm-price{text-align:right}.quick-confirm-price strong{display:block;margin-top:2px;font-size:17px}.quick-terms{margin-top:12px}.quick-submit{width:100%;justify-content:center;margin-top:10px;min-height:48px}.quick-summary-base{background:#edf6ef;border-radius:10px;padding:7px 8px}

.addons-fast-section{scroll-margin-top:120px}.addons-fast-note{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:999px;background:#e7f2e9;color:var(--forest);font-size:9px;font-weight:900;white-space:nowrap}.addon-card-fast{overflow:visible!important}.addon-fast-body{padding:16px;position:relative}.addon-fast-body>h3{margin:5px 0 7px}.addon-fast-body>p{min-height:42px}.addon-mini-meta{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0 2px}.addon-mini-meta span{display:inline-flex;align-items:center;gap:4px;padding:5px 7px;border-radius:999px;background:#f0f5f1;color:#62776f;font-size:8px}.addon-card-fast .addon-card-foot>div{display:grid}.addon-card-fast .addon-card-foot>div small{font-size:8px;color:#7c8c86}.addon-unavailable{max-width:145px;text-align:right;font-size:8px;font-weight:800;color:#8b6930;line-height:1.35}
.addon-inline-panel{margin-top:12px;padding:13px;border-radius:15px;background:#f6faf7;border:1px solid #d3e1d8}.addon-inline-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding-bottom:10px;border-bottom:1px solid #dce7e0}.addon-inline-head>div{display:grid}.addon-inline-head small{font-size:7px;letter-spacing:.1em;color:#74857f;font-weight:900}.addon-inline-head strong{font-size:12px}.addon-inline-head>button{width:28px;height:28px;border:0;border-radius:9px;background:#e8efea;color:#50665e;font-size:18px;cursor:pointer}.addon-inline-form{display:grid;gap:10px;padding-top:10px}.addon-inline-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.addon-inline-row>div:first-child{display:grid;gap:2px}.addon-inline-row strong{font-size:10px}.addon-inline-row small{font-size:8px;color:#7a8b85}.addon-inline-notes{border-top:1px solid #e1e9e4;padding-top:8px}.addon-inline-notes summary{display:flex;justify-content:space-between;gap:8px;cursor:pointer;font-size:9px;font-weight:800;color:#536b62}.addon-inline-notes summary span{font-size:8px;color:#8b9893}.addon-inline-notes textarea{width:100%;margin-top:8px;border:1px solid #d6e2da;border-radius:10px;padding:9px;font:inherit;font-size:11px;resize:vertical}.addon-inline-terms{font-size:8.5px!important}.addon-inline-actions{display:flex;justify-content:flex-end;gap:7px}.addon-inline-actions .btn{min-height:38px}

@media(max-width:780px){
  .complementary-quick-form{padding:16px!important}.quick-booking-head{display:grid;gap:10px}.quick-booking-head h2{font-size:25px}.quick-flow-badge{width:max-content}.quick-selected-reservation{grid-template-columns:38px 1fr}.quick-selected-check{width:38px;height:38px}.quick-change-reservation{grid-column:2;justify-self:start}.quick-participant-card{grid-template-columns:1fr;gap:10px}.quantity-control{justify-self:start}.quick-confirm-card{grid-template-columns:1fr}.quick-confirm-price{text-align:left;padding-top:7px;border-top:1px solid rgba(255,255,255,.16)}.quick-search-result{grid-template-columns:1fr}.quick-result-action{text-align:left!important;max-width:none!important}.recent-reservation-hint{grid-template-columns:auto 1fr}.recent-reservation-hint .btn{grid-column:2;justify-self:start}.addons-fast-note{margin-top:8px}.addon-fast-body>p{min-height:0}.addon-inline-actions{display:grid;grid-template-columns:1fr 1fr}.addon-inline-actions .btn{width:100%;justify-content:center}
}
@media(max-width:480px){
  .quick-activity-strip{grid-template-columns:38px 1fr;padding:11px}.quick-activity-icon{width:38px;height:38px}.quick-selected-meta{display:grid;gap:5px}.quick-search-empty-actions{display:grid}.quick-search-empty-actions .btn{width:100%;justify-content:center}.addon-inline-row{grid-template-columns:1fr}.quantity-control-small{justify-self:start}.addon-inline-actions{grid-template-columns:1fr}.addons-fast-section .split-heading h2{font-size:26px}
}

/* =========================================================
   V12 · Menos ruido, mejor contraste y búsqueda clara
   ========================================================= */
:root{
  --muted:#586d67;
  --v4-muted:#536a64;
}

/* Todo botón sin variante explícita conserva contraste suficiente. */
.btn{color:var(--v4-forest);background:#fff;border-color:#9fb8ad}
.btn-primary{color:#fff;background:linear-gradient(135deg,#176b50,#2f683e);border-color:#145841}
.btn-outline{color:#063b34;background:#fff;border-color:#789b8e}
.btn-soft{color:#143b35;background:#eef2ed;border-color:#c1d0c8}
.btn-primary:hover{background:linear-gradient(135deg,#115d46,#285b36)}
.btn-outline:hover,.btn-soft:hover{border-color:#5d8375}

/* Textos pequeños: evitar grises demasiado claros sobre marfil/blanco. */
.form-card-v4 label small,
.lookup-card p,
.lookup-help p,
.departure-card-v4 .departure-copy p,
.departure-count-v4 small,
.departure-meta-chips span,
.quick-search-state,
.quick-search-result small,
.quick-selected-meta span,
.quick-participant-card small,
.quick-notes summary span,
.addon-mini-meta span,
.addon-card-fast .addon-card-foot>div small,
.addon-inline-row small,
.addon-inline-head small,
.notification-center-item p,
.notification-center-item time{color:#516861}

/* V12 · complementarias: una sola decisión visible a la vez. */
.complementary-quick-form{padding:22px!important;min-height:auto!important}
.quick-booking-head-v12{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid rgba(6,55,49,.10)}
.quick-booking-price{display:flex;align-items:baseline;gap:6px;color:var(--v4-forest)}
.quick-booking-price strong{font:700 21px/1 'Fraunces',Georgia,serif}
.quick-booking-price small{font-size:9px;color:#516861;font-weight:700}
.quick-reservation-block-v12{padding:16px 0 0}
.quick-search-panel-v12{padding:14px;background:#f7faf8;border-color:#cfded5}
.quick-search-panel-v12 .quick-search-label>span{font-size:11px;color:#294d45}
.quick-search-input{border-color:#9fb8ad}
.quick-search-input input::placeholder{color:#71847d;opacity:1}
.quick-search-state{min-height:15px;margin-top:7px}
.quick-search-state:empty{display:none}
.quick-search-result{border-color:#c7d8cf;color:#143b35}
.quick-search-result:hover:not(:disabled){border-color:#6d9b87}
.quick-search-result.is-unavailable{opacity:1;background:#fff8ed;border-color:#e4cf9e}
.quick-search-result.is-unavailable .quick-result-action{color:#79551b}
.quick-selected-reservation{margin-top:0;background:#edf7f0;border-color:#9fc6ad;color:#143b35}
.quick-selected-meta b{color:#234c43}
.quick-change-reservation{color:#0b5e4c}
.quick-add-details-v12{padding:14px 0 0;border-top:0}
.quick-participant-card-v12{background:#fffdf8;border-color:#cadbd2}
.quick-terms{margin-top:10px!important}
.quick-action-bar{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin-top:10px;padding:12px;border-radius:16px;background:#0b4a41;color:#fff}
.quick-action-bar>div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.quick-action-bar span{font-size:10px;color:rgba(255,255,255,.82)}
.quick-action-bar strong{font:700 18px/1 'Fraunces',Georgia,serif;color:#fff}
.quick-action-bar .quick-submit{width:auto;min-height:42px;margin:0;padding-inline:16px}
.recent-reservation-hint{color:#5c481b;background:#fff6df;border-color:#dfc98d}
.recent-reservation-hint small,.recent-reservation-hint strong{color:#5c481b}

/* Mi reserva: las acciones "Agregar" usan siempre la acción principal. */
.addon-card-foot .btn-primary{box-shadow:0 8px 20px rgba(6,59,52,.12)}

/* Consulta de reserva más compacta al eliminar el panel repetido de ayuda. */
.lookup-layout{grid-template-columns:minmax(0,760px);justify-content:center}
.lookup-card{width:100%}
.empty-card-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:14px}

/* WhatsApp queda como único acceso flotante persistente. */
.floating-wa{background:#176a4a;border:2px solid rgba(255,255,255,.92)}

@media(max-width:780px){
  .quick-booking-head-v12{align-items:flex-start}
  .quick-action-bar{grid-template-columns:1fr}
  .quick-action-bar .quick-submit{width:100%}
  .quick-selected-reservation{grid-template-columns:38px 1fr}
  .quick-change-reservation{grid-column:2;justify-self:start}
}
@media(max-width:480px){
  .complementary-quick-form{padding:15px!important}
  .quick-booking-price{display:grid;gap:1px;text-align:right}
  .quick-booking-price strong{font-size:18px}
}
.btn-ghost{color:#fff;border-color:rgba(255,255,255,.64);background:rgba(6,51,46,.32);backdrop-filter:blur(6px)}

/* =========================================================
   V13 · Superficies modernas y contraste de Próximas salidas
   ========================================================= */
:root{
  --surface-card:#ffffff;
  --surface-card-soft:#f5faf7;
  --surface-card-warm:#fffaf1;
  --surface-border:rgba(12,78,65,.13);
  --surface-shadow:0 16px 42px rgba(7,57,49,.10);
  --surface-shadow-hover:0 24px 56px rgba(7,57,49,.15);
}

/* Próximas salidas: el título nunca hereda blanco sobre una tarjeta clara. */
.departure-card-v4{
  color:#173f37;
  border:1px solid var(--surface-border);
  background:
    radial-gradient(circle at 92% 5%,rgba(38,143,112,.10),transparent 28%),
    linear-gradient(145deg,#ffffff 0%,#f4faf6 100%);
  box-shadow:var(--surface-shadow);
}
.departure-card-v4:hover{
  transform:translateY(-4px);
  border-color:rgba(21,112,88,.22);
  box-shadow:var(--surface-shadow-hover);
}
.departure-card-v4 h4,
.departure-card-v4 .departure-copy h4{
  color:#0d3f36!important;
  font-weight:750;
  letter-spacing:-.01em;
}
.departure-card-v4 .departure-copy p{color:#536d65!important}
.departure-card-v4 .departure-date-kicker{color:#177765}
.departure-card-v4 .departure-count-v4 strong{color:#0d5346}
.departure-card-v4 .departure-count-v4 small{color:#5b746c!important}
.departure-card-v4 .minimum-progress-wrap{
  background:linear-gradient(135deg,rgba(226,242,232,.88),rgba(245,249,244,.94));
  border:1px solid rgba(16,91,73,.08);
}
.departure-card-v4 .minimum-progress-copy{color:#4e6961}
.departure-card-v4 .minimum-progress-copy strong{color:#0c5749}
.departure-card-v4 .departure-meta-chips span{
  color:#49665d!important;
  background:rgba(255,255,255,.88);
  border-color:rgba(15,89,71,.11);
  box-shadow:0 5px 14px rgba(7,57,49,.04);
}
.departure-card-v4 .departure-meta-chips strong{color:#0c5144}
.departure-card-v4 .status-text{color:#536b63}
.departure-card-v4 .status-text.confirmed{color:#126c58}
.departure-card-v4 .status-text.forming_group{color:#6b5d2c}

/* Panel de inicio: fondo profundo actual + tarjetas claras flotantes. */
.departures-panel-v3{
  color:#f7fffb;
  border:1px solid rgba(255,255,255,.13);
  background:
    radial-gradient(circle at 92% 2%,rgba(166,207,118,.20),transparent 24%),
    radial-gradient(circle at 0 100%,rgba(34,150,139,.18),transparent 30%),
    linear-gradient(155deg,#0b5549 0%,#073f38 52%,#052f2c 100%);
  box-shadow:0 28px 70px rgba(4,45,40,.20);
}
.departures-panel-v3 .panel-title{
  color:#f7fffb;
  border-bottom-color:rgba(255,255,255,.16);
}
.departures-panel-v3 .panel-title a{color:#d9edcf}
.departures-panel-v3 .departure-card-v4{
  margin-top:12px;
  padding:16px;
  border-bottom:1px solid var(--surface-border);
  color:#173f37;
  background:
    radial-gradient(circle at 96% 0,rgba(33,143,112,.10),transparent 30%),
    linear-gradient(145deg,#ffffff 0%,#f3faf6 100%);
  box-shadow:0 14px 32px rgba(1,31,27,.16);
}
.departures-panel-v3 .departure-card-v4 + .departure-card-v4{margin-top:10px}
.departures-panel-v3 .departure-card-v4 h4{color:#0b3c34!important}
.departures-panel-v3 .departure-card-v4 .departure-copy p{color:#536d65!important}
.departures-panel-v3 .departure-card-v4 .status-text{color:#526b63}
.departures-panel-v3 .departure-card-v4 .status-text.confirmed{color:#126c58}
.departures-panel-v3 .calendar-link{
  margin-top:15px;
  color:#fff;
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.24);
  backdrop-filter:blur(8px);
  transition:background .2s,border-color .2s,transform .2s;
}
.departures-panel-v3 .calendar-link:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.36);
}

/* Tarjetas públicas: superficies limpias, sin grises planos. */
.experience-card-v3,
.departure-grid .departure-card-v4,
.lookup-result-card,
.departure-explainer>div,
.form-card-v4,
.order-summary-v4,
.reservation-main-card,
.payment-card-v4,
.addon-card-fast{
  border-color:var(--surface-border);
  background:
    linear-gradient(145deg,rgba(255,255,255,.99),rgba(247,251,248,.98));
  box-shadow:var(--surface-shadow);
}
.experience-card-v3:hover,
.departure-grid .departure-card-v4:hover,
.lookup-result-card:hover,
.addon-card-fast:hover{
  border-color:rgba(21,112,88,.22);
  box-shadow:var(--surface-shadow-hover);
}
.experience-card-v3 .experience-card-body{
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,252,249,.98));
}
.experience-card-v3 h3,
.lookup-result-card h3,
.addon-card-fast h3{color:#123f37}

/* Chips y bloques auxiliares: tonos naturales modernos, no gris neutro. */
.departure-explainer>div,
.field-card,
.addon-inline-panel,
.quick-search-panel-v12{
  background:linear-gradient(145deg,#f4faf6,#fffaf1);
}

@media(max-width:780px){
  .departures-panel-v3 .departure-card-v4{padding:14px}
  .departure-card-v4{border-radius:20px}
}

/* =========================================================
   V14 · Producción Hostinger / contraste de próximas salidas
   ========================================================= */
/* Protección final frente a reglas antiguas del panel oscuro. */
.departures-panel-v3 .departure-card-v4 .departure-copy h4,
.departures-panel-v3 .departure-card-v4 h4,
.departure-card-v4 .departure-copy h4{
  color:#0a3b33!important;
  text-shadow:none!important;
  opacity:1!important;
}
.departures-panel-v3 .departure-card-v4 .departure-copy{
  color:#173f37!important;
}
.departures-panel-v3 .departure-card-v4 .departure-date-kicker{
  color:#177765!important;
}
.departures-panel-v3 .departure-card-v4{
  background:
    radial-gradient(circle at 94% 4%,rgba(44,151,118,.11),transparent 27%),
    linear-gradient(145deg,#ffffff 0%,#f5fbf7 58%,#eef7f2 100%);
}
