/*
Theme Name: OCM Corp
Theme URI: https://ocmcorp.com
Author: Gilberto Gómez
Description: Tema a medida para OCM Legal & Consulting. Al activarlo crea las páginas, servicios, equipo, artículos de ejemplo y el menú principal. Fotos, textos y datos de contacto se editan desde el panel (Apariencia → Personalizar, Servicios, Equipo, Páginas y Entradas).
Version: 1.2.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: ocm
*/

/* Colores de marca OCM; estilo nuevo: blanco dominante, tipografía grande, líneas finas, naranja solo para lo importante.
   Layout: contenedor de 1180px, secciones con mucho aire, listas numeradas en vez de tarjetas. */
:root{
  --naranja:#EC681A;
  --marino:#0B2D4C;
  --trazo:#1B648D;
  --noche:#071E33;
  --marfil:#F6F3EE;
  --pizarra:#5B6773;
  --linea:#E6E1D9;
  --blanco:#FFFFFF;
  --font-display:"Sora", "Segoe UI", system-ui, sans-serif;
  --font-body:"Manrope", "Segoe UI", system-ui, sans-serif;
  color-scheme: light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--blanco);color:var(--marino);font:400 16px/1.65 var(--font-body);-webkit-font-smoothing:antialiased}
img,svg,canvas{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;letter-spacing:-.02em;line-height:1.12;margin:0;text-wrap:balance}
p{margin:0}
:focus-visible{outline:2px solid var(--naranja);outline-offset:3px}
.wrap{width:min(1180px,100% - 40px);margin-inline:auto}
.dot{color:var(--naranja)}
.kicker{font:600 12px var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--pizarra)}
.kicker b{color:var(--naranja);font-weight:600}
.muted{color:var(--pizarra)}
.sec{padding:110px 0}
.sec-sm{padding:72px 0}
.alt{background:var(--marfil)}
.dark{background:var(--marino);color:#fff}
.dark .muted{color:#a9bccf}
.dark .kicker{color:#a9bccf}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:56px}
.head h2{font-size:clamp(30px,3.8vw,48px);max-width:18ch}
.head .kicker{margin-bottom:18px}
.btn{display:inline-flex;align-items:center;gap:10px;height:50px;padding:0 24px;border-radius:999px;font:600 14px var(--font-body);border:1px solid transparent;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s;white-space:nowrap}
.btn-o{background:var(--naranja);color:#fff}
.btn-o:hover{background:#d65a12}
.btn-l{border-color:var(--linea);color:var(--marino);background:transparent}
.btn-l:hover{border-color:var(--marino)}
.dark .btn-l{border-color:rgba(255,255,255,.3);color:#fff}
.dark .btn-l:hover{border-color:#fff}
.link{font-weight:600;display:inline-flex;gap:8px;align-items:center;border-bottom:1px solid currentColor;padding-bottom:2px}
.arr::after{content:"→";transition:transform .2s}
a:hover .arr::after,.arr:hover::after{transform:translateX(3px)}

/* Imagen de relleno */
.ph{position:relative;background:linear-gradient(140deg,#EFEAE2,#E2DBD0);overflow:hidden;border-radius:4px}
.ph::before{content:"";position:absolute;inset:auto -10% 18% -10%;height:2px;background:var(--naranja);opacity:.35;transform:rotate(-8deg)}
.ph.navy{background:linear-gradient(140deg,#174a72,#0B2D4C)}
.ph.blue{background:linear-gradient(140deg,#2b78a3,#1B648D)}
.ph span{position:absolute;left:14px;bottom:12px;font:600 10px var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--pizarra);background:rgba(255,255,255,.75);padding:5px 9px;border-radius:2px}
.ph.navy span,.ph.blue span{color:#fff;background:rgba(7,30,51,.45)}
.logo-dummy{height:76px;border:1px solid var(--linea);border-radius:4px;display:grid;place-items:center;color:#9aa3ab;font:600 13px var(--font-display);letter-spacing:.04em;text-align:center;padding:8px}

/* Aviso y encabezado */
header.top{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--linea)}
header.top .wrap{display:flex;align-items:center;height:76px;gap:28px}
.brand img{width:118px}
.menu{display:flex;gap:26px;margin-left:auto;font:500 14px var(--font-body)}
.menu a{color:var(--pizarra);transition:color .2s;position:relative;padding:4px 0}
.menu a:hover,.menu a.on{color:var(--marino)}
.menu a.on::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--naranja)}
.lang{font:600 12px var(--font-body);color:var(--pizarra);border:1px solid var(--linea);border-radius:999px;padding:6px 10px}
.lang b{color:var(--marino)}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--linea);border-radius:999px;height:42px;padding:0 16px;font:600 13px var(--font-body);color:var(--marino);cursor:pointer}

/* Hero inicio */
.hero{padding:96px 0 80px}
.hero .wrap{display:grid;grid-template-columns:1.25fr .75fr;gap:64px;align-items:end}
.hero h1{font-size:clamp(42px,6.2vw,84px);font-weight:300}
.hero h1 strong{font-weight:500}
.hero .lead{font-size:19px;color:var(--pizarra);max-width:46ch;margin:30px 0 36px}
.ctas{display:flex;gap:12px;flex-wrap:wrap}
.hero .ph{aspect-ratio:4/5}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--linea);margin-top:80px}
.stats div{padding:26px 0 0}
.stats strong{display:block;font:400 34px/1.1 var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stats span{font-size:13px;color:var(--pizarra)}

/* Lista de servicios */
.svc-list{border-top:1px solid var(--linea)}
.svc-row{display:grid;grid-template-columns:70px 1.1fr 1.4fr 40px;gap:24px;align-items:center;padding:26px 0;border-bottom:1px solid var(--linea);transition:padding .25s}
.svc-row .n{font:400 14px var(--font-display);color:var(--naranja)}
.svc-row h3{font-size:22px}
.svc-row p{font-size:15px;color:var(--pizarra)}
.svc-row .go{justify-self:end;width:40px;height:40px;border-radius:50%;border:1px solid var(--linea);display:grid;place-items:center;transition:background .2s,border-color .2s,color .2s}
.svc-row:hover{padding-left:12px}
.svc-row:hover .go{background:var(--naranja);border-color:var(--naranja);color:#fff}
.svc-row[hidden]{display:none}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.filters button{height:40px;padding:0 18px;border-radius:999px;border:1px solid var(--linea);background:#fff;font:600 13px var(--font-body);color:var(--pizarra);cursor:pointer}
.filters button.on{background:var(--marino);border-color:var(--marino);color:#fff}

/* Carrusel reloj */
.clock{position:relative;height:640px;overflow:hidden;background:var(--noche);color:#fff;isolation:isolate}
.clock .scene{position:absolute;inset:0;opacity:0;transition:opacity 1.1s ease}
.clock .scene.on{opacity:1}
.clock .scene canvas{width:100%;height:100%}
.clock::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(7,30,51,.6),rgba(7,30,51,.25) 40%,rgba(7,30,51,.7) 75%,rgba(7,30,51,.9))}
.clock-top{position:absolute;z-index:4;top:44px;left:0;right:0}
.clock-top .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:flex-start}
.clock-top h2{font-size:clamp(24px,2.6vw,32px);max-width:20ch;margin-top:12px;color:#fff}
.clock-top .kicker{color:#c7d3df}
.ring{position:absolute;z-index:2;border:1px solid rgba(255,255,255,.3);border-radius:50%;pointer-events:none}
.node{position:absolute;left:50%;top:50%;width:0;height:0}
.node .d{position:absolute;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:#fff;transition:background .4s,transform .4s}
.node .num{position:absolute;width:56px;height:56px;margin:-28px 0 0 -28px;border:1px solid rgba(255,255,255,.5);border-radius:50%;display:grid;place-items:center;font:300 20px var(--font-display);color:#fff;background:rgba(7,30,51,.25);cursor:pointer}
.node .num:hover{border-color:var(--naranja)}
.node .stem{position:absolute;width:1px;left:0;top:8px;height:100px;background:rgba(255,255,255,.55);opacity:0;transition:opacity .4s}
.node.on .d{background:var(--naranja);transform:scale(1.3)}
.node.on .stem{opacity:1}
.clock-text{position:absolute;z-index:3;left:50%;top:51%;transform:translateX(-50%);width:min(600px,100% - 40px);text-align:center;display:grid;gap:12px}
.clock-text .c{font:400 13px var(--font-display);color:#f3a670;letter-spacing:.08em}
.clock-text h3{font-size:clamp(22px,2.4vw,28px);color:#fff}
.clock-text p{color:#d3dde7;font-size:15.5px}
.clock-text .f{transition:opacity .4s,transform .4s}
.clock-text.out .f{opacity:0;transform:translateY(8px)}
.clock-ctrl{position:absolute;z-index:4;left:50%;bottom:34px;transform:translateX(-50%);display:flex;gap:10px}
.clock-ctrl button{width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:transparent;color:#fff;font-size:18px;cursor:pointer}
.clock-ctrl button:hover{background:var(--naranja);border-color:var(--naranja)}
.clock .chip{position:absolute;z-index:4;right:18px;bottom:18px;font:600 10px var(--font-body);letter-spacing:.14em;text-transform:uppercase;background:rgba(7,30,51,.6);padding:6px 10px;color:#c7d3df}

/* Pasos */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--linea)}
.steps div{padding:28px 28px 0 0}
.steps .n{font:400 14px var(--font-display);color:var(--naranja);margin-bottom:22px;display:block}
.steps h4{font-size:20px;margin-bottom:10px}
.steps p{font-size:15px;color:var(--pizarra)}
.dark .steps{border-color:rgba(255,255,255,.15)}
.dark .steps p{color:#a9bccf}

/* Planes */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.plan{border:1px solid var(--linea);border-radius:6px;padding:34px 30px;display:flex;flex-direction:column;gap:18px;background:#fff}
.plan h3{font-size:28px}
.plan .for{font-size:14px;color:var(--pizarra);margin-top:-10px}
.plan ul{list-style:none;margin:0;padding:18px 0 0;border-top:1px solid var(--linea);display:grid;gap:10px;font-size:15px;flex:1}
.plan li{display:flex;gap:10px}
.plan li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--naranja);margin-top:9px;flex:none}
.plan.hot{background:var(--marino);border-color:var(--marino);color:#fff}
.plan.hot .for{color:#a9bccf}
.plan.hot ul{border-color:rgba(255,255,255,.15)}
.plan .tag{align-self:flex-start;font:600 11px var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--naranja)}
.plan .btn{align-self:flex-start}
.plan.hot .btn-l{border-color:rgba(255,255,255,.35);color:#fff}

/* Fundador / cita */
.quote{display:grid;grid-template-columns:.7fr 1.3fr;gap:72px;align-items:center}
.quote .ph{aspect-ratio:4/5}
.quote blockquote{margin:0;font:300 clamp(26px,3vw,38px)/1.3 var(--font-display);letter-spacing:-.02em}
.quote blockquote::before{content:"“";color:var(--naranja)}
.quote blockquote::after{content:"”";color:var(--naranja)}
.quote .who{margin-top:28px;font-weight:600}
.quote .who span{display:block;font-weight:400;color:var(--pizarra);font-size:14px}

/* Insights */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.post{display:grid;gap:14px;align-content:start}
.post .ph{aspect-ratio:16/10}
.post .meta{font-size:12px;color:var(--pizarra);display:flex;gap:10px}
.post .meta b{color:var(--naranja);font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.post h3{font-size:21px;transition:color .2s}
.post:hover h3{color:var(--trazo)}

/* CTA */
.cta{padding:90px 0}
.cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.cta h2{font-size:clamp(30px,3.8vw,48px);max-width:16ch;color:#fff}

/* Encabezado de página interna */
.ph-head{padding:84px 0 64px;border-bottom:1px solid var(--linea)}
.crumb{font-size:13px;color:var(--pizarra);margin-bottom:28px}
.crumb a:hover{color:var(--marino)}
.ph-head h1{font-size:clamp(38px,5.4vw,68px);font-weight:300;max-width:16ch}
.ph-head .lead{font-size:19px;color:var(--pizarra);max-width:56ch;margin-top:24px}

/* Rejillas generales */
.two{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.four{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.prose{display:grid;gap:18px;font-size:17px;color:#2d4357;max-width:62ch}
.prose h2{font-size:28px;margin-top:20px;color:var(--marino)}
.prose ul{margin:0;padding-left:20px;display:grid;gap:8px}
.item h4{font-size:19px;margin:16px 0 8px}
.item p{font-size:15px;color:var(--pizarra)}
.item .n{font:400 14px var(--font-display);color:var(--naranja)}
.team .ph{aspect-ratio:1/1}
.team h4{font-size:19px;margin-top:16px}
.team p{font-size:14px;color:var(--pizarra)}
.timeline{border-left:1px solid var(--linea);padding-left:28px;display:grid;gap:30px}
.timeline div{position:relative}
.timeline div::before{content:"";position:absolute;left:-33px;top:7px;width:9px;height:9px;border-radius:50%;background:var(--naranja)}
.timeline b{font:500 18px var(--font-display);display:block}
.timeline span{font-size:15px;color:var(--pizarra)}
.check{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.check li{display:flex;gap:14px;font-size:16px;padding-bottom:14px;border-bottom:1px solid var(--linea)}
.check li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--naranja);margin-top:9px;flex:none}
.dark .check li{border-color:rgba(255,255,255,.12)}

/* Detalle de servicio */
.detail{display:grid;grid-template-columns:1.5fr .9fr;gap:72px;align-items:start}
.detail .steps{grid-template-columns:repeat(2,1fr);row-gap:28px}
.aside{position:sticky;top:100px;border:1px solid var(--linea);border-radius:6px;padding:30px;display:grid;gap:16px;background:#fff}
.aside h3{font-size:22px}
faq{display:block}
details{border-bottom:1px solid var(--linea);padding:20px 0}
details summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;font:500 18px var(--font-display);letter-spacing:-.01em}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";color:var(--naranja);font-size:22px;line-height:1}
details[open] summary::after{content:"–"}
details p{margin-top:12px;color:var(--pizarra);font-size:15px;max-width:64ch}

/* Formularios */
form{display:grid;gap:14px}
label{font:600 13px var(--font-body);color:var(--marino);display:grid;gap:6px}
input,select,textarea{font:400 15px var(--font-body);color:var(--marino);border:1px solid var(--linea);border-radius:4px;padding:12px 14px;background:#fff;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--marino)}
textarea{min-height:120px;resize:vertical}
.ok{display:none;background:#EAF4EE;color:#1f5b37;border-radius:4px;padding:12px 14px;font-size:14px}
.ok.show{display:block}
.channels{display:grid;gap:22px}
.channels div{border-bottom:1px solid var(--linea);padding-bottom:18px}
.channels b{display:block;font:500 18px var(--font-display);margin-top:4px}

/* Sectores */
.sector{border-top:1px solid var(--linea);padding-top:22px;display:grid;gap:10px}
.sector h3{font-size:24px}
.sector p{color:var(--pizarra);font-size:15px}
.sector .rel{font-size:13px;color:var(--trazo);font-weight:600}

/* Pie */
footer{background:var(--noche);color:#a9bccf;padding:72px 0 30px;font-size:14px}
.foot{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:40px}
.foot-logo{background:#fff;padding:12px 16px;width:170px;border-radius:4px;margin-bottom:18px}
.foot h4{font:600 12px var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:#fff;margin-bottom:16px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.foot a:hover{color:#fff}
.legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.1);margin-top:48px;padding-top:22px;font-size:12px}
.wa{position:fixed;right:22px;bottom:22px;z-index:60;width:56px;height:56px;border-radius:50%;background:#25D366;display:grid;place-items:center;box-shadow:0 10px 24px rgba(0,0,0,.2)}
.wa svg{width:28px;height:28px}

/* Responsive */
@media (max-width:1060px){
  .menu,.lang,header.top .btn{display:none}
  .burger{display:inline-block}
  .menu.open{display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;gap:4px;background:#fff;padding:14px 20px 22px;border-bottom:1px solid var(--linea)}
  .menu.open a{padding:10px 0;font-size:16px}
  .menu.open a.on::after{display:none}
}
@media (max-width:860px){
  .sec{padding:80px 0}
  .hero .wrap,.two,.quote,.detail{grid-template-columns:1fr;gap:44px}
  .hero .ph{aspect-ratio:16/11}
  .stats,.steps,.four{grid-template-columns:repeat(2,1fr)}
  .stats div:nth-child(n+3){padding-top:22px}
  .plans,.posts,.three{grid-template-columns:1fr}
  .svc-row{grid-template-columns:44px 1fr 40px}
  .svc-row p{grid-column:2/3}
  .svc-row .go{grid-row:1/3;grid-column:3}
  .foot{grid-template-columns:1fr 1fr}
  .aside{position:static}
  .clock{height:700px}
}
@media (max-width:480px){
  .stats,.steps,.four,.foot{grid-template-columns:1fr}
  .node .num{width:46px;height:46px;margin:-23px 0 0 -23px;font-size:17px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ---- Ajustes WordPress ---- */
.ph img,.ph-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph.has-img::before{display:none}
.ph.has-img span{display:none}
.hero .ph,.quote .ph{min-height:300px}
.clock .scene .bg{position:absolute;inset:0;background-size:cover;background-position:center}
.entry{display:grid;gap:18px;font-size:17px;color:#2d4357;max-width:68ch}
.entry h2{font-size:28px;margin-top:20px;color:var(--marino)}
.entry h3{font-size:22px;margin-top:12px;color:var(--marino)}
.entry ul,.entry ol{margin:0;padding-left:20px;display:grid;gap:8px}
.entry a{color:var(--trazo);text-decoration:underline}
.entry img{height:auto;border-radius:4px}
.entry > *{margin:0}
.notice-ok{background:#EAF4EE;color:#1f5b37;border-radius:4px;padding:12px 14px;font-size:14px}
.notice-err{background:#FBEDEA;color:#8a2a17;border-radius:4px;padding:12px 14px;font-size:14px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.pagination{display:flex;gap:8px;margin-top:48px;flex-wrap:wrap}
.pagination .page-numbers{min-width:42px;height:42px;padding:0 12px;border:1px solid var(--linea);border-radius:999px;display:grid;place-items:center;font-weight:600;font-size:14px}
.pagination .current{background:var(--marino);color:#fff;border-color:var(--marino)}
.filters a{height:40px;padding:0 18px;border-radius:999px;border:1px solid var(--linea);background:#fff;font:600 13px var(--font-body);color:var(--pizarra);display:inline-flex;align-items:center}
.filters a.on{background:var(--marino);border-color:var(--marino);color:#fff}
.custom-logo{width:118px;height:auto}
.screen-reader-text{position:absolute;left:-9999px}
.admin-bar header.top{top:32px}
@media (max-width:782px){.admin-bar header.top{top:46px}}

/* =====================================================================
   v1.1 · Movimiento, vida y móvil
   ===================================================================== */
:root{--ease:cubic-bezier(.2,.7,.2,1);--ease-io:cubic-bezier(.65,0,.25,1);--hdr:76px}
.sec{padding:clamp(72px,9vw,120px) 0}
.sec-sm{padding:clamp(56px,6vw,80px) 0}
main#app{animation:pageIn .7s var(--ease) both}
@keyframes pageIn{from{opacity:0}to{opacity:1}}

/* Barra de progreso de lectura */
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:70;background:var(--naranja);transform-origin:0 50%;transform:scaleX(var(--p,0));pointer-events:none}
.admin-bar .progress{top:32px}

/* Encabezado que se compacta y se esconde al bajar */
header.top{transition:transform .45s var(--ease),box-shadow .3s,background .3s}
header.top .wrap{transition:height .35s var(--ease)}
header.top.scrolled{box-shadow:0 10px 30px -18px rgba(11,45,76,.35);background:rgba(255,255,255,.97)}
header.top.scrolled .wrap{height:64px}
header.top.hide{transform:translateY(-110%)}
.brand img,.custom-logo{transition:width .35s var(--ease)}
header.top.scrolled .brand img,header.top.scrolled .custom-logo{width:104px}
.menu a::before{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--naranja);transform:scaleX(0);transform-origin:100% 50%;transition:transform .35s var(--ease)}
.menu a:hover::before{transform:scaleX(1);transform-origin:0 50%}
.m-extra{display:none}

/* Botones con brillo y respuesta al toque */
.btn{position:relative;overflow:hidden;isolation:isolate;transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease),box-shadow .25s}
.btn:active{transform:scale(.97)}
.btn-o::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--ease)}
.btn-o:hover::after{transform:translateX(120%)}
.btn-o:hover{box-shadow:0 12px 28px -12px rgba(236,104,26,.7)}

/* Hero con firma de la marca y luz que sigue al mouse */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;z-index:-1;width:620px;height:620px;border-radius:50%;left:calc(var(--mx,70%) - 310px);top:calc(var(--my,30%) - 310px);background:radial-gradient(closest-side,rgba(236,104,26,.13),rgba(27,100,141,.07) 55%,transparent);transition:left .9s var(--ease),top .9s var(--ease);pointer-events:none}
.hero-firma{position:absolute;z-index:-1;width:min(1100px,120%);right:-14%;top:4%;opacity:.07;pointer-events:none;clip-path:inset(0 100% 0 0);animation:firma 2.6s .3s var(--ease-io) forwards}
@keyframes firma{to{clip-path:inset(0 0 0 0)}}
.hero .ph{box-shadow:0 40px 80px -40px rgba(11,45,76,.45)}
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split .w>span{display:inline-block;transform:translateY(105%);transition:transform 1s var(--ease);transition-delay:calc(var(--i)*55ms + .1s)}
.split.in .w>span{transform:none}
.stats strong{transition:color .3s}
.stats div{position:relative}
.stats div::before{content:"";position:absolute;top:-1px;left:0;height:2px;width:100%;background:var(--naranja);transform:scaleX(0);transform-origin:0 50%;transition:transform 1.2s var(--ease);transition-delay:calc(var(--d,0s) + .2s)}
.stats.in div::before{transform:scaleX(.35)}

/* Cinta de servicios en movimiento */
.ribbon{background:var(--marino);color:#fff;overflow:hidden;padding:18px 0;font:400 clamp(16px,1.6vw,20px) var(--font-display);letter-spacing:-.01em;white-space:nowrap}
.track{display:inline-flex;align-items:center;gap:34px;animation:marquee 48s linear infinite;will-change:transform;padding-left:34px}
.ribbon i{width:8px;height:8px;border-radius:50%;background:var(--naranja);flex:none}
.ribbon:hover .track,.logos:hover .track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
.logos{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.logos .track{gap:20px;animation-duration:32s;padding-left:20px}
.logos .logo-dummy{width:200px;flex:none;background:#fff;transition:border-color .3s,color .3s}
.logos .logo-dummy:hover{border-color:var(--naranja);color:var(--marino)}

/* Animaciones al entrar en pantalla */
html.js .rv{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s)}
html.js .rv.in{opacity:1;transform:none}
html.js .rv-img{clip-path:inset(12% 0 12% 0 round 4px);opacity:.001;transition:clip-path 1.3s var(--ease),opacity .6s;transition-delay:var(--d,0s)}
html.js .rv-img.in{clip-path:inset(0 0 0 0 round 4px);opacity:1}
.steps{position:relative}
.steps::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:100%;background:var(--naranja);transform:scaleX(0);transform-origin:0 50%;transition:transform 1.6s var(--ease)}
.steps.in::before{transform:scaleX(1)}
.steps .n{display:inline-grid!important;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid currentColor;transition:background .3s,color .3s}
.steps div:hover .n{background:var(--naranja);color:#fff;border-color:var(--naranja)}
.check li::before{transform:scale(0);transition:transform .5s var(--ease) calc(var(--d,0s) + .3s)}
.check li.in::before,html:not(.js) .check li::before{transform:scale(1)}

/* Imágenes con paralaje suave */
.ph img,.ph-img{transform:translateY(var(--py,0)) scale(1.1);transition:transform .2s linear}
.ph::before{transform:translateY(var(--py,0)) rotate(-8deg)}

/* Tarjetas con elevación */
@media (hover:hover){
  .plan{transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
  .plan:hover{transform:translateY(-8px);box-shadow:0 30px 60px -30px rgba(11,45,76,.35);border-color:transparent}
  .post .ph img,.post .ph::before{transition:transform .8s var(--ease)}
  .post:hover .ph img{transform:scale(1.16)}
  .post .ph{transition:box-shadow .45s var(--ease)}
  .post:hover .ph{box-shadow:0 24px 50px -28px rgba(11,45,76,.5)}
  .team > div .ph{transition:transform .5s var(--ease)}
  .team > div:hover .ph{transform:translateY(-6px)}
  .sector{transition:border-color .3s}
  .sector:hover{border-color:var(--naranja)}
  .svc-row h3{transition:color .25s}
  .svc-row:hover h3{color:var(--trazo)}
}
.svc-row{transition:padding .35s var(--ease),background .35s}
.svc-row .go{transition:background .25s,border-color .25s,color .25s,transform .35s var(--ease)}
.svc-row:hover .go{transform:rotate(-45deg)}
details p{animation:fadeUp .45s var(--ease)}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}}
details summary::after{transition:transform .3s var(--ease)}
details[open] summary::after{transform:rotate(180deg)}

/* WhatsApp con pulso */
.wa{transition:transform .3s var(--ease)}
.wa:hover{transform:scale(1.08)}
.wa::before{content:"";position:absolute;inset:0;border-radius:50%;background:#25D366;z-index:-1;animation:pulse 2.6s ease-out infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.55}80%,100%{transform:scale(1.7);opacity:0}}

/* Reloj: anillo vivo, progreso y escenas con movimiento */
.clock{height:clamp(600px,82vh,720px);touch-action:pan-y;user-select:none;cursor:grab}
.clock:active{cursor:grabbing}
.clock .scene canvas,.clock .scene .bg{transform:scale(1.14);transition:transform 7s linear}
.clock .scene.on canvas,.clock .scene.on .bg{transform:scale(1)}
.ring .ticks{position:absolute;inset:-14px;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.35) 0 .25deg,transparent .25deg 3deg);-webkit-mask:radial-gradient(closest-side,transparent calc(100% - 9px),#000 calc(100% - 8px));mask:radial-gradient(closest-side,transparent calc(100% - 9px),#000 calc(100% - 8px));transition:transform 1.2s var(--ease-io);transform:rotate(var(--rot,0deg))}
.ring .glow{position:absolute;inset:-1px;border-radius:50%;background:conic-gradient(from calc(var(--rot,0deg) - 12deg),transparent 0deg,rgba(236,104,26,.9) 12deg,transparent 24deg);-webkit-mask:radial-gradient(closest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));mask:radial-gradient(closest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));transition:background 1.2s var(--ease-io)}
.node .num{transition:transform .5s var(--ease),border-color .3s,background .3s;overflow:visible}
.node.on .num{background:rgba(236,104,26,.18);border-color:transparent}
.node .pr{position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);transform:rotate(-90deg);pointer-events:none}
.node .pr circle{fill:none;stroke:var(--naranja);stroke-width:2.5;stroke-dasharray:189;stroke-dashoffset:189;opacity:0}
.node.on .pr circle{opacity:1}
.clock.run .node.on .pr circle{animation:prog var(--dur,5s) linear forwards}
@keyframes prog{to{stroke-dashoffset:0}}
.clock-text .f{transition:opacity .5s var(--ease),transform .6s var(--ease),filter .5s}
.clock-text.out .f{opacity:0;transform:translateY(16px);filter:blur(4px)}
.clock-text.out .f:nth-child(2){transition-delay:.04s}
.clock-ctrl button{transition:background .25s,border-color .25s,transform .25s var(--ease)}
.clock-ctrl button:active{transform:scale(.92)}
.clock .hint{position:absolute;z-index:4;left:24px;bottom:30px;font:600 10px var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:#c7d3df;display:flex;align-items:center;gap:10px;opacity:.85}
.clock .hint::before{content:"";width:18px;height:28px;border:1.5px solid #c7d3df;border-radius:10px;background:radial-gradient(circle at 50% 8px,#fff 2px,transparent 2.5px);animation:mouse 1.8s ease-in-out infinite}
@keyframes mouse{50%{background-position:0 7px}}
.clock .bar{position:absolute;z-index:4;left:0;bottom:0;height:3px;width:100%;background:rgba(255,255,255,.12)}
.clock .bar i{display:block;height:100%;background:var(--naranja);width:calc(var(--k,1) * 100%);transition:width .8s var(--ease-io)}

/* Menú móvil a pantalla completa */
.burger{width:46px;height:46px;padding:0;border-radius:50%;position:relative;z-index:62;transition:background .3s,border-color .3s}
.burger span{position:absolute;left:13px;right:13px;height:2px;background:var(--marino);border-radius:2px;transition:transform .45s var(--ease),opacity .3s,background .3s}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:22px}.burger span:nth-child(3){top:28px}
.menu-open .burger{border-color:rgba(255,255,255,.3)}
.menu-open .burger span{background:#fff}
.menu-open .burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

@media (max-width:1060px){
  :root{--hdr:68px}
  header.top .wrap{height:68px}
  .menu,.menu.open{display:flex!important;position:fixed;inset:0;z-index:61;flex-direction:column;justify-content:center;gap:2px;margin:0;padding:96px 28px 40px;background:var(--marino);overflow-y:auto;visibility:hidden;clip-path:circle(0 at calc(100% - 44px) 34px);transition:clip-path .7s var(--ease-io),visibility 0s .7s}
  .menu-open .menu{visibility:visible;clip-path:circle(150% at calc(100% - 44px) 34px);transition:clip-path .8s var(--ease-io)}
  .menu a{color:#fff!important;font:300 clamp(28px,7vw,40px)/1.25 var(--font-display);letter-spacing:-.02em;padding:6px 0!important;opacity:0;transform:translateY(24px);transition:opacity .5s,transform .6s var(--ease)}
  .menu a.on{color:var(--naranja)!important}
  .menu a::before,.menu a.on::after{display:none}
  .menu-open .menu a{opacity:1;transform:none;transition-delay:calc(var(--i,0) * 55ms + .25s)}
  .menu .m-extra{display:grid;gap:12px;margin-top:30px;padding-top:26px;border-top:1px solid rgba(255,255,255,.15);opacity:0;transition:opacity .5s .6s}
  .menu .m-extra[hidden]{display:grid}
  .menu-open .menu .m-extra{opacity:1}
  .m-extra .btn{justify-content:center;font-size:15px!important;color:#fff!important;opacity:1!important;transform:none!important;padding:0 24px!important}
  .m-extra .btn-l{border-color:rgba(255,255,255,.35)}
  .m-extra p{color:#a9bccf;font-size:14px}
  .m-extra p a{font:inherit!important;color:#fff!important;opacity:1!important;transform:none!important;padding:0!important}
  .menu-open{overflow:hidden}
  .menu-open header.top{background:transparent;box-shadow:none;transform:none!important}
  .menu-open .brand{position:relative;z-index:62;filter:brightness(0) invert(1)}
}
@media (max-width:860px){
  .hero{padding:56px 0 56px}
  .hero .lead{font-size:17px;margin:22px 0 28px}
  .hero-firma{width:170%;right:-60%;top:2%;opacity:.06}
  .stats{margin-top:52px}
  .stats strong{font-size:28px}
  .head{margin-bottom:36px}
  /* Carruseles deslizables en móvil */
  .posts,.plans,.team{display:flex!important;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-inline:-20px;padding:6px 20px 18px;scroll-padding-inline:20px}
  .posts::-webkit-scrollbar,.plans::-webkit-scrollbar,.team::-webkit-scrollbar{display:none}
  .posts>*,.plans>*,.team>*{flex:0 0 min(84%,380px);scroll-snap-align:start}
  .svc-row{padding:22px 0;gap:6px 14px}
  .svc-row h3{font-size:19px}
  .svc-row:hover{padding-left:0}
  .quote{gap:36px}
  .cta{padding:64px 0}
  .clock-top{top:28px}
  .clock-top .btn{display:none}
  .clock .hint{display:none}
  .ph-head{padding:52px 0 44px}
  .ph-head .lead{font-size:17px}
}
@media (max-width:560px){
  .ctas{width:100%}
  .ctas .btn,.prose .btn{flex:1 1 auto;justify-content:center}
  .wa{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));width:52px;height:52px}
  .clock-text{top:47%}
  .clock-text p{font-size:14.5px}
  .foot{grid-template-columns:1fr;gap:30px}
  .legal{flex-direction:column}
}
.foot-logo{background:none;padding:0;width:190px;border-radius:0}
@media (prefers-reduced-motion:reduce){
  html.js .rv,html.js .rv-img{opacity:1;transform:none;clip-path:none}
  .split .w>span{transform:none}
  .hero-firma{clip-path:none}
  .track{animation:none}
}
@media (max-width:1060px){header.top{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(255,255,255,.97)}}
.menu-open .wa,.menu-open .progress{opacity:0;pointer-events:none}
.split .w{padding-bottom:.2em;margin-bottom:-.2em}
@media (max-width:1060px){.menu .m-extra .btn{display:inline-flex!important;height:52px}}
@media (max-width:480px){.stats{grid-template-columns:1fr 1fr!important;column-gap:18px}.stats div:nth-child(n+3){padding-top:22px}.stats div:last-child strong{font-size:22px}}

/* =====================================================================
   v1.2 · Biblioteca
   ===================================================================== */
.doc-admin{border:1px dashed var(--naranja);border-radius:10px;padding:26px 28px;margin-bottom:56px;background:linear-gradient(180deg,#fff8f3,#fff)}
.doc-admin-head{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.doc-admin-head h2{font-size:clamp(22px,2.4vw,28px);margin-top:10px}
.doc-form{margin-top:24px;padding-top:24px;border-top:1px solid var(--linea);animation:fadeUp .45s var(--ease)}
.doc-form[hidden]{display:none}
.doc-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px}
.drop{position:relative;display:flex;align-items:center;gap:18px;border:1.5px dashed #cfc6b8;border-radius:8px;padding:22px;background:#fff;cursor:pointer;transition:border-color .25s,background .25s}
.drop:hover,.drop.over{border-color:var(--naranja);background:#fff8f3}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.drop-ico{width:46px;height:46px;border-radius:50%;background:var(--marino);color:#fff;display:grid;place-items:center;font-size:20px;flex:none}
.drop.has .drop-ico{background:var(--naranja)}
.drop-txt{font:400 14px/1.5 var(--font-body);color:var(--pizarra)}
.drop-txt b{color:var(--marino)}
.doc-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:6px}
.doc-tools{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:34px}
.doc-tools .filters{margin:0}
.doc-search{display:flex;align-items:center;border:1px solid var(--linea);border-radius:999px;background:#fff;padding:0 6px 0 18px;height:44px;width:min(320px,100%);transition:border-color .25s}
.doc-search:focus-within{border-color:var(--marino)}
.doc-search input{border:0;padding:0;height:100%;background:none;font-size:14px}
.doc-search input:focus{outline:none}
.doc-search button{border:0;background:var(--marino);color:#fff;width:34px;height:34px;border-radius:50%;font-size:17px;cursor:pointer;flex:none}
.docs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.doc-card{border:1px solid var(--linea);border-radius:10px;background:#fff;display:flex;flex-direction:column;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.doc-main{padding:24px 24px 18px;display:grid;gap:12px;flex:1;align-content:start}
.doc-top{display:flex;align-items:center;gap:12px}
.doc-meta{font-size:12px;color:var(--pizarra)}
.doc-meta b{color:var(--naranja);font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.doc-card h3{font-size:20px;line-height:1.25;transition:color .25s}
.doc-card p{font-size:14.5px;color:var(--pizarra);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.doc-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 24px;border-top:1px solid var(--linea);font-size:13px}
.doc-dl{margin-left:auto;font-weight:600;color:var(--trazo)}
.doc-dl:hover{color:var(--naranja)}
.doc-del button,.doc-own button{border:0;background:none;color:#b3361a;font:600 13px var(--font-body);cursor:pointer;padding:4px 0}
.doc-del button:hover{text-decoration:underline}
@media (hover:hover){.doc-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px rgba(11,45,76,.4);border-color:transparent}.doc-card:hover h3{color:var(--trazo)}}
.doc-ico{width:46px;height:56px;border-radius:4px 14px 4px 4px;display:grid;place-items:end center;padding-bottom:8px;font:700 10px var(--font-body);letter-spacing:.06em;color:#fff;background:var(--marino);flex:none;position:relative}
.doc-ico::before{content:"";position:absolute;top:8px;left:9px;right:14px;height:2px;background:rgba(255,255,255,.4);box-shadow:0 6px 0 rgba(255,255,255,.4),0 12px 0 rgba(255,255,255,.25)}
.doc-ico.t-pdf{background:#c9361e}.doc-ico.t-doc{background:#1B648D}.doc-ico.t-xls{background:#1f7a4c}.doc-ico.t-ppt{background:#EC681A}.doc-ico.t-img{background:#5B6773}
.doc-empty{text-align:center;padding:60px 20px;border:1px dashed var(--linea);border-radius:10px;color:var(--pizarra)}
.doc-empty span{font-size:34px;display:block;margin-bottom:10px}
.doc-login{text-align:center;margin-top:48px;font-size:12px}
.doc-login a{color:#9aa3ab;border-bottom:1px solid transparent}
.doc-login a:hover{color:var(--marino);border-color:currentColor}
.pdf-view{border:1px solid var(--linea);border-radius:8px;overflow:hidden;background:#f2efe9}
.pdf-view object{width:100%;height:min(85vh,980px);display:block}
.doc-aside .doc-ico{width:54px;height:66px}
.doc-aside .btn{justify-content:center}
.doc-facts{list-style:none;margin:0;padding:0;border-top:1px solid var(--linea)}
.doc-facts li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--linea);font-size:14px}
.doc-facts span{color:var(--pizarra)}
.doc-own{display:flex;gap:16px;align-items:center;font-size:13px}
@media (max-width:860px){
  .docs-grid{grid-template-columns:1fr}
  .doc-grid{grid-template-columns:1fr}
  .doc-admin{padding:22px 18px}
  .doc-tools{flex-direction:column;align-items:stretch}
  .doc-tools .filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-20px;padding-inline:20px}
  .doc-tools .filters a{flex:none}
  .doc-search{width:100%}
  .pdf-view object{height:70vh}
}
@media (min-width:861px) and (max-width:1060px){.docs-grid{grid-template-columns:repeat(2,1fr)}}
