/* =========================================================
   LC ALE S.A.C. — Hoja de estilos principal
   Paleta derivada del logo: navy profundo + azul-cian degradado + gris acero
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500&display=swap');

:root{
  /* ---- Marca (editable desde admin vía variables inline en <head>) ---- */
  --c-primario: #0A1930;      /* navy profundo — igual al degradado oscuro del logo */
  --c-secundario: #0EA5E9;    /* azul medio del degradado del logo */
  --c-acento: #22D3EE;        /* cian brillante — líneas de movimiento del logo */
  --c-gris: #64748B;          /* gris acero — camión / pista */

  --navy-950:#050B16;
  --navy-900:#0A1626;
  --navy-800:#0F2038;
  --white:#FFFFFF;
  --offwhite:#F5F8FB;
  --linea:#E4EAF1;
  --texto:#1C2733;
  --texto-suave:#54687D;

  --grad-marca: linear-gradient(120deg, var(--c-primario) 0%, var(--c-secundario) 55%, var(--c-acento) 100%);
  --grad-oscuro: linear-gradient(180deg, var(--navy-950) 0%, var(--navy-900) 100%);

  --fuente-display: 'Space Grotesk', sans-serif;
  --fuente-cuerpo: 'Inter', sans-serif;
  --fuente-mono: 'IBM Plex Mono', monospace;

  --radio: 14px;
  --radio-sm: 8px;
  --sombra: 0 20px 50px -20px rgba(10,22,38,.35);
  --sombra-sm: 0 8px 24px -12px rgba(10,22,38,.25);

  --easing: cubic-bezier(.22,1,.36,1);
  --contenedor: 1240px;
}

/* ---------- Reset base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%; touch-action:pan-x pan-y;}
body{
  font-family:var(--fuente-cuerpo);
  color:var(--texto);
  background:var(--white);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  touch-action:pan-x pan-y;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,textarea,select{font-family:inherit;font-size:16px}
h1,h2,h3,h4{font-family:var(--fuente-display);color:var(--c-primario);line-height:1.12;letter-spacing:-.01em}
:focus-visible{outline:3px solid var(--c-acento);outline-offset:3px}

.contenedor{max-width:var(--contenedor);margin:0 auto;padding:0 24px}
.solo-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--easing), transform .8s var(--easing)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-fila{transition-delay:calc(var(--i,0) * 90ms)}
@media (prefers-reduced-motion: reduce){
  .reveal,.reveal-fila{opacity:1!important;transform:none!important;transition:none!important}
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* ========================================================= HEADER */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:1000;
  padding:16px 0;
  background:var(--white);
  box-shadow:0 2px 18px -8px rgba(10,22,38,.12);
  transition:padding .35s var(--easing), box-shadow .35s var(--easing);
}
.site-header .contenedor{display:flex;align-items:center;justify-content:space-between;gap:24px}
.site-header.is-scrolled{padding:10px 0; box-shadow:0 10px 30px -14px rgba(10,22,38,.2)}
.logo-link{display:flex;align-items:center;gap:10px}
.logo-link img{height:44px;width:auto;transition:height .35s var(--easing)}
.site-header.is-scrolled .logo-link img{height:36px}

.nav-desktop{display:flex;align-items:center;gap:8px}
.nav-desktop a{
  position:relative;color:var(--c-primario);font-weight:600;font-size:15px;
  padding:10px 16px;border-radius:100px;transition:background .25s var(--easing), color .25s var(--easing);
}
.nav-desktop a:hover{background:var(--offwhite)}
.nav-desktop a.activo{background:var(--c-primario);color:var(--white)}
.nav-cta{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--grad-marca); color:var(--white)!important;
  padding:12px 22px; border-radius:100px; font-weight:700; font-size:14.5px;
  box-shadow:0 10px 24px -10px rgba(14,165,233,.45);
  transition:transform .3s var(--easing), box-shadow .3s var(--easing);
}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 16px 30px -10px rgba(14,165,233,.6)}

.menu-toggle{display:none}

.header-social-movil{display:none}

@media (max-width: 960px){
  .nav-desktop{display:none}
  .site-header{padding:14px 0}
  .site-header.is-scrolled{padding:10px 0}
  .header-social-movil{
    display:flex; align-items:center; gap:8px;
  }
  .header-social-movil a{
    width:34px;height:34px;border-radius:50%; border:1.5px solid var(--linea);
    display:flex;align-items:center;justify-content:center; flex-shrink:0;
    transition:background .25s, border-color .25s;
  }
  .header-social-movil a:hover, .header-social-movil a:active{background:var(--c-primario); border-color:var(--c-primario)}
  .header-social-movil a:hover svg, .header-social-movil a:active svg{stroke:var(--white); fill:var(--white)}
  .header-social-movil svg{width:16px;height:16px;stroke:var(--c-primario);fill:none}
  .header-social-movil svg.icono-solido{fill:var(--c-primario);stroke:none}
}

/* ========================================================= HERO */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  background:var(--navy-950); overflow:hidden; padding:150px 0 100px;
  isolation:isolate;
}
.hero-fondos{position:absolute;inset:0;z-index:0}
.hero-fondo-imagen{position:absolute;inset:0;z-index:-1;background-size:cover;background-position:center}
.hero-fondos.con-imagen{opacity:.62}
.hero-fondo{position:absolute;inset:0;opacity:0;animation:cicloFondo 21s infinite}
.hero-fondo:nth-child(1){animation-delay:0s}
.hero-fondo:nth-child(2){animation-delay:7s}
.hero-fondo:nth-child(3){animation-delay:14s}
@keyframes cicloFondo{
  0%{opacity:0}
  4%{opacity:1}
  30%{opacity:1}
  38%{opacity:0}
  100%{opacity:0}
}
.hero-rutas{position:absolute;inset:0;z-index:1;opacity:.5;pointer-events:none}
.hero-rutas svg{width:100%;height:100%}
.ruta-linea{
  fill:none;stroke:url(#gradRuta);stroke-width:1.6;stroke-linecap:round;
  stroke-dasharray:8 10; animation:desplazarRuta 18s linear infinite;
}
.ruta-linea.r2{animation-duration:24s;animation-direction:reverse;opacity:.55}
.ruta-linea.r3{animation-duration:30s;opacity:.35}
@keyframes desplazarRuta{ to{ stroke-dashoffset:-400; } }

.hero-glow{
  position:absolute; width:60vw; height:60vw; max-width:820px; max-height:820px;
  right:-18vw; top:-10vw; border-radius:50%;
  background:radial-gradient(circle at center, rgba(34,211,238,.2), transparent 65%);
  z-index:1; pointer-events:none;
}

.hero-grid{position:relative;z-index:2; display:grid; grid-template-columns:1fr; gap:0; align-items:center; max-width:820px}
.hero-texto h1{
  color:var(--white); font-size:clamp(2.5rem, 5vw, 4.1rem); font-weight:700; margin-bottom:22px;
}
.hero-texto h1 .acento{
  background:linear-gradient(100deg, var(--c-acento), var(--c-secundario));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-texto p{color:#C6D3E0; font-size:1.15rem; max-width:560px; margin-bottom:34px}
.hero-acciones{display:flex; flex-wrap:wrap; gap:14px}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 26px;border-radius:100px;font-weight:700;font-size:15px;
  transition:transform .3s var(--easing), box-shadow .3s var(--easing), background .3s var(--easing);
}
.btn svg{width:19px;height:19px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.8}
.btn svg.icono-solido{fill:currentColor;stroke:none}
.btn-primario{background:var(--grad-marca);color:var(--white);box-shadow:0 14px 28px -12px rgba(14,165,233,.6)}
.btn-primario:hover{transform:translateY(-3px);box-shadow:0 18px 34px -12px rgba(14,165,233,.75)}
.btn-fantasma{background:rgba(255,255,255,.08);color:var(--white);border:1.5px solid rgba(255,255,255,.35)}
.btn-fantasma:hover{background:rgba(255,255,255,.16);transform:translateY(-3px)}
.btn-oscuro{background:var(--c-primario);color:var(--white)}
.btn-oscuro:hover{background:var(--navy-800);transform:translateY(-3px)}

.hero-visual{position:relative}
.hero-tarjeta-flotante{
  position:relative; border-radius:var(--radio); overflow:hidden; box-shadow:var(--sombra);
  aspect-ratio:4/5; background:var(--navy-800);
}
.hero-tarjeta-flotante img{width:100%;height:100%;object-fit:cover}
.hero-chip{
  position:absolute; left:-18px; bottom:34px; background:var(--white); border-radius:var(--radio-sm);
  padding:16px 20px; box-shadow:var(--sombra-sm); display:flex; align-items:center; gap:14px; max-width:280px;
  animation:flotar 5s ease-in-out infinite;
}
.hero-chip .icono-circulo{background:var(--grad-marca)}
.hero-chip strong{display:block;font-family:var(--fuente-display);color:var(--c-primario);font-size:15px}
.hero-chip span{color:var(--texto-suave);font-size:13px}
@keyframes flotar{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

@media (max-width:960px){
  .hero{padding:120px 0 90px}
  .hero-chip{left:8px}
}

/* ========================================================= SECCIONES / TÍTULOS */
.seccion{padding:100px 0}
.seccion-alt{background:var(--offwhite)}
.seccion-oscura{background:var(--grad-oscuro); color:var(--white)}
.seccion-oscura h2, .seccion-oscura h3{color:var(--white)}

.titulo-seccion{max-width:720px; margin-bottom:52px}
.titulo-seccion h2{font-size:clamp(2rem, 3.4vw, 2.7rem); margin-bottom:0}
.titulo-seccion p{color:var(--texto-suave); font-size:1.08rem}
.seccion-oscura .titulo-seccion p{color:#B7C6D6}
.titulo-seccion.centrado{margin-left:auto;margin-right:auto;text-align:center}
.titulo-linea{
  width:64px;height:4px;border-radius:4px;background:var(--grad-marca);margin:18px 0 22px;
}
.titulo-seccion.centrado .titulo-linea{margin-left:auto;margin-right:auto}

/* ========================================================= NOSOTROS (resumen / página) */
.nosotros-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center}
.nosotros-media{position:relative}
.nosotros-media .marco{border-radius:var(--radio);overflow:hidden;box-shadow:var(--sombra);aspect-ratio:1/1.05}
.nosotros-media img{width:100%;height:100%;object-fit:cover}
.nosotros-media .marco-linea{
  position:absolute; inset:-16px auto auto -16px; width:70%; height:70%;
  border:2px solid var(--c-acento); border-radius:var(--radio); z-index:-1;
}
.nosotros-texto p{color:var(--texto-suave); margin-bottom:18px; font-size:1.05rem}

.mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:32px}
.mv-card{
  background:var(--white); border:1px solid var(--linea); border-radius:var(--radio); padding:26px;
  transition:transform .3s var(--easing), box-shadow .3s var(--easing), border-color .3s var(--easing);
}
.mv-card:hover{transform:translateY(-6px); box-shadow:var(--sombra-sm); border-color:transparent}
.mv-card .icono-circulo{margin-bottom:14px}
.mv-card h3{font-size:1.1rem;margin-bottom:8px}
.mv-card p{color:var(--texto-suave); font-size:.96rem}

@media (max-width:900px){
  .nosotros-grid{grid-template-columns:1fr; gap:40px}
  .mv-grid{grid-template-columns:1fr}
}

/* ========================================================= ICONOS */
.icono-circulo{
  width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg, var(--c-secundario), var(--c-primario)); flex-shrink:0;
}
.icono-circulo svg{width:26px;height:26px;stroke:var(--white);fill:none}

/* ========================================================= CARRUSEL DE TARJETAS (Inicio) — desplazamiento automático infinito */
.carrusel-wrap{position:relative; overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask-image:linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent)}
.carrusel{
  display:flex; gap:26px; width:max-content; padding:8px 4px 12px;
  animation:desplazarCarrusel 32s linear infinite;
}
.carrusel-wrap:hover .carrusel{animation-play-state:paused}
@keyframes desplazarCarrusel{ from{transform:translateX(0)} to{transform:translateX(calc(-50% - 13px))} }
.tarjeta-carrusel{
  flex:0 0 auto; width:340px;
  background:var(--white); border-radius:var(--radio); overflow:hidden; box-shadow:var(--sombra-sm);
  border:1px solid var(--linea);
  transition:transform .4s var(--easing), box-shadow .4s var(--easing);
}
.tarjeta-carrusel:hover{transform:translateY(-8px); box-shadow:var(--sombra)}
.tarjeta-carrusel .media{aspect-ratio:16/11; overflow:hidden}
.tarjeta-carrusel .media img{width:100%;height:100%;object-fit:cover; transition:transform .6s var(--easing)}
.tarjeta-carrusel:hover .media img{transform:scale(1.07)}
.tarjeta-carrusel .cuerpo{padding:24px}
.tarjeta-carrusel h3{font-size:1.15rem;margin-bottom:10px}
.tarjeta-carrusel p{color:var(--texto-suave); font-size:.95rem}

/* ========================================================= PUERTOS */
.puertos-wrap{position:relative}
.puertos-ruta{position:relative; padding-top:20px}
.puertos-linea-svg{position:absolute; top:38px; left:0; width:100%; height:60px; z-index:0}
.puertos-grid{position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,1fr); gap:28px}
.puerto-item{text-align:center}
.puerto-nodo{
  width:64px;height:64px;border-radius:50%; margin:0 auto 20px; display:flex;align-items:center;justify-content:center;
  background:rgba(34,211,238,.12); border:1.5px solid var(--c-acento);
}
.puerto-nodo svg{width:28px;height:28px;stroke:var(--c-acento);fill:none}
.puerto-item h3{font-size:1.1rem;color:var(--white);margin-bottom:10px}
.puerto-item p{color:#B7C6D6; font-size:.94rem}

@media (max-width:820px){
  .puertos-grid{grid-template-columns:1fr; gap:44px}
  .puertos-linea-svg{display:none}
}

/* ========================================================= RAZONES */
.razones-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:22px}
.razon-item{
  display:flex; align-items:flex-start; gap:16px; background:var(--white); border:1px solid var(--linea);
  border-radius:var(--radio); padding:22px; transition:transform .3s var(--easing), box-shadow .3s var(--easing);
}
.razon-item:hover{transform:translateY(-5px); box-shadow:var(--sombra-sm)}
.razon-item .check{
  width:34px;height:34px;border-radius:10px;background:rgba(14,165,233,.12); flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.razon-item .check svg{width:18px;height:18px;stroke:var(--c-secundario);fill:none}
.razon-item p{font-weight:600; color:var(--c-primario); font-size:.98rem}

/* ========================================================= CTA FINAL */
.cta-panel{
  border-radius:28px; background:var(--grad-marca); padding:64px; text-align:center; position:relative; overflow:hidden;
}
.cta-panel::before{
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle at 20% 20%, rgba(255,255,255,.18), transparent 45%);
}
.cta-panel h2{color:var(--white); position:relative; margin-bottom:14px}
.cta-panel p{color:rgba(255,255,255,.92); max-width:560px; margin:0 auto 32px; position:relative; font-size:1.08rem}
.cta-panel .hero-acciones{justify-content:center; position:relative}
.cta-panel .btn-fantasma{background:rgba(255,255,255,.14)}
.cta-panel .btn-oscuro{box-shadow:0 14px 28px -12px rgba(5,11,22,.5)}

/* ========================================================= SERVICIOS */
.servicios-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px}
.servicio-card{
  background:var(--white); border:1px solid var(--linea); border-radius:var(--radio); overflow:hidden;
  transition:transform .35s var(--easing), box-shadow .35s var(--easing);
}
.servicio-card:hover{transform:translateY(-8px); box-shadow:var(--sombra)}
.servicio-card .media{aspect-ratio:16/10; overflow:hidden; position:relative}
.servicio-card .media img{width:100%;height:100%;object-fit:cover; transition:transform .6s var(--easing)}
.servicio-card:hover .media img{transform:scale(1.08)}
.servicio-card .media .icono-circulo{position:absolute; left:18px; bottom:-26px; box-shadow:0 10px 20px -8px rgba(10,22,38,.4)}
.servicio-card .cuerpo{padding:34px 24px 24px}
.servicio-card h3{font-size:1.18rem; margin-bottom:10px}
.servicio-card p{color:var(--texto-suave); font-size:.96rem}

@media (max-width:960px){ .servicios-grid{grid-template-columns:1fr 1fr} }
@media (max-width:620px){ .servicios-grid{grid-template-columns:1fr} }

/* ========================================================= GALERÍA */
.galeria-grid{
  display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:160px; gap:14px;
}
.galeria-item{
  border-radius:var(--radio-sm); overflow:hidden; position:relative; cursor:zoom-in;
}
.galeria-item:nth-child(5n+1){grid-column:span 2; grid-row:span 2}
.galeria-item img{width:100%;height:100%;object-fit:cover; transition:transform .5s var(--easing)}
.galeria-item:hover img{transform:scale(1.1)}
.galeria-item::after{
  content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,22,38,.55), transparent 45%);
  opacity:0; transition:opacity .3s;
}
.galeria-item:hover::after{opacity:1}

@media (max-width:820px){
  .galeria-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:140px}
  .galeria-item:nth-child(5n+1){grid-column:span 2; grid-row:span 1}
}

/* Lightbox simple */
.lightbox{
  position:fixed; inset:0; background:rgba(5,11,22,.94); z-index:3000; display:none;
  align-items:center; justify-content:center; padding:24px;
}
.lightbox.activo{display:flex}
.lightbox img{max-width:min(900px,92vw); max-height:86vh; border-radius:10px; box-shadow:0 30px 60px rgba(0,0,0,.5)}
.lightbox-cerrar{
  position:absolute; top:24px; right:24px; width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,.1); border:1.5px solid rgba(255,255,255,.3); display:flex;align-items:center;justify-content:center;
}
.lightbox-cerrar svg{width:20px;height:20px;stroke:var(--white)}

/* ========================================================= CONTACTO */
.contacto-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:48px; align-items:start}
.contacto-tarjetas{display:flex; flex-direction:column; gap:16px}
.contacto-item{
  display:flex; align-items:center; gap:16px; background:var(--white); border:1px solid var(--linea);
  border-radius:var(--radio); padding:20px 22px; transition:transform .3s var(--easing), box-shadow .3s var(--easing);
}
.contacto-item:hover{transform:translateY(-4px); box-shadow:var(--sombra-sm)}
.contacto-item strong{display:block;color:var(--c-primario);font-size:1rem}
.contacto-item span{color:var(--texto-suave); font-size:.92rem}

.icono-wa{
  width:52px;height:52px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.icono-wa svg{width:27px;height:27px;fill:var(--white)}

.form-contacto{background:var(--white); border:1px solid var(--linea); border-radius:var(--radio); padding:36px; box-shadow:var(--sombra-sm)}
.campo{margin-bottom:20px}
.campo label{display:block; font-weight:600; font-size:.92rem; margin-bottom:8px; color:var(--c-primario)}
.campo input, .campo textarea{
  width:100%; padding:14px 16px; border-radius:10px; border:1.5px solid var(--linea); background:var(--offwhite);
  transition:border-color .25s, background .25s;
}
.campo input:focus, .campo textarea:focus{border-color:var(--c-secundario); background:var(--white); outline:none}
.campo textarea{resize:vertical; min-height:120px}
.form-nota{font-size:.85rem; color:var(--texto-suave); margin-top:14px}

.mapa-wrap{border-radius:var(--radio); overflow:hidden; box-shadow:var(--sombra-sm); margin-top:28px; aspect-ratio:16/8}
.mapa-wrap iframe{width:100%;height:100%;border:0}

@media (max-width:900px){
  .contacto-grid{grid-template-columns:1fr}
}

/* ========================================================= PÁGINA HERO INTERIOR (Nosotros/Servicios/Contacto) */
.hero-interior{
  position:relative; background:var(--grad-oscuro); padding:170px 0 90px; overflow:hidden; isolation:isolate;
}
.hero-interior .hero-rutas{opacity:.4}
.hero-interior h1{color:var(--white); font-size:clamp(2.2rem,4.4vw,3.4rem); max-width:760px}
.hero-interior p{color:#C6D3E0; max-width:600px; margin-top:16px; font-size:1.08rem}

/* ========================================================= FOOTER */
.site-footer{background:var(--navy-950); color:#B7C6D6; padding-top:76px}
.footer-grid{display:grid; grid-template-columns:1.3fr .8fr .8fr 1fr; gap:44px; padding-bottom:56px; border-bottom:1px solid rgba(255,255,255,.08)}
.footer-marca img{height:46px; margin-bottom:18px}
.footer-marca p{font-size:.94rem; line-height:1.7; max-width:320px}
.footer-social{display:flex; gap:12px; margin-top:22px}
.footer-social a{
  width:40px;height:40px;border-radius:50%; border:1.5px solid rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center; transition:background .25s, border-color .25s;
}
.footer-social a:hover{background:var(--c-secundario); border-color:var(--c-secundario)}
.footer-social svg{width:17px;height:17px;stroke:var(--white);fill:none}
.footer-social svg.icono-solido{fill:var(--white);stroke:none}

.footer-col h4{color:var(--white); font-family:var(--fuente-display); font-size:1rem; margin-bottom:20px}
.footer-col ul{display:flex; flex-direction:column; gap:12px}
.footer-col a{font-size:.94rem; transition:color .25s}
.footer-col a:hover{color:var(--c-acento)}
.footer-contacto li{display:flex; gap:10px; align-items:flex-start; font-size:.94rem}
.footer-contacto svg{width:17px;height:17px;stroke:var(--c-acento);fill:none; flex-shrink:0; margin-top:3px}

.footer-bottom{padding:22px 0 calc(22px + 78px); text-align:center; font-size:.85rem; color:#8FA3B8}

@media (max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr; row-gap:36px}
}
@media (max-width:560px){
  .footer-grid{grid-template-columns:1fr}
}

/* ========================================================= WHATSAPP FLOTANTE */
.wa-flotante{
  position:fixed; right:22px; bottom:104px; z-index:1500;
  width:60px;height:60px;border-radius:50%; background:#25D366; display:flex;align-items:center;justify-content:center;
  box-shadow:0 14px 28px -8px rgba(37,211,102,.55);
  transition:transform .3s var(--easing);
}
.wa-flotante:hover{transform:scale(1.08)}
.wa-flotante svg{width:30px;height:30px;fill:var(--white)}
.wa-flotante .pulso{
  position:absolute; inset:0; border-radius:50%; background:#25D366; opacity:.6;
  animation:pulsoWa 2.2s ease-out infinite;
}
@keyframes pulsoWa{0%{transform:scale(1);opacity:.55}100%{transform:scale(1.9);opacity:0}}

@media (max-width:960px){
  .wa-flotante{right:16px; bottom:96px; width:54px;height:54px}
  .wa-flotante svg{width:26px;height:26px}
}

/* ========================================================= MENÚ INFERIOR MÓVIL (app-like) */
.bottom-nav{
  display:none; position:fixed; left:0; right:0; bottom:0; z-index:1400;
  background:rgba(10,22,38,.97); backdrop-filter:blur(14px);
  border-top:1px solid rgba(255,255,255,.08);
  padding:8px 6px calc(8px + env(safe-area-inset-bottom));
}
.bottom-nav ul{display:flex; justify-content:space-around; align-items:center}
.bottom-nav a{
  display:flex; flex-direction:column; align-items:center; gap:5px; color:#8FA3B8;
  font-size:11px; font-weight:600; padding:6px 10px; border-radius:12px; position:relative;
  transition:color .25s;
}
.bottom-nav a svg{width:22px;height:22px;stroke:currentColor;fill:none; transition:transform .25s}
.bottom-nav a.activo{color:var(--c-acento)}
.bottom-nav a.activo svg{transform:translateY(-2px)}
.bottom-nav a.activo::before{
  content:''; position:absolute; top:-8px; width:5px;height:5px;border-radius:50%; background:var(--c-acento);
}

@media (max-width:960px){
  .bottom-nav{display:block}
  body{padding-bottom:0}
}

/* ========================================================= UTILIDADES */
.mt-0{margin-top:0}
.text-center{text-align:center}
.badge-mono{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--fuente-mono); font-size:12px;
  letter-spacing:.06em; color:var(--c-secundario); background:rgba(14,165,233,.08); border:1px solid rgba(14,165,233,.25);
  padding:8px 14px; border-radius:100px; margin-bottom:18px;
}
.seccion-oscura .badge-mono{color:var(--c-acento); background:rgba(34,211,238,.08); border-color:rgba(34,211,238,.3)}

@media (max-width:640px){
  .seccion{padding:70px 0}
  .cta-panel{padding:44px 26px}
}
