:root{
  --bg:#0A0C0D; --s1:rgba(255,255,255,.03); --s2:rgba(255,255,255,.05); --s3:rgba(255,255,255,.07);
  --line:rgba(255,255,255,.08); --line2:rgba(255,255,255,.14); --claro:#EDF5F8;
  --ink:rgba(255,255,255,.94); --ink2:rgba(255,255,255,.66); --ink3:rgba(255,255,255,.42);
  --aqua:#92C1D1; --aqua-hi:#B7DCE8; --aqua-deep:#5E93A6; --aqua-weak:rgba(146,193,209,.12);
  --glow:0 0 44px -10px rgba(146,193,209,.4); --r:8px; --ease:cubic-bezier(0,.7,.4,1);
  --disp:'Sora',system-ui,sans-serif; --sans:'Inter',system-ui,sans-serif; --mono:'JetBrains Mono',Consolas,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink2);font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}
h1,h2,h3,h4{color:var(--ink);font-family:var(--disp);font-weight:700;letter-spacing:-.02em;line-height:1.05}
a{color:inherit;text-decoration:none}
section{padding:118px 24px;position:relative}
.wrap{max-width:1160px;margin:0 auto}
.eb{font:600 12px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--aqua)}
.shead{display:flex;align-items:center;gap:12px;margin-bottom:36px}
.shead .tick{width:26px;height:2px;background:var(--aqua);border-radius:2px;flex:none}
.h2{font-size:clamp(2rem,4.4vw,3.3rem);max-width:20ch;margin-bottom:20px;color:#fff}
.h2 .aq{color:var(--aqua)}
.lead{font-size:19px;color:var(--ink2);max-width:60ch}
p{max-width:66ch}
.btn{display:inline-flex;align-items:center;gap:9px;border-radius:var(--r);font:600 16px/1 var(--sans);padding:16px 30px;min-height:46px;cursor:pointer;border:0;background:#fff;color:#0A0C0D;transition:all .3s var(--ease)}
.btn:hover{background:var(--aqua);transform:translateY(-2px);box-shadow:var(--glow)}
.btn.ghost{background:transparent;border:1px solid var(--line2);color:var(--ink)}
.btn.ghost:hover{border-color:var(--aqua-deep);color:var(--aqua-hi)}
.ctas{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.micro{font:400 12.5px/1.7 var(--mono);color:var(--ink3);letter-spacing:.02em}

/* cursor glow (scoped + organic) */
#glow{position:fixed;left:0;top:0;width:340px;height:340px;border-radius:50%;pointer-events:none;z-index:1;
  background:radial-gradient(circle,rgba(146,193,209,.13),rgba(146,193,209,.05) 40%,transparent 62%);
  opacity:0;transition:opacity .6s var(--ease);will-change:transform,opacity}

/* HEADER centrado */
header{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .4s,border-color .4s,padding .4s,transform .45s var(--ease);padding:42px 24px 18px;background:linear-gradient(180deg,rgba(10,12,13,.78),rgba(10,12,13,0))}
.admin-bar header{top:32px}
@media(max-width:782px){.admin-bar header{top:46px}}
header.scrolled{background:rgba(10,12,13,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding:12px 24px}
.hin{max-width:1160px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:18px;position:relative}
.brand{display:flex;align-items:center}
.brand img{height:60px;width:auto;display:block;transition:height .4s}
header.scrolled .brand img{height:42px}
.menu{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;list-style:none;margin:0;padding:0}
.menu li{list-style:none}
.menu a{position:relative;display:inline-block;font:500 15px var(--sans);color:var(--ink2);padding:8px 14px;transition:color .25s;text-decoration:none}
.menu a::after{content:"";position:absolute;left:14px;right:14px;bottom:3px;height:1.5px;background:var(--aqua);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.menu a:hover{color:#fff}
.menu a:hover::after{transform:scaleX(1)}
.menu li.current-menu-item a{color:#fff}
.menu li.current-menu-item a::after{transform:scaleX(1);background:var(--aqua-deep)}
.menu li:last-child a{border:1px solid var(--line2);border-radius:8px;padding:9px 20px;margin-left:10px;color:var(--ink)}
.menu li:last-child a::after{display:none}
.menu li:last-child a:hover{border-color:var(--aqua-deep);color:var(--aqua-hi)}
.mburger{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%);width:46px;height:46px;border:1px solid var(--line2);border-radius:8px;background:rgba(10,12,13,.6);cursor:pointer;z-index:60;align-items:center;justify-content:center;flex-direction:column;gap:6px;padding:0}
.mburger span{display:block;width:20px;height:1.8px;background:var(--ink);transition:transform .35s var(--ease)}
header.nav-open .mburger span:first-child{transform:translateY(3.9px) rotate(45deg)}
header.nav-open .mburger span:last-child{transform:translateY(-3.9px) rotate(-45deg)}
@media(max-width:860px){
  header{padding:14px 18px}
  header.scrolled{padding:10px 18px}
  .hin{flex-direction:row;justify-content:center;gap:0}
  .brand img{height:46px}
  header.scrolled .brand img{height:40px}
  .mburger{display:flex}
  .menu{display:none;position:absolute;top:calc(100% + 14px);left:-6px;right:-6px;flex-direction:column;gap:0;background:rgba(10,12,13,.97);border:1px solid var(--line);border-radius:12px;padding:10px;backdrop-filter:blur(16px);box-shadow:0 30px 60px -20px rgba(0,0,0,.8)}
  header.nav-open .menu{display:flex}
  .menu li{width:100%}
  .menu a{display:block;width:100%;font:600 17px var(--disp);color:var(--ink);padding:15px 16px;border-bottom:1px solid var(--line)}
  .menu li:last-child a{border:0;margin:6px 0 0;text-align:center;background:var(--aqua-weak);color:var(--aqua-hi)}
  .menu a::after{display:none}
}
body{padding-top:0}

/* HERO */
.hero{min-height:100vh;display:grid;align-content:center;padding:180px 24px 96px;overflow:hidden;text-align:center}
.hero .vwrap{position:absolute;inset:0;z-index:0}
.hero video{width:100%;height:100%;object-fit:cover;opacity:.34}
.hero .veil{position:absolute;inset:0;z-index:1;background:
  radial-gradient(120% 95% at 50% 42%,rgba(10,12,13,.42),rgba(10,12,13,.74) 72%),
  linear-gradient(180deg,rgba(10,12,13,.62),rgba(10,12,13,.28) 26%,rgba(10,12,13,.28) 58%,var(--bg) 98%)}
.hero .wrap{position:relative;z-index:2;max-width:1000px;margin:0 auto;width:100%}
.hero .eb{display:inline-block;margin-bottom:22px}
.hero h1{font-size:clamp(2.9rem,7vw,6rem);font-weight:800;color:#fff;letter-spacing:-.03em}
.hero h1 .aq{color:var(--aqua)}
.hero .sub{font-size:20px;max-width:52ch;margin:26px auto 34px;color:var(--ink2)}
.hero .sub b{color:var(--ink);font-weight:600}
.hero .ctas{justify-content:center}
.scrollcue{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);z-index:2;color:var(--aqua);font-size:22px;opacity:.7;animation:bob 2.2s var(--ease) infinite}
@keyframes bob{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}

/* STATS */
.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:64px 24px;background:linear-gradient(180deg,transparent,rgba(146,193,209,.03),transparent);text-align:center}
.stats .eb{display:inline-block;margin-bottom:36px}
.grid3{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.stat .n{font:800 clamp(2.4rem,4.4vw,3.7rem)/1 var(--disp);color:#fff;letter-spacing:-.03em;font-variant-numeric:tabular-nums;text-shadow:0 0 34px rgba(146,193,209,.32);white-space:nowrap}
.stat .n .aq{color:var(--aqua)}
.stat .l{font-size:14.5px;color:var(--ink3);margin:12px auto 0;max-width:32ch}
.stats .src{max-width:1160px;margin:30px auto 0}
.stats .src a{color:var(--aqua)}

/* DOS ÁREAS */
.areas{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:1160px;margin:44px auto 0}
.area{background:var(--s1);border:1px solid var(--line);border-radius:calc(var(--r)*1.5);overflow:hidden;display:flex;flex-direction:column;transition:all .35s var(--ease);position:relative;z-index:2}
.area:hover{border-color:var(--aqua-deep);box-shadow:var(--glow);transform:translateY(-4px)}
.area .aimg{aspect-ratio:16/8;overflow:hidden;border-bottom:1px solid var(--line);position:relative}
.area .aimg img{width:100%;height:100%;object-fit:cover;opacity:.6;transition:transform .6s var(--ease),opacity .4s}
.area:hover .aimg img{transform:scale(1.05);opacity:.78}
.area .aimg .tg{position:absolute;top:16px;left:16px;font:600 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--aqua);background:rgba(10,12,13,.72);border:1px solid rgba(146,193,209,.3);padding:7px 11px;border-radius:999px}
.area .abody{padding:28px 30px 30px;display:flex;flex-direction:column;flex-grow:1}
.area h3{font-size:25px;font-weight:700;color:#fff;margin-bottom:8px}
.area .claim{font-size:16px;color:var(--aqua-hi);margin-bottom:16px;font-weight:500}
.area .list{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.area .list li{font:500 13px var(--mono);color:var(--ink2);background:var(--s2);border:1px solid var(--line);padding:7px 12px;border-radius:999px}
.area .go{margin-top:auto;font:600 15px var(--sans);color:var(--aqua)}
.area:hover .go{color:var(--aqua-hi)}

/* MÉTODO steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;max-width:1160px;margin:40px auto 0}
.step{position:relative;padding-top:30px}
.step .gn{font:700 15px var(--mono);color:var(--aqua);letter-spacing:.1em;margin-bottom:12px;display:block}
.step h4{font:600 18px var(--disp);color:var(--ink);margin-bottom:8px}
.step p{font-size:14px;color:var(--ink3)}
.step::before{content:"";position:absolute;top:0;left:0;width:34px;height:2px;background:var(--line2)}

/* BENTO uniforme */
.bento{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1160px;margin:40px auto 0}
.bcell{background:var(--s1);border:1px solid var(--line);border-radius:calc(var(--r)*1.5);padding:22px;min-height:156px;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;transition:all .3s var(--ease);position:relative;overflow:hidden}
.bcell:hover{background:var(--s2);border-color:var(--aqua-deep);box-shadow:var(--glow);transform:translateY(-3px)}
.bcell .ic{margin-bottom:auto;color:var(--aqua)}
.bcell .ic svg{width:22px;height:22px;display:block}
.bcell h4{font:600 17px var(--disp);color:var(--ink)}
.bcell p{font-size:12.5px;color:var(--ink3)}
.bcell .tag{position:absolute;top:14px;right:16px;font:600 9px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--aqua-deep)}

/* SOBRE */
.about{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;max-width:1160px;margin:0 auto}
.about .ceuta{background:linear-gradient(135deg,rgba(146,193,209,.12),var(--s1));border:1px solid var(--line2);border-radius:calc(var(--r)*1.5);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden}
.about .ceuta .ph{font:600 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}
.about .ceuta::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 60% at 50% 40%,rgba(146,193,209,.1),transparent)}

/* FAQ */
.faq{max-width:840px;margin:32px auto 0}
.fitem{border-top:1px solid var(--line)}
.fq{width:100%;background:none;border:0;color:var(--ink);font:600 17.5px/1.4 var(--disp);text-align:left;padding:22px 44px 22px 0;cursor:pointer;position:relative;letter-spacing:-.01em}
.fq::after{content:"+";position:absolute;right:2px;top:18px;font:300 27px/1 var(--sans);color:var(--aqua);transition:transform .3s var(--ease)}
.fitem.open .fq::after{transform:rotate(45deg)}
.fa{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--ease)}
.fitem.open .fa{grid-template-rows:1fr}
.fa>div{overflow:hidden}
.fa p{padding:0 0 22px;font-size:15.5px;color:var(--ink2);max-width:none}

/* CIERRE */
.final{text-align:center;padding:150px 24px;overflow:hidden}
.final .fbg2{position:absolute;inset:0;z-index:0;background:url('hero-frame-01-aqua.jpg') center/cover;opacity:.26}
.final .veil{position:absolute;inset:0;z-index:1;background:radial-gradient(62% 62% at 50% 50%,transparent,var(--bg) 86%)}
.final .wrap{position:relative;z-index:2}
.final h2{font-size:clamp(2.3rem,5.6vw,4.4rem);font-weight:800;color:#fff;max-width:18ch;margin:0 auto 18px;letter-spacing:-.03em}
.final h2 .aq{color:var(--aqua)}

/* MARQUEE + FOOTER */
.marq{overflow:hidden;border-top:1px solid var(--line);padding:28px 0 6px;white-space:nowrap}
.mline{display:inline-block;font:700 78px/1 var(--disp);text-transform:uppercase;color:rgba(255,255,255,.045);letter-spacing:-.02em;animation:marq 34s linear infinite}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
footer{border-top:1px solid var(--line);background:var(--s1)}
.fgrid{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding:56px 24px 40px}
.fcol h5{font:600 12px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--aqua);margin-bottom:16px}
.fcol a,.fcol p{display:block;font-size:14px;color:var(--ink2);margin-bottom:9px;max-width:36ch}
.fcol a:hover{color:var(--aqua-hi)}
.fbrand .b{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.fbrand .b img{height:34px}.fbrand .b span{font:700 18px var(--disp);color:#fff}
.fbot{max-width:1160px;margin:0 auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;border-top:1px solid var(--line);padding:18px 24px 40px;font:400 11.5px var(--mono);color:var(--ink3)}

/* ===== Puente de marca para WIDGETS NATIVOS de Elementor (edición visual) ===== */
.eb-el .elementor-heading-title{font:600 12px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--aqua)}
.h1-el .elementor-heading-title{font-family:var(--disp);font-weight:800;font-size:clamp(2.8rem,6.6vw,5.2rem);color:#fff;letter-spacing:-.03em;line-height:1.04}
.h2-el .elementor-heading-title{font-family:var(--disp);font-weight:700;font-size:clamp(2rem,4.2vw,3.1rem);color:#fff;letter-spacing:-.02em;line-height:1.07}
.h3-el .elementor-heading-title{font-family:var(--disp);font-weight:700;font-size:24px;color:#fff}
.h4-el .elementor-heading-title{font-family:var(--disp);font-weight:600;font-size:17px;color:var(--ink)}
.num-el .elementor-heading-title{font-family:var(--disp);font-weight:800;font-size:clamp(2.2rem,4vw,3.3rem);color:#fff;letter-spacing:-.03em}
.claim-el .elementor-heading-title{font-family:var(--sans);font-weight:500;font-size:16px;color:var(--aqua-hi)}
.gn-el .elementor-heading-title{font:700 15px var(--mono);color:var(--aqua);letter-spacing:.1em}
.lead-el .elementor-widget-container{font-size:19px;color:var(--ink2);line-height:1.6}
.body-el .elementor-widget-container{font-size:15.5px;color:var(--ink2);line-height:1.65}
.small-el .elementor-widget-container{font-size:13px;color:var(--ink3);font-family:var(--mono)}
.btn-el .elementor-button{background:#fff!important;color:#0A0C0D!important;border-radius:8px!important;font:600 16px/1 var(--sans)!important;padding:15px 28px!important;border:0!important;transition:all .3s var(--ease)}
.btn-el .elementor-button:hover{background:var(--aqua)!important;color:#0A0C0D!important}
.btng-el .elementor-button{background:transparent!important;color:var(--ink)!important;border:1px solid var(--line2)!important;border-radius:8px!important;font:600 16px/1 var(--sans)!important;padding:15px 28px!important}
.btng-el .elementor-button:hover{border-color:var(--aqua-deep)!important;color:var(--aqua-hi)!important;background:transparent!important}
.card-el{background:var(--s1)!important;border:1px solid var(--line)!important;border-radius:12px!important}
.list-el .elementor-icon-list-text{color:var(--ink2);font-size:14.5px}
.list-el .elementor-icon-list-icon{color:var(--aqua)}
.list-el .elementor-icon-list-icon svg{fill:var(--aqua);width:14px;height:14px}
.acc-el .elementor-accordion-title{font-family:var(--disp);font-weight:600;color:var(--ink);font-size:17px}
.acc-el .elementor-tab-content{color:var(--ink2);font-size:15px}
.acc-el .elementor-accordion-item{border-color:var(--line)!important}

/* reveal */
[data-anim]{opacity:0;transform:translateY(24px);filter:blur(6px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease)}
[data-anim].in{opacity:1;transform:none;filter:none}
@media (prefers-reduced-motion:reduce){[data-anim]{opacity:1;transform:none;filter:none}.mline{animation:none}}

@media(max-width:860px){
  section{padding:78px 20px}
  .grid3,.areas,.about{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr;gap:30px 20px}
  .bento{grid-template-columns:1fr 1fr}
  .hero{min-height:auto;padding-top:150px}
  .hero video{opacity:.3}
  .mline{font-size:40px}
  .fgrid{grid-template-columns:1fr 1fr;gap:28px}
}

/* A11y (auditoría 2026-07-22): skip-link, wrapper <nav> del menú y foco visible en header.
   .mnav usa display:contents para que el <nav> no altere el layout flex de .hin. */
.skip-link{position:absolute;left:-9999px;top:0;z-index:300;background:#92C1D1;color:#0A0C0D;padding:12px 20px;border-radius:0 0 10px 0;font:600 15px 'Inter',system-ui,sans-serif;text-decoration:none}
.skip-link:focus{left:0}
.mnav{display:contents}
#hd a:focus-visible,#hd button:focus-visible{outline:2px solid #92C1D1;outline-offset:3px;border-radius:4px}
