:root{
  --bg:#0b1220;           /* fondo oscuro elegante */
  --muted:#6b7280;        /* gris suave */
  --text:#e5e7eb;         /* texto principal */
  --brand:#0ea5e9;        /* azul océano */
  --brand-2:#22d3ee;      /* acento turquesa */
  --card:#121a2b;         /* superficies */
  --border:#1f2937;       /* bordes */
  --radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);background:var(--bg);line-height:1.6
}
img{max-width:100%;display:block}
video{max-width:100%;display:block;border-radius:12px}
.container{width:min(1100px,92vw);margin-inline:auto}
.muted{color:var(--muted);font-size:.9rem}
.btn{display:inline-block;padding:.8rem 1rem;border-radius:12px;border:1px solid var(--border);text-decoration:none;color:var(--text);background:transparent}
.btn.small{padding:.5rem .8rem;font-size:.9rem}
.btn.primary{background:linear-gradient(135deg,var(--brand),var(--brand-2));border-color:transparent;color:#00131a;font-weight:800}
.btn.ghost{background:transparent;border-color:var(--brand);color:var(--brand)}
.btn-link{background:none;border:none;color:var(--text);cursor:pointer}

/* Header */
.site-header{position:sticky;top:0;background:rgba(11,18,32,.8);backdrop-filter:saturate(140%) blur(6px);z-index:50;border-bottom:1px solid var(--border)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:.7rem 0}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--text);font-weight:800}
.logo{width:36px;height:36px;border-radius:10px}
.nav-toggle{display:none}
.nav-list{display:flex;gap:1rem;list-style:none;margin:0;padding:0}
.nav-list a{color:var(--text);text-decoration:none;padding:.4rem .6rem;border-radius:8px}
.nav-list a.active, .nav-list a:hover{background:#0f172a}

@media (max-width:900px){
  .nav-toggle{display:block}
  .nav-list{position:absolute;right:1rem;top:60px;background:var(--card);padding:1rem;border:1px solid var(--border);border-radius:12px;display:none;flex-direction:column}
  .nav-list.show{display:flex}
}

/* Hero */
.hero{position:relative;height:64vh;min-height:420px;border-bottom:1px solid var(--border)}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.5) saturate(110%)}
.hero-overlay{position:relative;z-index:1;display:grid;place-content:center;height:100%;text-align:center;padding:1rem}
.hero h1{font-size:clamp(1.6rem,4vw,3rem);margin:.2rem 0;font-weight:800}
.hero p{color:var(--muted);margin:.2rem 0 1rem}
.hero-cta{display:flex;gap:.8rem;justify-content:center}

/* Sections */
.section{padding:2.4rem 0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.card-img{height:180px;background-size:cover;background-position:center}
.card-body{padding:1rem}
.card h3{margin:0 0 .3rem 0}

@media (max-width:900px){.cards{grid-template-columns:1fr}}

/* Scroll row */
.scroll-row{display:grid;grid-auto-flow:column;grid-auto-columns:80%;gap:1rem;overflow-x:auto;padding-bottom:.4rem;scroll-snap-type:x mandatory}
.scroll-row > *{scroll-snap-align:start}
@media(min-width:900px){.scroll-row{grid-auto-columns:33%}}

/* CTA */
.cta{background:radial-gradient(1200px 600px at 10% 10%, rgba(34,211,238,.06), transparent),
     radial-gradient(1200px 600px at 90% 90%, rgba(14,165,233,.06), transparent);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.cta-inner{text-align:center;padding:2rem 0}
.cta h2{margin:0}

/* Footer (estándar, accesible) */
.site-footer{border-top:1px solid var(--border);padding:2rem 0 1.2rem;margin-top:2rem;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 60%)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1.5rem;align-items:start}
.f-brand .logo{width:44px;height:44px;border-radius:12px;margin-right:.5rem}
.brand-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}
.f-links h4,.f-contact h4{margin:0 0 .4rem 0;font-size:1rem}
.f-links ul,.f-contact ul{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.f-links a,.f-contact a{color:var(--text);text-decoration:none}
.f-links a:hover,.f-contact a:hover{color:var(--brand)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid var(--border);margin-top:1rem;color:var(--muted);font-size:.9rem}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:.5rem}}

/* Tours mejorados */
.kicker{color:var(--brand-2);font-weight:800;letter-spacing:.02em;text-transform:uppercase;font-size:.85rem}
.category{margin:1.6rem 0}
.cat-title{margin:.2rem 0 1rem 0}
.tour{display:grid;grid-template-columns:1.1fr .9fr;gap:1.2rem;margin:1.2rem 0;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}
.tour-media{border-radius:var(--radius);overflow:hidden}
.tour-media .thumb{position:relative;height:220px;border-radius:var(--radius);overflow:hidden}
.tour-media .thumb video{width:100%;height:100%;object-fit:cover;display:block}
.tour-info{display:flex;flex-direction:column;gap:.6rem}
.tour-info h3{margin:.2rem 0}
.tour-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin:.2rem 0 .8rem}
.pill{display:inline-block;padding:.35rem .6rem;border:1px solid var(--border);border-radius:999px;font-size:.9rem;background:#0f172a}
.price{font-weight:800;color:#c5f6ff}
.tour-actions{display:flex;gap:.6rem;align-items:center}
@media(max-width:900px){.tour{grid-template-columns:1fr}}

/* Local tours grid */
.local-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.local-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.6rem}
@media(max-width:900px){.local-grid{grid-template-columns:1fr}}

/* Gallery hero vistoso (centrado) */
.gallery-hero{margin:.2rem auto 1.2rem; padding:1rem 1.2rem; border:1px solid var(--border); border-radius:var(--radius); text-align:center; display:grid; place-items:center; max-width:900px; width:100%; background:radial-gradient(800px 400px at 10% 10%, rgba(34,211,238,.06), transparent), radial-gradient(800px 400px at 90% 90%, rgba(14,165,233,.06), transparent)}
.badge{display:inline-block;padding:.25rem .6rem;border:1px solid var(--border);border-radius:999px;font-weight:700;color:#c7eef6;background:#0f172a}
.gallery-hero .glow{margin:.4rem 0 .2rem;font-weight:800;font-size:clamp(1.1rem,2.6vw,1.6rem); background:linear-gradient(135deg,var(--brand),var(--brand-2));-webkit-background-clip:text;background-clip:text;color:transparent}

/* Galería en DOS columnas con grid (thumbs iguales) */
.mosaic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
@media(max-width:760px){.mosaic{grid-template-columns:1fr}}
.mosaic .item{display:block;width:100%;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:var(--card)}
.mosaic .thumb{position:relative;height:150px}
.mosaic .thumb img,.mosaic .thumb video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.mosaic .item:hover .thumb img,.mosaic .item:hover .thumb video{transform:scale(1.03)}
.play-badge{position:absolute;inset:auto 8px 8px auto;background:rgba(0,0,0,.55);color:#fff;border:1px solid #243041;border-radius:999px;padding:.25rem .5rem;font-weight:800;line-height:1}

/* Lightbox mejorado */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);display:grid;place-items:center;z-index:100}
.lightbox[hidden]{display:none}
.lightbox-content{max-width:min(1100px,92vw);max-height:86vh}
.lightbox-content img,.lightbox-content video{max-width:100%;max-height:86vh;border-radius:14px}
.lightbox-close{position:absolute;top:12px;right:12px;background:#000;color:#fff;border:none;border-radius:999px;font-size:2rem;line-height:1;width:40px;height:40px;cursor:pointer}
.lightbox-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.55);color:#fff;border:1px solid #334155;border-radius:999px;width:44px;height:44px;font-size:1.6rem;cursor:pointer}
.lightbox-btn.prev{left:14px}
.lightbox-btn.next{right:14px}
.lightbox-counter{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);color:#e2e8f0;background:rgba(0,0,0,.45);padding:.2rem .6rem;border-radius:8px;font-size:.9rem}

/* Contact */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.contact-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}

/* Panel semitransparente del hero */
.hero-panel{
  display:grid;
  gap:.8rem;
  width:min(900px,92vw);
  margin-inline:auto;
  padding:1rem 1.2rem;
  border-radius:var(--radius);
  border:1px solid rgba(255,255,255,.06);
  background:linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,.28));
  backdrop-filter:blur(6px) saturate(120%);
  -webkit-backdrop-filter:blur(6px) saturate(120%);
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}
.hero-panel h1{margin:.2rem 0}
.hero-panel p{margin:0 0 .4rem 0}
@media (max-width:900px){
  .hero-panel{padding:.9rem 1rem;background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.35))}
}
/* ====== Video + info intercalados ====== */
.features-mix { margin-top: 1rem; }
.feature-row {
  display: grid;
  gap: 1.2rem;
  align-items: center;
  grid-template-columns: 1fr;
  margin-bottom: 2rem;
}

.feature-row .media {
  position: relative;
  aspect-ratio: 16/9;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.feature-row .media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.feature-row .content {
  padding: clamp(.6rem, 1.2vw, 1rem);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
}
.feature-points{
  margin:.5rem 0 1rem 1.2rem;
  display:grid;
  gap:.3rem;
  list-style: disc;
}
.btn-row{ display:flex; gap:.6rem; flex-wrap:wrap; }

/* Desktop: dos columnas y alternancia */
@media (min-width: 900px){
  .feature-row { grid-template-columns: 1.15fr 1fr; }
  .feature-row.reverse .media { order: 2; }
  .feature-row.reverse .content { order: 1; }
}

/* Mejor legibilidad en móvil: video arriba, info abajo */
@media (max-width: 899px){
  .feature-row .media { aspect-ratio: 3/4; } /* se adapta mejor si el clip es vertical */
}
/* ====== Video vertical + info intercalados ====== */
.features-mix { margin-top: 1rem; }
.feature-row {
  display: grid;
  gap: 1.2rem;
  align-items: center;
  grid-template-columns: 1fr;
  margin-bottom: 2rem;
}

.feature-row .media {
  position: relative;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.feature-row .media.vertical { aspect-ratio: 9 / 16; }
.feature-row .media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.feature-row .content {
  padding: clamp(.6rem, 1.2vw, 1rem);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
}
.feature-points{ margin:.5rem 0 1rem 1.2rem; display:grid; gap:.3rem; list-style: disc; }
.btn-row{ display:flex; gap:.6rem; flex-wrap:wrap; }

/* Desktop: media estrecha para vertical + alternancia */
@media (min-width: 980px){
  .feature-row { grid-template-columns: minmax(260px, 360px) 1fr; }
  .feature-row.reverse .media { order: 2; }
  .feature-row.reverse .content { order: 1; }
}

/* Móvil: video ocupa todo el ancho, ratio vertical */
@media (max-width: 979px){
  .feature-row .media.vertical { aspect-ratio: 9 / 16; }
}
/* ====== Tamaños uniformes para video + info ======
   Define tamaños con variables; iguales para los 3 bloques.
   Ajusta los números si quieres variantes globales.
*/
.features-mix{
  --media-w: clamp(300px, 30vw, 360px);   /* ancho fijo del contenedor de video (desktop) */
  --media-h: calc(var(--media-w) * 16 / 9); /* alto fijo (vertical-friendly: alto > ancho) */
  --card-h: clamp(260px, 28vw, 300px);    /* alto fijo de todas las tarjetas de info */
}

.feature-row{
  display:grid;
  gap:1.2rem;
  align-items:center;
  grid-template-columns: 1fr;  /* móvil: apilado */
  margin-bottom:2rem;
}

/* Contenedor de video con tamaño FIJO, no depende del clip */
.feature-row .media{
  width: var(--media-w);
  height: var(--media-h);
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  margin-inline:auto; /* centra en móvil */
}

/* El video rellena y recorta si hace falta (vertical/ horizontal) */
.feature-row .media video{
  width:100%;
  height:100%;
  object-fit: cover;
  object-position: center;
  display:block;
}

/* Tarjetas de info con ALTO FIJO para los 3 bloques */
.feature-row .content{
  height: var(--card-h);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
  padding: clamp(.6rem, 1.2vw, 1rem);
  display:flex;
  flex-direction:column;
  justify-content:center;  /* centra el contenido */
  overflow:hidden;         /* evita que abulte si el texto en EN es más largo */
}

.feature-points{
  margin:.5rem 0 1rem 1.2rem;
  display:grid;
  gap:.3rem;
  list-style: disc;
}

.btn-row{ display:flex; gap:.6rem; flex-wrap:wrap; }

/* Desktop: 2 columnas y alternancia L-R-L */
@media (min-width: 980px){
  .feature-row{ grid-template-columns: var(--media-w) 1fr; }
  .feature-row.reverse .media{ order:2; }
  .feature-row.reverse .content{ order:1; }
}

/* === FIX DEFINITIVO: video = tarjeta, 2 columnas simétricas === */
.features-mix{
  --media-w: clamp(320px, 28vw, 380px);     /* ancho de cada columna */
  --media-h: calc(var(--media-w) * 16 / 9); /* alto fijo 16:9 */
  --pad: clamp(.75rem, 1.2vw, 1rem);
}

.feature-row{
  display:grid;
  gap:1.2rem;
  align-items:center;
  justify-content:center;
  grid-template-columns: 1fr;      /* móvil: apilado */
  margin: 0 auto 2rem auto;
}

@media (min-width: 980px){
  .feature-row{
    grid-template-columns: var(--media-w) var(--media-w); /* columnas iguales */
  }
  .feature-row.reverse .media{ order:2; }
  .feature-row.reverse .content{ order:1; }
}

/* VIDEO con tamaño fijo */
.feature-row .media{
  width: var(--media-w);
  height: var(--media-h);
  margin-inline:auto;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.feature-row .media video{
  width:100%;
  height:100%;
  object-fit: cover;
  object-position:center;
  display:block;
}

/* TARJETA con el MISMO tamaño que el video */
.feature-row .content{
  width: var(--media-w);
  height: var(--media-h);
  margin-inline:auto;
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
  padding: var(--pad);
  display:flex;
  flex-direction:column;
  gap:.5rem;
  overflow:hidden;                 /* nunca rebasa el alto */
}

.feature-row .content h3{ margin:0 0 .25rem 0; }
.feature-row .content p{ margin:0; opacity:.9; }

.feature-points{
  margin:.4rem 0 .8rem 1.1rem;
  list-style: disc;
  display:grid;
  gap:.3rem;
  overflow:auto;                   /* scroll interno si el texto se alarga */
}

.btn-row{
  margin-top:auto;                 /* fija los botones abajo */
  display:flex;
  gap:.6rem;
  flex-wrap:wrap;
}

/* Móvil: mismas proporciones, centrado y sin estirar */
@media (max-width: 979px){
  .feature-row .media,
  .feature-row .content{
    width: min(92vw, var(--media-w));
    height: calc(min(92vw, var(--media-w)) * 16 / 9);
  }
}
/* Chips de datos rápidos */
.chips{
  display:flex; flex-wrap:wrap; gap:.4rem;
  margin:.2rem 0 .6rem 0; padding:0;
}
.chips li{ list-style:none; padding:.25rem .55rem; border-radius:999px;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08);
  white-space:nowrap; font-size:.9rem;
}

/* Listas compactas extra */
.feature-points.small{ font-size:.92rem; }

/* Títulos con color (reemplaza al kicker 'CATEGORY') */
.cat-title{
  font-weight:800;
  line-height:1.1;
  font-size:clamp(1.6rem, 2.4vw, 2rem);
  letter-spacing:.2px;
  background:linear-gradient(90deg,#22d3ee,#60a5fa 50%,#34d399);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  margin:0 0 .35rem 0;
}

/* Extras modulares */
.extras{ margin-top:1.2rem; }
.extras-title{
  font-weight:700;
  font-size:clamp(1.2rem, 2vw, 1.4rem);
  margin:0 0 .6rem 0;
  color:#e2e8f0;
}
.extra-grid{
  display:grid;
  gap:.9rem;
  grid-template-columns:1fr;
}
@media (min-width:720px){ .extra-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1024px){ .extra-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }

.extra-card{
  display:flex;
  flex-direction:column;
  gap:.4rem;
  padding:.9rem;
  border-radius:var(--radius);
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));
  min-height:160px;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.extra-card h4{ margin:0; font-weight:700; }
.extra-card p{ margin:0 0 .5rem 0; opacity:.9; }
.extra-card .btn-row{ margin-top:auto; display:flex; gap:.5rem; flex-wrap:wrap; }

/* ===== Morales Travel — Palette tuned to logo (solo overrides) ===== */
:root{
  /* Base */
  --bg: #0a1f24;                /* deep ocean */
  --surface: #0f2a30;           /* panels/cards */
  --surface-2: #0c252b;         /* hover/alt */
  --border: rgba(83,219,197,.12);

  /* Text */
  --text: #e9f6f3;              /* off-white with a hint of teal */
  --muted: #a9c9c2;

  /* Brand */
  --brand: #2db6a4;             /* seafoam (olas) */
  --brand-2: #53dbc5;           /* mint light */
  --accent: #ffb36b;            /* sol */
  --link: #7cf2da;
}

/* Títulos de categoría con degradado acorde al logo */
.cat-title{
  background: linear-gradient(90deg, var(--brand-2), var(--brand) 55%, var(--accent));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Botón primario: seafoam sólido + focus con el sol */
.btn.primary{
  background: var(--brand);
  color: #062a2b;
  border-color: transparent;
}
.btn.primary:hover{ filter: brightness(1.06); }
.btn.primary:focus-visible{ box-shadow: 0 0 0 3px rgba(255,179,107,.55); }

/* Botón ghost en mint */
.btn.ghost{ color: var(--brand-2); border-color: rgba(83,219,197,.45); }
.btn.ghost:hover{ background: rgba(83,219,197,.08); }

/* Chips/pastillas (horario, precio, etc.) */
.pill{ 
  background: rgba(45,182,164,.14);
  border: 1px solid rgba(45,182,164,.35);
  color: var(--text);
}
.pill.price{
  background: rgba(255,179,107,.18);
  border-color: rgba(255,179,107,.38);
  color: #ffe9d3;
}

/* Paneles y bordes más “marinos” */
.hero-panel{ border-color: rgba(83,219,197,.18); }
.tour-card,
.extra-card{ border-color: rgba(83,219,197,.10); background:
  linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02)); }

/* Links en tono agua */
a{ color: var(--link); }
a:hover{ filter: brightness(1.08); }

/* Separadores y elementos sutiles */
hr, .divider{ border-color: rgba(83,219,197,.12); }
/* ===== Morales Travel — Palette (azules + sol) ===== */
/* Basada en: #154D71, #1C6EA4, #33A1E0, #FFF9AF */
:root{
  /* Base */
  --bg: #154D71;                 /* deep blue */
  --surface: #1C6EA4;            /* panels/cards */
  --surface-2: #154D71;          /* alt/hover */
  --border: rgba(51,161,224,.25);/* #33A1E0 con alpha */

  /* Textos */
  --text: #E9F6FF;               /* casi blanco azulado */
  --muted: #B7D5EA;

  /* Marca */
  --brand: #1C6EA4;              /* azul medio */
  --brand-2: #33A1E0;            /* azul claro */
  --accent: #FFF9AF;             /* sol */
  --link: #33A1E0;               /* enlaces agua */
}

/* Título de categoría con degradado de la paleta */
.cat-title{
  background: linear-gradient(90deg, var(--brand-2), var(--brand) 55%, var(--accent));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Paneles más acordes al azul */
.tour-card,
.extra-card{
  border-color: rgba(51,161,224,.18);
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02));
}
.hero-panel{ border-color: rgba(51,161,224,.22); }

/* Botones */
.btn.primary{
  background: var(--brand);
  color: #072438;
  border-color: transparent;
}
.btn.primary:hover{ filter: brightness(1.06); }
.btn.primary:focus-visible{ box-shadow: 0 0 0 3px rgba(255,249,175,.55); }

.btn.ghost{ color: var(--brand-2); border-color: rgba(51,161,224,.45); }
.btn.ghost:hover{ background: rgba(51,161,224,.10); }

/* Pastillas (horario, precio, etc.) */
.pill{
  background: rgba(28,110,164,.18);         /* #1C6EA4 */
  border: 1px solid rgba(28,110,164,.45);
  color: var(--text);
}
.pill.price{
  background: rgba(255,249,175,.25);        /* #FFF9AF */
  border-color: rgba(255,249,175,.5);
  color: #142330;                            /* contraste legible sobre amarillo */
}

/* Enlaces */
a{ color: var(--link); }
a:hover{ filter: brightness(1.07); }

/* Separadores sutiles */
hr, .divider{ border-color: rgba(51,161,224,.20); }

/* ===== Contact page upgrades ===== */
.contact-wrap{ display:grid; gap:1.2rem; }

/* Hero */
.contact-hero h1{ margin:0 0 .2rem 0; }
.badges{ display:flex; flex-wrap:wrap; gap:.5rem; margin:.6rem 0 0 0; }

/* Cards de métodos */
.contact-grid{
  display:grid; gap:1rem; grid-template-columns:1fr;
}
@media (min-width:900px){ .contact-grid{ grid-template-columns: repeat(3, minmax(0,1fr)); } }
.contact-card{
  padding:1rem; border-radius:var(--radius);
  border:1px solid var(--border);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  box-shadow:0 10px 24px rgba(0,0,0,.18);
  display:flex; flex-direction:column; gap:.6rem;
}
.contact-card h3{ margin:0; }
.contact-card .btn{ align-self:flex-start; }

/* Info panels */
.info-panels{
  display:grid; gap:1rem; grid-template-columns:1fr;
}
@media (min-width:900px){ .info-panels{ grid-template-columns: repeat(3, minmax(0,1fr)); } }
.info-card{
  padding:1rem; border-radius:var(--radius);
  border:1px solid var(--border);
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02));
}
.info-card h3{ margin:.1rem 0 .4rem 0; }
.info-card.wide{ grid-column: 1 / -1; }
.clean{ margin:.2rem 0 0 1.2rem; padding:0; display:grid; gap:.25rem; }

/* Mapa placeholder */
.map-section{ display:grid; gap:.6rem; }
.map-card{
  border:1px solid var(--border); border-radius:var(--radius);
  background: radial-gradient(1200px 500px at 10% -10%, rgba(255,249,175,.20), transparent 50%),
              linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02));
  overflow:hidden;
}
.map-placeholder{
  aspect-ratio: 16/9;
  display:grid; place-items:center; color:var(--muted);
  font-weight:600; letter-spacing:.2px;
}

/* FAQ: details bonitos */
.faq details{
  border:1px solid var(--border); border-radius: var(--radius);
  padding:.7rem .9rem; background:rgba(255,255,255,.02);
  margin:.6rem 0;
}
.faq summary{ cursor:pointer; font-weight:700; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:'▾'; float:right; opacity:.7; transition: transform .2s ease;
}
.faq details[open] summary::after{ transform: rotate(180deg); }

/* CTA banner */
.cta-banner{
  margin-top:.6rem;
  border:1px solid var(--border);
  border-radius: var(--radius);
  background: linear-gradient(90deg, rgba(255,249,175,.18), rgba(51,161,224,.10));
}
.cta-inner{
  display:flex; align-items:center; justify-content:space-between; gap:.8rem;
  padding:1rem;
}
@media (max-width:720px){ .cta-inner{ flex-direction:column; align-items:flex-start; } }
/* ===== Global gradient background (todas las páginas) ===== */
/* Usa tu paleta: #154D71, #1C6EA4, #33A1E0, #FFF9AF */
:root{
  --bg-0: #0e3a57;   /* más oscuro para profundidad */
  --bg-1: #154D71;   /* base */
  --bg-2: #1C6EA4;   /* medio */
  --bg-3: #33A1E0;   /* acento frío */
  --sun-1: #FFF9AF;  /* luz cálida */
}

/* Fondo en capas con radiales suaves y un degradado vertical */
html, body{
  background: none; /* limpiamos cualquier color plano previo */
}
body::before{
  content:"";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  /* 4 capas: luz cálida, brillos fríos y base oceánica */
  background:
    radial-gradient(1200px 600px at 12% -8%, rgba(255,249,175,.22), transparent 60%),
    radial-gradient(900px 480px at 108% 6%, rgba(51,161,224,.22), transparent 62%),
    radial-gradient(800px 420px at -8% 85%, rgba(28,110,164,.18), transparent 60%),
    linear-gradient(180deg, var(--bg-0) 0%, var(--bg-1) 45%, #0d2e47 100%);
}

/* Header con leve transparencia para integrar el gradiente */
.site-header{
  background: linear-gradient(180deg, rgba(0,0,0,.28), rgba(0,0,0,.12));
  backdrop-filter: saturate(1.1) blur(2px);
  -webkit-backdrop-filter: saturate(1.1) blur(2px);
}

/* Secciones: quita bloques planos; deja respirar el fondo */
.section.container{
  background: transparent;
}

/* Tarjetas ya tenían panel; solo suavizamos para que el fondo luzca */
.tour-card,
.extra-card,
.contact-card,
.info-card,
.map-card,
.faq details{
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.025));
  border-color: rgba(51,161,224,.20);
}

/* CTA y títulos ya usan tus variables; acentuamos ligeramente */
.cta-banner{
  background: linear-gradient(90deg, rgba(255,249,175,.20), rgba(51,161,224,.12));
  border-color: rgba(51,161,224,.28);
}

/* Para pantallas grandes, un brillo extra arriba a la derecha */
@media (min-width: 1200px){
  body::before{
    background:
      radial-gradient(1100px 520px at 85% -12%, rgba(255,249,175,.18), transparent 60%),
      radial-gradient(1200px 600px at 12% -8%, rgba(255,249,175,.22), transparent 60%),
      radial-gradient(900px 480px at 108% 6%, rgba(51,161,224,.22), transparent 62%),
      radial-gradient(800px 420px at -8% 85%, rgba(28,110,164,.18), transparent 60%),
      linear-gradient(180deg, var(--bg-0) 0%, var(--bg-1) 45%, #0d2e47 100%);
  }
}

/* === Contact map with image === */
.map-card{
  position: relative;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02));
}

/* Reserva espacio (no CLS) incluso antes de que cargue la imagen */
.map-card::before{
  content:"";
  display:block;
  width:100%;
  aspect-ratio: 16 / 9; /* ajusta si tu imagen es más alta o más panorámica */
}

/* Imagen ocupa todo el contenedor con recorte elegante */
.map-card > img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* Leyenda superpuesta */
.map-caption{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:.6rem .8rem;
  font-weight:600;
  color: var(--text);
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.35));
  text-shadow: 0 1px 2px rgba(0,0,0,.4);
}
/* ===== Paneles con más contraste en todas las páginas ===== */
:root{
  /* Ajustables si quieres más/menos contraste */
  --panel-bg-1: rgba(255,255,255,.10);   /* capa superior (antes ~.04) */
  --panel-bg-2: rgba(255,255,255,.06);   /* capa inferior  (antes ~.02) */
  --panel-tint: rgba(255,249,175,.07);   /* leve tinte cálido (sol)      */
  --panel-brd:  rgba(51,161,224,.35);    /* borde más visible             */
  --panel-brd-hover: rgba(255,249,175,.45);
  --panel-shadow: 0 18px 42px rgba(0,0,0,.32);
  --panel-shadow-hover: 0 26px 60px rgba(0,0,0,.38);
}

/* Aplica a todas tus tarjetas/paneles existentes */
.tour-card,
.extra-card,
.contact-card,
.info-card,
.map-card,
.faq details,
.local-card {
  border-color: var(--panel-brd) !important;
  background:
    linear-gradient(180deg, var(--panel-bg-1), var(--panel-bg-2)),
    radial-gradient(120% 140% at 0% 0%, var(--panel-tint), transparent 60%);
  box-shadow: var(--panel-shadow);
}

/* Sutil elevación al pasar el mouse (no afecta móviles) */
@media (hover:hover){
  .tour-card:hover,
  .extra-card:hover,
  .contact-card:hover,
  .info-card:hover,
  .map-card:hover,
  .faq details:hover,
  .local-card:hover{
    transform: translateY(-1px);
    border-color: var(--panel-brd-hover);
    box-shadow: var(--panel-shadow-hover);
  }
}

/* Títulos dentro de tarjetas un poco más nítidos sobre el fondo nuevo */
.contact-card h3,
.info-card h3,
.tour-card h3,
.extra-card h3,
.local-card h3 { color: #f3fbff; }

/* Figcaption del mapa para que se lea mejor */
.map-caption{ background: linear-gradient(180deg, transparent, rgba(0,0,0,.45)); }
