/* ============================================================
   TOKENS — Corcovado Nature & Adventures
   ============================================================ */
:root{
  --bg-canopy: #0F2419;   /* fondo principal, verde selva casi negro */
  --bg-jungle: #17352A;   /* superficies secundarias */
  --bg-river:  #3E7C63;   /* verde río / acento medio */
  --gold:      #D4A24C;   /* luz de dosel, único acento cálido */
  --paper:     #F2ECD9;   /* secciones claras, tipo papel de mapa */
  --ink:       #12201B;   /* texto sobre --paper */
  --mist:      #CFE0D6;   /* texto secundario sobre fondo oscuro */

  --font-display: "Fraunces", serif;
  --font-body: "Public Sans", sans-serif;
  --font-mono: "IBM Plex Mono", monospace;

  --radius: 4px;
  --max-width: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  margin:0;
  background:var(--bg-canopy);
  color:var(--mist);
  font-family:var(--font-body);
  line-height:1.55;
  overflow-x:hidden;
  max-width:100vw;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.container{max-width:var(--max-width);margin:0 auto;padding:0 32px;}

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

/* View Transitions nativas (Chrome/Edge 126+): morph automático entre
   la tarjeta y la cabecera del detalle vía view-transition-name. */
@view-transition{navigation:auto;}

/* .media-fade — degradado reutilizable con foto de fondo.
   <div class="media-fade" style="--media-fade-color:#3E7C63;">
     <img class="media-fade-img" src="..." data-compute-color>
   </div>
   tour-media.js calcula --media-fade-color desde la foto si es posible. */
.media-fade{
  position:relative;overflow:hidden;
  background:var(--media-fade-color, var(--bg-jungle));
}
.media-fade-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  -webkit-mask-image:linear-gradient(to bottom,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,.976) 10%,
    rgba(0,0,0,.905) 20%,
    rgba(0,0,0,.794) 30%,
    rgba(0,0,0,.655) 40%,
    rgba(0,0,0,.5) 50%,
    rgba(0,0,0,.345) 60%,
    rgba(0,0,0,.206) 70%,
    rgba(0,0,0,.095) 80%,
    rgba(0,0,0,.024) 90%,
    rgba(0,0,0,0) 100%);
  mask-image:linear-gradient(to bottom,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,.976) 10%,
    rgba(0,0,0,.905) 20%,
    rgba(0,0,0,.794) 30%,
    rgba(0,0,0,.655) 40%,
    rgba(0,0,0,.5) 50%,
    rgba(0,0,0,.345) 60%,
    rgba(0,0,0,.206) 70%,
    rgba(0,0,0,.095) 80%,
    rgba(0,0,0,.024) 90%,
    rgba(0,0,0,0) 100%);
  transition:transform .4s ease;
}
/* Tiñe la foto con el color de fondo a medida que baja, además de la máscara. */
.media-fade::after{
  content:"";
  position:absolute;inset:0;pointer-events:none;z-index:1;
  background:linear-gradient(to bottom,
    color-mix(in srgb, var(--media-fade-target, var(--bg-canopy)) 0%, transparent) 0%,
    color-mix(in srgb, var(--media-fade-target, var(--bg-canopy)) 2%, transparent) 10%,
    color-mix(in srgb, var(--media-fade-target, var(--bg-canopy)) 10%, transparent) 20%,
    color-mix(in srgb, var(--media-fade-target, var(--bg-canopy)) 21%, transparent) 30%,
    color-mix(in srgb, var(--media-fade-target, var(--bg-canopy)) 35%, transparent) 40%,
    color-mix(in srgb, var(--media-fade-target, var(--bg-canopy)) 50%, transparent) 50%,
    color-mix(in srgb, var(--media-fade-target, var(--bg-canopy)) 65%, transparent) 60%,
    color-mix(in srgb, var(--media-fade-target, var(--bg-canopy)) 79%, transparent) 70%,
    color-mix(in srgb, var(--media-fade-target, var(--bg-canopy)) 90%, transparent) 80%,
    color-mix(in srgb, var(--media-fade-target, var(--bg-canopy)) 98%, transparent) 90%,
    var(--media-fade-target, var(--bg-canopy)) 100%);
}
.media-fade--blur .media-fade-img{
  filter:blur(var(--media-blur, 5px)) saturate(1.05);
  transform:scale(1.08); /* oculta el borde borroso del filtro */
}
.media-fade:hover .media-fade-img{transform:scale(1.06);}
.media-fade--blur:hover .media-fade-img{transform:scale(1.14);}

/* ============================== IDIOMA ES/EN/FR ============================== */
/* display:revert restaura el display natural de cada etiqueta (p, li, span...). */
.lang-es, .lang-en, .lang-fr{display:none;}
html[data-lang="es"] .lang-es,
html[data-lang="en"] .lang-en,
html[data-lang="fr"] .lang-fr{display:revert;}

body{transition:opacity .18s ease;animation:page-fade-in .28s ease;}
body.lang-fade{opacity:.35;}
body.page-fade-out{opacity:0;transition:opacity .18s ease;}
@keyframes page-fade-in{from{opacity:0;}to{opacity:1;}}

.header-right{display:flex;align-items:center;gap:26px;}

.lang-toggle{
  position:static;
  display:flex;align-items:center;gap:5px;
  background:rgba(15,36,25,.85);backdrop-filter:blur(6px);
  border:1px solid rgba(212,162,76,.4);border-radius:20px;
  padding:8px 14px;cursor:pointer;
  font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;
  color:var(--mist);
}
.lang-toggle.is-floating{
  position:fixed;
  top:calc(20px + env(safe-area-inset-top));
  right:calc(24px + env(safe-area-inset-right));
  z-index:200;
}
.lang-toggle:hover{border-color:var(--gold);}
.lang-toggle-divider{opacity:.4;}
.lang-toggle-option{transition:color .15s ease, font-weight .15s ease;}
.lang-toggle[data-active="es"] .lang-toggle-option[data-lang-value="es"],
.lang-toggle[data-active="en"] .lang-toggle-option[data-lang-value="en"],
.lang-toggle[data-active="fr"] .lang-toggle-option[data-lang-value="fr"]{
  color:var(--gold);font-weight:700;
}
.lang-toggle[data-active="crc"] .lang-toggle-option[data-currency-value="crc"],
.lang-toggle[data-active="usd"] .lang-toggle-option[data-currency-value="usd"]{
  color:var(--gold);font-weight:700;
}

/* ============================== MONEDA CRC/USD ============================== */
.currency-crc, .currency-usd{display:none;}
html[data-currency="crc"] .currency-crc,
html[data-currency="usd"] .currency-usd{display:revert;}
@keyframes lang-pop{
  0%{transform:scale(1);}
  45%{transform:scale(1.18);}
  100%{transform:scale(1);}
}
.lang-toggle.is-pop{animation:lang-pop .38s cubic-bezier(.34,1.56,.64,1);}
.site-header{
  display:flex;justify-content:space-between;align-items:center;
  max-width:var(--max-width);margin:0 auto;
  padding:28px 32px 16px;
}
.brand{display:flex;flex-direction:row;align-items:center;gap:12px;}
.brand-logo{height:40px;width:auto;object-fit:contain;flex-shrink:0;filter:brightness(0) invert(1);}
.brand-text{display:flex;flex-direction:column;gap:2px;}
.brand-mark{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold);
}
.brand-name{
  font-family:var(--font-display);font-size:22px;font-weight:600;color:var(--paper);
}
.brand-name.small{font-size:18px;}
.site-nav{display:flex;gap:28px;font-size:15px;}
.site-nav a{
  color:var(--mist);position:relative;padding-bottom:4px;
  transition:color .2s ease;
}
.site-nav a:hover, .site-nav a:focus-visible{color:var(--gold);}
.site-nav a:focus-visible{outline:2px solid var(--gold);outline-offset:4px;}

/* ============================== HERO ============================== */
.hero{
  position:relative;
  padding:64px 32px 40px;
  max-width:var(--max-width);margin:0 auto;
  display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;
}
.hero-eyebrow{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold);margin:0 0 18px;
}
.hero h1{
  font-family:var(--font-display);
  font-size:clamp(40px, 5.2vw, 68px);
  line-height:1.02;
  font-weight:600;
  color:var(--paper);
  margin:0 0 22px;
}
.hero h1 em{font-style:italic;color:var(--bg-river);font-weight:500;}
.hero p.lede{font-size:18px;max-width:46ch;color:var(--mist);margin:0 0 32px;}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;}

.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 26px;border-radius:var(--radius);
  font-size:15px;font-weight:600;font-family:var(--font-body);
  border:1px solid transparent;cursor:pointer;
  transition:transform .15s ease, background .2s ease, border-color .2s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
.btn-primary{background:var(--gold);color:var(--ink);}
.btn-primary:hover{background:#e3b464;}
.btn-ghost{border-color:rgba(242,236,217,.35);color:var(--paper);}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold);}

/* Mapa de rutas desde Sierpe. */
.route-card{
  background:var(--bg-jungle);
  border:1px solid rgba(212,162,76,.18);
  border-radius:8px;
  padding:26px 22px;
}
.route-card-label{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold);margin-bottom:14px;display:block;
}
.route-svg{width:100%;height:auto;display:block;}

.route-land{fill:var(--bg-river);opacity:.16;stroke:none;}

.route-stop-label{font-family:var(--font-mono);font-size:10.5px;fill:var(--mist);}
.route-stop-name{font-family:var(--font-body);font-size:13px;font-weight:600;fill:var(--paper);}
.route-line{
  fill:none;stroke:var(--bg-river);stroke-width:2;
  stroke-dasharray:6 6;
  stroke-dashoffset:1000;
  animation:draw 2.2s ease forwards;
}
@keyframes draw{to{stroke-dashoffset:0;}}
.route-dot{
  fill:var(--gold);
  transform-box:fill-box;transform-origin:center;
  transition:transform .2s ease;
}
.route-hub{fill:var(--bg-canopy);stroke:var(--gold);stroke-width:2;}
.route-branch{
  fill:none;stroke-width:1.6;stroke-linecap:round;
  stroke-dasharray:1 6;
  opacity:0;
  animation:branch-in .6s ease forwards;
  animation-delay:1.7s;
}
.route-svg .route-branch + .route-map-link .route-dot{animation:dot-in .3s ease forwards;animation-delay:2.15s;opacity:0;}
@keyframes branch-in{from{opacity:0;}to{opacity:1;}}
@keyframes dot-in{from{opacity:0;transform:scale(.4);}to{opacity:1;transform:scale(1);}}
.route-compass{color:rgba(242,236,217,.35);}
.route-compass-label{font-family:var(--font-mono);font-size:9px;fill:currentColor;}

/* Tours enlazados desde el mapa: cursor, resalte al pasar el mouse o enfocar */
.route-map-link{cursor:pointer;}
.route-map-link:hover .route-dot,
.route-map-link:focus-visible .route-dot{transform:scale(1.5);}
.route-map-link:hover .route-stop-name,
.route-map-link:focus-visible .route-stop-name{fill:var(--gold);}
.route-map-link:focus-visible{outline:none;}
.route-map-link:focus-visible .route-stop-label{fill:var(--gold);}

/* ============================== SECCIONES CLARAS ============================== */
.section-paper{
  background:var(--paper);color:var(--ink);
  padding:80px 32px;
}
.section-inner{max-width:var(--max-width);margin:0 auto;}
.section-head{
  display:flex;justify-content:space-between;align-items:flex-end;
  gap:24px;margin-bottom:44px;flex-wrap:wrap;
}
.section-head h2{
  font-family:var(--font-display);font-size:clamp(28px,3.4vw,40px);
  font-weight:600;margin:0;color:var(--ink);
}
.section-head p{max-width:44ch;margin:8px 0 0;color:#4B5A50;}

/* ============================== CARRUSEL DE TOURS ============================== */
.carrusel-wrap{
  position:relative;
  display:flex;align-items:center;gap:12px;
}
.carrusel{
  display:flex;gap:22px;overflow-x:auto;padding:16px 6px 26px;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;scrollbar-color:var(--bg-river) transparent;
  flex:1;min-width:0;
}
.carrusel-item{
  flex:0 0 min(300px, 82vw);scroll-snap-align:start;
  transition:transform .28s cubic-bezier(.22,1,.36,1), box-shadow .28s ease;
}
.carrusel-item:hover, .carrusel-item:focus-within{
  transform:translateY(-8px) scale(1.045);
  box-shadow:0 24px 48px -12px rgba(0,0,0,.5);
  z-index:3;position:relative;
}
.carrusel::-webkit-scrollbar{height:6px;}
.carrusel::-webkit-scrollbar-thumb{background:var(--bg-river);border-radius:6px;}

.carrusel-flecha{
  flex:0 0 auto;width:44px;height:44px;border-radius:50%;
  background:var(--bg-jungle);border:1px solid rgba(212,162,76,.3);
  color:var(--paper);display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .15s ease;
}
.carrusel-flecha:hover{border-color:var(--gold);color:var(--gold);}
.carrusel-flecha:active{transform:scale(.92);}
.carrusel-flecha.is-disabled{opacity:.3;pointer-events:none;}
@media (max-width:640px){
  .carrusel-flecha{width:36px;height:36px;}
}

/* ============================== TARJETAS DE TOUR ============================== */
.tours-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:28px;}
.tour-card{
  --tour-color:var(--gold);
  background:var(--bg-canopy);color:var(--paper);
  border-radius:8px;overflow:hidden;
  display:flex;flex-direction:column;
  border:1px solid rgba(212,162,76,.12);
  border-top:3px solid var(--tour-color);
  transition:border-color .2s ease, transform .2s ease;
}
.tour-card:hover{transform:translateY(-3px);}
.tour-card-media{
  aspect-ratio:4/3;
  display:flex;align-items:end;padding:16px;
}
.tour-card-media:not(.media-fade){
  background:linear-gradient(135deg, color-mix(in srgb, var(--tour-color) 55%, var(--bg-jungle)), var(--bg-canopy));
}
.tour-card-media.media-fade{
  --media-fade-color:var(--tour-color);
}
.tour-card-media .tour-card-dificultad{position:relative;z-index:2;}
.tour-card-dificultad{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(15,36,25,.65);color:var(--tour-color);padding:5px 10px;border-radius:20px;
  backdrop-filter:blur(4px);border:1px solid var(--tour-color);
}
.tour-card-body{padding:22px 22px 24px;display:flex;flex-direction:column;gap:10px;flex:1;}
.tour-card-body h3{font-family:var(--font-display);font-size:20px;margin:0;font-weight:600;}
.tour-card-body p{font-size:14.5px;color:var(--mist);margin:0;flex:1;}
.tour-card-meta{
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--font-mono);font-size:12.5px;color:var(--tour-color);
  padding-top:12px;border-top:1px solid rgba(242,236,217,.1);
}
.tour-card-link{font-weight:600;color:var(--paper);}
.tour-card-link:hover{color:var(--tour-color);}
.tour-card-info{--tour-color:#E0955C;}
.tour-card-info .tour-card-meta{justify-content:flex-start;}

/* ============================== DETALLE DE TOUR ============================== */
/* Degradado de color de la foto hacia el fondo, en toda la página del tour. */
.tour-detail-page[data-color-wash]{
  background:linear-gradient(
    to bottom,
    color-mix(in srgb, var(--media-fade-color, var(--tour-color)) 28%, var(--bg-canopy)) 0%,
    color-mix(in srgb, var(--media-fade-color, var(--tour-color)) 28%, var(--bg-canopy)) 380px,
    color-mix(in srgb, var(--media-fade-color, var(--tour-color)) 10%, var(--bg-canopy)) 640px,
    var(--bg-canopy) 1000px
  );
}
.tour-detail-hero{
  position:relative;
  height:min(50vh, 460px);width:100%;
  margin-bottom:-40px;
  /* mismo tono que el inicio del degradado en .tour-detail-page */
  --media-fade-target:color-mix(in srgb, var(--media-fade-color, var(--tour-color)) 28%, var(--bg-canopy));
  background:var(--media-fade-target);
}
.tour-detail-hero .back-link{
  position:absolute;top:24px;left:24px;z-index:3;
  background:rgba(15,36,25,.55);backdrop-filter:blur(6px);
  padding:8px 14px;border-radius:20px;
}
.tour-detail{padding:24px 32px 70px;max-width:820px;margin:0 auto;position:relative;}
.tour-detail-nohero{padding-top:70px;}
.tour-detail .back-link{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;
  color:var(--gold);text-transform:uppercase;
}
.tour-detail h1{
  font-family:var(--font-display);font-size:clamp(32px,4vw,48px);
  color:var(--paper);margin:18px 0 8px;position:relative;z-index:2;
}
.tour-detail .resumen{font-size:17px;color:var(--mist);margin-bottom:32px;position:relative;z-index:2;}
.tour-detail-stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:18px;margin:28px 0 36px;
}
.stat-block{
  background:var(--bg-jungle);padding:16px 18px;border-radius:6px;
  border:1px solid rgba(212,162,76,.15);
}
.stat-block > span{display:block;}
.stat-block .stat-label{font-family:var(--font-mono);font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;}
.stat-block .stat-value{font-size:15px;color:var(--paper);font-weight:600;}
.tour-detail-desc{font-size:16px;color:var(--mist);margin-bottom:32px;}
.incluye-list{list-style:none;padding:0;margin:0 0 40px;display:grid;gap:10px;}
.incluye-list li{
  padding-left:22px;position:relative;color:var(--mist);font-size:15px;
}
.incluye-list li::before{
  content:"—";position:absolute;left:0;color:var(--gold);
}

/* ============================== MÁS INFORMACIÓN (ficha técnica plegable) ============================== */
.mas-info{
  margin:36px 0 32px;
  border:1px solid rgba(212,162,76,.2);border-radius:10px;
  background:var(--bg-jungle);overflow:hidden;
}
.mas-info-toggle{
  list-style:none;cursor:pointer;user-select:none;
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px;
  font-family:var(--font-mono);font-size:13px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--gold);
}
.mas-info-toggle::-webkit-details-marker{display:none;}
.mas-info-chevron{transition:transform .2s ease;flex-shrink:0;}
.mas-info[open] .mas-info-chevron{transform:rotate(180deg);}
.mas-info-body{
  padding:4px 22px 26px;
  display:grid;gap:26px;
  animation:mas-info-in .25s ease;
}
@keyframes mas-info-in{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:translateY(0);}}
.mas-info-block h3{
  font-family:var(--font-display);font-size:16px;font-weight:600;
  color:var(--paper);margin:0 0 10px;
}
.mas-info-list{list-style:none;padding:0;margin:0;display:grid;gap:8px;}
.mas-info-list li{
  font-size:14px;color:var(--mist);padding-left:20px;position:relative;line-height:1.5;
}
.mas-info-list:not(.mas-info-list--ordered) li::before{
  content:"—";position:absolute;left:0;color:var(--tour-color);
}
.mas-info-list--ordered{counter-reset:paso;}
.mas-info-list--ordered li::before{
  content:counter(paso) ".";counter-increment:paso;
  position:absolute;left:0;color:var(--tour-color);font-family:var(--font-mono);font-size:12.5px;
}
.mas-info-dato{
  font-size:14.5px;color:var(--mist);line-height:1.6;margin:0;
  border-left:2px solid var(--tour-color);padding-left:14px;
}

/* ============================== CONTACTO ============================== */
.contacto-wrap{padding:70px 32px;max-width:640px;margin:0 auto;}
.contacto-wrap h1{font-family:var(--font-display);font-size:clamp(32px,4vw,44px);color:var(--paper);margin-bottom:12px;}
.form-field{margin-bottom:20px;}
.form-field label{
  display:block;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--gold);margin-bottom:8px;
}
.form-field input, .form-field textarea, .form-field select{
  width:100%;padding:12px 14px;background:var(--bg-jungle);
  border:1px solid rgba(212,162,76,.25);border-radius:var(--radius);
  color:var(--paper);font-family:var(--font-body);font-size:15px;
}
.form-field input:focus, .form-field textarea:focus{outline:2px solid var(--gold);outline-offset:2px;}

.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;}
.form-row .form-field{margin-bottom:0;}
.form-hint{
  font-size:12.5px;color:rgba(207,224,214,.55);margin:8px 0 24px;line-height:1.5;
}
.field-invalid{border-color:#C0453A !important;}
.field-error{
  font-size:12.5px;color:#E08479;margin:6px 0 0;line-height:1.4;
}
@media (max-width:520px){
  .form-row{grid-template-columns:1fr;gap:20px;}
}

.medio-contacto{
  border:1px solid rgba(212,162,76,.25);border-radius:var(--radius);
  padding:16px 18px 18px;margin:0 0 24px;display:flex;gap:24px;flex-wrap:wrap;align-items:center;
}
.label-standalone{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--gold);padding:0;width:100%;margin-bottom:6px;
}
.medio-opcion{
  display:flex;align-items:center;gap:8px;font-size:14.5px;color:var(--paper);cursor:pointer;
}
.medio-opcion input{accent-color:var(--gold);width:16px;height:16px;}
.documento-opciones{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:10px;}
.documento-opciones .medio-opcion{font-size:13px;}
#documento_adjunto{
  width:100%;padding:10px 12px;background:var(--bg-jungle);
  border:1px solid rgba(212,162,76,.25);border-radius:var(--radius);
  color:var(--paper);font-family:var(--font-body);font-size:13.5px;
}

/* ============================== CALENDARIO PROPIO (datepicker) ============================== */
.datepicker{position:relative;}
.datepicker-input{padding-right:42px !important;cursor:pointer;}
.datepicker-icon{
  position:absolute;right:14px;top:50%;transform:translateY(-50%);
  color:var(--gold);pointer-events:none;
}
.datepicker-panel{
  position:absolute;top:calc(100% + 8px);left:0;z-index:50;
  width:300px;max-width:90vw;
  background:var(--bg-jungle);border:1px solid rgba(212,162,76,.3);
  border-radius:10px;padding:16px;
  box-shadow:0 20px 45px -12px rgba(0,0,0,.55);
  animation:datepicker-in .16s cubic-bezier(.22,1,.36,1);
}
@keyframes datepicker-in{
  from{opacity:0;transform:translateY(-6px);}
  to{opacity:1;transform:translateY(0);}
}
.datepicker-header{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;
}
.datepicker-month-label{
  font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--paper);
  text-transform:capitalize;
}
.datepicker-nav{
  width:28px;height:28px;border-radius:50%;border:1px solid rgba(212,162,76,.3);
  background:transparent;color:var(--gold);font-size:16px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .15s ease, border-color .15s ease;
}
.datepicker-nav:hover{background:rgba(212,162,76,.12);border-color:var(--gold);}
.datepicker-weekdays{
  display:grid;grid-template-columns:repeat(7,1fr);
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;
  color:rgba(207,224,214,.5);text-align:center;margin-bottom:4px;
}
.datepicker-grid{
  display:grid;grid-template-columns:repeat(7,1fr);gap:2px;
}
.datepicker-day{
  aspect-ratio:1;border:none;background:transparent;border-radius:6px;
  color:var(--paper);font-family:var(--font-body);font-size:13.5px;cursor:pointer;
  transition:background .12s ease, color .12s ease;
}
.datepicker-day:hover{background:rgba(212,162,76,.16);}
.datepicker-day.is-today{color:var(--gold);font-weight:700;}
.datepicker-day.is-selected{background:var(--gold);color:var(--ink);font-weight:700;}
.datepicker-footer{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:12px;padding-top:12px;border-top:1px solid rgba(242,236,217,.1);
}
.datepicker-action{
  background:none;border:none;cursor:pointer;
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;
  color:rgba(207,224,214,.6);
}
.datepicker-action:hover{color:var(--paper);}
.datepicker-action-hoy{color:var(--gold);}
.datepicker-action-hoy:hover{color:#e3b464;}

/* ============================== ALERTAS DE FORMULARIO ============================== */
.alerta{
  background:rgba(212,162,76,.12);border:1px solid var(--gold);
  border-radius:var(--radius);padding:14px 18px;margin-bottom:24px;
}
.alerta p{margin:0;color:var(--gold);font-size:14px;}
.alerta-paper{background:#FBF3DE;border-color:#C98A2B;}
.alerta-paper p{color:#8A5A15;}

/* ============================== PANTALLA DE CONFIRMACIÓN ============================== */
.gracias-wrap{
  min-height:70vh;display:flex;align-items:center;justify-content:center;
  padding:60px 32px;
}
.gracias-card{
  max-width:520px;text-align:center;
  background:var(--bg-jungle);border:1px solid rgba(212,162,76,.2);
  border-radius:12px;padding:56px 40px;
}
.gracias-check{
  width:56px;height:56px;color:var(--gold);margin:0 auto 24px;display:block;
}
.gracias-card h1{
  font-family:var(--font-display);font-size:clamp(28px,3.6vw,38px);
  color:var(--paper);margin:0 0 16px;
}
.gracias-detalle{color:var(--mist);font-size:15.5px;margin-bottom:32px;line-height:1.6;}
.gracias-detalle strong{color:var(--paper);}

/* ============================== PANEL DE ADMINISTRACIÓN ============================== */
.admin-login-wrap{
  min-height:70vh;display:flex;align-items:center;justify-content:center;padding:60px 32px;
}
.admin-login-card{
  max-width:380px;width:100%;
  background:var(--bg-jungle);border:1px solid rgba(212,162,76,.2);
  border-radius:12px;padding:40px 34px;
}
.admin-login-card h1{
  font-family:var(--font-display);font-size:30px;color:var(--paper);margin:8px 0 10px;
}
.admin-login-lede{color:var(--mist);font-size:14.5px;margin-bottom:24px;}
.admin-logout-link{
  font-family:var(--font-mono);font-size:12px;color:#4B5A50;
  text-decoration:underline;align-self:flex-end;
}
.admin-logout-link:hover{color:var(--ink);}
.admin-wrap{padding-top:56px;}
.admin-filtros{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;
  gap:16px;margin-bottom:28px;
}
.admin-chip-group{display:flex;gap:8px;flex-wrap:wrap;}
.admin-chip{
  font-family:var(--font-mono);font-size:12.5px;padding:8px 14px;
  border-radius:20px;border:1px solid rgba(18,32,27,.15);color:var(--ink);
  background:transparent;
}
.admin-chip.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.admin-select-tour select{
  font-family:var(--font-body);font-size:14px;padding:9px 12px;
  border-radius:var(--radius);border:1px solid rgba(18,32,27,.2);
  background:#fff;color:var(--ink);
}
.admin-vacio{color:#4B5A50;font-size:15px;padding:40px 0;text-align:center;}

.admin-tabla-wrap{overflow-x:auto;border-radius:8px;border:1px solid rgba(18,32,27,.1);}
.admin-tabla{width:100%;border-collapse:collapse;background:#fff;font-size:14px;}
.admin-tabla th{
  font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;
  text-align:left;padding:12px 16px;background:var(--ink);color:var(--gold);
  white-space:nowrap;
}
.admin-tabla td{padding:14px 16px;border-top:1px solid rgba(18,32,27,.08);vertical-align:top;color:var(--ink);}
.admin-td-mono{font-family:var(--font-mono);font-size:12.5px;white-space:nowrap;color:#4B5A50;}
.admin-email{font-size:12.5px;color:#4B5A50;}
.admin-doc-cifrado{
  background:#E1F0E5;color:#1F6B3A;padding:3px 8px;border-radius:10px;font-size:11px;
}
.admin-mensaje{max-width:240px;font-size:13.5px;color:#3A473E;}
.estado-select{
  font-family:var(--font-mono);font-size:12.5px;padding:6px 10px;
  border-radius:20px;border:1px solid transparent;font-weight:600;
}
.estado-nuevo{background:#FBF3DE;color:#8A5A15;}
.estado-confirmado{background:#E1F0E5;color:#1F6B3A;}
.estado-cancelado{background:#F5DDDA;color:#A3392B;}
.admin-borrar{
  background:none;border:none;color:#A3392B;font-family:var(--font-mono);
  font-size:12px;text-decoration:underline;cursor:pointer;padding:0;
}

/* ============================== FOOTER ============================== */
.site-footer{
  background:var(--bg-jungle);padding:48px 32px 20px;margin-top:60px;
}
.footer-grid{
  max-width:var(--max-width);margin:0 auto;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;
  padding-bottom:28px;border-bottom:1px solid rgba(242,236,217,.1);
}
.footer-label{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold);display:block;margin-bottom:8px;
}
.footer-grid p{margin:0;font-size:14px;color:var(--mist);}
.footer-bottom{
  max-width:var(--max-width);margin:0 auto;padding-top:18px;
  font-family:var(--font-mono);font-size:12px;color:rgba(207,224,214,.5);
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
}
.footer-legal-links{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.footer-legal-links a{color:rgba(207,224,214,.55);transition:color .2s ease;}
.footer-legal-links a:hover, .footer-legal-links a:focus-visible{color:var(--paper);}
.footer-admin-link{
  color:rgba(207,224,214,.3) !important;
}
.footer-admin-link:hover, .footer-admin-link:focus-visible{
  color:var(--gold) !important;
}
.footer-credit{
  max-width:var(--max-width);margin:10px auto 0;
  font-family:var(--font-mono);font-size:11px;color:rgba(207,224,214,.35);
}
.footer-credit a{color:rgba(207,224,214,.45);transition:color .2s ease;}
.footer-credit a:hover, .footer-credit a:focus-visible{color:var(--gold);}

/* ============================== PÁGINAS LEGALES ============================== */
.legal-page{padding-top:56px;padding-bottom:80px;}
.legal-disclaimer{
  background:#FBF3DE;border:1px solid #C98A2B;border-radius:var(--radius);
  padding:14px 18px;font-size:13.5px;color:#8A5A15;line-height:1.5;margin-bottom:40px;
  max-width:720px;
}
.legal-lang-note{
  font-size:13px;color:#6B7A70;line-height:1.5;margin:0 0 36px;
  max-width:720px;font-style:italic;
}
.legal-body{max-width:720px;}
.legal-body h3{
  font-family:var(--font-display);font-size:19px;font-weight:600;
  color:var(--ink);margin:32px 0 10px;
}
.legal-body h3:first-child{margin-top:0;}
.legal-body p{color:#3A473E;font-size:15px;line-height:1.65;margin:0 0 8px;}
.legal-list{margin:0;padding-left:20px;color:#3A473E;font-size:15px;line-height:1.7;}
.legal-list li{margin-bottom:4px;}

/* ============================== BANNER DE COOKIES ============================== */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:150;
  display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap;
  padding:18px 32px;
  background:rgba(15,36,25,.97);backdrop-filter:blur(8px);
  border-top:1px solid rgba(212,162,76,.25);
  transform:translateY(100%);
  transition:transform .3s cubic-bezier(.22,1,.36,1);
}
.cookie-banner.is-visible{transform:translateY(0);}
.cookie-banner-text{
  margin:0;font-size:13.5px;color:var(--mist);max-width:720px;line-height:1.5;
}
.cookie-banner-text a{color:var(--gold);text-decoration:underline;}
.cookie-banner-btn{padding:10px 22px;font-size:14px;flex-shrink:0;}
@media (max-width:600px){
  .cookie-banner{padding:16px 20px;justify-content:flex-start;}
  .cookie-banner-btn{width:100%;justify-content:center;}
}

/* ============================== RESPONSIVE ============================== */
@media (max-width:860px){
  .hero{grid-template-columns:1fr;padding-top:32px;}
}

@media (max-width:700px){
  .site-header{flex-wrap:wrap;row-gap:12px;padding:18px 20px 12px;}
  .header-right{gap:12px;}
  .site-nav{gap:14px;font-size:13.5px;}
  .brand-mark{display:none;}
  .brand-name{font-size:17px;}
  .brand-logo{height:32px;}
  .lang-toggle{padding:6px 10px;font-size:11px;gap:4px;}

  .hero{padding:28px 20px 24px;gap:32px;}
  .hero h1{font-size:clamp(30px,9vw,40px);}
  .hero p.lede{font-size:16px;}
  .hero-ctas{gap:12px;}
  .btn{padding:12px 20px;font-size:14px;}

  .section-paper{padding:56px 20px;}
  .section-head{flex-direction:column;align-items:flex-start;gap:10px;}

  .route-card{padding:20px 16px;}

  .tour-detail{padding:48px 20px;}
  .contacto-wrap{padding:48px 20px;}
  .gracias-wrap{padding:40px 20px;}
  .gracias-card{padding:40px 22px;}
  .admin-wrap{padding-top:36px;}

  .site-footer{padding:36px 20px 16px;}
  .footer-grid{grid-template-columns:1fr;gap:20px;}

  .carrusel-wrap{gap:6px;}
  .carrusel-flecha{width:34px;height:34px;}
  .carrusel-item{flex-basis:min(280px, 78vw);}
}

@media (max-width:400px){
  .brand-name{font-size:15.5px;}
  .site-nav{gap:10px;font-size:12.5px;}
  .hero h1{font-size:clamp(26px,9vw,34px);}
}
