/*
Theme Name: Apex Thermal & Electric Solutions
Theme URI: https://paginasmexico.com
Author: PáginasMX
Description: Tema a la medida de Apex Thermal & Electric Solutions, hecho por PáginasMX. Editable desde el editor de bloques.
Version: 1.0
Requires at least: 6.5
Tested up to: 7.1
Text Domain: pmx-apex
*/

/* ── Base ─────────────────────────────────────────────── */
:root{--apx-oro:var(--wp--preset--color--acento);--apx-linea:rgba(212,165,60,.22);--apx-borde:rgba(231,236,243,.1)}
body{-webkit-font-smoothing:antialiased}
.apx-main{margin-block-start:0!important}
.apx-main > *{margin-block-start:0!important}
.wp-block-heading{letter-spacing:.01em;text-transform:uppercase}
.apx-tenue{color:var(--wp--preset--color--tenue)}
.apx-etiqueta{font-size:var(--wp--preset--font-size--etiqueta);letter-spacing:.28em;text-transform:uppercase;color:var(--apx-oro);font-weight:600;display:flex;align-items:center;gap:.8rem;margin-bottom:.9rem}
.apx-etiqueta::before{content:"";width:2.2rem;height:1px;background:var(--apx-oro)}
.apx-titulo{font-size:var(--wp--preset--font-size--titulo);max-width:18ch;margin-top:0}
.apx-num{font-family:var(--wp--preset--font-family--titulos);color:var(--apx-oro);letter-spacing:.2em;font-size:.95rem;margin-bottom:.3rem}
.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:var(--wp--preset--color--texto);border:1px solid rgba(231,236,243,.45)}
.wp-block-button.is-style-outline .wp-block-button__link:hover{border-color:var(--apx-oro);color:var(--apx-oro)}
.wp-block-button__link{transition:transform .25s,background .25s,color .25s}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover{background:#e8bd5a;transform:translateY(-2px)}

/* ── Encabezado ───────────────────────────────────────── */
.apx-header{position:sticky;top:0;z-index:50;background:rgba(8,17,31,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:.55rem 1.25rem;border-bottom:1px solid var(--apx-borde)}
.apx-header .apx-header__barra{max-width:1240px!important}
.apx-header .wp-block-site-logo img{width:118px;height:auto}
.apx-header__der{gap:1.6rem}
.apx-nav{font-size:.86rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.apx-nav a{color:var(--wp--preset--color--texto)!important}
.apx-nav a:hover,.apx-nav .current-menu-item>a{color:var(--apx-oro)!important}
.apx-header__cta .wp-block-button__link{padding:.6rem 1.1rem;font-size:.8rem}
.admin-bar .apx-header{top:32px}
.apx-tricolor{height:3px;background:linear-gradient(to right,#006847 33.3%,#fff 33.3% 66.6%,#CE1126 66.6%)}
.wp-block-navigation__responsive-container.is-menu-open{background:var(--wp--preset--color--fondo)!important;color:var(--wp--preset--color--texto)!important;padding:2rem}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{font-size:1.4rem}
@media (max-width:640px){.apx-header__cta{display:none}.apx-header .wp-block-site-logo img{width:96px}}

/* ── Portada ──────────────────────────────────────────── */
.apx-hero{padding:6rem 1.25rem 5rem!important;align-items:flex-end!important;overflow:hidden}
.apx-hero .wp-block-cover__image-background{animation:apx-zoom 22s ease-out both}
@keyframes apx-zoom{from{transform:scale(1.14)}to{transform:scale(1)}}
.apx-hero .wp-block-cover__background{background:linear-gradient(100deg,#08111f 8%,rgba(8,17,31,.82) 45%,rgba(8,17,31,.35))!important;opacity:1!important}
.apx-hero .wp-block-cover__inner-container{max-width:1240px!important;width:100%}
.apx-hero .wp-block-cover__inner-container>*{max-width:760px;margin-left:0!important}
.apx-hero__titulo{font-size:var(--wp--preset--font-size--display);line-height:.95;margin:.3rem 0 1.4rem;text-wrap:balance}
.apx-hero__titulo--pag{font-size:clamp(2.3rem,5.6vw,4.2rem)}
.apx-hero__texto{font-size:var(--wp--preset--font-size--grande);color:#c9d3e0;max-width:44ch;line-height:1.45;font-weight:300}
.apx-hero .wp-block-buttons{margin-top:2rem;gap:.8rem}
.apx-hero > .wp-block-cover__inner-container > *{animation:apx-sube .9s cubic-bezier(.2,.7,.2,1) both}
.apx-hero > .wp-block-cover__inner-container > *:nth-child(2){animation-delay:.12s}
.apx-hero > .wp-block-cover__inner-container > *:nth-child(3){animation-delay:.24s}
.apx-hero > .wp-block-cover__inner-container > *:nth-child(4){animation-delay:.36s}
@keyframes apx-sube{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.apx-cta{padding:5rem 1.25rem!important}
.apx-cta .wp-block-cover__background{background:linear-gradient(90deg,#08111f,rgba(8,17,31,.7))!important;opacity:1!important}
.apx-cta .wp-block-cover__inner-container{max-width:1240px!important;width:100%}
.apx-cta .wp-block-cover__inner-container>*{max-width:680px;margin-left:0!important}

/* ── Franja de datos ──────────────────────────────────── */
.apx-franja{background:var(--wp--preset--color--suave);border-top:1px solid var(--apx-linea);border-bottom:1px solid var(--apx-linea);padding:0 1.25rem}
.apx-datos{max-width:1240px!important;gap:0!important;margin:0 auto}
.apx-datos>.wp-block-column{padding:2rem 1.5rem;border-left:1px solid var(--apx-borde)}
.apx-datos>.wp-block-column:first-child{border-left:0}
.apx-dato{color:var(--wp--preset--color--tenue);font-size:.92rem;line-height:1.45;margin:0}
.apx-dato strong{display:block;font-family:var(--wp--preset--font-family--titulos);font-size:2rem;color:var(--apx-oro);font-weight:600;text-transform:uppercase;margin-bottom:.35rem}

/* ── Secciones ────────────────────────────────────────── */
.apx-seccion{padding:clamp(4rem,9vw,7.5rem) 1.25rem}
.apx-seccion>*{max-width:1240px!important;margin-left:auto!important;margin-right:auto!important}
.apx-seccion--suave{background:var(--wp--preset--color--suave)}
.apx-foto{margin:0 0 1.5rem;overflow:hidden;border-radius:2px}
.apx-foto img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.apx-foto:hover img{transform:scale(1.05)}
.apx-foto--alta img{aspect-ratio:3/4}
.apx-divisiones{gap:clamp(1.5rem,4vw,3.5rem)!important;margin-top:3rem}
.apx-division h3{font-size:clamp(1.6rem,3vw,2.3rem);margin:.2rem 0 .8rem}
.apx-division p:not(.apx-num){color:var(--wp--preset--color--tenue);max-width:48ch}
.apx-porque{gap:clamp(2rem,5vw,5rem)!important}
.apx-puntos{flex-wrap:wrap!important;gap:0!important}
.apx-puntos>.apx-punto{flex:1 1 calc(50% - 1px)!important;padding:1.6rem 1.6rem 1.6rem 0;border-top:1px solid var(--apx-linea)}
.apx-puntos--3{margin-top:3rem}
.apx-puntos--3>.apx-punto{flex:1 1 30%!important}
.apx-punto h3,.apx-punto__t{font-size:1.35rem;margin:0 0 .5rem}
.apx-punto p{margin:0;font-size:.98rem}
.apx-galeria{gap:1rem!important;margin-top:2.5rem}
.apx-galeria .apx-foto{margin:0}
.apx-galeria .apx-foto img{aspect-ratio:3/4}
.apx-tarjetas{gap:clamp(1rem,2.5vw,2rem)!important;margin-top:2.5rem}
.apx-tarjeta{background:var(--wp--preset--color--suave);border:1px solid var(--apx-borde);padding:0 0 1.6rem;transition:border-color .3s,transform .3s}
.apx-tarjeta:hover{border-color:var(--apx-linea);transform:translateY(-4px)}
.apx-tarjeta>*:not(.apx-foto){padding-left:1.5rem;padding-right:1.5rem}
.apx-tarjeta h3{font-size:1.5rem;margin:.2rem 0 .5rem}
.apx-lista{list-style:none;padding-left:1.5rem!important;margin:1rem 0 0}
.apx-lista li{position:relative;padding-left:1.2rem;margin:.35rem 0;font-size:.95rem}
.apx-lista li::before{content:"";position:absolute;left:0;top:.62em;width:.5rem;height:1px;background:var(--apx-oro)}
.apx-pasos{gap:0!important;margin-top:3rem;counter-reset:p}
.apx-paso{padding:1.8rem 1.6rem 0 0;border-top:2px solid var(--apx-linea);position:relative}
.apx-paso::before{content:"";position:absolute;top:-2px;left:0;height:2px;width:0;background:var(--apx-oro);transition:width 1.1s cubic-bezier(.2,.7,.2,1)}
.apx-visible .apx-paso::before,html:not(.mt-js) .apx-paso::before{width:100%}
.apx-paso h3{font-size:1.4rem;margin:.2rem 0 .5rem}
.apx-equipos{gap:clamp(2rem,5vw,4.5rem)!important;align-items:center!important}

/* ── Marquesina ───────────────────────────────────────── */
.apx-marquesina{overflow:hidden;padding:1.6rem 0;border-top:1px solid var(--apx-borde);border-bottom:1px solid var(--apx-borde)}
.apx-marquesina>*{max-width:none!important}
.apx-marquesina__linea{white-space:nowrap;font-family:var(--wp--preset--font-family--titulos);font-size:clamp(1.6rem,4vw,3rem);text-transform:uppercase;font-weight:300;color:transparent;-webkit-text-stroke:1px rgba(212,165,60,.55);margin:0;display:inline-block;animation:apx-marq 45s linear infinite;padding-left:100%}
@keyframes apx-marq{to{transform:translateX(-100%)}}

/* ── FAQ ──────────────────────────────────────────────── */
.apx-faq .wp-block-details{border-top:1px solid var(--apx-linea);padding:1.2rem 0;max-width:860px!important;margin-left:0!important}
.apx-faq summary{font-family:var(--wp--preset--font-family--titulos);font-size:1.35rem;text-transform:uppercase;cursor:pointer}
.apx-faq .wp-block-details p{color:var(--wp--preset--color--tenue);margin-top:.7rem}

/* ── Contacto ─────────────────────────────────────────── */
.apx-contacto{gap:clamp(2rem,5vw,4.5rem)!important}
.apx-campo{border-top:1px solid var(--apx-borde);padding-top:1rem;margin:1rem 0 0}
.apx-campo strong{display:block;font-size:var(--wp--preset--font-size--etiqueta);letter-spacing:.22em;text-transform:uppercase;color:var(--apx-oro);font-weight:600;margin-bottom:.25rem}
.apx-form{display:grid;gap:1rem;background:var(--wp--preset--color--fondo);border:1px solid var(--apx-borde);padding:clamp(1.3rem,3vw,2.2rem)}
.apx-form__fila{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.apx-form label{display:block;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--wp--preset--color--tenue);margin-bottom:.35rem}
.apx-form input,.apx-form select,.apx-form textarea{width:100%;box-sizing:border-box;background:var(--wp--preset--color--suave);border:1px solid var(--apx-borde);color:var(--wp--preset--color--texto);padding:.8rem .9rem;font:inherit;border-radius:2px}
.apx-form input:focus,.apx-form select:focus,.apx-form textarea:focus{outline:none;border-color:var(--apx-oro)}
.apx-form button{background:var(--apx-oro);color:#0b1a2e;border:0;padding:1rem;font:inherit;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:2px}
.apx-form button:disabled{opacity:.6}
.apx-form__aviso{margin:0;font-size:.95rem}
.apx-form__aviso[data-estado=ok]{color:#7fd1a0}.apx-form__aviso[data-estado=error]{color:#ff9b8f}
.apx-form__trampa{position:absolute;left:-9999px}
@media (max-width:600px){.apx-form__fila{grid-template-columns:1fr}}

/* ── Pie ──────────────────────────────────────────────── */
.apx-footer{background:#050b15;padding:4rem 1.25rem 2rem;border-top:1px solid var(--apx-linea);font-size:.95rem}
.apx-footer>*{max-width:1240px!important}
.apx-footer a{color:var(--wp--preset--color--texto)}
.apx-footer a:hover{color:var(--apx-oro)}
.apx-footer__legal{color:var(--wp--preset--color--tenue);font-size:.82rem;border-top:1px solid var(--apx-borde);padding-top:1.5rem;margin-top:2.5rem}

/* ── Revelado ─────────────────────────────────────────── */
.mt-js .apx-revela{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.mt-js .apx-revela.apx-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.mt-js .apx-revela{opacity:1;transform:none}}

@media (max-width:781px){
 .apx-datos>.wp-block-column{border-left:0;border-top:1px solid var(--apx-borde);padding:1.3rem 0}
 .apx-puntos>.apx-punto,.apx-puntos--3>.apx-punto{flex-basis:100%!important;padding-right:0}
 .apx-galeria{flex-wrap:wrap!important}.apx-galeria>.wp-block-column{flex-basis:calc(50% - .5rem)!important}
 .apx-paso{padding-right:0;padding-bottom:1rem}
 .apx-hero{padding-top:4rem!important;padding-bottom:3.5rem!important}
}

/* ══ Movimiento y dinamismo (2026-10-06) ══════════════════ */
/* Barra de progreso + encabezado que se compacta */
.apx-progreso{position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,#d4a53c,#ffe29a,#3aa0ff);z-index:9999;pointer-events:none}
.apx-header{transition:padding .35s,background .35s,box-shadow .35s}
.apx-header.apx-compacto{padding-top:.3rem;padding-bottom:.3rem;background:rgba(5,11,21,.96);box-shadow:0 10px 30px -12px rgba(0,0,0,.6)}

/* Portada: circuito vivo encima de la foto */
.apx-hero{position:relative}
.apx-circuito{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;mix-blend-mode:screen;opacity:.85}
.apx-hero .wp-block-cover__inner-container{position:relative;z-index:2}
.apx-hero__titulo{background:linear-gradient(100deg,#fff 0 40%,#ffe29a 50%,#fff 60% 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:apx-sube .9s cubic-bezier(.2,.7,.2,1) both,apx-brillo 6s ease-in-out 1.2s infinite}
@keyframes apx-brillo{0%,100%{background-position:100% 0}50%{background-position:0 0}}
.wp-block-button:not(.is-style-outline) .wp-block-button__link{position:relative;overflow:hidden}
.wp-block-button:not(.is-style-outline) .wp-block-button__link::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);animation:apx-destello 3.8s ease-in-out infinite}
@keyframes apx-destello{60%,100%{transform:translateX(120%)}}

/* Tarjetas tipo tablero electrónico (franja de datos y pasos) */
.apx-datos>.wp-block-column,.apx-paso{position:relative;isolation:isolate;background:linear-gradient(160deg,rgba(23,52,92,.55),rgba(8,17,31,.7));border:1px solid rgba(90,160,255,.22)!important;border-radius:10px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.03),0 18px 40px -22px rgba(0,0,0,.8);overflow:hidden;transition:transform .45s cubic-bezier(.2,.7,.2,1),border-color .45s,box-shadow .45s}
.apx-datos{gap:1rem!important;padding:1.6rem 0}
.apx-datos>.wp-block-column{padding:1.6rem 1.4rem!important}
.apx-pasos{gap:1rem!important}
.apx-paso{padding:1.6rem 1.4rem 1.5rem!important;border-top:1px solid rgba(90,160,255,.22)!important}
.apx-paso::before{display:none}
/* trazas de circuito animadas en el fondo de cada tarjeta */
.apx-datos>.wp-block-column::before,.apx-paso::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;background:
 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='120' fill='none' stroke='%233aa0ff' stroke-opacity='.35' stroke-width='1'%3E%3Cpath d='M0 30h40l10 10h40l10-10h60M0 90h25l15-15h50l10 10h60M120 0v20l-10 10M60 120v-25l10-10'/%3E%3Ccircle cx='50' cy='40' r='2' fill='%233aa0ff'/%3E%3Ccircle cx='90' cy='75' r='2' fill='%233aa0ff'/%3E%3Ccircle cx='110' cy='30' r='2' fill='%23d4a53c'/%3E%3C/svg%3E") 0 0/160px 120px;animation:apx-traza 18s linear infinite}
@keyframes apx-traza{to{background-position:160px 120px}}
/* borde de luz que recorre la tarjeta */
.apx-datos>.wp-block-column::after{content:"";position:absolute;left:-40%;top:0;height:2px;width:40%;background:linear-gradient(90deg,transparent,#ffe29a,transparent);animation:apx-corre 4.5s linear infinite}
.apx-datos>.wp-block-column:nth-child(2)::after{animation-delay:1.1s}.apx-datos>.wp-block-column:nth-child(3)::after{animation-delay:2.2s}.apx-datos>.wp-block-column:nth-child(4)::after{animation-delay:3.3s}
@keyframes apx-corre{to{left:110%}}
.apx-datos>.wp-block-column:hover,.apx-paso:hover{border-color:rgba(212,165,60,.7)!important;box-shadow:0 0 0 1px rgba(212,165,60,.25),0 0 34px -6px rgba(58,160,255,.45),0 24px 50px -20px rgba(0,0,0,.9)}
.apx-icono{width:46px;height:46px;color:#3aa0ff;filter:drop-shadow(0 0 6px rgba(58,160,255,.7));margin-bottom:.8rem;display:block}
.apx-datos .apx-icono{position:absolute;top:1.2rem;right:1.2rem;margin:0;width:42px;height:42px}
.apx-icono path,.apx-icono circle,.apx-icono rect,.apx-icono line,.apx-icono polyline{stroke-dasharray:120;stroke-dashoffset:120;transition:stroke-dashoffset 1.6s ease}
.apx-dibujado .apx-icono *{stroke-dashoffset:0}
html:not(.mt-js) .apx-icono *{stroke-dashoffset:0}
.apx-datos>.wp-block-column:hover .apx-icono,.apx-paso:hover .apx-icono{animation:apx-zumba .5s ease}
@keyframes apx-zumba{30%{transform:rotate(-8deg) scale(1.1)}60%{transform:rotate(6deg) scale(1.1)}}
/* número del paso con pulso */
.apx-paso .apx-num{display:inline-flex;align-items:center;gap:.5rem}
.apx-paso .apx-num::after{content:"";width:7px;height:7px;border-radius:50%;background:#3aa0ff;box-shadow:0 0 0 0 rgba(58,160,255,.7);animation:apx-late 2s infinite}
.apx-paso:nth-child(2) .apx-num::after{animation-delay:.5s}.apx-paso:nth-child(3) .apx-num::after{animation-delay:1s}.apx-paso:nth-child(4) .apx-num::after{animation-delay:1.5s}
@keyframes apx-late{70%{box-shadow:0 0 0 10px rgba(58,160,255,0)}100%{box-shadow:0 0 0 0 rgba(58,160,255,0)}}
/* bus de datos que conecta los pasos */
.apx-pasos{position:relative}
.apx-bus{position:absolute;left:0;right:0;top:-1.2rem;height:2px;background:rgba(90,160,255,.18);overflow:hidden}
.apx-bus::after{content:"";position:absolute;top:0;left:-25%;width:25%;height:100%;background:linear-gradient(90deg,transparent,#d4a53c,#ffe29a,transparent);animation:apx-corre 2.8s linear infinite}
/* entrada escalonada de hijos */
.mt-js .apx-escalon>*{opacity:0;transform:translateY(30px) scale(.97);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.mt-js .apx-visible .apx-escalon>*,.mt-js .apx-escalon.apx-visible>*{opacity:1;transform:none}
.apx-escalon>*:nth-child(2){transition-delay:.12s!important}.apx-escalon>*:nth-child(3){transition-delay:.24s!important}.apx-escalon>*:nth-child(4){transition-delay:.36s!important}.apx-escalon>*:nth-child(5){transition-delay:.48s!important}.apx-escalon>*:nth-child(6){transition-delay:.6s!important}

/* Foto recortada (sin fondo): flota sobre un brillo */
.apx-foto--recorte{overflow:visible;position:relative;background:radial-gradient(ellipse at 50% 70%,rgba(58,160,255,.28),transparent 65%)}
.apx-foto--recorte img{aspect-ratio:auto!important;object-fit:contain;animation:apx-flota 6s ease-in-out infinite;filter:drop-shadow(0 30px 25px rgba(0,0,0,.55))}
.apx-foto--recorte:hover img{transform:none}
@keyframes apx-flota{50%{transform:translateY(-12px) rotate(-.6deg)}}

/* Inclinación 3D con el mouse */
.apx-inclina{transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateY(var(--ty,0))}
.apx-galeria .apx-foto{position:relative}
.apx-galeria .apx-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,rgba(255,226,154,.25) 50%,transparent 60%);transform:translateX(-100%);transition:transform .9s}
.apx-galeria .apx-foto:hover::after{transform:translateX(100%)}

/* Botón fijo de WhatsApp */
.apx-wa{position:fixed;right:20px;bottom:20px;z-index:9998;width:62px;height:62px;border-radius:50%;background:#25d366;display:grid;place-items:center;box-shadow:0 10px 30px -6px rgba(37,211,102,.6);transition:transform .3s;animation:apx-wa-entra .6s 1s cubic-bezier(.2,1.4,.4,1) both}
.apx-wa svg{width:34px;height:34px;fill:#fff}
.apx-wa::before,.apx-wa::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25d366;animation:apx-onda 2.4s ease-out infinite}
.apx-wa::after{animation-delay:1.2s}
.apx-wa:hover{transform:scale(1.1) rotate(-8deg)}
@keyframes apx-onda{from{transform:scale(1);opacity:.8}to{transform:scale(1.9);opacity:0}}
@keyframes apx-wa-entra{from{transform:scale(0) rotate(-90deg)}to{transform:none}}
@media (max-width:600px){.apx-wa{width:56px;height:56px;right:14px;bottom:14px}}
@media (max-width:781px){.apx-bus{display:none}.apx-datos{padding:1rem 0}.apx-datos>.wp-block-column{border-top:1px solid rgba(90,160,255,.22)!important}}
@media (prefers-reduced-motion:reduce){.mt-js .apx-escalon>*{opacity:1;transform:none}.apx-icono *{stroke-dashoffset:0!important}}

/* ══ Más dinamismo (2026-10-06, segunda ronda) ═══════════ */
/* Luz que sigue al cursor en las secciones oscuras */
.apx-seccion,.apx-franja{position:relative}
.apx-seccion::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(500px circle at var(--cx,-999px) var(--cy,-999px),rgba(58,160,255,.10),transparent 60%);z-index:0}
.apx-seccion>*{position:relative;z-index:1}
/* Títulos: letras que suben + subrayado dorado que se dibuja */
.apx-titulo{position:relative;padding-bottom:.4rem}
.apx-titulo::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;background:linear-gradient(90deg,#d4a53c,#ffe29a,#3aa0ff);transition:width 1.2s .4s cubic-bezier(.2,.7,.2,1)}
.apx-titulo.apx-ya::after{width:min(220px,60%)}
.apx-letra{display:inline-block;opacity:0;transform:translateY(.6em) rotateX(70deg);transition:opacity .5s,transform .6s cubic-bezier(.2,.7,.2,1)}
.apx-titulo.apx-ya .apx-letra{opacity:1;transform:none}
/* Onda de osciloscopio entre secciones */
.apx-onda{display:block;width:100%;height:46px;pointer-events:none}
.apx-onda path{fill:none;stroke-width:1.5}
/* Chispas de calor sobre la foto de resistencias */
.apx-chispas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
/* Fotos con paralaje */
.apx-galeria .apx-foto img,.apx-division .apx-foto:not(.apx-foto--recorte) img{transform:translateY(var(--py,0)) scale(1.12);transition:transform .2s linear}
.apx-galeria .apx-foto:hover img{transform:translateY(var(--py,0)) scale(1.18)}
/* Marquesina que reacciona a la velocidad del scroll */
.apx-marquesina__linea{transform:skewX(var(--sk,0deg))}
/* Botones magnéticos */
.wp-block-button__link{will-change:transform}
/* Escáner que barre la sección de contacto/CTA */
.apx-cta{position:relative;overflow:hidden}
.apx-cta::after{content:"";position:absolute;top:0;bottom:0;width:30%;left:-30%;background:linear-gradient(90deg,transparent,rgba(58,160,255,.12),transparent);animation:apx-corre 6s linear infinite;pointer-events:none}
/* Destellos de LED en la franja */
.apx-led{position:absolute;width:4px;height:4px;border-radius:50%;background:#3aa0ff;box-shadow:0 0 8px 2px #3aa0ff;animation:apx-parpadeo 1.6s infinite;pointer-events:none}
@keyframes apx-parpadeo{0%,100%{opacity:.15}50%{opacity:1}}
