
        .hero-bg { background-image: linear-gradient(rgba(0,0,0,.48), rgba(0,0,0,.64)), url('assets/hero-patagonia.webp'); background-size: cover; background-position: center 42%; }
    

/* ===== Animaciones profesionales, ligeras y seguras ===== */
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body { overflow-x: hidden; }
#scroll-progress { position: fixed; top: 0; left: 0; z-index: 200; height: 3px; width: 0; background: linear-gradient(90deg,#10b981,#6ee7b7); box-shadow: 0 0 12px rgba(16,185,129,.55); }
nav { transition: background-color .3s ease, box-shadow .3s ease, backdrop-filter .3s ease; }
nav.nav-scrolled { background: rgba(28,25,23,.92)!important; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 12px 34px rgba(0,0,0,.22); }
.brand-logo {
  width:46px;
  height:46px;
  flex:0 0 46px;
  object-fit:cover;
  border:2px solid rgba(255,255,255,.78);
  border-radius:9999px;
  box-shadow:0 6px 18px rgba(0,0,0,.28);
}
.footer-logo {
  width:112px;
  height:112px;
  display:block;
  margin:0 auto 1.15rem;
  object-fit:cover;
  border:2px solid rgba(255,255,255,.16);
  border-radius:9999px;
  box-shadow:0 14px 34px rgba(0,0,0,.3);
}
.hero-kicker,.hero-title,.hero-copy,.hero-cta,.hero-trust { opacity:0; transform:translateY(24px); animation:heroEnter .85s cubic-bezier(.22,1,.36,1) forwards; }
.hero-title{animation-delay:.12s}.hero-copy{animation-delay:.24s}.hero-cta{animation-delay:.36s}.hero-trust{animation-delay:.48s}
@keyframes heroEnter { to { opacity:1; transform:translateY(0); } }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; }
.hero-secondary-cta {
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.9rem 1.15rem;
  border:1px solid rgba(255,255,255,.34);
  border-radius:9999px;
  color:white;
  background:rgba(12,10,9,.28);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  font-weight:800;
  text-shadow:none;
  transition:background-color .22s ease,border-color .22s ease,transform .22s ease;
}
.hero-secondary-cta:hover { transform:translateY(-2px); border-color:#6ee7b7; background:rgba(6,78,59,.7); }
.hero-trust span {
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.5rem .75rem;
  border:1px solid rgba(255,255,255,.18);
  border-radius:9999px;
  color:#e7e5e4;
  background:rgba(12,10,9,.38);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  font-size:.76rem;
  font-weight:700;
  text-shadow:none;
}
.hero-trust i { color:#6ee7b7; }
.reveal-pending { opacity:0; transform:translateY(14px); }
.reveal-pending.reveal-left { transform:translateX(-18px); }
.reveal-pending.reveal-right { transform:translateX(18px); }
.reveal-visible { opacity:1!important; transition:opacity 1.05s ease-in-out,transform 1.05s ease-in-out; }
.reveal-pending.reveal-visible { transform:translate(0,0); }
.pro-card { transition:transform .6s ease-in-out,box-shadow .6s ease-in-out,border-color .6s ease-in-out; }
.pro-card:hover { transform:translateY(-3px); box-shadow:0 20px 46px rgba(28,25,23,.13); }
.gallery-item { transition:transform .55s ease-in-out,box-shadow .55s ease-in-out; }
.gallery-item:hover { transform:translateY(-2px); box-shadow:0 20px 48px rgba(28,25,23,.16); }
.gallery-item img { display:block; width:100%; height:100%; object-fit:contain!important; object-position:center; background:#0c0a09; }
.gallery-item:hover img { transform:none!important; }
.lang-btn { border:1px solid rgba(255,255,255,.2); color:#d6d3d1; }
.lang-btn.active { background:#10b981; border-color:#10b981; color:white; }
.floating-whatsapp { position:fixed; right:20px; bottom:20px; z-index:90; width:58px; height:58px; display:flex; align-items:center; justify-content:center; border-radius:9999px; background:#16a34a; color:white; box-shadow:0 14px 35px rgba(0,0,0,.3); transition:transform .25s ease,background-color .25s ease; }
.floating-whatsapp:hover { transform:translateY(-4px) scale(1.04); background:#15803d; }
.mobile-conversion-bar { display:none; }
@media (max-width:767px) {
  .has-mobile-conversion-bar { padding-bottom:4.8rem; }
  .has-mobile-conversion-bar .floating-whatsapp { display:none; }
  .mobile-conversion-bar {
    position:fixed;
    right:.75rem;
    bottom:.75rem;
    left:.75rem;
    z-index:95;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.55rem;
    padding:.55rem;
    border:1px solid rgba(255,255,255,.14);
    border-radius:1rem;
    background:rgba(28,25,23,.94);
    box-shadow:0 18px 46px rgba(0,0,0,.34);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
  }
  .mobile-conversion-bar a {
    display:flex;
    min-height:44px;
    align-items:center;
    justify-content:center;
    gap:.45rem;
    border:1px solid rgba(255,255,255,.16);
    border-radius:.75rem;
    color:#f5f5f4;
    font-size:.82rem;
    font-weight:800;
  }
  .mobile-conversion-bar .mobile-conversion-primary { border-color:#059669; background:#059669; color:white; }
}
.timeline-line::before { content:""; position:absolute; left:19px; top:42px; bottom:22px; width:2px; background:#d1fae5; }
.guide-orbit { box-shadow:0 0 0 12px rgba(16,185,129,.08),0 24px 65px rgba(28,25,23,.16); }
.btn-pro { position:relative; overflow:hidden; isolation:isolate; }
.btn-pro::after { content:""; position:absolute; top:-120%; bottom:-120%; left:-45%; width:28%; transform:rotate(18deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent); transition:left .7s ease; pointer-events:none; }
.btn-pro:hover::after { left:120%; }
.faq-toggle i { transition:transform .3s ease; }
.hero-bg { transition:background-position .12s linear; }
@media (prefers-reduced-motion: reduce) {
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .hero-kicker,.hero-title,.hero-copy,.hero-cta,.hero-trust,.reveal-pending{opacity:1!important;transform:none!important}
  .partner-showcase.reveal-pending .partner-showcase-cover,
  .partner-showcase.reveal-pending .partner-showcase-intro > *,
  .partner-showcase[open] .partner-story-layout,
  .partner-showcase[open] .partner-contact-actions,
  .partner-showcase[open] .partner-photo-section,
  .partner-showcase[open] .partner-video-section,
  .partner-showcase[open] .partner-photo-grid figure { opacity:1!important; transform:none!important; }
}


/* ===== Navegación multipágina ===== */
.nav-page-active { color:#6ee7b7!important; }
.site-main-nav { white-space:nowrap; }
.subpage-hero {
  min-height:360px;
  display:flex;
  align-items:center;
  color:white;
  background-image:linear-gradient(90deg,rgba(12,10,9,.9),rgba(12,10,9,.45)),var(--page-hero);
  background-position:center;
  background-size:cover;
}
.page-map-card {
  position:relative;
  min-height:260px;
  overflow:hidden;
  border-radius:1.25rem;
  background:#1c1917;
  box-shadow:0 18px 45px rgba(28,25,23,.14);
  transition:transform .35s ease,box-shadow .35s ease;
}
.page-map-card:hover { transform:translateY(-6px); box-shadow:0 26px 60px rgba(28,25,23,.22); }
.page-map-card::before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(12,10,9,.96),rgba(12,10,9,.12));
  z-index:1;
}
.page-map-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.page-map-card-content { position:absolute; inset:auto 0 0; padding:1.5rem; color:white; z-index:2; }

.gallery-item-contain {
  min-height:clamp(240px,42vw,510px);
  background:#0c0a09;
}

/* ===== Planificador de jornada ===== */
.trip-planner-section {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 18%,rgba(16,185,129,.18),transparent 28rem),
    linear-gradient(145deg,#052e2b,#022c22 58%,#0c1f1a);
}
.trip-planner-section::after {
  content:"";
  position:absolute;
  right:-120px;
  bottom:-180px;
  width:460px;
  height:460px;
  border:1px solid rgba(110,231,183,.14);
  border-radius:50%;
  box-shadow:0 0 0 60px rgba(110,231,183,.025),0 0 0 120px rgba(110,231,183,.018);
  pointer-events:none;
}
.planner-intro,.trip-planner { position:relative; z-index:1; }
.planner-note {
  display:flex;
  align-items:flex-start;
  gap:1rem;
  padding:1rem 1.1rem;
  border:1px solid rgba(167,243,208,.18);
  border-radius:1rem;
  background:rgba(255,255,255,.055);
}
.planner-note > i {
  width:2.4rem;
  height:2.4rem;
  display:grid;
  flex:0 0 2.4rem;
  place-items:center;
  border-radius:.8rem;
  color:#a7f3d0;
  background:rgba(16,185,129,.16);
}
.planner-note strong,.planner-note span { display:block; }
.planner-note strong { color:white; font-size:.9rem; }
.planner-note span { margin-top:.25rem; color:rgba(209,250,229,.68); font-size:.78rem; line-height:1.45; }
.trip-planner {
  padding:1.4rem;
  border:1px solid rgba(255,255,255,.13);
  border-radius:1.75rem;
  background:rgba(12,10,9,.62);
  box-shadow:0 28px 80px rgba(0,0,0,.28);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.planner-progress {
  height:5px;
  overflow:hidden;
  margin-bottom:1.5rem;
  border-radius:9999px;
  background:rgba(255,255,255,.1);
}
.planner-progress span {
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#10b981,#a7f3d0);
  transition:width .35s ease;
}
.planner-live-feedback {
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  min-height:3.25rem;
  margin:-.35rem 0 1.25rem;
  padding:.8rem .9rem;
  border:1px solid rgba(110,231,183,.2);
  border-radius:.9rem;
  color:#d1fae5;
  background:rgba(6,78,59,.34);
  font-size:.78rem;
  line-height:1.5;
  transition:border-color .2s ease,background-color .2s ease;
}
.planner-live-feedback i { margin-top:.15rem; color:#6ee7b7; }
.planner-live-feedback.has-choice { border-color:rgba(110,231,183,.48); background:rgba(6,95,70,.48); }
.planner-step {
  margin:0 0 1.45rem;
  padding:0;
  border:0;
}
.planner-step legend {
  width:100%;
  display:flex;
  align-items:center;
  gap:.75rem;
  margin-bottom:.75rem;
  color:white;
  font-weight:800;
}
.planner-step legend small {
  width:1.85rem;
  height:1.85rem;
  display:grid;
  place-items:center;
  border-radius:.6rem;
  color:#6ee7b7;
  background:rgba(16,185,129,.14);
  font-size:.68rem;
}
.planner-options {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.65rem;
}
.planner-options-compact { grid-template-columns:repeat(2,minmax(0,1fr)); }
.planner-options button {
  min-width:0;
  min-height:114px;
  padding:.9rem;
  border:1px solid rgba(255,255,255,.12);
  border-radius:1rem;
  color:#d6d3d1;
  background:rgba(255,255,255,.045);
  text-align:left;
  transition:transform .22s ease,border-color .22s ease,background-color .22s ease,box-shadow .22s ease;
}
.planner-options button:hover {
  transform:translateY(-2px);
  border-color:rgba(110,231,183,.48);
  background:rgba(16,185,129,.08);
}
.planner-options button.selected {
  border-color:#34d399;
  color:white;
  background:rgba(16,185,129,.17);
  box-shadow:0 0 0 2px rgba(52,211,153,.12);
}
.planner-options button i { display:block; margin-bottom:.65rem; color:#6ee7b7; font-size:1rem; }
.planner-options button strong,.planner-options button span { display:block; }
.planner-options button strong { font-size:.82rem; line-height:1.25; }
.planner-options button span { margin-top:.3rem; color:#a8a29e; font-size:.7rem; line-height:1.35; }
.planner-options button.selected span { color:#d1fae5; }
.planner-submit {
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  min-height:52px;
  padding:.85rem 1.2rem;
  border-radius:1rem;
  color:#064e3b;
  background:#a7f3d0;
  font-weight:900;
  transition:transform .22s ease,background-color .22s ease,opacity .22s ease;
}
.planner-submit:not(:disabled):hover { transform:translateY(-2px); background:#d1fae5; }
.planner-submit:disabled { cursor:not-allowed; opacity:.38; }
.planner-result {
  padding:1.5rem;
  border:1px solid rgba(110,231,183,.28);
  border-radius:1.25rem;
  background:linear-gradient(145deg,rgba(6,78,59,.76),rgba(6,95,70,.42));
  animation:plannerResultIn .45s cubic-bezier(.22,1,.36,1);
}
.planner-result[hidden] { display:none; }
@keyframes plannerResultIn {
  from { opacity:0; transform:translateY(12px); }
  to { opacity:1; transform:translateY(0); }
}
.planner-result-kicker { display:block; color:#6ee7b7; font-size:.68rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.planner-result h3 { margin-top:.55rem; color:white; font-size:1.7rem; font-weight:900; line-height:1.15; }
.planner-result p { margin-top:.7rem; color:#d1fae5; line-height:1.6; }
.planner-result-tags { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem; }
.planner-result-tags span {
  padding:.4rem .65rem;
  border:1px solid rgba(255,255,255,.14);
  border-radius:9999px;
  color:#ecfdf5;
  background:rgba(255,255,255,.07);
  font-size:.7rem;
  font-weight:800;
}
.planner-result-cta {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  margin-top:1.25rem;
  padding:.8rem 1rem;
  border-radius:.85rem;
  color:#064e3b;
  background:#a7f3d0;
  font-weight:900;
}
.planner-reset { margin-left:.8rem; color:#a7f3d0; font-size:.78rem; font-weight:800; }
.planner-reset:hover { color:white; }
.planner-prefill-notice {
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  margin-bottom:1.2rem;
  padding:.9rem 1rem;
  border:1px solid #a7f3d0;
  border-radius:.9rem;
  color:#065f46;
  background:#ecfdf5;
  font-size:.82rem;
  font-weight:700;
  line-height:1.5;
}
.planner-prefill-notice i { margin-top:.18rem; color:#059669; }
.trust-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:1rem;
}
.trust-grid article {
  min-width:0;
  padding:1.35rem;
  border:1px solid #e7e5e4;
  border-radius:1.25rem;
  background:linear-gradient(145deg,#fff,#fafaf9);
  box-shadow:0 14px 34px rgba(28,25,23,.06);
  transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease;
}
.trust-grid article:hover { transform:translateY(-5px); border-color:#6ee7b7; box-shadow:0 20px 42px rgba(28,25,23,.11); }
.trust-grid i {
  width:2.7rem;
  height:2.7rem;
  display:grid;
  place-items:center;
  margin-bottom:1rem;
  border-radius:.9rem;
  color:#047857;
  background:#d1fae5;
}
.trust-grid strong,.trust-grid span { display:block; }
.trust-grid strong { color:#1c1917; font-size:1.02rem; }
.trust-grid span { margin-top:.45rem; color:#57534e; font-size:.8rem; line-height:1.55; }

/* ===== Nueva dirección fotográfica ===== */
.hero-bg {
  background-image:
    linear-gradient(90deg,rgba(12,10,9,.82) 0%,rgba(12,10,9,.5) 42%,rgba(12,10,9,.12) 72%,rgba(12,10,9,.2) 100%),
    url('assets/patagonia-casteo-sol.webp');
  background-position:center;
  background-size:cover;
}
.hero-content { text-shadow:0 2px 24px rgba(0,0,0,.5); }
.cinematic-grid {
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);
  gap:1.25rem;
}
.cinematic-card {
  position:relative;
  overflow:hidden;
  min-width:0;
  aspect-ratio:16/10;
  border:1px solid rgba(255,255,255,.11);
  border-radius:1.25rem;
  background:#0c0a09;
  box-shadow:0 26px 65px rgba(0,0,0,.32);
}
.cinematic-card-wide { aspect-ratio:16/10; }
.cinematic-card-panorama { grid-column:1 / -1; aspect-ratio:21/8; }
.cinematic-card img {
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  transition:transform .7s cubic-bezier(.22,1,.36,1);
}
.cinematic-card-cover img { object-fit:cover; }
.cinematic-card:hover img { transform:scale(1.02); }
.cinematic-card figcaption {
  position:absolute;
  inset:auto 0 0;
  padding:4.5rem 1.5rem 1.35rem;
  background:linear-gradient(to top,rgba(12,10,9,.95),rgba(12,10,9,0));
}
.cinematic-card figcaption span { display:block; font-size:1.2rem; font-weight:800; }
.cinematic-card figcaption small { display:block; margin-top:.35rem; color:#d6d3d1; }
.new-gallery-grid {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:1.25rem;
}
.new-gallery-grid .gallery-item {
  grid-column:span 5;
  min-height:340px;
  background:#0c0a09;
}
.new-gallery-grid .gallery-item:nth-child(2),
.new-gallery-grid .gallery-item:nth-child(4) { grid-column:span 7; }
.new-gallery-grid .gallery-item.new-gallery-portrait {
  grid-column:span 12;
  min-height:clamp(540px,56vw,720px);
}
.new-gallery-grid .gallery-item img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain!important;
}
.gallery-portrait-backdrop {
  position:absolute;
  inset:-6%;
  background-position:center;
  background-size:cover;
  filter:blur(24px) saturate(.8);
  opacity:.48;
  transform:scale(1.08);
}
.new-gallery-portrait img { z-index:1; }
.new-gallery-portrait .gallery-overlay,
.new-gallery-portrait .gallery-label { z-index:2; }
.gallery-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(12,10,9,.92),rgba(12,10,9,.03) 65%);
}
.gallery-label {
  position:absolute;
  left:1.35rem;
  right:1.35rem;
  bottom:1.25rem;
  color:white;
}
.gallery-label small {
  display:block;
  margin-bottom:.35rem;
  color:#6ee7b7;
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.gallery-label strong { display:block; font-size:1.15rem; }
.subpage-hero-experiencias { background-position:center 58%; }
.subpage-hero-guia { background-position:center 58%; }

/* ===== Ajustes para teléfonos y pantallas táctiles ===== */
@media (max-width: 767px) {
  html { scroll-padding-top:72px; }
  nav > .max-w-7xl { height:64px; padding-left:1rem; padding-right:1rem; }
  nav > .max-w-7xl > a { min-width:0; gap:.5rem; }
  .brand-logo { width:40px; height:40px; flex-basis:40px; }
  .footer-logo { width:96px; height:96px; }
  nav > .max-w-7xl > a span {
    display:block;
    max-width:72vw;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:.8rem;
    letter-spacing:.07em;
  }
  #menu-btn { width:44px; height:44px; flex:0 0 44px; }
  #mobile-menu {
    max-height:calc(100svh - 64px);
    overflow-y:auto;
    padding-bottom:calc(1rem + env(safe-area-inset-bottom));
  }
  #mobile-menu a,
  #mobile-menu button { min-height:44px; display:flex; align-items:center; }
  #mobile-menu > a { padding:.65rem .25rem; }

  .hero-bg {
    height:auto!important;
    min-height:calc(100svh - 64px);
    padding:3.5rem 1.25rem;
    background-image:
      linear-gradient(90deg,rgba(12,10,9,.82),rgba(12,10,9,.42)),
      linear-gradient(to top,rgba(12,10,9,.78),rgba(12,10,9,.08) 48%),
      url('assets/patagonia-casteo-sol.webp');
    background-position:70% center;
  }
  .hero-content { max-width:78%; }
  .hero-title { font-size:clamp(2.25rem,11vw,3.2rem); line-height:1.02; }
  .hero-copy { font-size:1rem; line-height:1.6; }
  .hero-actions { align-items:stretch; }
  .hero-actions > a { width:100%; justify-content:center; padding:.85rem 1rem; font-size:.82rem; }

  section.py-20 { padding-top:3.75rem; padding-bottom:3.75rem; }
  section.py-16 { padding-top:3rem; padding-bottom:3rem; }
  h2.text-3xl,
  h2.md\\:text-4xl,
  .cinematic-section h2 { font-size:1.85rem; line-height:1.18; }
  .subpage-hero {
    min-height:320px;
    background-position:center;
  }
  .subpage-hero > div { padding-top:3.5rem; padding-bottom:3.5rem; }
  .subpage-hero h1 { font-size:2.35rem; line-height:1.05; }
  .subpage-hero p { font-size:1rem; }
  .subpage-hero-experiencias { background-position:44% center; }

  .cinematic-grid { grid-template-columns:1fr; }
  .cinematic-card,
  .cinematic-card-wide,
  .cinematic-card-panorama { aspect-ratio:16/10; }
  .cinematic-card figcaption { padding:3.7rem 1rem 1rem; }
  .cinematic-card figcaption span { font-size:1rem; }
  .cinematic-card figcaption small { font-size:.78rem; }

  .new-gallery-grid { grid-template-columns:1fr; }
  .new-gallery-grid .gallery-item,
  .new-gallery-grid .gallery-item:nth-child(2),
  .new-gallery-grid .gallery-item:nth-child(4) {
    grid-column:auto;
    min-height:0;
    height:auto!important;
    aspect-ratio:16/10;
  }
  .new-gallery-grid .gallery-item.new-gallery-portrait {
    aspect-ratio:4/5;
  }
  .gallery-item {
    width:100%;
    height:auto!important;
    min-height:0;
    aspect-ratio:16/10;
  }
  .gallery-item img { object-fit:contain!important; }
  .gallery-label { left:1rem; right:1rem; bottom:1rem; }
  .gallery-label strong { font-size:1rem; }
  .page-map-card { min-height:235px; }
  .page-map-card-content { padding:1.2rem; }

  input,
  select,
  textarea { font-size:16px!important; }
  .faq-toggle { min-height:56px; }
  .floating-whatsapp {
    right:14px;
    bottom:calc(14px + env(safe-area-inset-bottom));
    width:54px;
    height:54px;
  }
  #gallery-modal,
  #reservation-success-modal {
    padding:1rem;
    padding-top:max(1rem,env(safe-area-inset-top));
    padding-bottom:max(1rem,env(safe-area-inset-bottom));
  }
  #gallery-close { top:max(12px,env(safe-area-inset-top)); right:12px; }
}

@media (min-width: 768px) and (max-width: 1100px) {
  nav > .max-w-7xl { height:72px; }
  nav .md\\:flex { gap:.75rem; }
  nav .tracking-wider { font-size:.92rem; }
}

@media (min-width: 1024px) and (max-width: 1279px) {
  nav > .max-w-7xl { padding-left:1rem; padding-right:1rem; }
  nav > .max-w-7xl > a { gap:.4rem; }
  nav > .max-w-7xl > a span { max-width:185px; font-size:.74rem; line-height:1.15; }
  nav .brand-logo { width:40px; height:40px; flex-basis:40px; }
  .site-main-nav { gap:.42rem; font-size:.7rem; letter-spacing:.01em; }
  .site-main-nav > a { white-space:nowrap; }
  .site-main-nav > a.bg-emerald-600 { padding-left:.65rem; padding-right:.65rem; }
  .site-main-nav .lang-btn { padding-left:.35rem; padding-right:.35rem; }
}

/* ===== Fotografías de modalidades, equipo y galería por categorías ===== */
.experience-photo-frame {
  position:relative;
  aspect-ratio:var(--photo-ratio,3 / 2);
  overflow:hidden;
  background:#1c1917;
}
.experience-photo-frame img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:var(--photo-position,50% 50%);
}
.home-modality-note,
.modality-focus {
  display:block;
  color:#065f46;
  font-size:.95rem;
  font-weight:700;
  line-height:1.6;
}
.home-modality-note {
  margin-top:1.25rem;
  padding:1rem 1.1rem;
  border:1px solid #a7f3d0;
  border-radius:1rem;
  background:#ecfdf5;
}
.modality-focus {
  max-width:46rem;
  margin-right:auto;
  margin-left:auto;
  text-align:center;
}
.home-philosophy-section {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 92% 16%,rgba(16,185,129,.1),transparent 25rem),
    linear-gradient(180deg,#fff,#fafaf9);
}
.home-philosophy-section::before {
  content:"";
  position:absolute;
  top:12%;
  bottom:12%;
  left:0;
  width:3px;
  background:linear-gradient(180deg,transparent,#10b981,transparent);
}
.home-philosophy-layout {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(2.5rem,6vw,6rem);
  align-items:center;
}
.home-philosophy-copy { max-width:42rem; }
.home-care-note {
  padding:.8rem 0;
  border-top:1px solid #d6d3d1;
  border-bottom:1px solid #d6d3d1;
  color:#047857;
  font-size:.92rem;
  font-weight:800;
  letter-spacing:.01em;
}
.home-philosophy-visual {
  align-self:start;
  aspect-ratio:auto;
  transform:none;
}
.home-philosophy-visual img {
  width:100%;
  height:auto!important;
  object-fit:contain!important;
  transition:filter .9s ease-in-out;
}
@media (hover:hover) {
  .home-philosophy-visual:hover img { filter:saturate(1.025); }
}
.experience-modalities-section {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 5%,rgba(16,185,129,.11),transparent 24rem),
    #f5f5f4;
}
.modalities-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:1.5rem;
}
.experience-mode-card {
  display:flex;
  flex-direction:column;
  height:100%;
  border:1px solid rgba(120,113,108,.15);
}
.experience-mode-card .experience-photo-frame {
  height:auto;
  aspect-ratio:3 / 2;
}
.experience-mode-card > .p-8 {
  display:flex;
  flex:1;
  flex-direction:column;
}
.experience-mode-heading {
  min-height:3.75rem;
  margin-bottom:1rem;
}
.experience-mode-heading i {
  flex:0 0 auto;
  margin-top:.18rem;
}
.experience-mode-heading h3 {
  line-height:1.4;
}
.experience-mode-description {
  margin:0;
  line-height:1.65;
}
.experience-mode-card .experience-photo-frame img {
  object-fit:cover;
  transition:filter .8s ease-in-out;
}
@media (hover:hover) {
  .experience-mode-card:hover .experience-photo-frame img { filter:saturate(1.03); }
}
.experience-mode-card-lessons .p-8 { justify-content:flex-start; }
.experience-itinerary-section {
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,#fff 0%,#fff 72%,#fafaf9 100%);
}
.itinerary-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:1.5rem;
}
.experience-technique-note {
  display:flex;
  align-items:flex-start;
  gap:.6rem;
  margin-top:auto;
  padding-top:1.15rem;
  border-top:1px solid #e7e5e4;
  color:#047857;
  font-size:.88rem;
  font-weight:700;
  line-height:1.55;
}
.experience-technique-note i { flex:0 0 auto; margin-top:.18rem; }
.spinning-option-card {
  display:grid;
  grid-template-columns:auto minmax(0,1.45fr) minmax(15rem,.75fr);
  gap:1.35rem;
  align-items:center;
  margin-top:2rem;
  padding:1.5rem;
  border:1px solid #d6d3d1;
  border-radius:1.5rem;
  background:linear-gradient(135deg,#fff,#f5f5f4);
  box-shadow:0 18px 42px rgba(28,25,23,.08);
}
.spinning-option-icon {
  display:grid;
  width:3.4rem;
  height:3.4rem;
  place-items:center;
  border-radius:1.1rem;
  color:#d1fae5;
  background:#1c1917;
  font-size:1.25rem;
}
.spinning-option-kicker {
  color:#047857;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.spinning-option-card h3 {
  margin-top:.25rem;
  color:#1c1917;
  font-size:1.45rem;
  font-weight:900;
}
.spinning-option-card > div > p {
  margin-top:.45rem;
  color:#57534e;
  line-height:1.65;
}
.spinning-option-availability {
  display:flex;
  align-items:flex-start;
  gap:.55rem;
  padding:1rem;
  border-radius:1rem;
  color:#365314;
  background:#f7fee7;
  font-size:.88rem;
  font-weight:700;
  line-height:1.55;
}
.spinning-option-availability i { flex:0 0 auto; margin-top:.18rem; color:#65a30d; }
.beginner-class-rate {
  display:flex;
  align-items:center;
  gap:.45rem;
  width:max-content;
  max-width:100%;
  margin-top:1rem;
  padding:.55rem .75rem;
  border:1px solid #a7f3d0;
  border-radius:9999px;
  color:#065f46;
  background:#ecfdf5;
  font-size:.72rem;
}
.beginner-class-rate i { color:#059669; }
.beginner-class-rate span { color:#78716c; }
.guide-team-card {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.25rem;
}
.guide-team-principle {
  position:relative;
  min-width:0;
  min-height:100%;
  padding:2rem;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:1.5rem;
  background:
    radial-gradient(circle at 100% 0,rgba(16,185,129,.12),transparent 11rem),
    linear-gradient(145deg,rgba(41,37,36,.96),rgba(12,10,9,.88));
  box-shadow:0 20px 45px rgba(0,0,0,.2);
  transition:transform .35s cubic-bezier(.22,1,.36,1),border-color .35s ease,box-shadow .35s ease;
}
.guide-team-principle::after {
  content:attr(data-guide-step);
  position:absolute;
  top:.75rem;
  right:1.15rem;
  color:rgba(110,231,183,.08);
  font-size:4.75rem;
  font-weight:900;
  letter-spacing:-.08em;
  line-height:1;
  pointer-events:none;
}
.guide-team-principle i {
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  width:3rem;
  height:3rem;
  margin-bottom:1.35rem;
  border:1px solid rgba(110,231,183,.24);
  border-radius:1rem;
  color:#6ee7b7;
  background:rgba(6,78,59,.34);
  font-size:1.15rem;
}
.guide-team-principle p {
  position:relative;
  z-index:1;
  color:#d6d3d1;
  font-size:1rem;
  line-height:1.8;
}
@media (hover:hover) {
  .guide-team-principle:hover {
    transform:translateY(-6px);
    border-color:rgba(110,231,183,.34);
    box-shadow:0 28px 58px rgba(0,0,0,.28);
  }
}
@media (min-width:768px) and (max-width:1023px) {
  .guide-team-card { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .guide-team-principle:last-child { grid-column:1 / -1; }
}
.guide-panorama {
  position:relative;
  isolation:isolate;
  height:auto;
  aspect-ratio:1080 / 566;
  margin-top:2.25rem;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:1.75rem;
  background:#1c1917;
  box-shadow:0 28px 70px rgba(0,0,0,.28);
}
.guide-panorama img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:50% 50%;
}
.guide-panorama::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,rgba(12,10,9,.02) 28%,rgba(12,10,9,.22) 60%,rgba(12,10,9,.82) 100%);
  pointer-events:none;
}
.guide-panorama figcaption {
  position:absolute;
  right:clamp(1.4rem,4vw,3.25rem);
  bottom:clamp(1.4rem,4vw,3rem);
  z-index:2;
  max-width:680px;
  color:#fff;
  font-size:clamp(1.65rem,3.2vw,3.15rem);
  font-weight:900;
  letter-spacing:-.035em;
  line-height:1.08;
  text-align:right;
  text-wrap:balance;
  text-shadow:0 3px 20px rgba(0,0,0,.62);
}
.technical-kit-section {
  position:relative;
  overflow:hidden;
  border-top:1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(circle at 10% 12%,rgba(16,185,129,.17),transparent 25rem),
    linear-gradient(145deg,#0c0a09,#1c1917 62%,#052e2b);
}
.technical-kit-section::after {
  content:"";
  position:absolute;
  right:-8rem;
  bottom:-11rem;
  width:28rem;
  height:28rem;
  border:1px solid rgba(110,231,183,.11);
  border-radius:50%;
  box-shadow:0 0 0 4.5rem rgba(16,185,129,.022),0 0 0 9rem rgba(16,185,129,.015);
  pointer-events:none;
}
.technical-kit-section > div { position:relative; z-index:1; }
.technical-kit-intro {
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  align-items:start;
}
.technical-kit-intro h2 {
  max-width:none;
  letter-spacing:-.025em;
  line-height:1.08;
  text-align:center;
  text-wrap:balance;
}
.technical-kit-visual {
  position:relative;
  min-height:0;
  aspect-ratio:1080 / 566;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:1.75rem 1.75rem .5rem 1.75rem;
  background:#0c0a09;
  box-shadow:0 28px 70px rgba(0,0,0,.34);
}
.technical-kit-visual::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(12,10,9,.18),transparent 52%,rgba(12,10,9,.06));
  pointer-events:none;
}
.technical-kit-visual img {
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  object-fit:contain;
  object-position:50% 48%;
  transition:filter .9s ease-in-out;
}
.technical-kit-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.25rem;
  margin-top:1.5rem;
}
.technical-kit-card {
  position:relative;
  min-height:0;
  padding:clamp(1.4rem,3vw,2.1rem);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:1.5rem;
  background:linear-gradient(145deg,rgba(41,37,36,.9),rgba(28,25,23,.7));
  box-shadow:0 20px 48px rgba(0,0,0,.22);
  transition:transform .6s ease-in-out,border-color .6s ease-in-out,background-color .6s ease-in-out,box-shadow .6s ease-in-out;
}
.technical-kit-card-rods,
.technical-kit-card-clothing,
.technical-kit-card-flies { grid-column:auto; }
.technical-kit-index {
  display:block;
  margin-bottom:1.5rem;
  color:#6ee7b7;
  font-size:.73rem;
  font-weight:900;
  letter-spacing:.16em;
}
.technical-kit-card h4 {
  color:#fff;
  font-size:1.3rem;
  font-weight:900;
}
.technical-kit-card p {
  max-width:58ch;
  margin-top:.65rem;
  color:#a8a29e;
  font-size:.95rem;
  line-height:1.75;
}
.technical-license-note {
  max-width:52rem;
  margin-right:auto;
  margin-left:auto;
  padding:1.35rem 1.5rem;
  border:1px solid rgba(110,231,183,.18);
  border-radius:1.25rem;
  background:rgba(6,78,59,.2);
  text-align:center;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
@media (hover:hover) {
  .technical-kit-visual:hover img { filter:saturate(1.04); }
  .technical-kit-card:hover {
    transform:translateY(-3px);
    border-color:rgba(110,231,183,.35);
    background:linear-gradient(145deg,rgba(41,37,36,.98),rgba(6,78,59,.34));
    box-shadow:0 30px 64px rgba(0,0,0,.32);
  }
}
.history-section {
  position:relative;
  overflow:hidden;
  padding:5.5rem 0;
  background:
    radial-gradient(circle at 8% 20%,rgba(16,185,129,.13),transparent 24rem),
    linear-gradient(145deg,#fafaf9,#f5f5f4 62%,#ecfdf5);
}
.history-page {
  min-height:calc(100svh - 5rem);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.history-page .history-layout { width:100%; }
.history-section::after {
  content:"";
  position:absolute;
  right:-9rem;
  bottom:-13rem;
  width:30rem;
  height:30rem;
  border:1px solid rgba(5,150,105,.12);
  border-radius:50%;
  box-shadow:0 0 0 4rem rgba(16,185,129,.025),0 0 0 8rem rgba(16,185,129,.018);
  pointer-events:none;
}
.history-layout {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr);
  gap:clamp(2.5rem,5vw,4.5rem);
  align-items:start;
}
.history-heading { min-width:0; }
.history-heading h1,
.history-heading h2 {
  max-width:100%;
  margin-top:.75rem;
  color:#1c1917;
  font-size:clamp(2.15rem,4vw,3.75rem);
  font-weight:900;
  letter-spacing:-.045em;
  line-height:1;
  text-wrap:balance;
}
.history-copy { color:#57534e; font-size:1.05rem; line-height:1.85; }
.history-copy p + p { margin-top:1.25rem; }
.history-copy blockquote {
  margin-top:2rem;
  padding:1.4rem 1.5rem;
  border-left:4px solid #059669;
  border-radius:0 1rem 1rem 0;
  color:#1c1917;
  background:rgba(255,255,255,.76);
  box-shadow:0 14px 36px rgba(28,25,23,.08);
  font-size:1.12rem;
  font-weight:800;
  line-height:1.65;
}
.history-visuals {
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(1rem,2.2vw,1.75rem);
  margin-top:.5rem;
}
.history-photo {
  position:relative;
  height:auto;
  overflow:hidden;
  border:1px solid rgba(120,113,108,.16);
  border-radius:1.75rem;
  background:#1c1917;
  box-shadow:0 22px 55px rgba(28,25,23,.16);
}
.history-photo img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.history-photo-trout { aspect-ratio:4 / 3; }
.history-photo-fishing { aspect-ratio:1080 / 566; }
.history-photo-trout img { object-position:50% 50%; }
.history-photo-fishing img { object-position:50% 50%; }
.gallery-explorer {
  display:grid;
  grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);
  gap:1.5rem;
  align-items:center;
  margin-bottom:2.25rem;
  padding:1.4rem;
  border:1px solid #e7e5e4;
  border-radius:1.5rem;
  background:linear-gradient(135deg,#fafaf9,#ecfdf5);
  box-shadow:0 18px 48px rgba(28,25,23,.08);
}
.gallery-filter-list {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.65rem;
}
.gallery-filter {
  position:relative;
  min-height:88px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:.3rem;
  padding:.9rem;
  border:1px solid #d6d3d1;
  border-radius:1rem;
  color:#44403c;
  background:white;
  text-align:left;
  transition:transform .25s ease,border-color .25s ease,background-color .25s ease,color .25s ease,box-shadow .25s ease;
}
.gallery-filter:hover { transform:translateY(-3px); border-color:#34d399; }
.gallery-filter i { color:#059669; font-size:1.05rem; }
.gallery-filter span { font-size:.78rem; font-weight:800; line-height:1.15; }
.gallery-filter small {
  position:absolute;
  top:.65rem;
  right:.7rem;
  min-width:1.45rem;
  height:1.45rem;
  display:grid;
  place-items:center;
  border-radius:9999px;
  color:#57534e;
  background:#f5f5f4;
  font-size:.68rem;
  font-weight:800;
}
.gallery-filter.active {
  border-color:#047857;
  color:white;
  background:#047857;
  box-shadow:0 14px 30px rgba(4,120,87,.22);
}
.gallery-filter.active i { color:#a7f3d0; }
.gallery-filter.active small { color:#065f46; background:#d1fae5; }
.gallery-panel[hidden] { display:none; }
.gallery-panel:not([hidden]) { animation:galleryPanelIn .8s ease-in-out; }
.gallery-modal-stage {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  height:min(88vh,760px);
  min-height:12rem;
}
.gallery-modal-image {
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  max-width:100%;
  object-fit:contain;
  opacity:1;
  transform:scale(1);
  touch-action:pan-y;
  user-select:none;
  -webkit-user-drag:none;
  transition:opacity 1.2s ease-in-out,transform 1.2s ease-in-out,filter 1.2s ease-in-out;
}
.gallery-modal-image.is-entering {
  opacity:0;
  transform:scale(.996);
  filter:brightness(.94);
  transition:none;
}
.gallery-modal-ghost {
  position:absolute;
  inset:0;
  z-index:2;
  width:100%;
  height:100%;
  margin:auto;
  opacity:0;
  pointer-events:none;
}
.gallery-modal-ghost.is-active {
  opacity:1;
  transition:none;
}
.gallery-modal-ghost.is-active.is-leaving {
  opacity:0;
  transform:scale(1.004);
  filter:brightness(.94);
  transition:opacity 1.2s ease-in-out,transform 1.2s ease-in-out,filter 1.2s ease-in-out;
}
.gallery-modal-nav {
  position:absolute;
  top:50%;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  width:3.25rem;
  height:3.25rem;
  border:1px solid rgba(255,255,255,.24);
  border-radius:9999px;
  color:white;
  background:rgba(12,10,9,.62);
  box-shadow:0 12px 30px rgba(0,0,0,.3);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transform:translateY(-50%);
  transition:background-color .2s ease,border-color .2s ease,transform .2s ease;
}
.gallery-modal-prev { left:.85rem; }
.gallery-modal-next { right:.85rem; }
.gallery-modal-nav:hover { border-color:#6ee7b7; background:rgba(6,78,59,.86); transform:translateY(-50%) scale(1.05); }
.gallery-modal-nav:focus-visible { outline:3px solid #6ee7b7; outline-offset:3px; }
.gallery-modal-nav:disabled { opacity:.35; cursor:not-allowed; }
@keyframes galleryPanelIn {
  from { opacity:0; transform:translateY(14px); }
  to { opacity:1; transform:translateY(0); }
}

/* ===== Laboratorio interactivo de lectura del río ===== */
.river-lab-section {
  position:relative;
  overflow:hidden;
  color:white;
  background:
    radial-gradient(circle at 82% 16%,rgba(16,185,129,.18),transparent 30rem),
    radial-gradient(circle at 12% 92%,rgba(13,148,136,.12),transparent 26rem),
    linear-gradient(145deg,#0c1f1a,#0c0a09 64%);
}
.river-lab-section::before {
  content:"";
  position:absolute;
  inset:0;
  opacity:.08;
  background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px);
  background-size:52px 52px;
  pointer-events:none;
}
.river-lab-heading,.river-lab-shell { position:relative; z-index:1; }
.river-lab-shell {
  overflow:hidden;
  border:1px solid rgba(167,243,208,.16);
  border-radius:2rem;
  background:rgba(12,10,9,.64);
  box-shadow:0 34px 95px rgba(0,0,0,.38);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.river-lab-grid {
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  align-items:stretch;
}
.river-lab-visual {
  min-width:0;
  padding:1rem;
  border-right:1px solid rgba(255,255,255,.1);
}
.river-lab-photo {
  position:relative;
  display:grid;
  place-items:center;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:1.35rem;
  background:#050807;
}
.river-lab-photo::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(5,8,7,.58),transparent 48%);
  pointer-events:none;
}
.river-lab-photo img {
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  transition:opacity .18s ease,transform .35s ease;
}
.river-lab-photo img.is-changing { opacity:.28; transform:scale(.985); }
.river-lab-photo-badge {
  position:absolute;
  left:1rem;
  bottom:1rem;
  z-index:1;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.55rem .75rem;
  border:1px solid rgba(255,255,255,.18);
  border-radius:9999px;
  color:#ecfdf5;
  background:rgba(6,78,59,.72);
  backdrop-filter:blur(8px);
  font-size:.72rem;
  font-weight:800;
}
.river-condition-list {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.6rem;
  margin-top:1rem;
}
.river-condition {
  min-width:0;
  min-height:96px;
  padding:.8rem;
  border:1px solid rgba(255,255,255,.12);
  border-radius:1rem;
  color:#d6d3d1;
  background:rgba(255,255,255,.045);
  text-align:left;
  transition:transform .22s ease,border-color .22s ease,background-color .22s ease,color .22s ease;
}
.river-condition:hover { transform:translateY(-3px); border-color:rgba(110,231,183,.58); }
.river-condition i,.river-condition span,.river-condition small { display:block; }
.river-condition i { margin-bottom:.65rem; color:#6ee7b7; }
.river-condition span { font-size:.78rem; font-weight:900; line-height:1.18; }
.river-condition small { margin-top:.28rem; color:#78716c; font-size:.65rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.river-condition.active {
  border-color:#34d399;
  color:white;
  background:linear-gradient(145deg,rgba(5,150,105,.4),rgba(6,78,59,.68));
  box-shadow:0 12px 28px rgba(5,150,105,.14);
}
.river-condition.active small { color:#a7f3d0; }
.river-condition:focus-visible { outline:3px solid #6ee7b7; outline-offset:3px; }
.river-lab-panel {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(1.5rem,4vw,3.5rem);
  transition:opacity .18s ease,transform .25s ease;
}
.river-lab-panel.is-changing { opacity:.28; transform:translateY(6px); }
.river-lab-panel-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1.35rem;
}
.river-lab-kicker {
  color:#6ee7b7;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.river-lab-kicker i { margin-right:.4rem; }
.river-lab-signal {
  padding:.4rem .65rem;
  border:1px solid rgba(167,243,208,.18);
  border-radius:9999px;
  color:#d1fae5;
  background:rgba(16,185,129,.1);
  font-size:.7rem;
  font-weight:800;
  white-space:nowrap;
}
.river-lab-panel h3 {
  color:white;
  font-size:clamp(1.75rem,3vw,2.55rem);
  font-weight:900;
  line-height:1.08;
}
.river-lab-panel > p {
  margin-top:1rem;
  color:#d6d3d1;
  line-height:1.7;
}
.river-lab-actions { display:grid; gap:.75rem; margin-top:1.5rem; }
.river-lab-actions li {
  display:grid;
  grid-template-columns:1.55rem 1fr;
  gap:.6rem;
  align-items:start;
  color:#f5f5f4;
  font-size:.9rem;
  line-height:1.45;
}
.river-lab-actions i {
  width:1.55rem;
  height:1.55rem;
  display:grid;
  place-items:center;
  border-radius:9999px;
  color:#6ee7b7;
  background:rgba(16,185,129,.14);
  font-size:.65rem;
}
.river-lab-note {
  display:grid;
  grid-template-columns:2rem 1fr;
  gap:.8rem;
  align-items:start;
  margin-top:1.6rem;
  padding:1rem;
  border:1px solid rgba(251,191,36,.16);
  border-radius:1rem;
  color:#d6d3d1;
  background:rgba(120,53,15,.12);
  font-size:.78rem;
  line-height:1.5;
}
.river-lab-note > i {
  width:2rem;
  height:2rem;
  display:grid;
  place-items:center;
  border-radius:.7rem;
  color:#fbbf24;
  background:rgba(251,191,36,.1);
}
.river-lab-note strong { color:#fde68a; }
.river-lab-disclaimer {
  color:#78716c!important;
  font-size:.68rem;
  line-height:1.45!important;
}
.river-lab-disclaimer i { margin-right:.35rem; }

/* ===== Tarifas claras por modalidad ===== */
.pricing-section {
  background:
    radial-gradient(circle at 8% 12%,rgba(16,185,129,.08),transparent 24rem),
    linear-gradient(180deg,#fafaf9,#f5f5f4);
}
.pricing-total-note {
  display:flex;
  align-items:center;
  gap:1rem;
  max-width:780px;
  margin:0 auto 1.2rem;
  padding:1rem 1.2rem;
  border:1px solid #a7f3d0;
  border-radius:1.2rem;
  color:#14532d;
  background:#ecfdf5;
}
.pricing-total-note > i {
  width:2.8rem;
  height:2.8rem;
  display:grid;
  flex:0 0 2.8rem;
  place-items:center;
  border-radius:.9rem;
  color:white;
  background:#059669;
}
.pricing-total-note strong,.pricing-total-note span { display:block; }
.pricing-total-note strong { color:#064e3b; font-size:.95rem; }
.pricing-total-note span { margin-top:.2rem; color:#3f6212; font-size:.78rem; line-height:1.45; }
.pricing-table-wrap {
  overflow:hidden;
  border:1px solid #d6d3d1;
  border-radius:1.6rem;
  background:white;
  box-shadow:0 24px 65px rgba(28,25,23,.1);
}
.pricing-table {
  width:100%;
  border-collapse:collapse;
}
.pricing-table th {
  padding:1rem 1.4rem;
  color:#d1fae5;
  background:#1c1917;
  text-align:left;
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.pricing-table th:last-child { text-align:right; }
.pricing-table td {
  padding:1.15rem 1.4rem;
  border-top:1px solid #e7e5e4;
  color:#57534e;
  vertical-align:middle;
}
.pricing-table tbody tr:first-child td { border-top:0; }
.pricing-table tbody tr { transition:background-color .22s ease; }
.pricing-table tbody tr:hover { background:#f0fdf4; }
.pricing-table td:first-child {
  display:flex;
  align-items:center;
  gap:.75rem;
  color:#1c1917;
}
.pricing-table td:last-child { text-align:right; }
.pricing-table td:last-child small {
  display:block;
  margin-top:.15rem;
  color:#78716c;
  font-size:.68rem;
}
.pricing-service-icon {
  width:2.35rem;
  height:2.35rem;
  display:grid;
  flex:0 0 2.35rem;
  place-items:center;
  border-radius:.8rem;
  color:#047857;
  background:#d1fae5;
}
.pricing-service-icon-boat { color:#075985; background:#e0f2fe; }
.pricing-service-icon-class { color:#92400e; background:#fef3c7; }
.pricing-amount {
  color:#065f46;
  font-size:1.45rem;
  font-weight:900;
  white-space:nowrap;
}
.pricing-featured-row { background:linear-gradient(90deg,#f0fdf4,#ecfdf5); }
.pricing-featured-badge {
  display:inline-flex;
  margin-left:.55rem;
  padding:.3rem .55rem;
  border-radius:9999px;
  color:#065f46;
  background:#a7f3d0;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  vertical-align:middle;
}
.pricing-inclusions {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin-top:1.2rem;
}
.pricing-inclusion-card {
  padding:1.35rem;
  border:1px solid #d6d3d1;
  border-radius:1.35rem;
  background:white;
  box-shadow:0 14px 38px rgba(28,25,23,.06);
}
.pricing-inclusion-card-full { border-color:#a7f3d0; }
.pricing-inclusion-heading {
  display:flex;
  align-items:center;
  gap:.85rem;
  margin-bottom:1rem;
}
.pricing-inclusion-heading > span {
  width:2.5rem;
  height:2.5rem;
  display:grid;
  place-items:center;
  border-radius:.85rem;
  color:white;
  background:#059669;
}
.pricing-inclusion-heading small {
  display:block;
  color:#059669;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.pricing-inclusion-heading h3 { color:#1c1917; font-size:1.2rem; font-weight:900; }
.pricing-inclusion-card ul { display:grid; gap:.6rem; }
.pricing-inclusion-card li {
  display:grid;
  grid-template-columns:1.25rem 1fr;
  gap:.45rem;
  align-items:start;
  color:#57534e;
  font-size:.82rem;
  line-height:1.4;
}
.pricing-inclusion-card li i { margin-top:.14rem; color:#10b981; }
.pricing-inclusion-card li.pricing-not-included { color:#a8a29e; }
.pricing-inclusion-card li.pricing-not-included i { color:#f87171; }
.pricing-applies-note {
  margin-top:1rem;
  color:#78716c;
  font-size:.72rem;
  text-align:center;
}
.pricing-applies-note i { margin-right:.35rem; color:#059669; }

/* ===== Resumen de tarifas en reservas ===== */
.reservation-rate-summary {
  margin:0 auto 2rem;
  padding:1.25rem;
  border:1px solid #a7f3d0;
  border-radius:1.5rem;
  background:linear-gradient(135deg,#ffffff,#ecfdf5);
  box-shadow:0 18px 45px rgba(28,25,23,.08);
}
.reservation-rate-heading {
  display:flex;
  align-items:center;
  gap:.8rem;
  margin-bottom:1rem;
}
.reservation-rate-heading > span {
  width:2.6rem;
  height:2.6rem;
  display:grid;
  flex:0 0 2.6rem;
  place-items:center;
  border-radius:.85rem;
  color:white;
  background:#059669;
}
.reservation-rate-heading small {
  display:block;
  color:#059669;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.reservation-rate-heading h3 { color:#1c1917; font-size:1.25rem; font-weight:900; }
.reservation-rate-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.65rem;
}
.reservation-rate-grid > div {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.8rem .9rem;
  border:1px solid #e7e5e4;
  border-radius:.9rem;
  color:#57534e;
  background:white;
  font-size:.78rem;
}
.reservation-rate-grid strong { color:#065f46; font-size:1rem; white-space:nowrap; }
.reservation-rate-grid strong small { color:#78716c; font-size:.62rem; font-weight:700; }
.reservation-rate-grid .reservation-rate-class {
  grid-column:1 / -1;
  border-color:#fde68a;
  background:#fffbeb;
}
.reservation-rate-summary > p {
  margin-top:.85rem;
  color:#78716c;
  font-size:.7rem;
  text-align:center;
}
.reservation-rate-summary > p i { margin-right:.35rem; color:#059669; }

@media (max-width: 900px) {
  .trust-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .river-lab-grid { grid-template-columns:1fr; }
  .river-lab-visual { border-right:0; border-bottom:1px solid rgba(255,255,255,.1); }
  .pricing-inclusions { grid-template-columns:1fr; }
  .spinning-option-card { grid-template-columns:auto 1fr; }
  .spinning-option-availability { grid-column:1 / -1; }
}

@media (max-width: 767px) {
  .hero-trust { gap:.45rem; }
  .hero-trust span { padding:.42rem .58rem; font-size:.66rem; }
  .trip-planner { padding:1rem; border-radius:1.3rem; }
  .planner-options,
  .planner-options-compact { grid-template-columns:1fr; }
  .planner-options button {
    min-height:0;
    display:grid;
    grid-template-columns:1.6rem 1fr;
    column-gap:.5rem;
    align-items:center;
    padding:.82rem;
  }
  .planner-options button i { grid-row:1 / span 2; margin:0; }
  .planner-options button strong,
  .planner-options button span { grid-column:2; }
  .planner-options button span { margin-top:.15rem; }
  .planner-result { padding:1.2rem; }
  .planner-result-cta { width:100%; }
  .planner-reset { width:100%; margin:1rem 0 0; text-align:center; }
  .trust-grid { grid-template-columns:1fr; }
  .subpage-hero-experiencias { background-position:58% center; }
  .gallery-explorer { grid-template-columns:1fr; padding:1rem; }
  .gallery-filter-list {
    display:flex;
    gap:.65rem;
    overflow-x:auto;
    padding:.2rem .1rem .65rem;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
  }
  .gallery-filter {
    min-width:145px;
    min-height:82px;
    flex:0 0 145px;
    scroll-snap-align:start;
  }
  .gallery-panel > .mt-14 { margin-top:1.5rem; }
  .river-lab-section { padding-top:4.5rem; padding-bottom:4.5rem; }
  .river-lab-shell { border-radius:1.4rem; }
  .river-lab-visual { padding:.75rem; }
  .river-lab-photo { border-radius:1rem; }
  .river-condition-list {
    display:flex;
    overflow-x:auto;
    gap:.55rem;
    padding:.1rem .05rem .65rem;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
  }
  .river-condition {
    min-width:140px;
    min-height:86px;
    flex:0 0 140px;
    scroll-snap-align:start;
  }
  .river-lab-panel { padding:1.35rem 1.1rem 1.5rem; }
  .river-lab-panel-top { align-items:flex-start; flex-direction:column; gap:.7rem; }
  .river-lab-panel h3 { font-size:1.8rem; }
  .pricing-total-note { align-items:flex-start; }
  .pricing-table-wrap { overflow:visible; border:0; border-radius:0; background:transparent; box-shadow:none; }
  .pricing-table,.pricing-table tbody { display:block; }
  .pricing-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .pricing-table tbody { display:grid; gap:.75rem; }
  .pricing-table tr {
    display:grid;
    grid-template-columns:1fr auto;
    padding:1rem;
    border:1px solid #d6d3d1;
    border-radius:1.1rem;
    background:white;
    box-shadow:0 10px 28px rgba(28,25,23,.07);
  }
  .pricing-table td {
    display:block;
    padding:0;
    border:0!important;
  }
  .pricing-table td:first-child { grid-column:1; grid-row:1; }
  .pricing-table td:nth-child(2) {
    grid-column:1;
    grid-row:2;
    margin:.35rem 0 0 3.1rem;
    font-size:.78rem;
  }
  .pricing-table td:last-child {
    grid-column:2;
    grid-row:1 / span 2;
    align-self:center;
    padding-left:.75rem;
  }
  .pricing-table td::before { content:none; }
  .pricing-amount { font-size:1.2rem; }
  .pricing-featured-badge {
    display:flex;
    width:max-content;
    margin:.35rem 0 0;
  }
  .reservation-rate-grid { grid-template-columns:1fr; }
  .reservation-rate-grid .reservation-rate-class { grid-column:auto; }
  .reservation-rate-grid > div { align-items:flex-start; }
  .reservation-rate-grid strong { text-align:right; }
}

@media (max-width: 767px) {
  .guide-team-card { grid-template-columns:1fr; }
  .guide-team-principle { padding:1.5rem; }
  .guide-team-principle::after { font-size:3.75rem; }
  .guide-panorama { height:clamp(330px,78vw,430px); margin-top:1.5rem; border-radius:1.35rem; }
  .guide-panorama img { object-position:45% 50%; }
  .guide-panorama figcaption {
    right:1.2rem;
    bottom:1.2rem;
    left:1.2rem;
    max-width:none;
    font-size:clamp(1.55rem,7vw,2.35rem);
    text-align:left;
  }
  .history-section { padding:4rem 0; }
  .history-page { min-height:auto; justify-content:flex-start; }
  .history-layout { grid-template-columns:1fr; gap:2rem; }
  .history-heading h1,
  .history-heading h2 { max-width:100%; font-size:clamp(2rem,10vw,3rem); }
  .history-copy { font-size:1rem; line-height:1.75; }
  .history-copy blockquote { padding:1.15rem 1.2rem; font-size:1rem; }
  .history-visuals { grid-template-columns:1fr; margin-top:0; }
  .history-photo { height:auto; aspect-ratio:16 / 10; border-radius:1.35rem; }
  .history-photo-trout { aspect-ratio:4 / 3; }
  .gallery-modal-nav { width:2.85rem; height:2.85rem; }
  .gallery-modal-prev { left:.45rem; }
  .gallery-modal-next { right:.45rem; }
}

/* ===== Programa piloto de referidos ===== */
.referral-hero { min-height:620px; background-position:center 42%; }
.referral-pilot-badge {
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  width:max-content;
  padding:.55rem .85rem;
  border:1px solid rgba(167,243,208,.32);
  border-radius:9999px;
  color:#a7f3d0;
  background:rgba(6,78,59,.52);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.referral-values {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.2rem;
}
.referral-values article {
  padding:1.7rem;
  border:1px solid #e7e5e4;
  border-radius:1.4rem;
  background:#fafaf9;
  box-shadow:0 14px 34px rgba(28,25,23,.055);
}
.referral-values article > span {
  width:3rem;
  height:3rem;
  display:grid;
  place-items:center;
  border-radius:1rem;
  color:white;
  background:linear-gradient(145deg,#059669,#047857);
  box-shadow:0 10px 24px rgba(5,150,105,.22);
}
.referral-values h3 {
  margin-top:1.1rem;
  color:#1c1917;
  font-size:1.12rem;
  font-weight:900;
}
.referral-values p { margin-top:.55rem; color:#78716c; line-height:1.65; font-size:.9rem; }

.referral-steps-section {
  color:white;
  background:
    radial-gradient(circle at 12% 10%,rgba(16,185,129,.18),transparent 25rem),
    radial-gradient(circle at 88% 90%,rgba(5,150,105,.12),transparent 25rem),
    #0c1f1a;
}
.referral-steps {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
  counter-reset:referral-step;
}
.referral-steps article {
  position:relative;
  min-height:260px;
  padding:1.4rem;
  overflow:hidden;
  border:1px solid rgba(167,243,208,.14);
  border-radius:1.35rem;
  background:rgba(255,255,255,.055);
}
.referral-steps small {
  display:block;
  color:rgba(167,243,208,.4);
  font-size:2.8rem;
  font-weight:950;
  line-height:1;
}
.referral-steps i { margin-top:1.35rem; color:#6ee7b7; font-size:1.35rem; }
.referral-steps h3 { margin-top:.8rem; font-size:1.08rem; font-weight:900; }
.referral-steps p { margin-top:.5rem; color:#d6d3d1; font-size:.86rem; line-height:1.55; }

.referral-flat-rate {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:1.5rem;
  padding:2rem;
  border:1px solid #d6d3d1;
  border-radius:1.8rem;
  background:white;
  box-shadow:0 22px 52px rgba(28,25,23,.08);
}
.referral-flat-rate-icon {
  width:4.5rem;
  height:4.5rem;
  display:grid;
  place-items:center;
  border-radius:1.35rem;
  color:white;
  background:linear-gradient(145deg,#059669,#064e3b);
  font-size:1.5rem;
}
.referral-flat-rate span { color:#059669; font-size:.7rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.referral-flat-rate h2 { margin-top:.35rem; color:#1c1917; font-size:clamp(1.65rem,4vw,2.65rem); font-weight:950; line-height:1.05; }
.referral-flat-rate p { max-width:650px; margin-top:.7rem; color:#78716c; line-height:1.65; }
.referral-flat-rate > strong { color:#064e3b; font-size:4rem; font-weight:950; line-height:1; }

.referral-calculator {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);
  gap:clamp(2rem,6vw,5rem);
  align-items:center;
  padding:clamp(1.5rem,5vw,4.2rem);
  border:1px solid #a7f3d0;
  border-radius:2rem;
  background:
    radial-gradient(circle at 85% 12%,rgba(16,185,129,.13),transparent 18rem),
    linear-gradient(135deg,#ffffff,#ecfdf5);
  box-shadow:0 30px 75px rgba(28,25,23,.1);
}
.referral-calculator-intro h2 {
  margin-top:.7rem;
  color:#1c1917;
  font-size:clamp(2rem,4vw,3.1rem);
  font-weight:950;
  line-height:1.08;
}
.referral-calculator-intro > p { margin-top:1rem; color:#57534e; font-size:1.05rem; line-height:1.65; }
.referral-calculator-note {
  display:flex;
  gap:.7rem;
  align-items:flex-start;
  margin-top:1.4rem;
  padding:1rem;
  border:1px solid #fde68a;
  border-radius:1rem;
  color:#78350f;
  background:#fffbeb;
  font-size:.78rem;
  line-height:1.5;
}
.referral-calculator-note i { margin-top:.15rem; color:#d97706; }
.referral-calculator-controls {
  padding:1.35rem;
  border:1px solid #d6d3d1;
  border-radius:1.35rem;
  background:white;
  box-shadow:0 16px 34px rgba(28,25,23,.08);
}
.referral-calculator-controls label {
  display:block;
  margin:.85rem 0 .4rem;
  color:#44403c;
  font-size:.75rem;
  font-weight:900;
}
.referral-calculator-controls label:first-child { margin-top:0; }
.referral-calculator-controls select,
.referral-calculator-controls input {
  width:100%;
  padding:.85rem;
  border:1px solid #d6d3d1;
  border-radius:.8rem;
  color:#292524;
  background:#fafaf9;
  outline:none;
}
.referral-calculator-controls select:focus,
.referral-calculator-controls input:focus { border-color:#059669; box-shadow:0 0 0 3px rgba(16,185,129,.14); }
.referral-calculator-result {
  display:flex;
  flex-direction:column;
  align-items:center;
  margin-top:1.15rem;
  padding:1.35rem;
  border-radius:1rem;
  color:white;
  background:linear-gradient(145deg,#065f46,#064e3b);
  text-align:center;
}
.referral-calculator-result small { color:#a7f3d0; font-size:.66rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.referral-calculator-result strong { margin-top:.3rem; font-size:2.35rem; font-weight:950; }
.referral-calculator-result span { margin-top:.35rem; color:#d1fae5; font-size:.76rem; }

.referral-rules {
  display:grid;
  gap:.75rem;
  padding:1.25rem;
  border:1px solid #d6d3d1;
  border-radius:1.4rem;
  background:white;
  box-shadow:0 16px 38px rgba(28,25,23,.065);
}
.referral-rules p {
  display:grid;
  grid-template-columns:2rem 1fr;
  gap:.75rem;
  align-items:start;
  padding:.8rem;
  border-radius:.8rem;
  color:#57534e;
  background:#fafaf9;
  font-size:.88rem;
  line-height:1.5;
}
.referral-rules i {
  width:2rem;
  height:2rem;
  display:grid;
  place-items:center;
  border-radius:.7rem;
  color:#047857;
  background:#d1fae5;
  font-size:.72rem;
}
.referral-rules p:last-child { color:#78350f; background:#fffbeb; }
.referral-rules p:last-child i { color:#b45309; background:#fef3c7; }

.referral-cta-section {
  background:
    linear-gradient(135deg,rgba(6,78,59,.94),rgba(12,31,26,.96)),
    url("assets/patagonia-bosque-rio.webp") center/cover;
}
.referral-whatsapp-cta {
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  margin-top:2rem;
  padding:1rem 1.45rem;
  border-radius:9999px;
  color:#052e16;
  background:#6ee7b7;
  font-weight:900;
  box-shadow:0 16px 36px rgba(0,0,0,.2);
}
.referral-whatsapp-cta:hover { background:white; transform:translateY(-2px); }
.referral-whatsapp-cta i { font-size:1.25rem; }

.home-motive-section {
  position:relative;
  overflow:hidden;
  padding:clamp(4rem,8vw,6.5rem) 0;
  color:#17221e;
  background:
    radial-gradient(circle at 9% 12%,rgba(16,185,129,.12),transparent 29rem),
    radial-gradient(circle at 96% 86%,rgba(217,119,6,.1),transparent 26rem),
    #f5f5f4;
}
.home-motive-section::before {
  content:"";
  position:absolute;
  top:3.5rem;
  right:-5rem;
  width:17rem;
  height:17rem;
  border:1px solid rgba(6,78,59,.12);
  border-radius:50%;
  box-shadow:0 0 0 2.7rem rgba(6,78,59,.025),0 0 0 5.4rem rgba(6,78,59,.018);
  pointer-events:none;
}
.home-motive-heading {
  position:relative;
  max-width:47rem;
  margin:0 auto 2.5rem;
  text-align:center;
}
.home-motive-heading > span,
.home-motive-copy > span {
  color:#047857;
  font-size:.68rem;
  font-weight:950;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.home-motive-heading h2 {
  margin-top:.7rem;
  font-size:clamp(2rem,5vw,3.75rem);
  font-weight:950;
  line-height:1.02;
  letter-spacing:-.04em;
}
.home-motive-heading p {
  max-width:38rem;
  margin:1rem auto 0;
  color:#57534e;
  font-size:clamp(1rem,2vw,1.15rem);
  line-height:1.7;
}
.home-motive-shell { position:relative; max-width:68rem; margin:0 auto; }
.home-motive-choices {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.65rem;
  margin:0 auto -1.35rem;
  padding:0 clamp(.65rem,3vw,2.4rem);
}
.home-motive-choices button {
  display:flex;
  align-items:center;
  gap:.85rem;
  min-width:0;
  padding:.95rem 1rem;
  border:1px solid #d6d3d1;
  border-radius:1rem;
  color:#44403c;
  background:rgba(255,255,255,.96);
  box-shadow:0 8px 25px rgba(28,25,23,.07);
  text-align:left;
  transition:transform .22s ease,border-color .22s ease,background .22s ease,color .22s ease,box-shadow .22s ease;
}
.home-motive-choices button:hover { transform:translateY(-3px); border-color:#6ee7b7; }
.home-motive-choices button:focus-visible { outline:3px solid rgba(16,185,129,.35); outline-offset:3px; }
.home-motive-choices button.active {
  border-color:#047857;
  color:white;
  background:#064e3b;
  box-shadow:0 14px 32px rgba(6,78,59,.25);
}
.home-motive-choices i {
  flex:0 0 auto;
  width:2.4rem;
  height:2.4rem;
  display:grid;
  place-items:center;
  border-radius:.75rem;
  color:#047857;
  background:#d1fae5;
}
.home-motive-choices button.active i { color:#064e3b; background:#6ee7b7; }
.home-motive-choices span { min-width:0; }
.home-motive-choices strong,
.home-motive-choices small { display:block; }
.home-motive-choices strong { font-size:.92rem; font-weight:950; }
.home-motive-choices small { margin-top:.12rem; color:#78716c; font-size:.66rem; line-height:1.3; }
.home-motive-choices button.active small { color:#a7f3d0; }
.home-motive-experience {
  display:grid;
  grid-template-columns:minmax(0,1.22fr) minmax(20rem,.78fr);
  min-height:31rem;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  border-radius:1.8rem;
  background:#0c1f1a;
  box-shadow:0 30px 70px rgba(28,25,23,.2);
}
.home-motive-visual {
  display:grid;
  min-width:0;
  padding:3.2rem 1.35rem 1.35rem;
  background:
    linear-gradient(145deg,rgba(5,150,105,.12),rgba(12,31,26,.52)),
    #091712;
}
.home-motive-visual img {
  width:100%;
  height:100%;
  min-height:25rem;
  object-fit:contain;
  border-radius:1.1rem;
  background:#07100d;
  transition:opacity .25s ease,transform .4s ease;
}
.home-motive-visual img.is-changing { opacity:0; transform:scale(.985); }
.home-motive-copy {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(2rem,5vw,4rem) clamp(1.5rem,4vw,3.25rem);
  color:white;
  background:
    radial-gradient(circle at 100% 0,rgba(16,185,129,.2),transparent 16rem),
    #0c1f1a;
  transition:opacity .2s ease,transform .2s ease;
}
.home-motive-copy.is-changing { opacity:.25; transform:translateY(5px); }
.home-motive-copy > span { color:#6ee7b7; }
.home-motive-copy h3 {
  margin-top:.65rem;
  font-size:clamp(1.8rem,4vw,3rem);
  font-weight:950;
  line-height:1.02;
  letter-spacing:-.035em;
}
.home-motive-copy p { margin-top:1.15rem; color:#d6d3d1; line-height:1.75; }
.home-motive-copy .btn-pro {
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  margin-top:1.7rem;
  padding:.9rem 1.15rem;
  border-radius:.9rem;
  color:#052e16;
  background:#6ee7b7;
  font-size:.82rem;
  font-weight:950;
}
.home-motive-copy .btn-pro:hover { background:white; transform:translateY(-2px); }

.home-referral-banner { padding:4rem 0; background:#0c1f1a; }
.home-referral-card {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:1.35rem;
  align-items:center;
  padding:clamp(1.25rem,3vw,2rem);
  border:1px solid rgba(167,243,208,.2);
  border-radius:1.6rem;
  color:white;
  background:linear-gradient(135deg,rgba(5,150,105,.22),rgba(255,255,255,.045));
}
.home-referral-icon {
  width:4.2rem;
  height:4.2rem;
  display:grid;
  place-items:center;
  border-radius:1.25rem;
  color:#064e3b;
  background:#6ee7b7;
  font-size:1.45rem;
}
.home-referral-card span { color:#6ee7b7; font-size:.65rem; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }
.home-referral-card h2 { margin-top:.25rem; font-size:clamp(1.35rem,3vw,2rem); font-weight:950; }
.home-referral-card p { margin-top:.35rem; color:#d6d3d1; font-size:.86rem; }
.home-referral-card > a {
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.85rem 1rem;
  border-radius:.9rem;
  color:#064e3b;
  background:#6ee7b7;
  font-size:.8rem;
  font-weight:900;
  white-space:nowrap;
}
.home-referral-card > a:hover { background:white; }
.referral-code-field {
  padding:1rem;
  border:1px dashed #a7f3d0;
  border-radius:1rem;
  background:#f0fdf4;
}

@media (max-width: 900px) {
  .home-motive-choices { padding:0 .8rem; }
  .home-motive-choices small { display:none; }
  .home-motive-experience { grid-template-columns:1fr; min-height:0; }
  .home-motive-visual { padding:3rem 1rem 1rem; }
  .home-motive-visual img { min-height:0; aspect-ratio:16 / 9; }
  .referral-values { grid-template-columns:1fr; }
  .referral-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .referral-flat-rate { grid-template-columns:auto 1fr; }
  .referral-flat-rate > strong { grid-column:1 / -1; padding-left:6rem; }
  .referral-calculator { grid-template-columns:1fr; }
  .home-referral-card { grid-template-columns:auto 1fr; }
  .home-referral-card > a { grid-column:1 / -1; justify-content:center; }
}

@media (max-width: 600px) {
  .home-motive-section { padding:4rem 0; }
  .home-motive-heading { margin-bottom:1.75rem; text-align:left; }
  .home-motive-heading p { margin-left:0; }
  .home-motive-choices {
    grid-template-columns:1fr;
    margin-bottom:-1rem;
    padding:0 .65rem;
  }
  .home-motive-choices button { padding:.78rem .9rem; }
  .home-motive-choices small { display:block; }
  .home-motive-experience { border-radius:1.35rem; }
  .home-motive-visual { padding:2.4rem .75rem .75rem; }
  .home-motive-copy { padding:1.75rem 1.3rem 2rem; }
  .referral-hero { min-height:680px; background-position:64% center; }
  .referral-steps { grid-template-columns:1fr; }
  .referral-steps article { min-height:220px; }
  .referral-calculator { padding:1rem; border-radius:1.35rem; }
  .referral-calculator-controls { padding:1rem; }
  .referral-calculator-result strong { font-size:2rem; }
  .referral-flat-rate { grid-template-columns:1fr; padding:1.35rem; }
  .referral-flat-rate > strong { grid-column:auto; padding-left:0; font-size:3.3rem; }
  .home-referral-card { grid-template-columns:1fr; text-align:left; }
  .home-referral-icon { width:3.6rem; height:3.6rem; }
  .home-referral-card > a { grid-column:auto; }
}

/* ===== Galería sin recortes ni franjas negras ===== */
.gallery-natural-grid {
  column-count:1;
  column-gap:1.25rem;
}
.gallery-natural-grid .gallery-item {
  display:inline-block;
  width:100%;
  height:auto!important;
  min-height:0!important;
  margin:0 0 1.25rem;
  break-inside:avoid;
  aspect-ratio:auto!important;
  vertical-align:top;
  background:white!important;
}
.gallery-natural-grid .gallery-item img {
  position:static!important;
  inset:auto!important;
  display:block;
  width:100%;
  height:auto!important;
  object-fit:contain!important;
  object-position:center;
  background:transparent!important;
  transition:transform .45s cubic-bezier(.22,1,.36,1);
}
.gallery-natural-grid .gallery-item:hover img { transform:none!important; }

@media (min-width: 640px) {
  .gallery-natural-grid { column-count:2; }
}

@media (min-width: 1024px) {
  .gallery-natural-grid { column-count:3; }
  .gallery-natural-grid-wide { column-count:2; }
}

/* ===== Avisos claros y confianza del sitio ===== */
.catch-disclaimer {
  display:flex;
  align-items:flex-start;
  justify-content:center;
  gap:.7rem;
  padding:1rem 1.15rem;
  border:1px solid #a7f3d0;
  border-radius:1rem;
  color:#065f46;
  background:#ecfdf5;
  font-size:.92rem;
  line-height:1.55;
  text-align:left;
}
.catch-disclaimer i { flex:0 0 auto; margin-top:.18rem; color:#059669; }
.secure-site-badge {
  width:max-content;
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  margin:0 auto 1rem;
  padding:.48rem .78rem;
  border:1px solid rgba(110,231,183,.24);
  border-radius:9999px;
  color:#a7f3d0;
  background:rgba(6,78,59,.28);
  font-size:.75rem;
  font-weight:800;
}

@media (max-width: 600px) {
  .gallery-natural-grid { column-gap:.9rem; }
  .gallery-natural-grid .gallery-item { margin-bottom:.9rem; }
  .catch-disclaimer { justify-content:flex-start; font-size:.86rem; }
  .modality-focus { justify-content:flex-start; }
  .spinning-option-card { grid-template-columns:1fr; padding:1.2rem; }
  .spinning-option-availability { grid-column:auto; }
}

/* ===== Composición editorial y ritmo visual 2026 ===== */
main > section { isolation:isolate; }

@media (min-width: 768px) {
  .modalities-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .experience-mode-card-lessons {
    grid-column:1 / -1;
    width:calc(50% - .75rem);
    justify-self:center;
  }
  .itinerary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
  .itinerary-card:nth-child(2) { margin-top:0; margin-bottom:0; }
}

@media (min-width: 1024px) {
  .modalities-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
  .experience-mode-card-primary,
  .experience-mode-card-secondary,
  .experience-mode-card-lessons { grid-column:auto; }
  .experience-mode-card-lessons { width:100%; justify-self:stretch; }
}

/* ===== Partners: red curada y preparada para crecer ===== */
.partners-hero { background-position:center 62%; }
.partners-section {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 92% 8%,rgba(16,185,129,.11),transparent 26rem),
    linear-gradient(180deg,#fafaf9 0%,#f5f5f4 100%);
}
.partners-section::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(115deg,transparent 0 72%,rgba(6,95,70,.035) 72% 100%);
}
.partners-section > div { position:relative; }
.partners-intro-grid {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(2rem,6vw,5.5rem);
  align-items:start;
}
.partners-intro-grid h2 {
  max-width:14ch;
  margin-top:0;
  color:#1c1917;
  font-size:clamp(2.15rem,4.8vw,4.7rem);
  font-weight:800;
  line-height:.98;
  letter-spacing:-.035em;
}
.partners-intro-copy {
  max-width:43rem;
  padding-top:.15rem;
  color:#57534e;
  font-size:1.05rem;
  line-height:1.8;
}
.partners-intro-copy p + p { margin-top:1rem; }
.partners-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.5rem;
  margin-top:3rem;
}
.partner-card {
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(120,113,108,.18);
  border-radius:1.35rem;
  background:#fff;
  box-shadow:0 16px 44px rgba(28,25,23,.08);
  transition:transform .9s ease-in-out,box-shadow .9s ease-in-out,border-color .9s ease-in-out;
}
@media (hover:hover) {
  .partner-card:hover {
    transform:translateY(-4px);
    border-color:rgba(16,185,129,.4);
    box-shadow:0 22px 54px rgba(28,25,23,.12);
  }
}
.partner-media {
  position:relative;
  overflow:hidden;
  aspect-ratio:4 / 3;
  background:#e7e5e4;
}
.partner-media > img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.partner-logo-wrap {
  position:absolute;
  left:1rem;
  bottom:1rem;
  display:grid;
  width:4.25rem;
  height:4.25rem;
  place-items:center;
  overflow:hidden;
  padding:.45rem;
  border:1px solid rgba(255,255,255,.65);
  border-radius:1rem;
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 30px rgba(28,25,23,.18);
}
.partner-logo-wrap img { max-width:100%; max-height:100%; object-fit:contain; }
.partner-card-body { padding:1.4rem; }
.partner-card-meta {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  color:#047857;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.partner-card-body h3 { margin-top:.8rem; color:#1c1917; font-size:1.35rem; font-weight:800; }
.partner-card-body > p { margin-top:.65rem; color:#57534e; line-height:1.65; }
.partner-card-links { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.2rem; }
.partner-card-links a { color:#047857; font-size:.85rem; font-weight:800; }
.partner-showcase {
  grid-column:1 / -1;
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(120,113,108,.18);
  border-radius:1.6rem;
  background:#fff;
  box-shadow:0 24px 70px rgba(28,25,23,.12);
  transition:border-color 1s ease-in-out,box-shadow 1s ease-in-out;
}
@media (hover:hover) {
  .partner-showcase:hover {
    border-color:rgba(16,185,129,.32);
    box-shadow:0 28px 78px rgba(28,25,23,.14);
  }
}
.partner-showcase-summary {
  display:grid;
  grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);
  min-width:0;
  cursor:pointer;
  list-style:none;
  background:linear-gradient(135deg,#fff 0%,#fafaf9 70%,#ecfdf5 100%);
}
.partner-showcase-summary::-webkit-details-marker { display:none; }
.partner-showcase-summary::marker { content:""; }
.partner-showcase-summary:focus-visible {
  outline:3px solid #10b981;
  outline-offset:-3px;
}
.partner-showcase-cover {
  position:relative;
  min-width:0;
  overflow:hidden;
  aspect-ratio:4 / 3;
  background:#1c1917;
}
.partner-showcase-cover::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,rgba(12,10,9,.38));
}
.partner-showcase-cover img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:filter .9s ease-in-out;
}
.partner-showcase-kawell .partner-showcase-cover { background:#fff; }
.partner-showcase-kawell .partner-showcase-cover img {
  object-fit:contain;
  padding:clamp(.55rem,1.5vw,1rem);
}
.partner-showcase-kawell .partner-showcase-cover::after {
  background:linear-gradient(180deg,transparent 70%,rgba(12,10,9,.12));
}
.partner-showcase-efimera .partner-showcase-cover { background:#030303; }
.partner-showcase-efimera .partner-showcase-cover img { object-fit:contain; }
.partner-showcase-efimera .partner-showcase-cover::after {
  background:linear-gradient(180deg,transparent 70%,rgba(0,0,0,.18));
}
.partner-showcase-marrones .partner-showcase-cover { background:#17120f; }
.partner-showcase-marrones .partner-showcase-cover img { object-fit:contain; }
.partner-showcase-marrones .partner-showcase-cover::after {
  background:linear-gradient(180deg,transparent 70%,rgba(12,10,9,.18));
}
.partner-showcase-gran-hotel .partner-showcase-cover { background:#f4dfb3; }
.partner-showcase-gran-hotel .partner-showcase-cover img {
  object-fit:contain;
  padding:clamp(.35rem,1vw,.7rem);
}
.partner-showcase-gran-hotel .partner-showcase-cover::after {
  background:linear-gradient(180deg,transparent 72%,rgba(70,18,24,.16));
}
@media (hover:hover) {
  .partner-showcase-summary:hover .partner-showcase-cover img { filter:saturate(1.05) brightness(1.02); }
}
.partner-local-badge {
  position:absolute;
  z-index:1;
  left:1.2rem;
  bottom:1.2rem;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.6rem .85rem;
  border:1px solid rgba(255,255,255,.28);
  border-radius:9999px;
  color:#fff;
  background:rgba(12,10,9,.65);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  font-size:.76rem;
  font-weight:800;
}
.partner-local-badge i { color:#6ee7b7; }
.partner-showcase-intro {
  align-self:center;
  padding:clamp(1.8rem,4.5vw,4.5rem);
}
.partner-showcase-kicker,
.partner-detail-kicker {
  display:block;
  color:#047857;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.partner-showcase-intro h3 {
  margin-top:.7rem;
  color:#1c1917;
  font-size:clamp(2.2rem,5vw,4.8rem);
  font-weight:900;
  line-height:.94;
  letter-spacing:-.04em;
}
.partner-showcase-location {
  display:flex;
  align-items:center;
  gap:.55rem;
  margin-top:1.15rem;
  color:#44403c;
  font-size:.94rem;
  font-weight:700;
}
.partner-showcase-location i { color:#059669; }
.partner-showcase-categories {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin-top:1.15rem;
}
.partner-showcase-categories span {
  padding:.45rem .7rem;
  border:1px solid #d6d3d1;
  border-radius:9999px;
  color:#44403c;
  background:rgba(255,255,255,.76);
  font-size:.69rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.partner-showcase-lede {
  max-width:37rem;
  margin-top:1.25rem;
  color:#57534e;
  line-height:1.75;
}
.partner-showcase-action {
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  margin-top:1.45rem;
  padding:.78rem 1rem;
  border-radius:.8rem;
  color:#fff;
  background:#047857;
  font-size:.84rem;
  font-weight:800;
  box-shadow:0 10px 24px rgba(4,120,87,.18);
}
.partner-showcase-action i { transition:transform .8s ease-in-out; }
.partner-showcase[open] .partner-showcase-action i { transform:rotate(180deg); }
.partner-showcase-detail {
  padding:clamp(1.5rem,4vw,4rem);
  border-top:1px solid #e7e5e4;
  background:#fff;
}
.partner-showcase[open] .partner-showcase-detail {
  animation:partner-detail-reveal .85s ease-in-out both;
}
@keyframes partner-detail-reveal {
  from { opacity:0; transform:translateY(10px); }
  to { opacity:1; transform:translateY(0); }
}
.partner-showcase.reveal-pending .partner-showcase-cover,
.partner-showcase.reveal-pending .partner-showcase-intro > * {
  opacity:0;
  transform:translateY(12px);
}
.partner-showcase.reveal-visible .partner-showcase-cover,
.partner-showcase.reveal-visible .partner-showcase-intro > * {
  opacity:1;
  transform:translateY(0);
  transition:opacity 1s ease-in-out,transform 1s ease-in-out;
}
.partner-showcase.reveal-visible .partner-showcase-intro > *:nth-child(2) { transition-delay:.05s; }
.partner-showcase.reveal-visible .partner-showcase-intro > *:nth-child(3) { transition-delay:.1s; }
.partner-showcase.reveal-visible .partner-showcase-intro > *:nth-child(4) { transition-delay:.15s; }
.partner-showcase.reveal-visible .partner-showcase-intro > *:nth-child(5) { transition-delay:.2s; }
.partner-showcase.reveal-visible .partner-showcase-intro > *:nth-child(6) { transition-delay:.25s; }
.partner-showcase[open] .partner-story-layout,
.partner-showcase[open] .partner-contact-actions,
.partner-showcase[open] .partner-photo-section,
.partner-showcase[open] .partner-video-section {
  animation:partner-content-reveal 1s ease-in-out both;
}
.partner-showcase[open] .partner-contact-actions { animation-delay:.08s; }
.partner-showcase[open] .partner-photo-section { animation-delay:.14s; }
.partner-showcase[open] .partner-video-section { animation-delay:.2s; }
.partner-showcase[open] .partner-photo-grid figure {
  animation:partner-content-reveal 1s ease-in-out both;
}
.partner-showcase[open] .partner-photo-grid figure:nth-child(2) { animation-delay:.05s; }
.partner-showcase[open] .partner-photo-grid figure:nth-child(3) { animation-delay:.1s; }
.partner-showcase[open] .partner-photo-grid figure:nth-child(4) { animation-delay:.15s; }
.partner-showcase[open] .partner-photo-grid figure:nth-child(n+5) { animation-delay:.2s; }
@keyframes partner-content-reveal {
  from { opacity:0; transform:translateY(12px); }
  to { opacity:1; transform:translateY(0); }
}
.partner-story-layout {
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(16rem,.55fr);
  gap:clamp(2rem,5vw,4.5rem);
  align-items:start;
}
.partner-story h4,
.partner-section-heading h4,
.partner-video-copy h4 {
  margin-top:.6rem;
  color:#1c1917;
  font-size:clamp(1.65rem,3.4vw,3rem);
  font-weight:800;
  line-height:1.08;
  letter-spacing:-.025em;
}
.partner-story > h4:first-child { margin-top:0; }
.partner-story p {
  margin-top:1.15rem;
  color:#57534e;
  line-height:1.82;
}
.partner-facts {
  display:grid;
  gap:.85rem;
  padding:1.2rem;
  border:1px solid #d6d3d1;
  border-radius:1.2rem;
  background:#fafaf9;
}
.partner-facts > div {
  display:grid;
  grid-template-columns:2.3rem minmax(0,1fr);
  gap:.7rem;
  align-items:start;
  padding:.85rem;
  border-radius:.9rem;
  background:#fff;
}
.partner-facts i {
  display:grid;
  width:2.3rem;
  height:2.3rem;
  place-items:center;
  border-radius:.7rem;
  color:#047857;
  background:#d1fae5;
}
.partner-facts span { color:#57534e; font-size:.86rem; line-height:1.55; }
.partner-facts strong { display:block; margin-bottom:.2rem; color:#1c1917; }
.partner-contact-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
  margin-top:clamp(1.5rem,3vw,2.25rem);
}
.partner-contact-link {
  display:inline-flex;
  min-height:3rem;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  padding:.78rem 1.05rem;
  border:1px solid #d6d3d1;
  border-radius:.85rem;
  color:#1c1917;
  background:#fff;
  font-size:.84rem;
  font-weight:800;
  line-height:1.2;
  box-shadow:0 8px 20px rgba(28,25,23,.07);
  transition:transform .8s ease-in-out,border-color .8s ease-in-out,background-color .8s ease-in-out,color .8s ease-in-out,box-shadow .8s ease-in-out;
}
.partner-contact-link i { color:#047857; font-size:1.08rem; }
.partner-contact-link-primary {
  border-color:#047857;
  color:#fff;
  background:#047857;
}
.partner-contact-link-primary i { color:#fff; }
@media (hover:hover) {
  .partner-contact-link:hover {
    transform:translateY(-2px);
    border-color:#059669;
    color:#064e3b;
    background:#ecfdf5;
    box-shadow:0 12px 26px rgba(4,120,87,.13);
  }
  .partner-contact-link-primary:hover {
    color:#fff;
    background:#065f46;
  }
}
.partner-contact-link:focus-visible {
  outline:3px solid rgba(16,185,129,.38);
  outline-offset:3px;
}
.partner-photo-section { margin-top:clamp(2.5rem,6vw,5rem); }
.partner-section-heading { max-width:42rem; }
.partner-photo-grid {
  display:flex;
  gap:1rem;
  overflow-x:auto;
  margin-top:1.5rem;
  padding:.15rem .15rem .9rem;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  scrollbar-color:#a8a29e transparent;
}
.partner-photo-grid figure {
  flex:0 0 clamp(17rem,31.5%,24rem);
  overflow:hidden;
  border-radius:1.1rem;
  background:#292524;
  box-shadow:0 14px 32px rgba(28,25,23,.1);
  scroll-snap-align:start;
}
.partner-photo-trigger {
  position:relative;
  display:block;
  width:100%;
  height:100%;
  min-height:17rem;
  padding:0;
  border:0;
  color:inherit;
  background:transparent;
  cursor:zoom-in;
}
.partner-photo-trigger::after {
  content:"\f00e";
  position:absolute;
  right:.85rem;
  bottom:.85rem;
  display:grid;
  width:2.45rem;
  height:2.45rem;
  place-items:center;
  border:1px solid rgba(255,255,255,.34);
  border-radius:9999px;
  color:#fff;
  background:rgba(12,10,9,.66);
  font-family:"Font Awesome 6 Free";
  font-weight:900;
  opacity:.88;
  transition:opacity .9s ease-in-out,transform .9s ease-in-out,background-color .9s ease-in-out;
}
.partner-photo-trigger:focus-visible {
  outline:3px solid #10b981;
  outline-offset:-3px;
}
.partner-photo-grid img {
  display:block;
  width:100%;
  height:17rem;
  object-fit:cover;
  object-position:var(--partner-photo-position,center);
  background:#e7e5e4;
  transition:filter 1.05s ease-in-out;
}
@media (hover:hover) {
  .partner-photo-trigger:hover img { filter:saturate(1.04) brightness(1.025); }
  .partner-photo-trigger:hover::after { opacity:1; transform:scale(1.06); background:#047857; }
}
.partner-video-section {
  display:grid;
  grid-template-columns:minmax(14rem,.58fr) minmax(0,1.42fr);
  gap:clamp(1.5rem,4vw,3.5rem);
  align-items:center;
  margin-top:clamp(2.5rem,6vw,5rem);
  padding:clamp(1.3rem,3vw,2.4rem);
  border-radius:1.35rem;
  color:#fff;
  background:linear-gradient(135deg,#1c1917,#064e3b);
}
.partner-video-copy .partner-detail-kicker { color:#6ee7b7; }
.partner-video-copy h4 { color:#fff; }
.partner-video-copy p { margin-top:1rem; color:#d6d3d1; line-height:1.7; }
.partner-video-frame {
  position:relative;
  overflow:hidden;
  aspect-ratio:16 / 9;
  border:1px solid rgba(255,255,255,.16);
  border-radius:1rem;
  background:#0c0a09;
  box-shadow:0 20px 45px rgba(0,0,0,.28);
}
.partner-video-frame iframe {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.partner-lightbox {
  position:fixed;
  z-index:120;
  inset:0;
  display:grid;
  place-items:center;
  padding:clamp(1rem,3vw,2rem);
  background:rgba(12,10,9,.94);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  animation:partner-lightbox-in 1s ease-in-out both;
}
.partner-lightbox[hidden] { display:none; }
.partner-lightbox-dialog {
  display:grid;
  width:100%;
  max-width:78rem;
  max-height:94vh;
  justify-items:center;
}
.partner-lightbox-stage {
  position:relative;
  width:min(94vw,78rem);
  max-width:100%;
  max-height:82vh;
  aspect-ratio:4 / 3;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.13);
  border-radius:1.25rem;
  background:#0c0a09;
  box-shadow:0 28px 80px rgba(0,0,0,.5);
  transition:width 1.3s ease-in-out,aspect-ratio 1.3s ease-in-out;
}
.partner-lightbox-image,
.partner-lightbox-ghost {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  user-select:none;
  -webkit-user-drag:none;
}
.partner-lightbox-image {
  z-index:1;
  opacity:1;
  touch-action:pan-y;
  transition:opacity 1.3s ease-in-out,filter 1.3s ease-in-out;
}
.partner-lightbox-image.is-entering {
  opacity:0;
  filter:brightness(.94);
  transition:none;
}
.partner-lightbox-ghost {
  z-index:2;
  opacity:0;
  pointer-events:none;
}
.partner-lightbox-ghost.is-active { opacity:1; transition:none; }
.partner-lightbox-ghost.is-active.is-leaving {
  opacity:0;
  filter:brightness(.94);
  transition:opacity 1.3s ease-in-out,filter 1.3s ease-in-out;
}
.partner-lightbox-close,
.partner-lightbox-nav {
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.25);
  border-radius:9999px;
  color:#fff;
  background:rgba(28,25,23,.72);
  box-shadow:0 12px 30px rgba(0,0,0,.28);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:background-color .85s ease-in-out,border-color .85s ease-in-out,transform .85s ease-in-out;
}
.partner-lightbox-close {
  position:fixed;
  z-index:5;
  top:max(1rem,env(safe-area-inset-top));
  right:max(1rem,env(safe-area-inset-right));
  width:3rem;
  height:3rem;
  font-size:1.2rem;
}
.partner-lightbox-nav {
  position:absolute;
  z-index:4;
  top:50%;
  width:3.25rem;
  height:3.25rem;
  transform:translateY(-50%);
}
.partner-lightbox-prev { left:.9rem; }
.partner-lightbox-next { right:.9rem; }
.partner-lightbox-close:focus-visible,
.partner-lightbox-nav:focus-visible { outline:3px solid #6ee7b7; outline-offset:3px; }
.partner-lightbox-nav:disabled { opacity:.35; cursor:not-allowed; }
@media (hover:hover) {
  .partner-lightbox-close:hover { border-color:#6ee7b7; background:#047857; transform:rotate(6deg); }
  .partner-lightbox-nav:hover { border-color:#6ee7b7; background:#047857; transform:translateY(-50%) scale(1.04); }
}
.partner-lightbox-meta {
  display:flex;
  width:100%;
  justify-content:center;
  gap:1.25rem;
  padding:.85rem .25rem 0;
  color:#e7e5e4;
  font-size:.86rem;
}
.partner-lightbox-meta span { flex:0 0 auto; color:#a7f3d0; font-weight:800; }
@keyframes partner-lightbox-in {
  from { opacity:0; }
  to { opacity:1; }
}
.partners-empty-card {
  position:relative;
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:1.5rem;
  align-items:center;
  min-height:17rem;
  overflow:hidden;
  padding:clamp(1.6rem,4vw,3.25rem);
  border:1px solid rgba(110,231,183,.2);
  border-radius:1.6rem;
  color:#f5f5f4;
  background:
    radial-gradient(circle at 86% 18%,rgba(16,185,129,.32),transparent 18rem),
    linear-gradient(135deg,#1c1917,#064e3b);
  box-shadow:0 24px 70px rgba(28,25,23,.18);
}
.partners-empty-card::after {
  content:"";
  position:absolute;
  right:-5rem;
  bottom:-9rem;
  width:23rem;
  height:23rem;
  border:1px solid rgba(167,243,208,.14);
  border-radius:50%;
  box-shadow:0 0 0 3.5rem rgba(167,243,208,.035),0 0 0 7rem rgba(167,243,208,.025);
}
.partners-empty-icon {
  position:relative;
  z-index:1;
  display:grid;
  width:5.25rem;
  height:5.25rem;
  place-items:center;
  border:1px solid rgba(167,243,208,.26);
  border-radius:1.35rem;
  color:#6ee7b7;
  background:rgba(6,78,59,.38);
  font-size:2rem;
}
.partners-empty-card > div { position:relative; z-index:1; max-width:48rem; }
.partners-empty-kicker {
  color:#6ee7b7;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.partners-empty-card h3 {
  margin-top:.55rem;
  font-size:clamp(1.65rem,3vw,2.7rem);
  font-weight:800;
  line-height:1.08;
}
.partners-empty-card p { margin-top:.85rem; max-width:42rem; color:#d6d3d1; line-height:1.7; }

/* Homepage — invitación a dejar una reseña real en Google */
.home-google-review-section {
  padding:0 0 5rem;
  background:#f5f5f4;
}
.home-google-review-card {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:1.5rem;
  padding:clamp(1.5rem,3vw,2.4rem);
  overflow:hidden;
  border:1px solid rgba(110,231,183,.2);
  border-radius:1.6rem;
  color:#fff;
  background:linear-gradient(135deg,#1c1917 0%,#102a22 100%);
  box-shadow:0 22px 55px rgba(28,25,23,.16);
}
.home-google-review-mark {
  display:grid;
  width:4.75rem;
  height:4.75rem;
  place-items:center;
  border:1px solid rgba(167,243,208,.24);
  border-radius:1.25rem;
  color:#6ee7b7;
  background:rgba(6,78,59,.34);
  font-size:1.85rem;
}
.home-google-review-copy > span {
  display:block;
  color:#6ee7b7;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.home-google-review-copy h2 {
  margin-top:.45rem;
  font-size:clamp(1.65rem,3vw,2.45rem);
  font-weight:800;
  line-height:1.1;
}
.home-google-review-copy p {
  margin-top:.7rem;
  max-width:44rem;
  color:#d6d3d1;
  line-height:1.65;
}
.home-google-review-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  min-height:3.2rem;
  padding:.85rem 1.25rem;
  border-radius:999px;
  color:#fff;
  background:#059669;
  font-weight:800;
  white-space:nowrap;
  box-shadow:0 10px 25px rgba(5,150,105,.24);
  transition:background-color .3s ease,transform .3s ease,box-shadow .3s ease;
}
.home-google-review-button:hover {
  background:#10b981;
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(5,150,105,.3);
}
.home-google-review-actions {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:.75rem;
}
.home-google-review-button-secondary {
  border:1px solid rgba(167,243,208,.28);
  color:#d1fae5;
  background:rgba(255,255,255,.07);
  box-shadow:none;
}
.home-google-review-button-secondary:hover {
  border-color:rgba(167,243,208,.5);
  color:#fff;
  background:rgba(255,255,255,.13);
  box-shadow:0 12px 28px rgba(0,0,0,.15);
}

@media (max-width: 900px) {
  .home-google-review-card { grid-template-columns:auto minmax(0,1fr); }
  .home-google-review-actions { grid-column:1 / -1; justify-content:flex-start; }
}

@media (max-width: 640px) {
  .home-google-review-section { padding-bottom:4rem; }
  .home-google-review-card { grid-template-columns:1fr; gap:1.1rem; }
  .home-google-review-mark { width:4.25rem; height:4.25rem; }
  .home-google-review-actions { display:grid; width:100%; }
  .home-google-review-button { width:100%; justify-self:stretch; white-space:normal; text-align:center; }
}

@media (max-width: 900px) {
  .partners-intro-grid { grid-template-columns:1fr; gap:1.5rem; }
  .partners-intro-grid h2 { max-width:18ch; }
  .partners-intro-copy { max-width:none; }
  .partners-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .partner-showcase-summary,
  .partner-story-layout,
  .partner-video-section { grid-template-columns:1fr; }
  .partner-showcase-cover { aspect-ratio:4 / 3; }
  .partner-facts { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .partner-facts > div { grid-template-columns:1fr; }
}

@media (max-width: 900px) {
  .home-philosophy-layout,
  .technical-kit-intro { grid-template-columns:1fr; }
  .home-philosophy-copy { max-width:none; }
  .home-philosophy-visual {
    aspect-ratio:auto;
    transform:none;
  }
  .technical-kit-intro h2 { max-width:15ch; margin-right:auto; margin-left:auto; }
  .technical-kit-visual { min-height:0; border-radius:1.5rem; }
  .technical-kit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .technical-kit-card-rods,
  .technical-kit-card-clothing { grid-column:auto; }
  .technical-kit-card-flies { grid-column:1 / -1; }
}

@media (max-width: 700px) {
  .home-philosophy-section::before { display:none; }
  .home-philosophy-layout { gap:2rem; }
  .home-philosophy-visual { aspect-ratio:auto; }
  .home-modality-note { padding:.9rem 1rem; }
  .modality-focus { text-align:left; }
  .technical-kit-visual { min-height:0; aspect-ratio:1080 / 566; }
  .technical-kit-grid { grid-template-columns:1fr; gap:1rem; }
  .technical-kit-card-rods,
  .technical-kit-card-clothing,
  .technical-kit-card-flies { grid-column:1; }
  .technical-kit-card { min-height:0; }
  .technical-kit-index { margin-bottom:1.75rem; }
  .technical-license-note { padding:1.15rem; text-align:left; }
  .partners-hero { background-position:58% center; }
  .partners-intro-grid h2 { max-width:15ch; }
  .partners-grid {
    display:grid;
    grid-template-columns:1fr;
    gap:1rem;
    overflow:visible;
    margin-right:0;
    margin-left:0;
    padding:0;
  }
  .partner-card { width:100%; }
  .partner-showcase {
    width:100%;
  }
  .partner-showcase-intro { padding:1.65rem 1.35rem 1.8rem; }
  .partner-showcase-detail { padding:1.35rem; }
  .partner-showcase-intro h3 { font-size:clamp(2.1rem,12vw,3.3rem); }
  .partner-facts { grid-template-columns:1fr; }
  .partner-facts > div { grid-template-columns:2.3rem minmax(0,1fr); }
  .partner-contact-actions { display:grid; grid-template-columns:1fr; }
  .partner-contact-link { width:100%; }
  .partner-photo-grid {
    gap:.85rem;
    margin-right:-1.35rem;
    margin-left:-1.35rem;
    padding:0 1.35rem .8rem;
    scrollbar-width:none;
  }
  .partner-photo-grid::-webkit-scrollbar { display:none; }
  .partner-photo-grid figure {
    flex:0 0 min(84vw,26rem);
  }
  .partner-photo-trigger,
  .partner-photo-grid img { height:clamp(15rem,70vw,21rem); min-height:0; }
  .partner-video-section { padding:1.2rem; }
  .partners-empty-card {
    flex:0 0 100%;
    grid-template-columns:1fr;
    gap:1.1rem;
    min-height:0;
    scroll-snap-align:start;
  }
  .partners-empty-icon { width:4.35rem; height:4.35rem; font-size:1.65rem; }
  .partner-lightbox { padding:.75rem; }
  .partner-lightbox-dialog { width:100%; }
  .partner-lightbox-stage { max-width:100%; max-height:76vh; border-radius:1rem; }
  .partner-lightbox-nav { width:2.85rem; height:2.85rem; }
  .partner-lightbox-prev { left:.45rem; }
  .partner-lightbox-next { right:.45rem; }
  .partner-lightbox-meta { padding:.75rem .25rem 0; font-size:.78rem; }
}

@media (max-width: 767px) {
  .experience-mode-card .experience-photo-frame {
    height:auto;
    aspect-ratio:3 / 2;
  }
  .guide-panorama { height:auto; aspect-ratio:1080 / 566; }
  .history-photo-fishing { aspect-ratio:1080 / 566; }
  .gallery-modal-stage { height:84vh; }
}

/* ===== Términos, consentimiento de reserva y enlaces legales ===== */
.footer-legal-link {
  margin-top:.7rem;
}
.footer-legal-link a {
  color:#a7f3d0;
  font-weight:700;
  text-decoration:underline;
  text-decoration-color:rgba(167,243,208,.42);
  text-underline-offset:.22rem;
  transition:color .35s ease-in-out,text-decoration-color .35s ease-in-out;
}
.footer-legal-link a:hover,
.footer-legal-link a:focus-visible {
  color:#fff;
  text-decoration-color:#fff;
}
.reservation-terms-link {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  margin-top:.85rem;
  color:#047857;
  font-size:.88rem;
  font-weight:800;
  transition:color .35s ease-in-out,transform .35s ease-in-out;
}
.reservation-terms-link:hover,
.reservation-terms-link:focus-visible {
  color:#064e3b;
  transform:translateX(2px);
}
.terms-acceptance-field {
  border:1px solid #d6d3d1;
  border-radius:.85rem;
  background:#fafaf9;
  padding:1rem;
  transition:border-color .35s ease-in-out,box-shadow .35s ease-in-out,background-color .35s ease-in-out;
}
.terms-acceptance-field.is-invalid {
  border-color:#ef4444;
  background:#fef2f2;
  box-shadow:0 0 0 3px rgba(239,68,68,.12);
}
.terms-acceptance-label {
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  color:#292524;
  font-size:.94rem;
  line-height:1.55;
  cursor:pointer;
}
.terms-acceptance-label input {
  width:1.2rem;
  height:1.2rem;
  margin-top:.12rem;
  flex:0 0 auto;
  accent-color:#059669;
}
.terms-acceptance-label a {
  color:#047857;
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:.18rem;
}
.terms-acceptance-label a:hover,
.terms-acceptance-label a:focus-visible { color:#064e3b; }
.terms-acceptance-error {
  margin:.65rem 0 0 1.95rem;
  color:#b91c1c;
  font-size:.82rem;
  font-weight:700;
  line-height:1.45;
}
.terms-language-panel[hidden],
[data-language-panel][hidden] {
  display:none!important;
}
.terms-hero { background-position:center 58%; }
.terms-section {
  position:relative;
  overflow:hidden;
  padding:clamp(4.5rem,8vw,7rem) 0;
  background:
    radial-gradient(circle at 94% 4%,rgba(16,185,129,.09),transparent 26rem),
    #f5f5f4;
}
.terms-shell { position:relative; z-index:1; }
.terms-intro {
  max-width:48rem;
  margin:0 auto clamp(2rem,5vw,3.5rem);
  text-align:center;
}
.terms-kicker {
  display:inline-flex;
  color:#047857;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.terms-intro h2 {
  margin-top:.75rem;
  color:#1c1917;
  font-size:clamp(2rem,4.5vw,3.2rem);
  font-weight:900;
  line-height:1.08;
  letter-spacing:-.035em;
}
.terms-intro p {
  margin-top:1rem;
  color:#57534e;
  font-size:clamp(1rem,2vw,1.1rem);
  line-height:1.75;
}
.terms-list {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.terms-card {
  min-width:0;
  padding:1.35rem 1.4rem 1.45rem;
  border:1px solid #e7e5e4;
  border-radius:1.1rem;
  background:rgba(255,255,255,.94);
  box-shadow:0 14px 34px rgba(28,25,23,.055);
  transition:border-color .55s ease-in-out,box-shadow .55s ease-in-out,transform .55s ease-in-out;
}
.terms-card:hover {
  transform:translateY(-2px);
  border-color:#a7f3d0;
  box-shadow:0 20px 42px rgba(28,25,23,.085);
}
.terms-card h3 {
  display:flex;
  align-items:baseline;
  gap:.65rem;
  color:#1c1917;
  font-size:1.05rem;
  font-weight:850;
  line-height:1.35;
}
.terms-card h3 span {
  color:#059669;
  font-size:.73rem;
  font-weight:900;
  letter-spacing:.08em;
}
.terms-card p {
  margin-top:.7rem;
  color:#57534e;
  font-size:.92rem;
  line-height:1.7;
}
.terms-closing {
  display:flex;
  align-items:flex-start;
  gap:.9rem;
  margin-top:1.25rem;
  padding:1.2rem 1.35rem;
  border:1px solid #a7f3d0;
  border-radius:1rem;
  color:#14532d;
  background:#ecfdf5;
  font-weight:750;
  line-height:1.6;
}
.terms-closing i { margin-top:.2rem; color:#059669; font-size:1.2rem; }

@media (max-width: 760px) {
  .terms-list { grid-template-columns:1fr; }
  .terms-card { padding:1.2rem; }
  .terms-card:hover { transform:none; }
  .terms-acceptance-error { margin-left:0; }
}

/* ===== Movimiento global fluido en escritorio y dispositivos móviles ===== */
:root {
  --pfe-motion-duration:1s;
  --pfe-motion-ease:cubic-bezier(.22,1,.36,1);
}

body.motion-page-enter main {
  animation:pfe-page-enter .72s var(--pfe-motion-ease) both;
}

body.page-is-leaving {
  pointer-events:none;
}

body.page-is-leaving main,
body.page-is-leaving footer {
  opacity:0;
  transform:translate3d(0,8px,0);
  transition:opacity .28s ease-in-out,transform .28s ease-in-out;
}

body.page-is-leaving nav {
  opacity:.96;
  transition:opacity .28s ease-in-out;
}

main.motion-language-change {
  animation:pfe-language-refresh .48s ease-in-out both;
}

@keyframes pfe-page-enter {
  from { opacity:.72; transform:translate3d(0,10px,0); }
  to { opacity:1; transform:translate3d(0,0,0); }
}

@keyframes pfe-language-refresh {
  0% { opacity:.76; }
  100% { opacity:1; }
}

[data-reveal].reveal-pending {
  opacity:0;
  transform:translate3d(0,16px,0);
  transition:
    opacity var(--pfe-motion-duration) ease-in-out,
    transform var(--pfe-motion-duration) var(--pfe-motion-ease);
  transition-delay:var(--reveal-delay,0ms);
  will-change:opacity,transform;
}

[data-reveal].reveal-pending.reveal-left {
  transform:translate3d(-18px,0,0);
}

[data-reveal].reveal-pending.reveal-right {
  transform:translate3d(18px,0,0);
}

[data-reveal].reveal-pending.reveal-visible {
  opacity:1!important;
  transform:translate3d(0,0,0);
}

.gallery-item.reveal-pending {
  transition:
    opacity .95s ease-in-out,
    transform .95s var(--pfe-motion-ease),
    box-shadow .55s ease-in-out;
  transition-delay:var(--reveal-delay,0ms);
}

.faq-toggle + :not(.hidden) {
  animation:pfe-disclosure-enter .48s ease-in-out both;
}

@keyframes pfe-disclosure-enter {
  from { opacity:0; transform:translate3d(0,-6px,0); }
  to { opacity:1; transform:translate3d(0,0,0); }
}

@media (hover:hover) and (pointer:fine) {
  .gallery-item.reveal-pending.reveal-visible:hover {
    transform:translate3d(0,-2px,0);
  }
}

/* ===== Pre-reserva progresiva en dos pasos ===== */
.reservation-trust-fact { min-width:0; padding:1rem .85rem; border:1px solid #e7e5e4; border-radius:1rem; text-align:center; background:white; box-shadow:0 10px 28px rgba(28,25,23,.055); }
.reservation-trust-fact i { display:block; margin-bottom:.55rem; color:#059669; font-size:1.15rem; }
.reservation-trust-fact strong,.reservation-trust-fact span { display:block; }
.reservation-trust-fact strong { color:#1c1917; font-size:.86rem; }
.reservation-trust-fact span { margin-top:.2rem; color:#78716c; font-size:.7rem; line-height:1.35; }
.reservation-form-progress { margin:0 0 1.6rem; }
.reservation-form-progress-track { height:.35rem; overflow:hidden; border-radius:999px; background:#e7e5e4; }
.reservation-form-progress-track span { display:block; width:50%; height:100%; border-radius:inherit; background:linear-gradient(90deg,#047857,#34d399); transition:width .55s ease-in-out; }
.reservation-form-progress ol { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin-top:.8rem; }
.reservation-form-progress li { display:flex; align-items:center; gap:.55rem; color:#a8a29e; font-size:.78rem; font-weight:800; }
.reservation-form-progress li strong { width:1.75rem; height:1.75rem; display:grid; flex:0 0 1.75rem; place-items:center; border:1px solid #d6d3d1; border-radius:999px; background:#fafaf9; }
.reservation-form-progress li.is-active { color:#065f46; }
.reservation-form-progress li.is-active strong { border-color:#059669; color:white; background:#059669; }
[data-reservation-step] { display:grid; gap:1.5rem; }
[data-reservation-step][hidden], [data-reservation-step-action][hidden], .reservation-submit-actions[hidden] { display:none!important; }
.reservation-step-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:.25rem; }
.reservation-step-actions p { max-width:31rem; color:#78716c; font-size:.8rem; line-height:1.5; }
.reservation-step-actions p i { margin-right:.35rem; color:#059669; }
.reservation-next-button { display:inline-flex; min-height:46px; flex:0 0 auto; align-items:center; justify-content:center; gap:.55rem; padding:.75rem 1.2rem; border-radius:.65rem; color:white; background:#1c1917; font-weight:800; }
.reservation-submit-actions { display:grid; grid-template-columns:auto minmax(0,1fr); gap:.75rem; }
.reservation-back-button { display:inline-flex; min-height:46px; align-items:center; justify-content:center; gap:.5rem; padding:.75rem 1rem; border:1px solid #d6d3d1; border-radius:.65rem; color:#44403c; background:white; font-weight:800; transition:border-color .25s ease,color .25s ease,background-color .25s ease; }
.reservation-back-button:hover { border-color:#059669; color:#065f46; background:#ecfdf5; }
.reservation-date-help { margin-top:.55rem; color:#78716c; font-size:.74rem; line-height:1.55; }
.reservation-date-help a { color:#047857; font-weight:800; text-decoration:underline; text-underline-offset:2px; }
.reservation-date-field { position:relative; }
.reservation-date-native-grid { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.reservation-date-native-grid label > span { display:block; margin-bottom:.35rem; color:#57534e; font-size:.7rem; font-weight:800; }
.reservation-date-field.is-enhanced .reservation-date-native-grid {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  opacity:0!important;
  pointer-events:none!important;
}
.reservation-date-field.is-enhanced .reservation-date-native {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  margin:-1px!important;
  padding:0!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  border:0!important;
  opacity:0!important;
  pointer-events:none!important;
}
.reservation-calendar {
  width:100%;
  padding:.85rem;
  border:1px solid #d6d3d1;
  border-radius:1rem;
  background:linear-gradient(180deg,#fff,#fafaf9);
  box-shadow:0 12px 32px rgba(28,25,23,.055);
  transition:border-color .35s ease-in-out,box-shadow .35s ease-in-out;
}
.reservation-calendar:focus-visible {
  outline:3px solid rgba(16,185,129,.24);
  outline-offset:3px;
  border-color:#059669;
}
.reservation-calendar.is-invalid {
  border-color:#ef4444;
  box-shadow:0 0 0 3px rgba(254,202,202,.7);
}
.reservation-range-overview {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:.55rem;
  margin-bottom:.75rem;
  padding:.75rem;
  border:1px solid #d1fae5;
  border-radius:.85rem;
  background:#f0fdf4;
}
.reservation-range-overview > div { min-width:0; }
.reservation-range-overview > i { color:#10b981; font-size:.72rem; }
.reservation-range-overview span { display:block; color:#047857; font-size:.58rem; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.reservation-range-overview strong { display:block; margin-top:.2rem; overflow-wrap:anywhere; color:#1c1917; font-size:.7rem; line-height:1.35; }
.reservation-range-duration { grid-column:1 / -1; padding-top:.55rem; border-top:1px solid #d1fae5; }
.reservation-range-duration strong { color:#047857; font-size:.82rem; }
.reservation-range-guidance { display:flex; align-items:flex-start; gap:.45rem; margin:0 0 .8rem; color:#57534e; font-size:.66rem; line-height:1.45; }
.reservation-range-guidance i { margin-top:.12rem; color:#059669; }
.reservation-calendar-header {
  display:grid;
  grid-template-columns:2.35rem minmax(0,1fr) 2.35rem;
  align-items:center;
  gap:.55rem;
}
.reservation-calendar-month {
  color:#1c1917;
  font-size:.92rem;
  font-weight:900;
  text-align:center;
  line-height:1.3;
}
.reservation-calendar-nav {
  display:grid;
  width:2.35rem;
  height:2.35rem;
  place-items:center;
  border:1px solid #d6d3d1;
  border-radius:.7rem;
  color:#44403c;
  background:#fff;
  transition:color .3s ease-in-out,border-color .3s ease-in-out,background-color .3s ease-in-out,transform .3s ease-in-out;
}
.reservation-calendar-nav:hover:not(:disabled) { border-color:#059669; color:#065f46; background:#ecfdf5; transform:translateY(-1px); }
.reservation-calendar-nav:disabled { color:#d6d3d1; background:#f5f5f4; cursor:not-allowed; }
.reservation-calendar-weekdays,
.reservation-calendar-grid {
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:.24rem;
}
.reservation-calendar-weekdays { margin-top:.85rem; }
.reservation-calendar-weekdays span {
  color:#78716c;
  font-size:.61rem;
  font-weight:900;
  letter-spacing:.04em;
  text-align:center;
  text-transform:uppercase;
}
.reservation-calendar-grid { margin-top:.38rem; }
.reservation-calendar-empty,
.reservation-calendar-day { aspect-ratio:1; min-width:0; }
.reservation-calendar-day {
  display:grid;
  place-items:center;
  border:1px solid transparent;
  border-radius:.62rem;
  color:#292524;
  background:#fff;
  font-size:.76rem;
  font-weight:800;
  transition:color .28s ease-in-out,border-color .28s ease-in-out,background-color .28s ease-in-out,box-shadow .28s ease-in-out,transform .28s ease-in-out;
}
.reservation-calendar-day.is-available { border-color:#e7e5e4; }
.reservation-calendar-day.is-available:hover { border-color:#10b981; color:#065f46; background:#ecfdf5; transform:translateY(-1px); }
.reservation-calendar-day.is-blocked { color:#a8a29e; background:#f5f5f4; cursor:not-allowed; text-decoration:line-through; }
.reservation-calendar-day.is-today { box-shadow:inset 0 0 0 1px #78716c; }
.reservation-calendar-day.is-in-range { border-color:#a7f3d0; color:#065f46; background:#d1fae5; }
.reservation-calendar-day.is-selected {
  border-color:#047857;
  color:#fff;
  background:#047857;
  box-shadow:0 8px 18px rgba(4,120,87,.24);
}
.reservation-calendar-day:focus-visible { outline:3px solid rgba(16,185,129,.28); outline-offset:1px; }
.reservation-calendar-legend {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem .85rem;
  margin-top:.85rem;
  padding-top:.75rem;
  border-top:1px solid #e7e5e4;
}
.reservation-calendar-legend span { display:inline-flex; align-items:center; gap:.32rem; color:#78716c; font-size:.58rem; line-height:1.3; }
.reservation-calendar-legend b { font-weight:750; }
.reservation-calendar-legend i { display:block; width:.58rem; height:.58rem; flex:0 0 .58rem; border-radius:999px; }
.reservation-calendar-legend i.is-blocked { background:#d6d3d1; }
.reservation-calendar-legend i.is-available { border:1px solid #10b981; background:#ecfdf5; }
.reservation-calendar-legend i.is-selected { background:#047857; }
.reservation-calendar-footer { display:flex; align-items:center; justify-content:space-between; gap:.7rem; margin-top:.72rem; }
.reservation-calendar-status { color:#57534e; font-size:.69rem; line-height:1.45; }
.reservation-calendar-status strong { color:#1c1917; }
.reservation-calendar-clear { flex:0 0 auto; padding:.38rem .55rem; border:1px solid #d6d3d1; border-radius:.55rem; color:#57534e; background:#fff; font-size:.61rem; font-weight:850; transition:color .25s ease-in-out,border-color .25s ease-in-out,background-color .25s ease-in-out; }
.reservation-calendar-clear:hover { border-color:#059669; color:#065f46; background:#ecfdf5; }

/* ===== Orientación para elegir jornada ===== */
.experience-guidance-section {
  padding:clamp(3rem,6vw,4.5rem) 0;
  background:
    radial-gradient(circle at 10% 12%,rgba(16,185,129,.11),transparent 26rem),
    linear-gradient(180deg,#f5f5f4,#fff);
}
.experience-comparison-cta { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.35rem 1.5rem; border:1px solid #d6d3d1; border-radius:1.1rem; background:white; box-shadow:0 18px 45px rgba(28,25,23,.06); }
.experience-comparison-cta p { max-width:45rem; color:#57534e; font-size:.86rem; line-height:1.55; }
.experience-comparison-cta strong { color:#1c1917; }
.experience-comparison-cta a { display:inline-flex; min-height:44px; flex:0 0 auto; align-items:center; gap:.55rem; padding:.75rem 1.05rem; border-radius:.75rem; color:white; background:#1c1917; font-size:.8rem; font-weight:900; }

/* ===== Planificación del viaje ===== */
.trip-preparation-section { padding:clamp(4.5rem,8vw,6.5rem) 0; background:#fafaf9; }
.trip-preparation-heading { max-width:51rem; margin:0 auto 2.5rem; text-align:center; }
.trip-preparation-heading > span { color:#047857; font-size:.68rem; font-weight:950; letter-spacing:.14em; text-transform:uppercase; }
.trip-preparation-heading h2 { margin-top:.7rem; color:#1c1917; font-size:clamp(2rem,4.2vw,3.25rem); font-weight:950; line-height:1.05; letter-spacing:-.035em; }
.trip-preparation-heading p { margin:1rem auto 0; color:#57534e; font-size:1rem; line-height:1.7; }
.trip-route { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:.8rem; padding:1rem; border:1px solid #d6d3d1; border-radius:1.5rem; background:white; box-shadow:0 18px 45px rgba(28,25,23,.06); }
.trip-route > i { color:#10b981; }
.trip-route article { display:flex; align-items:center; gap:.85rem; min-width:0; padding:.8rem; }
.trip-route article > span { display:grid; width:2.5rem; height:2.5rem; flex:0 0 2.5rem; place-items:center; border-radius:999px; color:white; background:#047857; font-size:.78rem; font-weight:950; }
.trip-route small { color:#047857; font-size:.62rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.trip-route h3 { margin-top:.12rem; color:#1c1917; font-size:.92rem; font-weight:900; }
.trip-route p { margin-top:.22rem; color:#78716c; font-size:.68rem; line-height:1.45; }
.trip-preparation-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.trip-preparation-grid article { min-width:0; padding:1.3rem; border:1px solid #e7e5e4; border-radius:1.2rem; background:white; }
.trip-preparation-grid article > i { display:grid; width:2.7rem; height:2.7rem; place-items:center; border-radius:.9rem; color:#047857; background:#d1fae5; }
.trip-preparation-grid h3 { margin-top:1rem; color:#1c1917; font-size:1rem; font-weight:900; }
.trip-preparation-grid p { margin-top:.5rem; color:#57534e; font-size:.78rem; line-height:1.6; }
.species-highlight { position:relative; overflow:hidden; border:1px solid rgba(52,211,153,.42); background:linear-gradient(135deg,#0c2f28 0%,#1c1917 65%,#292524 100%); box-shadow:0 22px 55px rgba(12,47,40,.22); }
.species-highlight::after { content:""; position:absolute; inset:auto -4rem -5rem auto; width:13rem; height:13rem; border-radius:999px; background:rgba(16,185,129,.12); filter:blur(2px); pointer-events:none; }
.species-highlight-copy { display:flex; align-items:center; gap:1rem; position:relative; z-index:1; }
.species-highlight-icon { display:grid; width:3.25rem; height:3.25rem; flex:0 0 3.25rem; place-items:center; border-radius:1rem; color:#d1fae5; background:rgba(16,185,129,.2); box-shadow:inset 0 0 0 1px rgba(110,231,183,.3); }
.species-highlight h3 { color:#fff; font-size:clamp(1.25rem,2.2vw,1.65rem); }
.species-highlight-copy p { color:#d1fae5; font-size:clamp(.95rem,1.5vw,1.08rem); font-weight:700; }
.species-highlight > p { position:relative; z-index:1; color:#d6d3d1; }

@media (max-width:960px) {
  .trip-route { grid-template-columns:1fr; }
  .trip-route > i { transform:rotate(90deg); justify-self:center; }
  .trip-preparation-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:639px) {
  .reservation-step-actions { align-items:stretch; flex-direction:column; }
  .reservation-next-button { width:100%; }
  .reservation-submit-actions { grid-template-columns:1fr; }
  .reservation-submit-actions button { width:100%; }
  .experience-guidance-section,.trip-preparation-section { padding:4rem 0; }
  .experience-comparison-cta { align-items:stretch; flex-direction:column; }
  .experience-comparison-cta a { width:100%; justify-content:center; }
  .trip-route { padding:.6rem; }
  .trip-route article { padding:.75rem .55rem; }
  .trip-preparation-grid { grid-template-columns:1fr; }
  .species-highlight-copy { align-items:flex-start; }
  .reservation-calendar { padding:.72rem; border-radius:.9rem; }
  .reservation-date-native-grid { grid-template-columns:1fr; }
  .reservation-calendar-weekdays,.reservation-calendar-grid { gap:.18rem; }
  .reservation-calendar-day { border-radius:.52rem; font-size:.72rem; }
  .reservation-calendar-footer { align-items:flex-start; flex-direction:column; }
}

/* El menú conserva su lógica actual, pero ahora abre y cierra progresivamente. */
@media (max-width:1023px) {
  #mobile-menu {
    display:block!important;
    max-height:0;
    overflow:hidden;
    padding-top:0!important;
    padding-bottom:0!important;
    border-color:transparent;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate3d(0,-10px,0);
    transition:
      max-height .65s ease-in-out,
      padding .55s ease-in-out,
      border-color .35s ease-in-out,
      opacity .42s ease-in-out,
      transform .55s var(--pfe-motion-ease),
      visibility 0s linear .65s;
  }

  #mobile-menu:not(.hidden) {
    max-height:calc(100svh - 80px);
    overflow-y:auto;
    padding-top:1rem!important;
    padding-bottom:calc(1rem + env(safe-area-inset-bottom))!important;
    border-color:#292524;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translate3d(0,0,0);
    transition-delay:0s;
  }
}

@media (max-width:767px) {
  :root { --pfe-motion-duration:.9s; }

  [data-reveal].reveal-pending,
  [data-reveal].reveal-pending.reveal-left,
  [data-reveal].reveal-pending.reveal-right {
    transform:translate3d(0,12px,0);
  }

  [data-reveal].reveal-pending.reveal-visible {
    transform:translate3d(0,0,0);
  }

  #mobile-menu:not(.hidden) {
    max-height:calc(100svh - 64px);
  }
}

@media (prefers-reduced-motion:reduce) {
  body.motion-page-enter main,
  main.motion-language-change,
  .faq-toggle + :not(.hidden) {
    animation:none!important;
  }

  body.page-is-leaving main,
  body.page-is-leaving footer,
  body.page-is-leaving nav,
  [data-reveal].reveal-pending,
  #mobile-menu,
  #mobile-menu:not(.hidden) {
    transition:none!important;
    transform:none!important;
  }

  [data-reveal].reveal-pending {
    opacity:1!important;
  }
}
