/* ============================================================
   Loreto Visión — hoja de estilos principal
   ============================================================ */

:root{
  --azul:#0B1A4A;
  --azul-2:#132C6E;
  --azul-osc:#050D2B;
  --amarillo:#F2B705;
  --amarillo-cl:#FFD75E;
  --verde:#2E9E4F;
  --verde-osc:#1E7A3A;
  --gris:#5B6470;
  --tinta:#0F1724;
  --fondo:#F7F8FB;
  --borde:#E6EAF2;
  --sombra:0 18px 48px rgba(11,26,74,.10);
  --sombra-alta:0 28px 70px rgba(11,26,74,.18);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Montserrat',system-ui,-apple-system,sans-serif;color:var(--tinta);background:#fff;line-height:1.7;-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;display:block;}
::selection{background:var(--amarillo);color:var(--azul-osc);}
a{color:var(--azul);}
a:focus-visible,button:focus-visible{outline:3px solid var(--amarillo);outline-offset:3px;border-radius:6px;}

.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}
.saltar-contenido{position:absolute;left:-9999px;top:0;background:var(--amarillo);color:var(--azul-osc);padding:12px 20px;font-weight:700;z-index:999;}
.saltar-contenido:focus{left:10px;top:10px;}

/* ---------- Franja de marca ---------- */
.franja{height:6px;background:linear-gradient(90deg,var(--amarillo) 33%,var(--verde) 33% 66%,var(--azul) 66%);}

/* ---------- Cabecera ---------- */
.sitio-cabecera{position:sticky;top:0;z-index:60;}
.nav-principal{background:rgba(255,255,255,.9);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--borde);display:flex;align-items:center;justify-content:space-between;padding:12px 5vw;flex-wrap:wrap;gap:12px;transition:box-shadow .3s;}
.sitio-cabecera.scrolled .nav-principal{box-shadow:0 6px 28px rgba(11,26,74,.10);}
.marca img,.custom-logo{max-height:58px;width:auto;}
.logo-texto{text-decoration:none;display:block;}
.logo-nombre{font-weight:900;font-size:1.3rem;color:var(--azul);letter-spacing:-.5px;display:block;line-height:1.2;}
.logo-acento{color:var(--verde);}
.logo-texto small{display:block;font-size:.58rem;font-weight:600;color:var(--gris);letter-spacing:.4px;text-transform:none;}

.menu{display:flex;gap:4px;list-style:none;align-items:center;flex-wrap:wrap;margin:0;}
.menu li{position:relative;}
.menu a{color:var(--tinta);text-decoration:none;font-size:.87rem;font-weight:600;padding:9px 15px;border-radius:100px;display:inline-flex;align-items:center;gap:7px;transition:background .2s,color .2s;}
.menu-ico{font-size:1.02em;line-height:1;display:inline-block;}
.menu-legal a .menu-ico{font-size:.95em;}
.menu a:hover{background:var(--fondo);color:var(--azul-2);}
.menu .current-menu-item > a,.menu .current_page_item > a{background:var(--azul);color:#fff;}
.menu .sub-menu{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--borde);border-radius:12px;padding:8px;min-width:200px;box-shadow:var(--sombra);list-style:none;}
.menu li:hover > .sub-menu,.menu li:focus-within > .sub-menu{display:block;}
.menu .sub-menu a{display:block;white-space:nowrap;}

.menu-toggle{display:none;background:transparent;border:1px solid var(--borde);border-radius:10px;padding:10px 12px;cursor:pointer;}
.menu-toggle .barra{display:block;width:20px;height:2px;background:var(--azul);margin:4px 0;border-radius:2px;}

/* ---------- Botones ---------- */
.btn{display:inline-block;padding:14px 32px;border-radius:100px;font-weight:700;text-decoration:none;font-size:.95rem;border:none;cursor:pointer;font-family:inherit;transition:transform .18s,box-shadow .18s,background .18s;}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:translateY(0);}
.btn-amarillo{background:var(--amarillo);color:var(--azul-osc);box-shadow:0 10px 26px rgba(242,183,5,.34);}
.btn-amarillo:hover{background:var(--amarillo-cl);}
.btn-verde{background:var(--verde);color:#fff;box-shadow:0 10px 26px rgba(46,158,79,.34);}
.btn-verde:hover{background:var(--verde-osc);}
.btn-azul{background:var(--azul);color:#fff;}
.btn-azul:hover{background:var(--azul-2);}

/* ---------- Banner ---------- */
.banner{background:radial-gradient(1100px 620px at 15% -10%,var(--azul-2),var(--azul) 45%,var(--azul-osc));color:#fff;padding:74px 6vw 84px;display:grid;grid-template-columns:1fr 1.15fr;gap:52px;align-items:center;position:relative;overflow:hidden;}
.banner::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.16) 1px,transparent 1px);background-size:26px 26px;opacity:.35;pointer-events:none;}
.banner::after{content:"";position:absolute;bottom:-120px;left:-100px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(242,183,5,.18),transparent 68%);pointer-events:none;}
.banner > *{position:relative;z-index:1;}
.eyebrow{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#E4ECFA;font-size:.76rem;font-weight:700;letter-spacing:.6px;padding:6px 15px;border-radius:100px;margin-bottom:16px;}
.eyebrow i{width:7px;height:7px;border-radius:50%;background:var(--verde);display:inline-block;}
.banner h1{font-size:clamp(2rem,4.4vw,3.15rem);font-weight:900;line-height:1.1;letter-spacing:-1px;color:#fff;}
.banner h1 em{font-style:normal;background:linear-gradient(100deg,var(--amarillo),var(--amarillo-cl));-webkit-background-clip:text;background-clip:text;color:transparent;}
.banner .fibra{display:inline-block;background:var(--verde);color:#fff;font-weight:800;padding:7px 20px;border-radius:8px;margin-top:16px;font-size:1rem;box-shadow:0 8px 22px rgba(46,158,79,.35);}
.banner p{margin-top:18px;color:#C2CFE6;font-size:1.03rem;max-width:440px;}
.banner .acciones{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap;}
.insignia-canales{margin-top:14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:12px 18px;color:#C2CFE6;font-size:.85rem;font-weight:600;}
.insignia-canales .pill{background:var(--amarillo);color:var(--azul-osc);font-weight:900;padding:5px 15px;border-radius:100px;font-size:.88rem;}

/* ---------- Reproductor ---------- */
.player-wrap{max-width:880px;margin:0 auto;border-radius:18px;overflow:hidden;background:#000;border:1px solid rgba(255,255,255,.14);box-shadow:var(--sombra-alta);}
.video-js{width:100%!important;aspect-ratio:16/9;height:auto!important;}
.vivo-tag{display:inline-flex;align-items:center;gap:9px;background:#E5322D;color:#fff;font-weight:800;font-size:.78rem;padding:6px 16px;border-radius:100px;margin-bottom:14px;letter-spacing:.8px;box-shadow:0 8px 24px rgba(229,50,45,.4);}
.vivo-tag::before{content:"";width:8px;height:8px;border-radius:50%;background:#fff;animation:latido 1.6s infinite;}
@keyframes latido{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}
.lv-estado{margin-top:12px;font-size:.85rem;color:#9AA6B5;}

/* ---------- Secciones ---------- */
.seccion{padding:70px 6vw;}
.seccion.fondo-claro{background:var(--fondo);}
.centrado{text-align:center;}
h2{font-size:clamp(1.55rem,3vw,2.2rem);font-weight:900;margin-bottom:10px;color:var(--azul);letter-spacing:-.6px;}
.centrado h2::after{content:"";display:block;width:52px;height:4px;border-radius:2px;background:var(--amarillo);margin:14px auto 0;}
h3{color:var(--azul);}
.sub{color:var(--gris);max-width:640px;margin:0 auto 40px;}

/* ---------- Métricas ---------- */
.metricas{background:var(--borde);display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;border-bottom:1px solid var(--borde);}
.metrica{background:#fff;padding:34px 22px;text-align:center;transition:background .25s;}
.metrica:hover{background:var(--fondo);}
.metrica strong{display:block;font-size:2.2rem;font-weight:900;color:var(--azul);letter-spacing:-1px;line-height:1;}
.metrica small{color:var(--gris);font-weight:600;font-size:.82rem;display:block;margin-top:6px;}

/* ---------- Planes ---------- */
.grid-planes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;max-width:1050px;margin:0 auto;}
.plan{border:1px solid var(--borde);border-radius:20px;padding:36px 28px;text-align:center;display:flex;flex-direction:column;background:#fff;transition:transform .25s,box-shadow .25s,border-color .25s;position:relative;}
.plan:hover{transform:translateY(-6px);box-shadow:var(--sombra);border-color:#D2DAEA;}
.plan.pro{border:2px solid var(--verde);box-shadow:0 20px 48px rgba(46,158,79,.18);transform:translateY(-8px);}
.plan.pro:hover{transform:translateY(-14px);box-shadow:0 26px 60px rgba(46,158,79,.24);}
.plan .tag{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--verde);color:#fff;font-size:.74rem;font-weight:800;padding:5px 18px;border-radius:100px;white-space:nowrap;letter-spacing:.3px;box-shadow:0 8px 20px rgba(46,158,79,.4);}
.plan h3{font-weight:800;font-size:1.1rem;}
.plan .vel{font-size:3rem;font-weight:900;color:var(--azul);line-height:1;margin:14px 0 2px;letter-spacing:-2px;}
.plan .vel small{font-size:1rem;font-weight:700;color:var(--gris);letter-spacing:0;}
.plan .precio{font-size:1.3rem;font-weight:800;color:var(--verde-osc);margin-bottom:8px;}
.plan ul{list-style:none;margin:14px 0 24px;flex:1;text-align:left;}
.plan li{padding:8px 0;border-bottom:1px dashed var(--borde);font-size:.92rem;color:#33404F;}
.plan li::before{content:"✓";color:var(--verde);font-weight:800;margin-right:10px;}
.empresarial{max-width:860px;margin:44px auto 0;background:var(--azul);color:#fff;border-radius:20px;padding:34px;text-align:center;}
.empresarial h3{color:#fff;font-size:1.2rem;font-weight:800;margin-bottom:8px;}
.empresarial p{color:#C2CFE6;font-size:.94rem;max-width:640px;margin:0 auto 18px;}

/* ---------- TV en vivo (página) ---------- */
.envivo{background:#0A0F2B;color:#fff;}
.envivo h2{color:#fff;}
.envivo .sub{color:#9AA6B5;}
.vivo-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:24px;align-items:stretch;max-width:1150px;margin:0 auto;text-align:left;}
.vivo-lateral{display:flex;flex-direction:column;gap:16px;}
.progra{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:22px;flex:1;}
.progra h3{color:#fff;font-size:1rem;font-weight:700;margin-bottom:12px;}
.fila-p{display:flex;gap:14px;padding:9px 0;border-bottom:1px dashed rgba(255,255,255,.12);font-size:.9rem;color:#C2CFE6;}
.fila-p:last-child{border-bottom:none;}
.fila-p .hora{color:var(--amarillo);font-weight:800;min-width:56px;}
.fila-p.ahora{color:#fff;font-weight:700;}
.fila-p.ahora .hora{color:#E5322D;}
.compartir{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:22px;text-align:center;display:flex;flex-direction:column;gap:10px;}
.compartir h3{color:#fff;font-size:1rem;font-weight:700;}
.btn-red{display:block;padding:12px;border-radius:100px;font-weight:700;font-size:.88rem;text-decoration:none;color:#fff;border:none;cursor:pointer;font-family:inherit;transition:filter .2s;}
.btn-red:hover{filter:brightness(1.15);}
.btn-fb{background:#1877F2;}
.btn-wa{background:#25D366;}
.btn-yt{background:#FF0000;}
.btn-copiar{background:rgba(255,255,255,.15);color:#fff;}

/* ---------- Quiénes somos ---------- */
.qs-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;max-width:1050px;margin:0 auto;align-items:start;}
.qs-grid p{color:var(--gris);margin-bottom:14px;}
.qs-imagen{border-radius:18px;margin-bottom:20px;box-shadow:var(--sombra);}
.qs-datos{background:var(--fondo);border-radius:18px;padding:30px;}
.qs-datos div{padding:12px 0;border-bottom:1px solid var(--borde);font-size:.93rem;}
.qs-datos div:last-child{border-bottom:none;}
.qs-datos strong{color:var(--azul);display:block;font-size:.85rem;}
.valores{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;max-width:1050px;margin:44px auto 0;}
.valor{border:1px solid var(--borde);border-radius:16px;padding:26px;text-align:center;transition:transform .25s,box-shadow .25s;}
.valor:hover{transform:translateY(-4px);box-shadow:var(--sombra);}
.valor h3{font-size:1rem;margin-bottom:6px;}
.valor p{color:var(--gris);font-size:.88rem;}

/* ---------- Canales ---------- */
.canales-lista{max-width:1050px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
.canal{background:#fff;border:1px solid var(--borde);border-radius:12px;padding:13px 8px;text-align:center;font-size:.82rem;font-weight:700;color:var(--azul);transition:transform .2s,box-shadow .2s,border-color .2s;}
.canal:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(11,26,74,.09);border-color:var(--amarillo);}
.canal b{display:inline-block;background:var(--azul);color:#fff;border-radius:6px;font-size:.72rem;padding:2px 7px;margin-right:6px;}
.nota-canales{text-align:center;margin-top:24px;color:var(--gris);font-size:.9rem;}

/* ---------- ARCOTEL ---------- */
.arcotel-caja{max-width:860px;margin:0 auto;background:#fff;border-radius:20px;padding:38px;box-shadow:var(--sombra);text-align:left;}
.intro-calidad{color:var(--gris);font-size:.95rem;margin-bottom:18px;}
.arcotel-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--borde);flex-wrap:wrap;}
.arcotel-item:last-child{border-bottom:none;}
.arcotel-item .info strong{display:block;color:var(--azul);font-size:.95rem;}
.arcotel-item .info small{color:var(--gris);font-size:.83rem;}
.btn-doc{background:var(--azul);color:#fff;padding:10px 22px;border-radius:100px;font-size:.85rem;font-weight:700;text-decoration:none;white-space:nowrap;}
.btn-doc:hover{background:var(--azul-2);}

/* ---------- Contacto ---------- */
.contacto-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;max-width:900px;margin:0 auto;}
.tc{background:#fff;border:1px solid var(--borde);border-radius:18px;padding:30px;text-align:center;transition:transform .25s,box-shadow .25s;}
.tc:hover{transform:translateY(-4px);box-shadow:var(--sombra);}
.tc strong{display:block;color:var(--azul);margin-bottom:6px;}
.tc a{color:var(--verde-osc);font-weight:700;text-decoration:none;font-size:.98rem;}
.tc small{display:block;color:var(--gris);font-size:.82rem;margin-top:4px;}

/* ---------- Noticias ---------- */
.titulo-archivo{text-align:center;margin-bottom:36px;}
.grid-noticias{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;max-width:1100px;margin:0 auto;}
.noticia{background:#fff;border:1px solid var(--borde);border-radius:18px;overflow:hidden;transition:transform .25s,box-shadow .25s;}
.noticia:hover{transform:translateY(-5px);box-shadow:var(--sombra);}
.noticia-img img{width:100%;height:190px;object-fit:cover;}
.noticia-cuerpo{padding:22px;}
.noticia-cuerpo h3{font-size:1.05rem;line-height:1.4;margin-bottom:6px;}
.noticia-cuerpo h3 a{color:var(--azul);text-decoration:none;}
.noticia-fecha{font-size:.8rem;color:var(--gris);margin-bottom:8px;}
.noticia-cuerpo p{color:var(--gris);font-size:.9rem;}
.noticia-mas{display:inline-block;margin-top:12px;color:var(--verde-osc);font-weight:700;font-size:.88rem;text-decoration:none;}
.paginacion{text-align:center;margin-top:40px;}
.paginacion .page-numbers{display:inline-block;padding:8px 14px;border:1px solid var(--borde);border-radius:8px;margin:0 3px;text-decoration:none;color:var(--azul);}
.paginacion .current{background:var(--azul);color:#fff;border-color:var(--azul);}

/* ---------- Entradas y páginas ---------- */
.entrada,.pagina-normal{max-width:820px;margin:0 auto;}
.entrada-titulo{font-size:clamp(1.6rem,3.4vw,2.4rem);font-weight:900;color:var(--azul);letter-spacing:-.8px;margin-bottom:8px;}
.entrada-meta{color:var(--gris);font-size:.85rem;margin-bottom:22px;}
.entrada-img{margin-bottom:26px;border-radius:16px;overflow:hidden;}
.entrada-contenido p{margin-bottom:16px;}
.entrada-contenido h2,.entrada-contenido h3{margin:26px 0 10px;}
.entrada-contenido ul,.entrada-contenido ol{margin:0 0 16px 22px;}
.entrada-contenido img{border-radius:14px;}
.entrada-contenido blockquote{border-left:4px solid var(--amarillo);padding-left:18px;color:var(--gris);font-style:italic;margin:20px 0;}
.contenido-pagina{max-width:820px;margin:0 auto;}

/* ---------- Buscador y comentarios ---------- */
.buscador{display:flex;gap:8px;max-width:420px;margin:20px auto 0;}
.buscador input{flex:1;border:1px solid var(--borde);border-radius:10px;padding:12px 14px;font-family:inherit;}
.buscador button{background:var(--azul);color:#fff;border:none;border-radius:10px;padding:12px 20px;font-weight:700;cursor:pointer;font-family:inherit;}
.comentarios{max-width:820px;margin:44px auto 0;padding-top:28px;border-top:1px solid var(--borde);}
.lista-comentarios{list-style:none;margin:0 0 30px;}
.lista-comentarios li{padding:16px 0;border-bottom:1px solid var(--borde);}
.comentarios input[type=text],.comentarios input[type=email],.comentarios input[type=url],.comentarios textarea{width:100%;border:1px solid var(--borde);border-radius:10px;padding:12px 14px;font-family:inherit;margin-bottom:12px;}
.comentarios .submit{background:var(--azul);color:#fff;border:none;border-radius:100px;padding:13px 30px;font-weight:700;cursor:pointer;font-family:inherit;}

/* ---------- Rendición de cuentas ---------- */
.rc-contenido{margin-bottom:22px;color:var(--gris);}
.rc-item .info strong{display:flex;align-items:center;gap:10px;font-size:.97rem;}
.rc-num{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;border-radius:8px;background:var(--azul);color:#fff;font-size:.78rem;font-weight:800;flex-shrink:0;}
.rc-item .info small{display:block;margin-left:36px;}
.rc-pendiente{opacity:.72;}
.rc-pendiente .rc-num{background:#9AA6B5;}
.rc-badge{background:var(--fondo);border:1px dashed #B9C3D4;color:var(--gris);padding:9px 20px;border-radius:100px;font-size:.8rem;font-weight:700;white-space:nowrap;}
.btn-doc-inactivo{background:#EDF1F7;color:#98A3B4;border:1px dashed #C3CDDD;cursor:not-allowed;display:inline-block;}
.btn-doc-inactivo:hover{background:#EDF1F7;}
@media(max-width:620px){
  .rc-item .info small{margin-left:0;}
  .arcotel-item .btn-doc,.rc-badge{width:100%;text-align:center;}
}

/* ---------- Área editable (editor de WordPress / Elementor) ---------- */
.lv-editable:empty{display:none;}
.lv-editable > p:empty{display:none;}
.inicio-contenido{max-width:1100px;margin:0 auto;padding:0 6vw;}
.inicio-contenido:empty{padding:0;}
.rc-contenido:empty,.sub.lv-editable:empty{margin:0;}
section.contenido-pagina.lv-editable:empty{padding:0;display:none;}

/* ---------- Lienzo para constructores visuales ---------- */
.lv-lienzo{width:100%;}
.lv-lienzo > .entry-content,
body.lv-constructor .lv-lienzo{max-width:100%;padding:0;}
.lv-lienzo .alignfull{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);}
.lv-lienzo .alignwide{max-width:1200px;margin-left:auto;margin-right:auto;}

/* Paleta de la marca para bloques y constructores */
.has-lv-azul-color{color:var(--azul)!important;}
.has-lv-azul-background-color{background-color:var(--azul)!important;}
.has-lv-amarillo-color{color:var(--amarillo)!important;}
.has-lv-amarillo-background-color{background-color:var(--amarillo)!important;}
.has-lv-verde-color{color:var(--verde)!important;}
.has-lv-verde-background-color{background-color:var(--verde)!important;}
.has-lv-gris-color{color:var(--gris)!important;}
.has-lv-fondo-background-color{background-color:var(--fondo)!important;}

/* ---------- Pie ---------- */
.sitio-pie{background:var(--azul-osc);color:#9FB0D4;padding:44px 6vw 32px;text-align:center;font-size:.88rem;}
.pie-widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:26px;max-width:1050px;margin:0 auto 32px;text-align:left;}
.pie-widgets .widget-titulo{color:#fff;font-size:1rem;margin-bottom:10px;}
.pie-widgets a{color:#9FB0D4;text-decoration:none;}
.pie-widgets ul{list-style:none;}
.pie-widgets li{padding:4px 0;}
.franja-pie{height:6px;background:linear-gradient(90deg,var(--amarillo) 33%,var(--verde) 33% 66%,#fff 66%);border-radius:3px;max-width:220px;margin:0 auto 18px;}
.pie-marca strong{color:#fff;font-size:1.05rem;font-weight:900;letter-spacing:.5px;}
.pie-texto,.pie-contacto{margin-top:4px;}
.pie-contacto a,.pie-redes a{color:var(--amarillo);text-decoration:none;font-weight:600;}
.pie-redes{margin-top:12px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
.pie-legal{margin-top:14px;}
.menu-legal{list-style:none;display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}
.menu-legal a{color:var(--amarillo);text-decoration:none;font-weight:600;font-size:.85rem;}
.pie-copy{margin-top:18px;font-size:.8rem;color:#6B7CA6;}

/* ---------- WhatsApp flotante ---------- */
.wa-flotante{position:fixed;right:20px;bottom:20px;z-index:80;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(37,211,102,.45);transition:transform .2s;}
.wa-flotante:hover{transform:scale(1.08);}

/* ---------- Alineaciones de bloques ---------- */
.alignwide{max-width:1100px;margin-left:auto;margin-right:auto;}
.alignfull{max-width:100%;}
.alignleft{float:left;margin:0 20px 16px 0;}
.alignright{float:right;margin:0 0 16px 20px;}
.aligncenter{margin-left:auto;margin-right:auto;}
.sticky{border:2px solid var(--amarillo);}

/* ---------- Responsivo ---------- */
@media(max-width:960px){
  .banner{grid-template-columns:1fr;padding-top:56px;}
  .vivo-grid{grid-template-columns:1fr;}
  .qs-grid{grid-template-columns:1fr;}
}
@media(max-width:820px){
  .menu-toggle{display:block;order:2;}
  .menu{display:none;width:100%;flex-direction:column;align-items:stretch;order:3;padding-top:8px;}
  .menu.abierto{display:flex;}
  .menu a{display:block;padding:12px 14px;}
  .menu .sub-menu{position:static;display:block;box-shadow:none;border:none;padding-left:14px;}
  .seccion{padding:52px 6vw;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;}
}
