/* =========================
   GALERIA.CSS (PRO / PREMIUM)
   Sustituye y pega completo
   ========================= */

/* ===== Variables Globales ===== */
:root{
  --clr-accent:  #3a7bff;     /* acento principal */
  --clr-accent2: #00d2a8;     /* acento secundario */

  --clr-dark:    #0a1326;
  --clr-dark-2:  #0d1b32;

  --text:        rgba(255,255,255,.92);
  --muted:       rgba(255,255,255,.72);
  --muted-2:     rgba(255,255,255,.58);

  --glass:       rgba(255,255,255,.06);
  --border-1:    rgba(255,255,255,.12);
  --border-2:    rgba(255,255,255,.22);

  --radius:      20px;
  --radius-sm:   14px;

  --shadow-sm:   0 14px 30px rgba(0,0,0,.18);
  --shadow-md:   0 22px 55px rgba(0,0,0,.26);
}

/* ===== Reset ===== */
*{
  box-sizing:border-box;
  margin:0;
  padding:0;
  font-family:"Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

html{ scroll-behavior:smooth; }

body{
  color: var(--text);
  line-height: 1.7;
  background:
    radial-gradient(1200px 500px at 20% -10%, rgba(58,123,255,.25), transparent 60%),
    radial-gradient(900px 400px at 90% 0%, rgba(0,210,168,.18), transparent 60%),
    linear-gradient(180deg, var(--clr-dark), var(--clr-dark-2) 45%, #0d1a2c);
}

/* ===== Header (Hero) ===== */
header{
  text-align:center;
  padding: 70px 16px 46px;
  background:
    radial-gradient(900px 420px at 18% -10%, rgba(58,123,255,.45), transparent 60%),
    radial-gradient(800px 360px at 90% 10%, rgba(0,210,168,.22), transparent 60%),
    linear-gradient(180deg, rgba(10,19,38,.85), rgba(10,19,38,.15));
}

header h1{
  font-size: clamp(1.9rem, 3.4vw, 2.6rem);
  line-height: 1.1;
  font-weight: 900;
  letter-spacing: .2px;
}

header p{
  margin: 12px auto 0;
  max-width: 860px;
  color: var(--muted);
  font-weight: 650;
  font-size: 1.05rem;
}

/* ===== Contenedor ===== */
.container{
  max-width: 1200px;
  margin: 0 auto;
  padding: 28px 20px 70px;
}

/* ===== Secciones ===== */
section{
  margin-top: 56px;
}

section h2{
  font-size: 1.9rem;
  font-weight: 900;
  margin-bottom: 18px;
  position: relative;
  padding-bottom: 10px;
}

section h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width: 64px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(58,123,255,.95), rgba(0,210,168,.8));
  opacity: .95;
}

/* ===== Texto descripción de sección ===== */
.tour-section .desc{
  color: var(--muted);
  font-weight: 650;
  max-width: 920px;
  margin-bottom: 18px;
}

/* ===== Grid de cards (tours/extras) ===== */
.grid{
  display: grid;
  gap: 22px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Tablet: 2 por fila */
@media (max-width: 980px){
  .grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Móvil: 1 por fila */
@media (max-width: 560px){
  .grid{
    grid-template-columns: 1fr;
  }
}

/* ===== Card (Glass premium) ===== */
.card{
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  border: 1px solid var(--border-1);
  background:
    radial-gradient(700px 240px at 18% 0%, rgba(58,123,255,.18), transparent 60%),
    linear-gradient(180deg, rgba(18,26,52,.70), rgba(10,19,40,.92));
  box-shadow: var(--shadow-sm);
  backdrop-filter: blur(10px);
  transition: transform .35s ease, box-shadow .35s ease, border-color .25s ease;
  display: flex;
  flex-direction: column;
}

.card:hover{
  transform: translateY(-6px);
  border-color: var(--border-2);
  box-shadow: var(--shadow-md);
}

/* Imagen opcional en card */
.card img{
  width: 100%;
  height: 180px;
  object-fit: cover;
  display:block;
}

/* Contenido */
.card h3{
  font-size: 1.14rem;
  font-weight: 900;
  padding: 18px 18px 8px;
  color: rgba(255,255,255,.95);
}

.card p{
  padding: 0 18px 0;
  color: var(--muted-2);
  font-weight: 650;
  font-size: .95rem;
}

/* Badge opcional */
.badge{
  display:inline-block;
  margin: 14px 0 0 18px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid var(--border-1);
  color: rgba(255,255,255,.84);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .3px;
}

/* ===== Botones (PRO) ===== */
.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  padding: 11px 18px;
  border-radius: 999px;
  font-weight: 900;
  font-size: .92rem;
  letter-spacing: .25px;
  text-decoration: none;

  border: 1px solid var(--border-1);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.92);

  transition: transform .25s ease, background .25s ease, border-color .25s ease, filter .25s ease;
}

/* Flecha elegante */
.btn::after{
  content:"→";
  opacity: .85;
  transition: transform .25s ease, opacity .25s ease;
}

.btn:hover{
  background: rgba(255,255,255,.12);
  border-color: var(--border-2);
  transform: translateY(-2px);
}

.btn:hover::after{
  transform: translateX(4px);
  opacity: 1;
}

/* Variantes */
.btn-primary{
  background: linear-gradient(135deg, rgba(58,123,255,.95), rgba(0,210,168,.70));
  border: 1px solid rgba(255,255,255,.18);
  color: #fff;
}

.btn-primary:hover{
  filter: brightness(1.08);
}

.btn-outline{
  background: transparent;
  border: 1px solid rgba(58,123,255,.55);
  color: rgba(58,123,255,.95);
}

.btn-outline:hover{
  background: rgba(58,123,255,.14);
  border-color: rgba(58,123,255,.75);
  color: #eaf0ff;
}

.btn.no-arrow::after{ content:""; }

/* Centrado dentro de la card */
.card .btn{
  width: fit-content;
  margin: 14px auto 18px;
}

/* ===== Galería de medios por sección ===== */
.media-grid{
  display:grid;
  gap: 22px;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  margin-top: 18px;
}

/* Card uniforme */
.media-card{
  height: 240px;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--border-1);
  background: rgba(255,255,255,.05);
  box-shadow: var(--shadow-sm);
}

/* Fotos */
.media-card img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
  object-position: center;
}

/* Videos / iframes */
.media-card video,
.media-card iframe{
  width:100%;
  height:100%;
  object-fit: cover;
  border:0;
  display:block;
}

/* =========================
   RESPONSIVE (PRO / MÓVIL)
   ========================= */

/* Tablet general: ajusta un poquito */
@media (max-width: 980px){
  .container{ padding: 22px 18px 60px; }
  .media-grid{ gap: 18px; }
  .media-card{ height: 230px; }
}

/* MÓVIL: mejor experiencia */
@media (max-width: 560px){

  header{
    padding: 54px 14px 34px;
  }

  header h1{
    font-size: 1.75rem;
  }

  header p{
    font-size: .98rem;
    line-height: 1.55;
    max-width: 34ch;
  }

  .container{
    padding: 18px 14px 56px;
  }

  section{
    margin-top: 38px;
  }

  section h2{
    font-size: 1.45rem;
    margin-bottom: 12px;
  }

  section h2::after{
    width: 52px;
  }

  .tour-section .desc{
    font-size: .95rem;
    line-height: 1.6;
    margin-bottom: 14px;
  }

  /* Cards de tours/extras */
  .grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .card{
    border-radius: 18px;
  }

  .card img{
    height: 190px;
  }

  .card h3{
    font-size: 1.05rem;
    padding: 16px 16px 6px;
  }

  .card p{
    padding: 0 16px 0;
    font-size: .93rem;
  }

  .badge{
    margin-left: 16px;
    font-size: .75rem;
  }

  /* Botón: cómodo para el dedo */
  .card .btn{
    width: calc(100% - 32px);
    margin: 14px 16px 16px;
    padding: 12px 16px;
  }

  /* ✅ GALERÍA EN MÓVIL: 2 columnas (se ve más pro y menos “larga”) */
  .media-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  /* Altura más compacta y fluida */
  .media-card{
    height: 150px;        /* compacta */
    border-radius: 16px;
  }

  /* Evita hover “saltón” en móvil */
  .card:hover{
    transform: none;
    box-shadow: var(--shadow-sm);
  }
}

/* Móviles muy pequeños (iPhone SE / 360px) */
@media (max-width: 380px){
  header h1{ font-size: 1.6rem; }
  .card img{ height: 175px; }

  /* Para pantallas muy pequeñas: 1 columna en galería */
  .media-grid{
    grid-template-columns: 1fr;
  }

  .media-card{
    height: 190px;
  }
}
/* =========================================
   FIX: GALERÍA 1x1 EN MÓVIL (IMAGEN/VIDEO)
   Pega al FINAL del archivo
   ========================================= */
@media (max-width: 560px){
  .media-grid{
    grid-template-columns: 1fr !important; /* 1 por fila */
    gap: 14px;
  }

  .media-card{
    height: 220px;          /* ajusta si quieres más alto */
    border-radius: 18px;
  }

  /* mejora la vista de video en móvil */
  .media-card video{
    width:100%;
    height:100%;
    object-fit: cover;
  }
}

/* móviles muy pequeños */
@media (max-width: 380px){
  .media-card{
    height: 200px;
  }
}
/* =========================================
   MOVIL REAL (como tu 2da imagen)
   Pega al FINAL de galeria.css
   ========================================= */

/* Esto cubre muchos Android que reportan >560px en CSS */
@media (max-width: 900px){

  /* Layout general */
  .container{
    padding: 18px 14px 56px;
  }

  header{
    padding: 54px 14px 34px;
  }

  header h1{
    font-size: 1.9rem;
  }

  header p{
    font-size: 1rem;
    max-width: 34ch;
    line-height: 1.55;
  }

  section{
    margin-top: 38px;
  }

  section h2{
    font-size: 1.55rem;
    margin-bottom: 12px;
  }

  /* ✅ TOURS/EXTRAS: 1 tarjeta por fila (como la 2da imagen) */
  .grid{
    grid-template-columns: 1fr !important;
    gap: 14px;
  }

  .card{
    border-radius: 18px;
  }

  .card h3{
    font-size: 1.05rem;
    padding: 16px 16px 6px;
  }

  .card p{
    padding: 0 16px 0;
    font-size: .93rem;
    line-height: 1.55;
  }

  /* Botón ancho y cómodo */
  .card .btn{
    width: calc(100% - 32px);
    margin: 14px 16px 16px;
    padding: 12px 16px;
  }

  /* ✅ GALERÍA: 1 por fila (imagen o video) */
  .media-grid{
    grid-template-columns: 1fr !important;
    gap: 14px;
  }

  .media-card{
    height: 220px;
    border-radius: 18px;
  }

  /* evita hover raro en móvil */
  .card:hover{
    transform:none;
    box-shadow: var(--shadow-sm);
  }
}

/* muy pequeños */
@media (max-width: 380px){
  .media-card{ height: 200px; }
}

/* =========================================
   SECCIÓN CAMIONES (GALERÍA PREMIUM)
   Pega al FINAL de galeria.css
   ========================================= */

/* Ajustes finos del bloque */
#camiones{
  margin-top: 64px;
}

#camiones h2{
  margin-bottom: 10px;
}

#camiones .desc{
  margin-bottom: 18px;
}

/* Galería: un poco más compacta y elegante */
#camiones .media-grid{
  gap: 18px;
}

/* Card: más premium + overlay */
#camiones .media-card{
  position: relative;
  isolation: isolate;
  height: 260px; /* desktop */
  border-radius: var(--radius);
  border: 1px solid var(--border-1);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  background: rgba(255,255,255,.04);
  transform: translateZ(0);
  transition: transform .35s ease, box-shadow .35s ease, border-color .25s ease;
}

/* Imagen: zoom suave */
#camiones .media-card img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
  transform: scale(1.02);
  transition: transform .6s ease;
  filter: saturate(1.05) contrast(1.02);
}

/* Overlay degradado para texto / look cinematic */
#camiones .media-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(10,19,38,.05) 0%, rgba(10,19,38,.55) 60%, rgba(10,19,38,.92) 100%),
    radial-gradient(600px 240px at 18% 0%, rgba(58,123,255,.20), transparent 60%),
    radial-gradient(600px 240px at 90% 10%, rgba(0,210,168,.14), transparent 60%);
  opacity: .92;
  pointer-events:none;
}

/* “Brillito” diagonal sutil */
#camiones .media-card::after{
  content:"";
  position:absolute;
  inset:-40% -60%;
  z-index: 2;
  background: linear-gradient(110deg, transparent 45%, rgba(255,255,255,.12) 50%, transparent 55%);
  transform: rotate(6deg);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events:none;
}

/* Etiqueta inferior (título automático por número) */
#camiones .media-card{
  counter-increment: camion;
}
#camiones .media-grid{
  counter-reset: camion;
}
#camiones .media-card .cap{
  position:absolute;
  left: 14px;
  right: 14px;
  bottom: 12px;
  z-index: 3;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 10px;
}

/* Texto */
#camiones .media-card .cap .t{
  font-weight: 900;
  letter-spacing: .2px;
  font-size: .95rem;
  color: rgba(255,255,255,.96);
  line-height: 1.15;
  text-shadow: 0 8px 24px rgba(0,0,0,.45);
}

/* Contador “01, 02…” */
#camiones .media-card .cap .n{
  font-weight: 900;
  font-size: .82rem;
  color: rgba(255,255,255,.88);
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  border: 1px solid var(--border-1);
  backdrop-filter: blur(10px);
}

/* Si no pones textos en HTML, al menos muestra número */
#camiones .media-card .cap .n::before{
  content: counter(camion, decimal-leading-zero);
}

/* Hover desktop */
@media (hover:hover){
  #camiones .media-card:hover{
    transform: translateY(-6px);
    box-shadow: var(--shadow-md);
    border-color: var(--border-2);
  }
  #camiones .media-card:hover img{
    transform: scale(1.08);
  }
  #camiones .media-card:hover::after{
    opacity: 1;
  }
}

/* Tablet / móvil (mantén tu 1x1 real) */
@media (max-width: 900px){
  #camiones .media-card{
    height: 230px;
    border-radius: 18px;
  }
}

@media (max-width: 560px){
  #camiones .media-card{
    height: 220px;
  }
}

@media (max-width: 380px){
  #camiones .media-card{
    height: 200px;
  }
}
/* ❌ ELIMINA MANCHA BLANCA SUPERIOR */
#camiones .media-card::before,
#camiones .media-card::after{
  display: none !important;
}
