/* Layout: a 1400px dark case-study canvas (1306px content column, 47px gutters) reproduced from the original frame;
   full-bleed render bands with centred editorial text, two-column "composition" rows, image crops from the source. */
:root{
  --bg:#16233F;          /* page ground */
  --bg-band:#1C2A4A;     /* design-process band */
  --bg-band-2:#111D38;   /* navigation-layout band */
  --bg-comp:#16233F;     /* composition rows (floating cards) */
  --bg-deep:#111D38;     /* under the laptop renders */
  --card:#1C2A4A;        /* feature cards */
  --fg:#ffffff;
  --fg-2:#B0B8C9;        /* hero subtitle */
  --muted:#8792A8;       /* body copy */
  --muted-2:#8792A8;     /* small labels (lifted slightly from the source for AA contrast) */
  --label:#B0B8C9;       /* card captions */
  --accent:#14C6EE;      /* eyebrow blue */
  --accent-2:#14C6EE;
  --line:rgba(255,255,255,.10);
  --pill:#1C2A4A;
  --display:'Figtree',"Helvetica Neue",Arial,sans-serif;
  --body:'Onest',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --gutter:max(16px, env(safe-area-inset-left, 0px), clamp(16px, 3.4vw, 47px));
  color-scheme:dark;
}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:17px;line-height:1.88;overflow-x:hidden;font-feature-settings:"cv11","ss01"}img{display:block;max-width:100%;height:auto}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);font-weight:400;text-wrap:balance;letter-spacing:-.02em}a{color:inherit}.wrap{max-width:1400px;margin:0 auto;padding-left:max(16px, env(safe-area-inset-left, 0px), clamp(16px, 3.4vw, 47px));padding-right:max(16px, env(safe-area-inset-right, 0px), clamp(16px, 3.4vw, 47px))}.center{text-align:center}.lede{color:var(--muted);font-size:17px;line-height:1.9}.lede + .lede{margin-top:32px}

/* eyebrow: label — line — index */
.eyebrow{display:flex;align-items:center;gap:14px;color:var(--accent);font:500 14px/1 var(--body);letter-spacing:.04em;text-transform:uppercase}.eyebrow i{display:block;width:62px;height:1px;background:var(--accent);opacity:.9}

/* ============ HERO ============ */
.hero{position:relative;background:var(--bg);isolation:isolate}.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,35,63,.82) 0,rgba(22,35,63,.6) 50%,rgba(22,35,63,.3) 100%);pointer-events:none}.hero::after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(to bottom,rgba(22,35,63,0),var(--bg));pointer-events:none}.hero .wrap{position:relative;z-index:1;min-height:min(900px,64.3vw);display:flex;flex-direction:column}.nav{display:flex;align-items:center;gap:40px;padding-top:36px}.nav-links{display:flex;gap:32px;margin:0 auto;padding:0;list-style:none}.nav-links a{font:500 14px/1 var(--body);color:var(--fg-2);text-decoration:none;letter-spacing:.01em;padding:8px 0;transition:color .2s}.nav-links a:hover{color:#fff}.btn{flex:none;display:inline-flex;align-items:center;justify-content:center;height:42px;padding:0 22px;border-radius:999px;background:var(--accent);color:#fff;font:500 14px/1 var(--body);text-decoration:none;letter-spacing:.01em;box-shadow:0 8px 24px rgba(10,20,40,.35);transition:background .2s,transform .2s}.btn:hover{background:var(--accent-2);transform:translateY(-1px)}.brand{display:flex;align-items:center;gap:12px;padding-top:0;font-family:var(--display);font-size:22px;font-weight:500;letter-spacing:-.01em;color:#fff}.hero h1{font-size:clamp(40px,6vw,72px);line-height:1;font-weight:400;letter-spacing:-.025em;margin-top:clamp(40px,7vw,98px)}.hero .sub{margin-top:clamp(40px,7.2vw,100px);max-width:800px;color:var(--fg-2);font-size:17px;line-height:1.9}.hero .rule{height:1px;background:var(--line);margin-top:30px}.meta{display:flex;gap:48px;flex-wrap:wrap;padding:28px 0 0;margin-bottom:auto}.meta div{display:grid;gap:6px}.meta .ml{color:var(--muted-2);font:500 12px/1 var(--body);letter-spacing:.06em;text-transform:uppercase}.meta .mv{color:#dcdee3;font-size:14px;line-height:1.45}.meta .right{margin-left:auto;text-align:right}

/* ============ sections ============ */
section{position:relative}.split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px 56px;align-items:start;margin-top:44px}.split h2{font-size:clamp(34px,3.8vw,52px);line-height:1.14}.split .copy{padding-top:14px;max-width:560px}

/* feature cards: what the platform does (4 bento cards with original SVG illustrations) */
.cards{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;margin-top:28px}
@keyframes flow{to{stroke-dashoffset:-26}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes ring{to{stroke-dashoffset:181}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}

/* design process band */


/* architecture band */
.arch{display:grid;grid-template-columns:210px minmax(0,1fr) 210px;gap:16px;margin-top:56px;text-align:left}.arch-side{border:1px solid var(--line);border-radius:16px;padding:22px 20px;background:rgba(255,255,255,.025)}.arch-side h3{margin:0 0 18px;font:500 12px/1.3 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2)}.arch-side ul{margin:0;padding:0;list-style:none}.arch-side li{position:relative;padding-left:16px;font-size:13px;line-height:1.5;color:var(--fg-2)}.arch-side li + li{margin-top:12px}.arch-side li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.arch-core{display:grid;gap:12px}.agentbar{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;border:1px solid rgba(20,198,238,.5);border-radius:999px;padding:10px 18px;font:500 12px/1.3 var(--body);color:#7DE3F7;background:rgba(20,198,238,.08)}.agentbar b{font-weight:500;color:#fff;letter-spacing:.08em;text-transform:uppercase;font-size:12px}.layer{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;border:1px solid var(--line);border-radius:16px;padding:12px;background:rgba(255,255,255,.02)}.lname{display:grid;align-content:center;gap:6px;padding:12px;border-radius:12px;background:#16233F}.lname b{font:400 22px/1 var(--display);color:var(--accent-2)}.lname span{font:500 12px/1.35 var(--body);letter-spacing:.08em;text-transform:uppercase;color:#fff}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.tile{border-radius:12px;background:#1C2A4A;border:1px solid rgba(255,255,255,.07);padding:12px 14px;min-width:0}.tile b{display:block;font:500 13px/1.35 var(--body);color:#fff}.tile span{display:block;margin-top:5px;font-size:12px;line-height:1.5;color:var(--muted)}.apibar{border-radius:999px;background:var(--accent);color:#0A1428;text-align:center;font:500 12px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;padding:9px 16px}.arch-note{margin-top:18px;color:var(--muted-2);font-size:12px;text-align:center}
/* architecture: hover light-up and motion */
.arch-core{position:relative;padding-left:22px}.arch-core::before{content:"";position:absolute;left:6px;top:54px;bottom:14px;width:2px;border-radius:2px;background:linear-gradient(to bottom,rgba(20,198,238,0),rgba(20,198,238,.35) 15%,rgba(20,198,238,.35) 85%,rgba(20,198,238,0))}.arch-core::after{content:"";position:absolute;left:3px;top:54px;width:8px;height:8px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 4px rgba(20,198,238,.18);opacity:0}.layer{position:relative;transition:border-color .35s,background .35s,opacity .35s,transform .35s}.layer::before{content:"";position:absolute;left:-16px;top:50%;width:14px;height:2px;background:rgba(20,198,238,.35);transition:background .35s}.layer:hover{border-color:rgba(20,198,238,.35);background:rgba(20,198,238,.04)}.layer:hover::before{background:var(--accent-2)}.layer:hover .lname{background:#1C2A4A}.layer:hover .lname b{color:#fff}.lname{transition:background .35s}.lname b{transition:color .35s}.tile{position:relative;overflow:hidden;--mx:50%;--my:50%;transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,background .35s,opacity .35s}.tile::before{content:"";position:absolute;inset:0;background:radial-gradient(200px circle at var(--mx) var(--my),rgba(20,198,238,.14),transparent 65%);opacity:0;transition:opacity .35s;pointer-events:none}.tile:hover{border-color:rgba(20,198,238,.4);background:#16233F}.tile:hover::before{opacity:1}.tile:hover b{color:#fff}.tile:hover span{color:#B0B8C9}.arch-side{transition:border-color .35s}.arch-side:hover{border-color:rgba(20,198,238,.45)}.arch-side li{transition:color .3s}.arch-side li::before{transition:background .3s,box-shadow .3s}.arch-side li:hover{color:#fff}.arch-side li:hover::before{background:var(--accent-2);box-shadow:0 0 0 4px rgba(20,198,238,.2)}.apibar{position:relative;overflow:hidden}.apibar::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%);transform:translateX(-120%)}.agentbar{transition:border-color .35s,background .35s,box-shadow .35s}.agentbar:hover{border-color:var(--accent-2);background:rgba(20,198,238,.16);box-shadow:inset 0 0 0 1px rgba(20,198,238,.35)}
@media (prefers-reduced-motion:no-preference){.arch.play .arch-core > *{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}.arch.play .arch-core > :nth-child(6){animation-delay:.05s}.arch.play .arch-core > :nth-child(5){animation-delay:.2s}.arch.play .arch-core > :nth-child(4){animation-delay:.35s}.arch.play .arch-core > :nth-child(3){animation-delay:.48s}.arch.play .arch-core > :nth-child(2){animation-delay:.6s}.arch.play .arch-core > :nth-child(1){animation-delay:.8s}.arch.play .arch-side{animation:rise .7s cubic-bezier(.2,.7,.2,1) .4s both}.arch.play .arch-core::after{opacity:1;animation:spine 5s cubic-bezier(.45,0,.2,1) 1.2s infinite}.arch.play .apibar::after{animation:shimmer 4s ease-in-out 1.6s infinite}
}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes spine{0%{top:calc(100% - 22px);opacity:0}10%{opacity:1}80%{top:54px;opacity:1}100%{top:54px;opacity:0}}
@keyframes shimmer{0%{transform:translateX(-120%)}40%,100%{transform:translateX(120%)}}

/* resilience capabilities */

@keyframes fib{to{stroke-dashoffset:0}}
@keyframes pulse{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}
@keyframes spin{to{transform:rotate(360deg)}}

/* overview */


/* big centred section headers */
.sec{padding-top:150px}.sec-head h2{font-size:clamp(40px,5.15vw,72px);line-height:1.1;margin-top:28px}.sec-head .lede{max-width:800px;margin:18px auto 0}

/* ============ AI agent section ============ */
.msg{max-width:92%;padding:.95em 1.15em;border-radius:1.2em;font-size:1.02em}.msg.user{align-self:flex-end;background:var(--accent);color:#0A1428;border-bottom-right-radius:.35em}.msg .who{display:block;font-size:.78em;letter-spacing:.08em;text-transform:uppercase;color:#8b8e97;margin-bottom:.4em}.msg.user .who{color:rgba(255,255,255,.7)}.msg .run{display:flex;align-items:center;gap:.7em;margin-top:.8em;font-size:.9em;color:#B0B8C9}.msg .run i{width:.7em;height:.7em;border-radius:50%;background:#3DD68C;flex:none}.msg .bar{flex:1;height:.45em;border-radius:999px;background:#111D38;overflow:hidden}.msg .bar b{display:block;width:62%;height:100%;background:linear-gradient(90deg,#0A8FB0,#14C6EE)}.msg ul{margin:.6em 0 0;padding-left:1.2em;color:#B0B8C9}.msg li+li{margin-top:.25em}
@keyframes drive{from{offset-distance:0%}to{offset-distance:100%}}.duo .pic svg{width:100%;height:auto;max-width:560px;display:block;margin:0 auto;overflow:visible}.duo .pic svg text{font-family:var(--body)}

/* composition rows: image + text */
.duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px 56px;align-items:center}.duo .txt{max-width:560px}.duo h3{font-size:clamp(24px,2vw,28px);line-height:1.3;color:#F4F4F6}.duo h3 small{display:block;margin-bottom:12px;font:500 11px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.duo p{margin-top:22px;color:var(--muted)}.duo .pic{min-width:0}.duo .pic img{margin:0 auto}.duo.rev .pic{order:2}.duo.rev .txt{order:1;justify-self:end}.duo.rev .txt.left{justify-self:start}.flow{display:grid;gap:clamp(60px,9vw,130px);padding-top:clamp(40px,6vw,90px)}

/* responsive */
@media (max-width:1100px){
  .kits{grid-template-columns:repeat(2,minmax(0,1fr))}
  .arch{grid-template-columns:1fr}
  .arch-side ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 24px}
  .arch-side li + li{margin-top:0}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:820px){.split,.duo{grid-template-columns:1fr}.duo.rev .pic{order:1}.duo.rev .txt{order:2;justify-self:start}.hero .wrap{min-height:0;padding-bottom:40px}.hero h1{max-width:none}.meta .right{margin-left:0;text-align:left}.nav{gap:16px;justify-content:space-between}.nav-links{display:none}.btn{height:44px;padding:0 18px;font-size:14px}.sec{padding-top:96px}.eyebrow i{width:40px}.split h2 br,.hero h1 br{display:none}.hero h1{font-size:clamp(40px,11vw,64px)}.layer{grid-template-columns:1fr}.arch-core{padding-left:0}.arch-core::before,.arch-core::after,.layer::before{display:none}
}

/* ============ restructure: sticky nav, views, landing ============ */
:root{--accent-fill:#14C6EE;--accent-fill-hover:#3FD3F3;--navh:76px}body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--bg)}:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px;border-radius:4px}[id]{scroll-margin-top:calc(var(--navh) + 16px)}.btn{background:var(--accent-fill)}.btn:hover{background:var(--accent-fill-hover)}.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.28);box-shadow:none}.btn.ghost:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.5)}.apibar{background:var(--accent-fill)}.msg.user{background:var(--accent-fill)}

/* top navigation (sticky, outside the hero) */
.topnav{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;height:var(--navh);background:transparent;border-bottom:1px solid transparent;transition:background .3s,border-color .3s}.topnav.solid{background:rgba(22,35,63,.8);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:var(--line)}.topnav-in{height:100%;display:flex;align-items:center;gap:40px}.topnav .brand{padding:0;text-decoration:none}.topnav .nav-links{margin:0 auto}.topnav .nav-links a[aria-current="page"]{color:#fff;box-shadow:inset 0 -2px 0 var(--accent-2)}.menu-btn{display:none;flex:none;height:38px;padding:0 14px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;font:500 13px/1 var(--body);cursor:pointer}.menu-btn[aria-expanded="true"]{background:rgba(255,255,255,.08)}.menu-panel{position:absolute;left:0;right:0;top:100%;background:rgba(22,35,63,.96);border-bottom:1px solid var(--line);padding:10px 0 18px}.menu-panel ul{list-style:none;margin:0;padding:0 max(16px, env(safe-area-inset-left, 0px)) 0 max(16px, env(safe-area-inset-left, 0px));display:grid}.menu-panel a{display:block;padding:14px 4px;color:var(--fg-2);text-decoration:none;font:500 16px/1.2 var(--body);border-bottom:1px solid var(--line)}.menu-panel a[aria-current="page"]{color:#fff}.menu-panel li:last-child a{border:0;color:var(--accent-2)}

/* hero under the sticky nav */
.hero{margin-top:calc(-1 * var(--navh))}.hero .wrap{min-height:min(820px,58vw);padding-top:calc(var(--navh) + 20px)}.hero h1{margin-top:clamp(36px,6vw,80px)}.hero .sub{margin-top:clamp(28px,4vw,44px);max-width:760px}.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.hero .rule{margin-top:40px}.meta .mv{max-width:30ch}

/* views */
.view[hidden]{display:none}.viewbar{display:flex;align-items:center;gap:14px;padding-block:26px 0;font:500 13px/1 var(--body);color:var(--muted-2);letter-spacing:.02em}.viewbar a{color:var(--fg-2);text-decoration:none;display:inline-flex;align-items:center;gap:8px}.viewbar a:hover{color:#fff}.viewbar i{width:1px;height:14px;background:var(--line)}.viewbar b{font-weight:500;color:#fff}.view > section:first-of-type{padding-top:40px}.viewend{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;padding-block:70px 90px;border-top:1px solid var(--line);margin-top:40px}.viewend .next{margin-left:auto;color:var(--muted);font-size:14px}.viewend .next a{color:var(--fg-2);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25)}.viewend .next a:hover{color:#fff;border-color:#fff}

/* landing */
.lp-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px 40px;flex-wrap:wrap}.lp-head h2{font-size:clamp(28px,3.2vw,44px);line-height:1.14;margin-top:22px}.more{display:inline-flex;align-items:center;gap:8px;color:var(--fg-2);text-decoration:none;font:500 14px/1 var(--body);padding:10px 0;border-bottom:1px solid rgba(255,255,255,.25);transition:color .2s,border-color .2s}.more:hover{color:#fff;border-color:#fff}.lp-what{padding-top:130px}.lp-what .split{margin-top:40px}.lp-agent{padding-top:150px}.lp-agent .duo{align-items:center}.lp-agent h2{font-size:clamp(28px,3.2vw,44px);line-height:1.14;margin-top:22px}.lp-agent .lede{margin-top:20px}.lp-agent .more{margin-top:26px}.lp-cases{padding-top:150px}.lp-cases > .wrap > h2{font-size:clamp(28px,3.2vw,44px);line-height:1.14;margin-top:22px}.casegrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:48px}.case{display:flex;flex-direction:column;border-radius:18px;background:var(--card);border:1px solid rgba(255,255,255,.06);overflow:hidden;color:inherit;text-decoration:none;min-width:0;transition:transform .5s cubic-bezier(.2,.7,.2,1),border-color .3s}.case:hover{transform:translateY(-3px);border-color:rgba(20,198,238,.4)}.case .case-art{height:220px;background:#1C2A4A;position:relative;overflow:hidden}.case .case-art img{width:100%;height:100%;object-fit:cover;object-position:left top}.case .case-art svg{position:absolute;inset:0;width:100%;height:100%}.case .body{padding:24px 26px 28px;display:grid;gap:10px;flex:1}.case .code{font:500 12px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.case b{font:400 22px/1.25 var(--display);color:#fff;letter-spacing:-.01em}.case .desc{font-size:14.5px;line-height:1.65;color:var(--muted)}.case .mat{margin-top:auto;padding-top:12px;display:flex;flex-wrap:wrap;gap:8px}.case .mat span{font:400 12.5px/1 var(--body);color:var(--fg-2);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:7px 11px}.case .mat span.ok{color:#3DD68C;border-color:rgba(61,214,140,.4)}.cap{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:start;padding:20px 22px;border-radius:14px;border:1px solid rgba(255,255,255,.08);color:inherit;text-decoration:none;min-width:0;transition:border-color .3s,transform .5s cubic-bezier(.2,.7,.2,1)}.cap:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--k) 55%,transparent)}.cap i{grid-row:1/3;width:10px;height:10px;border-radius:50%;background:var(--k);margin-top:7px;box-shadow:0 0 0 4px color-mix(in srgb,var(--k) 22%,transparent)}.cap b{font:500 15px/1.3 var(--body);color:#fff}.cap span{font-size:13px;line-height:1.55;color:var(--muted)}.lp-contact{padding:170px 0 90px;text-align:center}.lp-contact h2{font-size:clamp(30px,4vw,56px);line-height:1.12;margin-top:24px}.lp-contact .lede{margin:22px auto 0;max-width:620px}.contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;max-width:760px;margin:48px auto 0;text-align:left}.contact > div{border:1px solid var(--line);border-radius:16px;padding:22px 24px;background:rgba(255,255,255,.025);display:grid;gap:6px}.contact h4{margin:0 0 6px;font:500 12px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.contact b{font:400 18px/1.3 var(--display);color:#fff}.contact .email{font-size:14px;color:var(--fg-2);word-break:break-all;user-select:all}.contact .copy{justify-self:start;margin-top:6px;height:32px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:transparent;color:#fff;font:500 12px/1 var(--body);cursor:pointer}.contact .copy:hover{background:rgba(255,255,255,.08)}.contact .copy.done{border-color:rgba(61,214,140,.6);color:#3DD68C}.lp-contact .site{display:inline-flex;margin-top:28px;color:var(--fg-2);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25);font-size:14px}.lp-contact .site:hover{color:#fff;border-color:#fff}footer{border-top:1px solid var(--line);padding:30px 0 40px}footer .wrap{display:flex;flex-wrap:wrap;gap:16px 40px;align-items:center;justify-content:space-between}footer p{font-size:12.5px;color:var(--muted-2)}footer a{color:var(--fg-2);text-decoration:none}footer a:hover{text-decoration:underline}footer .brand{font-size:18px;padding:0;text-decoration:none}

/* process pills: let text wrap instead of truncating */

@media (max-width:1100px){
  .mini{grid-template-columns:repeat(2,minmax(0,1fr))}
  .caprow{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:820px){.topnav .nav-links{display:none}.menu-btn{display:inline-flex;align-items:center}.topnav-in{gap:12px;justify-content:space-between}.topnav .btn{display:none}.menu-panel .btn{display:inline-flex;margin:14px 16px 0}.hero .wrap{min-height:0;padding-bottom:40px}.hero-cta .btn{flex:1;justify-content:center}.casegrid{grid-template-columns:1fr}.lp-what{padding-top:80px}.lp-agent,.lp-cases{padding-top:96px}.lp-contact{padding:110px 0 70px}.viewend{padding-block:50px 70px}.viewend .next{margin-left:0}
}

/* ============ traffic simulator screen ============ */

/* challenge, cycle and scenario list */

@keyframes cyc{0%{left:28px;opacity:0}8%{opacity:1}85%{left:calc(100% - 36px);opacity:1}100%{left:calc(100% - 36px);opacity:0}}

/* demo-data chip: one rule for every illustrative figure */


/* view changes: announcer + programmatic focus targets */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus,section[tabindex="-1"]:focus,header[tabindex="-1"]:focus{outline:none}

/* platform: framework image, function points, question-to-answer steps */


/* mobile: swipeable diagrams and screens, 44px touch targets */

@media (max-width:820px){.menu-btn{height:44px;padding:0 16px}.topnav .brand{min-height:44px}.contact .copy{height:44px;padding:0 16px;font-size:13px}.more,.lp-contact .site,.viewbar a,.viewend .next a,footer a{display:inline-flex;align-items:center;min-height:44px}.viewbar{padding-block:14px 0}
}

/* test de humo · paso 2: sin pantallas de producto */
.asks{list-style:none;margin:0 auto;padding:0;display:grid;gap:22px;max-width:520px}.asks li{font-family:var(--display);font-weight:400;font-size:clamp(20px,1.9vw,26px);line-height:1.3;color:#F4F4F6;padding-left:22px;border-left:2px solid var(--accent-2)}.asks li.dim{color:var(--fg-2)}.duo.solo{grid-template-columns:1fr}.duo.solo .txt,.duo.rev.solo .txt{max-width:none;justify-self:stretch;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px 56px;align-items:start}.duo.solo .txt p{margin-top:0}
@media (max-width:900px){.duo.solo .txt,.duo.rev.solo .txt{grid-template-columns:1fr}.duo.solo .txt p{margin-top:4px}}

/* ilustración animada · simulador de tráfico (12 s en bucle: sensores → toda la red → corte y desvío) */
.ill{display:block;width:100%;height:auto;overflow:hidden}.ill-traffic .tr-ground{fill:#111D38;stroke:rgba(255,255,255,.05)}.ill-traffic .tr-st{stroke:#1C2A4A;stroke-width:5;stroke-linecap:round}.ill-traffic .tr-f{stroke:#14C6EE;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:2 12;animation:tr-dash 1.4s linear infinite;fill:none}.ill-traffic .tr-flow{filter:drop-shadow(0 0 3px rgba(20,198,238,.55))}.ill-traffic .tr-closed{stroke:#FF0099;stroke-width:3;stroke-dasharray:6 6;stroke-linecap:round}.ill-traffic .tr-div{fill:none;stroke:#E8B341;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2 10;animation:tr-dash .9s linear infinite;filter:drop-shadow(0 0 3px rgba(232,179,65,.6))}.ill-traffic .tr-div2{animation-delay:-.45s}.ill-traffic .b-t{fill:#1C2A4A;stroke:rgba(20,198,238,.22);stroke-width:.8}.ill-traffic .b-r{fill:#16233F;stroke:rgba(20,198,238,.12);stroke-width:.8}.ill-traffic .b-l{fill:#111D38;stroke:rgba(20,198,238,.12);stroke-width:.8}.ill-traffic .tr-dot{fill:#7DE3F7}.ill-traffic .tr-post{stroke:rgba(125,227,247,.55);stroke-width:1.4}.ill-traffic .tr-head{fill:#7DE3F7;filter:drop-shadow(0 0 5px rgba(20,198,238,.9))}.ill-traffic .tr-ring{fill:none;stroke:#14C6EE;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:tr-ping 2s ease-out infinite}.ill-traffic .tr-stem{stroke:rgba(255,0,153,.6);stroke-width:1.2}.ill-traffic .tr-sign{fill:#FF0099;filter:drop-shadow(0 0 6px rgba(255,0,153,.7))}.ill-traffic .tr-bar{fill:#fff}.ill-traffic .tr-n{font-size:13px;fill:#14C6EE;font-weight:600;letter-spacing:.04em}.ill-traffic .tr-t{font-size:15px;fill:#F4F4F6}.ill-traffic .tr-p2{animation:tr-p2 12s linear infinite}.ill-traffic .tr-p2only{animation:tr-p2only 12s linear infinite}.ill-traffic .tr-p3{animation:tr-p3 12s linear infinite}.ill-traffic .tr-sensors{animation:tr-p1 12s linear infinite}.ill-traffic .tr-c1{animation:tr-c1 12s linear infinite}.ill-traffic .tr-c2{animation:tr-c2 12s linear infinite}.ill-traffic .tr-c3{animation:tr-c3 12s linear infinite}
@keyframes tr-dash{to{stroke-dashoffset:-28}}
@keyframes tr-ping{0%{transform:scale(.3);opacity:.9}100%{transform:scale(1.4);opacity:0}}
@keyframes tr-p1{0%,27%{opacity:1}34%,94%{opacity:.45}100%{opacity:1}}
@keyframes tr-p2{0%,27%{opacity:0}34%,92%{opacity:1}98%,100%{opacity:0}}
@keyframes tr-p2only{0%,27%{opacity:0}34%,60%{opacity:1}65%,100%{opacity:0}}
@keyframes tr-p3{0%,60%{opacity:0}65%,92%{opacity:1}98%,100%{opacity:0}}
@keyframes tr-c1{0%,26%{opacity:1}30%,96%{opacity:0}100%{opacity:1}}
@keyframes tr-c2{0%,30%{opacity:0}34%,59%{opacity:1}63%,100%{opacity:0}}
@keyframes tr-c3{0%,63%{opacity:0}67%,92%{opacity:1}96%,100%{opacity:0}}.case-art .ill .tr-cap{display:none}
@media (prefers-reduced-motion:reduce){.ill-traffic *{animation:none !important}.ill-traffic .tr-p2,.ill-traffic .tr-p3,.ill-traffic .tr-sensors{opacity:1}.ill-traffic .tr-p2only,.ill-traffic .tr-c1,.ill-traffic .tr-c2,.ill-traffic .tr-ring{opacity:0}.ill-traffic .tr-c3{opacity:1}
}.ill-frame{width:100%;max-width:620px;margin:0 auto;border-radius:16px;overflow:hidden;background:#111D38;border:1px solid rgba(255,255,255,.06)}

/* ===== ilustraciones animadas: lenguaje común (maqueta isométrica) ===== */
.ill .b-t{fill:#1C2A4A;stroke:rgba(20,198,238,.22);stroke-width:.8}.ill .b-r{fill:#16233F;stroke:rgba(20,198,238,.12);stroke-width:.8}.ill .b-l{fill:#111D38;stroke:rgba(20,198,238,.12);stroke-width:.8}.ill text{font-family:var(--body)}.case-art .ill .cap{display:none}
@keyframes ill-dash{to{stroke-dashoffset:-28}}
@keyframes ill-ping{0%{transform:scale(.3);opacity:.9}100%{transform:scale(1.5);opacity:0}}

/* hero: la ciudad y su gemelo */
.hero-ill{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.hero-ill .ill{width:100%;height:100%}
@media (max-width:640px){.hero-ill{top:auto;height:58%;opacity:.85}}.ill-hero .hz-ground{fill:#0D1830;stroke:rgba(255,255,255,.04)}.ill-hero .hz-st{stroke:#1C2A4A;stroke-width:5;stroke-linecap:round}.ill-hero .hz-f{stroke:#14C6EE;stroke-width:2;stroke-linecap:round;stroke-dasharray:2 14;animation:ill-dash 1.8s linear infinite;opacity:.7}.ill-hero .hz-flow{filter:drop-shadow(0 0 3px rgba(20,198,238,.5))}.ill-hero .hz-beam-base{stroke:rgba(20,198,238,.14);stroke-width:1}.ill-hero .hz-beam{stroke:#7DE3F7;stroke-width:2;stroke-linecap:round;stroke-dasharray:6 60;animation:hz-up 3.4s linear infinite;filter:drop-shadow(0 0 4px rgba(20,198,238,.9))}
@keyframes hz-up{from{stroke-dashoffset:0}to{stroke-dashoffset:-132}}.ill-hero .hz-node{fill:#7DE3F7}.ill-hero .hz-twin{animation:hz-float 9s ease-in-out infinite}
@keyframes hz-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.ill-hero .hz-twin-plane{fill:rgba(20,198,238,.035);stroke:rgba(20,198,238,.18)}.ill-hero .hz-tst{stroke:rgba(20,198,238,.12);stroke-width:1}.ill-hero .hz-tb{fill:rgba(20,198,238,.05);stroke:rgba(125,227,247,.42);stroke-width:1;animation:hz-shim 6s ease-in-out infinite}.ill-hero .hz-te{stroke:rgba(125,227,247,.22);stroke-width:1}
@keyframes hz-shim{0%,100%{stroke-opacity:.55}50%{stroke-opacity:1}}.ill-hero .hz-tf{stroke:#7DE3F7;stroke-width:1.6;stroke-dasharray:2 16;animation:ill-dash 2.2s linear infinite;opacity:.8}.ill-hero .hz-tnode{fill:#7DE3F7;filter:drop-shadow(0 0 6px rgba(20,198,238,1))}

/* eventos extremos y agua (12 s: lluvia → la laguna sube → aviso) */
.ill-water .ag-ground{fill:#111D38;stroke:rgba(255,255,255,.05)}.ill-water .ag-bed{fill:none;stroke:#1C2A4A;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}.ill-water .ag-ch{fill:none;stroke:#14C6EE;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2 11;animation:ill-dash 1.2s linear infinite}.ill-water .ag-chflow{filter:drop-shadow(0 0 3px rgba(20,198,238,.6));animation:ag-chf 12s linear infinite}
@keyframes ag-chf{0%,6%{opacity:.35}18%,70%{opacity:1}90%,100%{opacity:.35}}.ill-water .ag-lagoon{fill:#1C2A4A;stroke:rgba(20,198,238,.55);stroke-width:1.2}.ill-water .ag-rise{fill:rgba(20,198,238,.2);stroke:#14C6EE;stroke-width:1.4;transform-box:fill-box;transform-origin:center;animation:ag-rise 12s ease-in-out infinite}
@keyframes ag-rise{0%,30%{transform:scale(.82);opacity:.6}58%,92%{transform:scale(1.07);opacity:1}100%{transform:scale(.82);opacity:.6}}.ill-water .ag-pole{stroke:rgba(125,227,247,.7);stroke-width:1.6}.ill-water .ag-tick{stroke:rgba(125,227,247,.45);stroke-width:1}.ill-water .ag-mark{fill:#7DE3F7;filter:drop-shadow(0 0 5px rgba(20,198,238,.9))}.ill-water .ag-level{animation:ag-level 12s ease-in-out infinite}
@keyframes ag-level{0%,30%{transform:translateY(0)}58%,92%{transform:translateY(-33px)}100%{transform:translateY(0)}}.ill-water .ag-pred{stroke:#E8B341;stroke-width:2;stroke-dasharray:5 4;animation:ag-p2 12s linear infinite}
@keyframes ag-p2{0%,32%{opacity:0}40%,92%{opacity:1}98%,100%{opacity:0}}.ill-water .ag-cloud{fill:#1C2A4A;stroke:rgba(125,227,247,.22);stroke-width:1;animation:ag-cloud 12s ease-in-out infinite}
@keyframes ag-cloud{0%,100%{transform:translateX(0)}50%{transform:translateX(14px)}}.ill-water .ag-drop{stroke:#7DE3F7;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:12 34;animation:ag-fall .9s linear infinite}
@keyframes ag-fall{from{stroke-dashoffset:46}to{stroke-dashoffset:0}}.ill-water .ag-p1rain{animation:ag-p1 12s linear infinite}
@keyframes ag-p1{0%,40%{opacity:1}50%,92%{opacity:.25}100%{opacity:1}}.ill-water .ag-p3{animation:ag-p3 12s linear infinite}
@keyframes ag-p3{0%,62%{opacity:0}68%,92%{opacity:1}98%,100%{opacity:0}}.ill-water .ag-link{fill:none;stroke:#E8B341;stroke-width:1.6;stroke-dasharray:4 6;animation:ill-dash 1s linear infinite}.ill-water .ag-ping{fill:none;stroke:#E8B341;stroke-width:1.6;transform-box:fill-box;transform-origin:center;animation:ill-ping 1.8s ease-out infinite}.ill-water .ag-ping2{animation-delay:-.9s}.ill-water .ag-sign{fill:#E8B341;filter:drop-shadow(0 0 6px rgba(232,179,65,.7))}.ill-water .ag-excl{fill:#111D38}
@keyframes ill-c1{0%,28%{opacity:1}32%,96%{opacity:0}100%{opacity:1}}
@keyframes ill-c2{0%,31%{opacity:0}35%,61%{opacity:1}65%,100%{opacity:0}}
@keyframes ill-c3{0%,64%{opacity:0}68%,92%{opacity:1}96%,100%{opacity:0}}

/* escenarios (12 s: A → B → C) */

@keyframes sc-a{0%,30%{opacity:1}34%,96%{opacity:0}100%{opacity:1}}
@keyframes sc-b{0%,32%{opacity:0}36%,63%{opacity:1}67%,100%{opacity:0}}
@keyframes sc-c{0%,65%{opacity:0}69%,96%{opacity:1}100%{opacity:0}}
@keyframes sc-bc{0%,32%{opacity:0}36%,96%{opacity:1}100%{opacity:0}}

/* estrategia e indicadores (12 s: tres actuaciones alimentan el objetivo) */
.ill-strat .st-ground{fill:#111D38;stroke:rgba(255,255,255,.05)}.ill-strat .st-st{stroke:#1C2A4A;stroke-width:4;stroke-linecap:round}.ill-strat .st-park{fill:#16233F;stroke:rgba(20,198,238,.12)}.ill-strat .st-park-on{fill:rgba(61,214,140,.22);stroke:#3DD68C;stroke-width:1}.ill-strat .st-tree{fill:#3DD68C;filter:drop-shadow(0 0 4px rgba(61,214,140,.7))}.ill-strat .st-reno.b-t{fill:rgba(232,179,65,.25);stroke:#E8B341}.ill-strat .st-reno.b-r,.ill-strat .st-reno.b-l{fill:rgba(232,179,65,.12);stroke:#E8B341}.ill-strat .st-calm{stroke:#14C6EE;stroke-width:3;stroke-linecap:round;stroke-dasharray:1 7;animation:ill-dash 2.4s linear infinite;filter:drop-shadow(0 0 4px rgba(20,198,238,.8))}.ill-strat .st-ring-bg{fill:none;stroke:#1C2A4A;stroke-width:10}.ill-strat .st-seg{fill:none;stroke-width:10;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}.ill-strat .st-s1{stroke:#3DD68C;animation:st-s1 12s ease-out infinite}.ill-strat .st-s2{stroke:#E8B341;animation:st-s2 12s ease-out infinite}.ill-strat .st-s3{stroke:#14C6EE;animation:st-s3 12s ease-out infinite}
@keyframes st-s1{0%,22%{stroke-dashoffset:1}30%,92%{stroke-dashoffset:0}100%{stroke-dashoffset:1}}
@keyframes st-s2{0%,52%{stroke-dashoffset:1}60%,92%{stroke-dashoffset:0}100%{stroke-dashoffset:1}}
@keyframes st-s3{0%,80%{stroke-dashoffset:1}88%,92%{stroke-dashoffset:0}100%{stroke-dashoffset:1}}.ill-strat .st-rt{font-size:15px;fill:#F4F4F6;font-weight:500}.ill-strat .st-rs{font-size:11px;fill:#8792A8}.ill-strat .st-guide{fill:none;stroke:rgba(20,198,238,.14);stroke-width:1;stroke-dasharray:3 5}.ill-strat .st-pulse{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:.07 2;stroke-dashoffset:.07}.ill-strat .st-p1{stroke:#3DD68C;animation:st-p1 12s linear infinite}.ill-strat .st-p2{stroke:#E8B341;animation:st-p2 12s linear infinite}.ill-strat .st-p3{stroke:#14C6EE;animation:st-p3 12s linear infinite}
@keyframes st-p1{0%,8%{stroke-dashoffset:.07}24%,100%{stroke-dashoffset:-1}}
@keyframes st-p2{0%,38%{stroke-dashoffset:.07}54%,100%{stroke-dashoffset:-1}}
@keyframes st-p3{0%,66%{stroke-dashoffset:.07}82%,100%{stroke-dashoffset:-1}}.ill-strat .st-a1{animation:st-a1 12s linear infinite}.ill-strat .st-a2{animation:st-a2 12s linear infinite}.ill-strat .st-a3{animation:st-a3 12s linear infinite}
@keyframes st-a1{0%,3%{opacity:0}8%,94%{opacity:1}100%{opacity:0}}
@keyframes st-a2{0%,33%{opacity:0}38%,94%{opacity:1}100%{opacity:0}}
@keyframes st-a3{0%,61%{opacity:0}66%,94%{opacity:1}100%{opacity:0}}.ill-strat .st-lab{font-size:12px;font-weight:600}.ill-strat .st-l1{fill:#3DD68C;animation:st-a1 12s linear infinite}.ill-strat .st-l2{fill:#E8B341;animation:st-a2 12s linear infinite}.ill-strat .st-l3{fill:#7DE3F7;animation:st-a3 12s linear infinite}

/* menos movimiento: cada ilustración queda en su estado final, quieta */
@media (prefers-reduced-motion:reduce){
  .ill *{animation:none !important}
  .ill-hero .hz-beam{stroke-dasharray:none;opacity:.5}
  .ill-water .ag-p1rain{opacity:.25}.ill-water .ag-pred,.ill-water .ag-p3,.ill-water .ag-c3{opacity:1}
  .ill-water .ag-rise{transform:scale(1.07)}.ill-water .ag-level{transform:translateY(-33px)}
  .ill-water .ag-c1,.ill-water .ag-c2,.ill-water .ag-ping{opacity:0}
  .ill-scen .sc-a,.ill-scen .sc-b{opacity:0}.ill-scen .sc-c,.ill-scen .sc-bc{opacity:1}
  .ill-strat .st-seg{stroke-dashoffset:0}.ill-strat .st-pulse{opacity:0}
}

/* visualización y participación (12 s: plano 2D → modelo 3D → comentarios de vecinos) */
.ill-vis .vi-ground{fill:#111D38;stroke:rgba(255,255,255,.05)}.ill-vis .vi-st{stroke:#1C2A4A;stroke-width:5;stroke-linecap:round}.ill-vis .vi-fp{fill:#16233F;stroke:rgba(20,198,238,.3);stroke-width:1}.ill-vis .vi-t1{fill:rgba(20,198,238,.35)}.ill-vis .vi-t2{fill:rgba(232,179,65,.32)}.ill-vis .vi-t3{fill:rgba(61,214,140,.32)}.ill-vis .vi-2d{animation:vi-2d 12s linear infinite}.ill-vis .vi-3d{animation:vi-3d 12s ease-out infinite}
@keyframes vi-2d{0%,28%{opacity:1}36%,94%{opacity:0}100%{opacity:1}}
@keyframes vi-3d{0%,28%{opacity:0;transform:translateY(14px)}38%,94%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(14px)}}.ill-vis .vi-b{opacity:0;transform-box:fill-box;transform-origin:center bottom}.ill-vis .vi-b1{animation:vi-b1 12s ease-out infinite}.ill-vis .vi-b2{animation:vi-b2 12s ease-out infinite}.ill-vis .vi-b3{animation:vi-b3 12s ease-out infinite}
@keyframes vi-b1{0%,64%{opacity:0;transform:translateY(8px) scale(.9)}69%,94%{opacity:1;transform:none}100%{opacity:0}}
@keyframes vi-b2{0%,70%{opacity:0;transform:translateY(8px) scale(.9)}75%,94%{opacity:1;transform:none}100%{opacity:0}}
@keyframes vi-b3{0%,76%{opacity:0;transform:translateY(8px) scale(.9)}81%,94%{opacity:1;transform:none}100%{opacity:0}}.ill-vis .vi-bub{fill:#1C2A4A;stroke:rgba(125,227,247,.5);stroke-width:1}.ill-vis .vi-tail{fill:none;stroke:rgba(125,227,247,.5);stroke-width:1}.ill-vis .vi-pin{fill:#7DE3F7;filter:drop-shadow(0 0 4px rgba(20,198,238,.9))}.ill-vis .vi-av{fill:#FF0099}.ill-vis .vi-b2 .vi-av{fill:#E8B341}.ill-vis .vi-b3 .vi-av{fill:#3DD68C}.ill-vis .vi-bt{font-size:11px;fill:#F4F4F6}.ill-vis .vi-name{font-size:15px;fill:#F4F4F6;font-weight:500}.ill-vis .vi-n1{animation:ill-c1 12s linear infinite}.ill-vis .vi-n2{animation:ill-c2 12s linear infinite}.ill-vis .vi-n3{animation:ill-c3 12s linear infinite}

/* framework modular (10 s: las cinco capas se separan y los datos suben por todas) */
.ill-fw .fw-plate{fill:rgba(17,29,56,.72);stroke:rgba(20,198,238,.38);stroke-width:1.1}.ill-fw .fw-l{animation:fw-breathe 10s ease-in-out infinite}.ill-fw .fw-l1{--d:16px}.ill-fw .fw-l2{--d:8px}.ill-fw .fw-l3{--d:0px}.ill-fw .fw-l4{--d:-8px}.ill-fw .fw-l5{--d:-16px}
@keyframes fw-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(var(--d))}}.ill-fw .fw-l .fw-plate{animation:fw-lit 10s linear infinite}.ill-fw .fw-l2 .fw-plate{animation-delay:1s}.ill-fw .fw-l3 .fw-plate{animation-delay:2s}.ill-fw .fw-l4 .fw-plate{animation-delay:3s}.ill-fw .fw-l5 .fw-plate{animation-delay:4s}
@keyframes fw-lit{0%,4%{stroke:rgba(20,198,238,.38)}10%{stroke:#7DE3F7;filter:drop-shadow(0 0 6px rgba(20,198,238,.8))}22%,100%{stroke:rgba(20,198,238,.38);filter:none}}.ill-fw .fw-blk{fill:#1C2A4A;stroke:rgba(20,198,238,.28);stroke-width:.8}.ill-fw .fw-edge{stroke:rgba(20,198,238,.25);stroke-width:.8}.ill-fw .fw-link{stroke:#14C6EE;stroke-width:1.4;stroke-dasharray:2 7;animation:ill-dash 1.6s linear infinite;opacity:.8}.ill-fw .fw-node{fill:#7DE3F7;filter:drop-shadow(0 0 4px rgba(20,198,238,.8))}.ill-fw .fw-grid{stroke:rgba(20,198,238,.14);stroke-width:.7}.ill-fw .fw-rec{fill:#7DE3F7;transform-box:fill-box;transform-origin:center;animation:fw-rec 3.6s ease-in-out infinite}
@keyframes fw-rec{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}.ill-fw .fw-tile{stroke-width:1}.ill-fw .fw-s1{fill:rgba(232,179,65,.18);stroke:#E8B341}.ill-fw .fw-s2{fill:rgba(20,198,238,.2);stroke:#14C6EE}.ill-fw .fw-s3{fill:rgba(20,198,238,.16);stroke:#7DE3F7}.ill-fw .fw-s4{fill:rgba(61,214,140,.18);stroke:#3DD68C}.ill-fw .fw-ring{fill:none;stroke:rgba(125,227,247,.45);stroke-width:1.1}.ill-fw .fw-ring-c{fill:rgba(255,0,153,.35);stroke:#FF0099}.ill-fw .fw-lead{stroke:rgba(255,255,255,.22);stroke-width:1}.ill-fw .fw-lab{font-size:14px;fill:#B0B8C9}.ill-fw .fw-beam-base{stroke:rgba(20,198,238,.16);stroke-width:1}.ill-fw .fw-beam{stroke:#7DE3F7;stroke-width:2;stroke-linecap:round;stroke-dasharray:8 90;animation:fw-up 3.6s linear infinite;filter:drop-shadow(0 0 4px rgba(20,198,238,.9))}
@keyframes fw-up{from{stroke-dashoffset:0}to{stroke-dashoffset:-196}}
/* en móvil las ilustraciones se reducen: los rótulos crecen para seguir siendo legibles */
@media (max-width:640px){
  .ill .cap-t,.ill-traffic .tr-t{font-size:25px;transform:translateX(16px)}.ill .cap-n,.ill-traffic .tr-n{font-size:21px}
  .ill-fw .fw-lab{font-size:22px}
  .ill-scen .sc-name,.ill-vis .vi-name{font-size:23px}
  .ill-scen .sc-bl{font-size:19px}.ill-scen .sc-cmp-l{font-size:17px}
  .ill-strat .st-lab{font-size:19px}.ill-strat .st-rt{font-size:21px}.ill-strat .st-rs{display:none}
}

@media (prefers-reduced-motion:reduce){.ill-vis .vi-2d,.ill-vis .vi-n1,.ill-vis .vi-n2{opacity:0}.ill-vis .vi-3d,.ill-vis .vi-b,.ill-vis .vi-n3{opacity:1;transform:none}.ill-fw .fw-beam{opacity:0}
}

/* logo animado del hero (Lexend, como el wordmark smart·citing) */
.logo-anim{display:inline-flex;align-items:baseline;margin-top:clamp(32px,5vw,64px);font-family:'Lexend',var(--display);font-size:clamp(34px,4.4vw,64px);line-height:1.15;letter-spacing:-.01em;color:#fff;white-space:nowrap}.logo-anim .la-l,.logo-anim .la-mart{font-weight:300}.logo-anim .la-b{font-weight:600}.logo-anim .la-mart{display:inline-flex}.logo-anim .la-mart i{font-style:normal;display:inline-block}.logo-anim .la-mart i.sel{background:#fff;color:var(--bg)}.logo-anim .la-mart i.hid{display:none}.logo-anim.gone .la-mart{display:none}.logo-anim .la-caret{display:none;width:max(2px,.05em);height:1em;background:#fff;margin:0 calc(max(2px,.05em) / -2);position:relative;z-index:1;align-self:center;transform:translateY(.04em)}.logo-anim.c-end .la-c-end,.logo-anim.c-mid .la-c-mid{display:inline-block;animation:la-blink 1s steps(1) infinite}
@keyframes la-blink{0%,50%{opacity:1}50.01%,100%{opacity:0}}.logo-anim + h1{margin-top:clamp(20px,2.6vw,36px)}
@media (prefers-reduced-motion:reduce){.logo-anim .la-caret{animation:none !important}}

/* ¿Qué tienes que decidir? */
.lp-decide{padding-top:130px}.lp-decide .lp-head h2{margin-top:22px}.dz-lede{max-width:560px;color:var(--muted)}.dz-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}.dz-tab{height:44px;padding:0 20px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:transparent;color:var(--fg-2);font:500 14px/1 var(--body);cursor:pointer;transition:background .2s,border-color .2s,color .2s}.dz-tab:hover{border-color:rgba(255,255,255,.4);color:#fff}.dz-tab[aria-selected="true"]{background:var(--accent-fill);border-color:var(--accent-fill);color:#F4F4F6}.dz-panels{margin-top:28px}.dz-ph{font:500 13px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:36px 0 14px}.js-dz .dz-ph{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.dz-panel[hidden]{display:none}.dz-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dz-card{display:flex;flex-direction:column;gap:12px;padding:26px 26px 18px;border-radius:16px;background:var(--card);border:1px solid rgba(255,255,255,.07);transition:border-color .3s,transform .4s cubic-bezier(.2,.7,.2,1)}.dz-card:hover{border-color:rgba(20,198,238,.45);transform:translateY(-2px)}.dz-panel.swap .dz-card{animation:dz-in .5s cubic-bezier(.2,.7,.2,1) both}.dz-panel.swap .dz-card:nth-child(2){animation-delay:.05s}.dz-panel.swap .dz-card:nth-child(3){animation-delay:.1s}.dz-panel.swap .dz-card:nth-child(4){animation-delay:.15s}
@keyframes dz-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.dz-q{font-family:var(--display);font-size:clamp(19px,1.6vw,23px);line-height:1.3;color:#F4F4F6}.dz-cap{color:var(--muted);font-size:14.5px}.dz-cap b{color:var(--fg-2);font-weight:500}.dz-card .mat{margin-top:0;padding-top:0}.dz-card .mat{display:flex;flex-wrap:wrap;gap:8px}.dz-card .mat span{font:400 12.5px/1 var(--body);color:var(--fg-2);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:7px 11px}.dz-card .mat span.ok{color:#3DD68C;border-color:rgba(61,214,140,.4)}.dz-card .more{margin-top:auto;align-self:flex-start}
@media (max-width:760px){.dz-grid{grid-template-columns:1fr}.lp-decide{padding-top:96px}}

/* banner de mitad de página (claro) */
.lp-banner{position:relative;margin-top:130px;background:var(--bg-band);color:#fff;overflow:hidden;isolation:isolate;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06)}.lp-banner .wrap{position:relative;z-index:1}.bn-txt{padding:clamp(56px,7vw,96px) 0;max-width:620px}.bn-txt h2{font-family:var(--display);font-weight:400;font-size:clamp(30px,3.6vw,48px);line-height:1.12;letter-spacing:-.02em;color:#fff}.bn-txt p{margin-top:20px;font-size:17px;line-height:1.6;color:var(--muted);max-width:560px}.bn-txt .btn{margin-top:30px;height:52px;padding:0 28px;font-size:15px}.bn-art{position:absolute;inset:0 0 0 auto;width:min(62%,900px);z-index:0;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 38%);mask-image:linear-gradient(to right,transparent 0,#000 38%)}.bn-art .ill{width:100%;height:100%}.ill-lite .lt-ground{fill:#111D38;stroke:rgba(255,255,255,.04)}.ill-lite .lt-st{stroke:#1C2A4A;stroke-width:6;stroke-linecap:round}.ill-lite .lt-f{stroke:#14C6EE;opacity:.85;filter:drop-shadow(0 0 3px rgba(20,198,238,.5));stroke-width:2.2;stroke-linecap:round;stroke-dasharray:2 12;animation:ill-dash 1.8s linear infinite}.ill-lite .b-t.lt{fill:#1C2A4A;stroke:rgba(20,198,238,.2)}.ill-lite .b-r.lt{fill:#16233F;stroke:rgba(20,198,238,.1)}.ill-lite .b-l.lt{fill:#111D38;stroke:rgba(20,198,238,.1)}.ill-lite .b-t.lt-hl{fill:rgba(20,198,238,.35);stroke:#7DE3F7}.ill-lite .b-r.lt-hl,.ill-lite .b-l.lt-hl{fill:rgba(20,198,238,.2);stroke:#14C6EE}.ill-lite .lt-dot{fill:#7DE3F7;filter:drop-shadow(0 0 6px rgba(20,198,238,1))}.ill-lite .lt-ping{fill:none;stroke:#7DE3F7;stroke-width:1.6;transform-box:fill-box;transform-origin:center;animation:ill-ping 2.2s ease-out infinite}
@media (max-width:760px){.bn-art{width:100%;opacity:.3;-webkit-mask-image:none;mask-image:none}.lp-banner{margin-top:96px}}
@media (prefers-reduced-motion:reduce){.dz-panel.swap .dz-card{animation:none}}

/* capacidades: catálogo por verticales */
.cv-intro{padding-top:56px}.cv-index{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:40px}.cv-index a{height:40px;display:inline-flex;align-items:center;padding:0 16px;border-radius:999px;border:1px solid rgba(255,255,255,.16);color:var(--fg-2);text-decoration:none;font:500 13.5px/1 var(--body);transition:border-color .2s,color .2s,background .2s}.cv-index a:hover{border-color:rgba(20,198,238,.6);color:#fff;background:rgba(20,198,238,.08)}.cv-vert{padding-top:110px}.cv-vhead .eyebrow{margin-bottom:18px}.cv-vhead h2{font-size:clamp(28px,3vw,42px);line-height:1.14}.cv-vhead .lede{margin-top:18px}.cv-art{border-radius:16px;overflow:hidden;background:var(--card);border:1px solid rgba(255,255,255,.06);padding:18px;width:min(100%,560px);margin:0 auto}.cv-art > svg{display:block;width:100%;height:auto}.cv-art .ill-frame{border:0;border-radius:10px;max-width:none}.cv-art-fw{background:transparent;border:0;padding:0}
@keyframes kit-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@media (max-width:900px){.cv-vert{padding-top:84px}}

/* acento cian (Nunsys) con texto oscuro encima; magenta como terciario */
.btn,.btn:hover{color:#F4F4F6}.btn.ghost,.btn.ghost:hover{color:#fff}.btn{font-weight:600}
/* nombres de módulo con la tipografía del logo */
.sname{font-family:'Lexend',var(--display);font-weight:300;letter-spacing:-.01em;white-space:nowrap;color:#F4F4F6}.sname b{font-weight:600;color:inherit}.dz-cap .sname{color:var(--fg-2)}

/* de los datos a la decisión */
.lp-what .lp-head h2{margin-top:22px}.fl-lede{max-width:520px}.flow{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;counter-reset:fl}.fl-step{position:relative;display:flex;flex-direction:column;gap:10px;padding:24px 22px 26px;border-radius:16px;background:var(--card);border:1px solid rgba(255,255,255,.07);animation:fl-lit 8s linear infinite;animation-delay:calc(var(--i) * 2s - 8s)}.fl-step + .fl-step::before{content:"";position:absolute;left:-17px;top:50%;width:18px;height:2px;background:repeating-linear-gradient(90deg,var(--accent) 0 4px,transparent 4px 8px);background-size:16px 2px;animation:fl-dash 1s linear infinite}
@keyframes fl-dash{to{background-position:16px 0}}
@keyframes fl-lit{0%,22%{border-color:rgba(20,198,238,.55);box-shadow:0 0 0 1px rgba(20,198,238,.15),0 14px 40px rgba(20,198,238,.08)}28%,100%{border-color:rgba(255,255,255,.07);box-shadow:none}}.fl-step b{font-family:var(--display);font-weight:400;font-size:clamp(24px,2.2vw,32px);color:#fff;letter-spacing:-.01em}.fl-d{font-size:14.5px;line-height:1.6;color:var(--muted)}.fl-copy{display:grid;grid-template-columns:1fr 1fr;gap:24px 56px;margin-top:40px}.fl-copy p{color:var(--muted);font-size:16px;line-height:1.8}
@media (max-width:900px){.flow{grid-template-columns:1fr 1fr}.fl-step:nth-child(3)::before{display:none}.fl-copy{grid-template-columns:1fr}}
@media (max-width:560px){.flow{grid-template-columns:1fr}.fl-step + .fl-step::before{left:28px;top:-17px;width:2px;height:18px;background:repeating-linear-gradient(180deg,var(--accent) 0 4px,transparent 4px 8px)}}

/* cómo se compone una solución */
.cmp-ex{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:34px}.cmp-card{padding:26px;border-radius:16px;background:var(--card);border:1px solid rgba(255,255,255,.07);display:flex;flex-direction:column;gap:18px}.cmp-card h3{font-family:var(--display);font-weight:400;font-size:clamp(20px,1.7vw,24px);color:#F4F4F6}.cmp-chain{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 6px}.cmp-chain li{font-size:13.5px;line-height:1;color:var(--fg-2);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:8px 12px}.cmp-chain li:first-child{border-color:rgba(20,198,238,.5);color:#7DE3F7}.cmp-chain li + li::before{content:"+";margin:0 10px 0 -2px;color:var(--accent);display:none}.cmp-chain li .sname{color:inherit}.cmp-card .more{margin-top:auto;align-self:flex-start}.js-cmp .cmp-chain li{opacity:0;transform:translateY(6px);transition:opacity .45s ease,transform .45s ease;transition-delay:calc(var(--i) * 90ms)}.js-cmp .cmp-card.in .cmp-chain li{opacity:1;transform:none}
@media (max-width:900px){.cmp-ex{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.fl-step,.fl-step + .fl-step::before{animation:none}.js-cmp .cmp-chain li{opacity:1;transform:none;transition:none}}

/* más aire entre secciones (las secciones no se apelotonan) */
#view-home > section:not(.hero):not(.lp-banner){padding-top:clamp(120px,11vw,176px)}#view-home > .lp-banner{margin-top:clamp(120px,11vw,176px)}#view-home > .lp-contact{padding-bottom:clamp(96px,9vw,140px)}.cv-view > .cv-vert{padding-top:clamp(120px,10vw,168px)}.lp-head .lede{margin-top:0}

/* fila meta del hero alineada arriba; eyebrows más compactos en móvil */
.meta div{align-content:start}
@media (max-width:560px){.eyebrow i{width:32px}}.cmp-chain li{line-height:1.3;padding:6px 12px}
/* títulos de las tarjetas alineados entre sí (el espacio sobrante va al final) */
.cap{align-content:start}

/* ficha agrupada: funciones dentro de un mismo módulo */


/* formulario «Quiero probarlo en mi territorio» */
.ct-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;max-width:1080px;margin:56px auto 0;text-align:left;align-items:start}.ct-form{display:grid;gap:18px;padding:32px;border-radius:20px;background:var(--card);border:1px solid rgba(255,255,255,.08);scroll-margin-top:calc(var(--navh) + 24px);transition:border-color .4s,box-shadow .4s}.ct-form.flash{border-color:rgba(20,198,238,.6);box-shadow:0 0 0 4px rgba(20,198,238,.12)}.ct-form h3{font:400 clamp(22px,2vw,28px)/1.2 var(--display);color:#fff;letter-spacing:-.01em}.ct-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.ct-f{display:grid;gap:8px;min-width:0}.ct-f label{font:500 13.5px/1.3 var(--body);color:var(--fg-2)}.ct-f label i{font-style:normal;color:var(--accent)}.ct-f label em{font-style:normal;color:var(--muted-2);font-weight:400}.ct-f input[type=text],.ct-f input[type=email],.ct-f select,.ct-f textarea{width:100%;min-height:48px;padding:12px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.03);color:#fff;font:400 15px/1.4 var(--body);transition:border-color .2s,box-shadow .2s,background .2s}.ct-f textarea{resize:vertical;min-height:112px;line-height:1.55}.ct-f select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2314C6EE' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center}.ct-f select option{background:#111D38;color:#fff}.ct-f select:disabled{opacity:.55;cursor:not-allowed}.ct-f ::placeholder{color:#8792A8}.ct-f input:hover,.ct-f select:hover:not(:disabled),.ct-f textarea:hover{border-color:rgba(255,255,255,.3)}.ct-f input:focus,.ct-f select:focus,.ct-f textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(20,198,238,.22);background:rgba(20,198,238,.04)}.ct-f [aria-invalid="true"]{border-color:#ff6b5b !important}.ct-hint{font-size:13px;line-height:1.5;color:var(--muted)}.ct-err{font-size:13px;line-height:1.4;color:#ff8a7a;min-height:0}.ct-err:empty{display:none}.ct-check{display:grid !important;grid-template-columns:22px 1fr;gap:12px;align-items:start;cursor:pointer;font:400 14.5px/1.5 var(--body) !important;color:var(--fg-2) !important}.ct-check input{appearance:none;-webkit-appearance:none;width:22px;height:22px;margin:1px 0 0;border-radius:6px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.03);display:grid;place-items:center;cursor:pointer}.ct-check input:checked{background:var(--accent);border-color:var(--accent)}.ct-check input:checked::after{content:"";width:6px;height:11px;border:solid #0A1428;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}.ct-check input:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(20,198,238,.35)}.ct-check i{font-style:normal;color:var(--accent)}.ct-priv{font-size:12.5px;line-height:1.6;color:var(--muted-2);padding-left:34px}.ct-priv a{color:var(--fg-2)}.ct-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;padding-top:6px}.ct-actions .btn{height:50px;padding:0 26px;font-size:15px}.ct-note{flex:1 1 220px;font-size:13px;line-height:1.5;color:var(--muted)}.ct-from{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:12px 14px;border-radius:12px;border:1px solid rgba(20,198,238,.35);background:rgba(20,198,238,.06)}.ct-from span{font:500 12px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.ct-from b{flex:1 1 240px;font:400 15px/1.4 var(--body);color:#fff}.ct-x{height:32px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:transparent;color:var(--fg-2);font:500 12px/1 var(--body);cursor:pointer}.ct-x:hover{color:#fff;border-color:rgba(255,255,255,.4)}.ct-done{display:grid;gap:12px;padding:22px;border-radius:14px;border:1px solid rgba(61,214,140,.4);background:rgba(61,214,140,.06)}.ct-done-t{font:400 20px/1.3 var(--display);color:#fff;outline:none}.ct-done-d{font-size:14.5px;line-height:1.6;color:var(--fg-2)}.ct-done-a{display:flex;flex-wrap:wrap;gap:10px}.ct-to{font-size:13px;color:var(--muted)}.ct-to span{color:var(--fg-2);user-select:all}.ct-aside{display:grid;gap:14px;padding-top:4px}.ct-aside h3{font:400 18px/1.3 var(--display);color:#F4F4F6}.ct-aside .contact{grid-template-columns:1fr;max-width:none;margin:0}.ct-aside .site{margin-top:4px;justify-self:start}
@media (max-width:900px){.ct-grid{grid-template-columns:1fr;margin-top:40px}.ct-aside .contact{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}
@media (max-width:640px){.ct-form{padding:22px 18px;border-radius:16px}.ct-row{grid-template-columns:1fr}.ct-actions .btn{width:100%}.ct-priv{padding-left:0}}
@media (prefers-reduced-motion:reduce){.ct-form{transition:none}}.ct-form [hidden]{display:none !important}button.btn{cursor:pointer;font-family:var(--body)}button.btn:not(.ghost){border:0}.btn{white-space:nowrap}.hero-cta{flex-wrap:wrap}

/* cabecera y pie con el wordmark smartciting en Lexend (smart fino, citing seminegrita) */
.brand.wm{gap:0;font-family:'Lexend',var(--display);font-size:25px;line-height:1;letter-spacing:-.01em;color:#fff}.brand.wm .wm-a{font-weight:300}.brand.wm .wm-b{font-weight:600}footer .brand.wm{font-size:21px}
@media (max-width:560px){.topnav .brand.wm{font-size:23px}}

/* «Otras entidades»: cada decisión dice para quién es */
.dz-who{font:500 11.5px/1.3 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:-4px}

/* tres ejemplos en «Cómo se compone» */
@media (min-width:1101px){.cmp-ex{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:901px) and (max-width:1100px){.cmp-ex{grid-template-columns:1fr 1fr}.cmp-ex .cmp-card:last-child{grid-column:1 / -1}}

/* contador de la decisión y botón bloqueado tras preparar el mensaje */
.ct-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px}.ct-meta .ct-hint{flex:1 1 260px}.ct-count{font-size:13px;line-height:1.5;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.ct-count.near{color:#f2c879}.ct-actions .btn:disabled{opacity:.5;cursor:default;transform:none}

/* sin etiquetas sobre los títulos: el título abre la sección */
.lp-head h2,.lp-agent h2,.lp-cases > .wrap > h2,.lp-contact h2,.cv-intro .sec-head h2{margin-top:0}
/* ejemplos en Capacidades */
.cv-view > .cv-ex{padding-top:clamp(72px,7vw,112px)}.cv-ex-h{font-family:var(--display);font-weight:400;font-size:clamp(24px,2.4vw,34px);line-height:1.2;color:#fff}.cv-ex-l{margin-top:10px;color:var(--muted);font-size:16px;line-height:1.7}.cv-ex .cmp-ex{margin-top:28px}

/* paso 4 · embudo en móvil */
.nav-try{display:none}
@media (max-width:820px){.topnav .nav-try{display:inline-flex;margin-left:auto;height:40px;padding:0 16px;font-size:14px}
}
@media (max-width:360px){.topnav .brand.wm{font-size:20px}.topnav .nav-try{padding:0 12px}.menu-btn{padding:0 12px}
}
@media (max-width:760px){.dz-tabs{position:sticky;top:var(--navh);z-index:5;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:16px;scrollbar-width:none;margin:28px -16px 0;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--line)}.dz-tabs::-webkit-scrollbar{display:none}.dz-tab{flex:none;scroll-snap-align:start}.dz-panels .dz-ph{margin-top:20px}
}.ct-form.is-done > :not(.ct-done):not(h3){display:none !important}.ct-edit{justify-self:start;height:40px;padding:0 4px;border:0;background:none;color:var(--fg-2);font:500 14px/1 var(--body);text-decoration:underline;text-underline-offset:4px;cursor:pointer}.ct-edit:hover{color:#fff}.ct-form{grid-template-columns:minmax(0,1fr)}.ct-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media (max-width:640px){.ct-row{grid-template-columns:minmax(0,1fr)}}.ct-f select,.ct-f input,.ct-f textarea{min-width:0;max-width:100%}.ct-grid{grid-template-columns:minmax(0,1fr) 320px}
@media (max-width:900px){.ct-grid{grid-template-columns:minmax(0,1fr)}.ct-aside .contact{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}}

/* paso 5 · repaso final */


/* ideas de vds.tech · tarjetas con degradado (verde azulado → marino → violeta) */
@property --hl{syntax:'<number>';inherits:false;initial-value:0}.dz-card,.case,.fl-step,.ct-form,.ct-aside .contact > div,.lp-cases .cap{
  background:
    radial-gradient(90% 120% at 0% 0%, rgba(20,198,238,calc(.10 * var(--hl))), transparent 62%),
    linear-gradient(115deg, rgba(22,35,63,var(--hl)) 0%, rgba(28,42,74,var(--hl)) 55%, rgba(17,29,56,var(--hl)) 100%),
    var(--card);
  border-color:rgba(255,255,255,.07);
  transition:--hl .45s ease,border-color .3s ease,box-shadow .4s ease,transform .5s cubic-bezier(.2,.7,.2,1)}.dz-card:hover,.case:hover,.fl-step:hover,.ct-aside .contact > div:hover,.lp-cases .cap:hover,.ct-form:focus-within{--hl:1;border-color:rgba(125,227,247,.32)}.ct-form{--muted-2:#8792A8}.ct-form .ct-f ::placeholder{color:#8792A8}
/* halo de luz (cian → azul → violeta) */
.halo{position:absolute;pointer-events:none;z-index:0;mix-blend-mode:screen;filter:blur(8px);
  background:
    radial-gradient(38% 42% at 34% 38%, rgba(20,198,238,.30), transparent 72%),
    radial-gradient(46% 50% at 52% 54%, rgba(10,143,176,.22), transparent 74%),
    radial-gradient(56% 58% at 66% 68%, rgba(10,143,176,.20), transparent 76%);
  animation:halo-drift 16s ease-in-out infinite alternate}.halo-hero{left:-12%;top:2%;width:min(1150px,92vw);height:min(860px,80vw)}.hero{overflow:clip}.halo-bn{left:-14%;top:-30%;width:min(1000px,80vw);height:160%}
@keyframes halo-drift{from{transform:translate3d(-2%,-1%,0) scale(1)}to{transform:translate3d(3%,2%,0) scale(1.06)}}
@media (max-width:760px){.halo-hero{left:-40%;top:4%;width:170vw;height:120vw}.halo-bn{left:-40%;width:170vw}}.lp-banner > .bn-art{z-index:0}
/* fondo que cambia al llegar a Pilotos y Agente, y vuelve al salir */
body{background-color:var(--page,var(--bg));transition:background-color .9s ease}
@media (max-width:760px){.dz-tabs{background:var(--page,var(--bg));transition:background-color .9s ease}}
@media (prefers-reduced-motion:reduce){.halo{animation:none}body,.dz-tabs{transition:none}}

/* capacidades · verticales con soluciones, decisiones y resultados */
.vs .cv-vhead h2{margin:0}.vs-k{margin-top:26px;font:500 12px/1.3 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2)}.vs-sols{list-style:none;margin:10px 0 0;padding:0}.vs-sol{padding:16px 0;border-top:1px solid var(--line)}.vs-sol:last-child{border-bottom:1px solid var(--line)}.vs-sol h3{font-family:var(--display);font-weight:400;font-size:clamp(20px,1.7vw,23px);line-height:1.25;color:#F4F4F6}.vs-sol p{margin-top:6px;color:var(--fg-2);font-size:15.5px;line-height:1.6}.vs-comp{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.vs-comp li{font-size:13.5px;line-height:1.3;color:#7DE3F7;border:1px solid rgba(20,198,238,.4);border-radius:999px;padding:7px 12px}.vs-dr{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:40px}.vs-col{padding:24px 26px;border-radius:16px;background:var(--card);border:1px solid rgba(255,255,255,.07)}.vs-h{margin:0 0 16px;font:500 12px/1.3 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.vs-list{list-style:none;margin:0;padding:0}.vs-list li{position:relative;padding-left:24px;color:var(--fg-2);font-size:15.5px;line-height:1.6}.vs-list li + li{margin-top:10px}.vs-list li::before{content:"";position:absolute;left:0;top:.72em;width:12px;height:2px;border-radius:2px;background:var(--accent)}.vs-res li::before{width:7px;height:7px;top:.55em;border-radius:2px;background:#3DD68C}.vs-base{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.vs-base li:last-child{grid-column:span 2}
@media (max-width:1100px){.vs-base{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.vs-base{grid-template-columns:minmax(0,1fr)}.vs-base li:last-child{grid-column:auto}}.vs-base li{padding:22px 24px;border-radius:16px;background:var(--card);border:1px solid rgba(255,255,255,.07)}.vs-base h3{font-family:var(--display);font-weight:400;font-size:21px;line-height:1.25;color:#F4F4F6}.vs-base p{margin-top:8px;color:var(--fg-2);font-size:15px;line-height:1.6}
@keyframes vs-float{from{transform:translateY(-3%)}to{transform:translateY(3%)}}
@media (max-width:900px){.vs-dr{grid-template-columns:1fr}}

/* ilustración animada · protección civil (12 s: plan y ruta → imágenes → daños y prioridades) */
.ill-emerg .em-ground{fill:#111D38;stroke:rgba(255,255,255,.05)}.ill-emerg .em-st{stroke:#1C2A4A;stroke-width:5;stroke-linecap:round}.ill-emerg .em-route{fill:none;stroke:#14C6EE;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2 10;animation:em-dash 1.1s linear infinite;filter:drop-shadow(0 0 3px rgba(20,198,238,.6))}.ill-emerg .em-safe{fill:#3DD68C}.ill-emerg .em-safe-r{fill:none;stroke:#3DD68C;stroke-width:1.6;transform-box:fill-box;transform-origin:center;animation:em-ping 2s ease-out infinite}.ill-emerg .em-scan{fill:rgba(20,198,238,.06);stroke:rgba(20,198,238,.35);stroke-width:1;stroke-dasharray:4 6}.ill-emerg .em-sweep{stroke:#14C6EE;stroke-width:2;filter:drop-shadow(0 0 4px rgba(20,198,238,.8));animation:em-sweep 3.6s ease-in-out infinite}.ill-emerg .em-dmg{fill:rgba(255,0,153,.22);stroke:#FF0099;stroke-width:1.4}.ill-emerg .em-dmg-lo{fill:rgba(232,179,65,.16);stroke:#E8B341}.ill-emerg .em-stem{stroke:rgba(255,0,153,.6);stroke-width:1.2}.ill-emerg .em-badge{fill:#FF0099;filter:drop-shadow(0 0 5px rgba(255,0,153,.6))}.ill-emerg .em-num{font-size:12px;font-weight:600;fill:#fff}.ill-emerg .em-n{font-size:13px;fill:#14C6EE;font-weight:600;letter-spacing:.04em}.ill-emerg .em-t{font-size:15px;fill:#F4F4F6}.ill-emerg .em-p1{animation:em-p1 12s linear infinite}.ill-emerg .em-p2{animation:em-p2 12s linear infinite}.ill-emerg .em-p3{animation:em-p3 12s linear infinite}.ill-emerg .em-c1{animation:em-c1 12s linear infinite}.ill-emerg .em-c2{animation:em-c2 12s linear infinite}.ill-emerg .em-c3{animation:em-c3 12s linear infinite}
@keyframes em-dash{to{stroke-dashoffset:-24}}
@keyframes em-ping{0%{transform:scale(.3);opacity:.9}100%{transform:scale(1.5);opacity:0}}
@keyframes em-sweep{0%,100%{transform:translate(0,0)}50%{transform:translate(160px,92px)}}
@keyframes em-p1{0%,30%{opacity:1}36%,94%{opacity:.35}100%{opacity:1}}
@keyframes em-p2{0%,30%{opacity:0}36%,60%{opacity:1}66%,100%{opacity:0}}
@keyframes em-p3{0%,60%{opacity:0}66%,92%{opacity:1}98%,100%{opacity:0}}
@keyframes em-c1{0%,28%{opacity:1}32%,96%{opacity:0}100%{opacity:1}}
@keyframes em-c2{0%,32%{opacity:0}36%,59%{opacity:1}63%,100%{opacity:0}}
@keyframes em-c3{0%,63%{opacity:0}67%,92%{opacity:1}96%,100%{opacity:0}}
@media (max-width:640px){.ill-emerg .em-t{font-size:22px}.ill-emerg .em-n{font-size:19px}.ill-emerg .em-t{transform:translateX(8px)}}
@media (prefers-reduced-motion:reduce){.ill-emerg *{animation:none !important}.ill-emerg .em-p1,.ill-emerg .em-p3,.ill-emerg .em-c3{opacity:1}.ill-emerg .em-p2,.ill-emerg .em-c1,.ill-emerg .em-c2{opacity:0}
}

/* ilustraciones animadas · aire, verde, calor y agua (12 s en tres fases) */
.k-ill .k-ground{fill:#111D38;stroke:rgba(255,255,255,.05)}.k-ill .k-st{stroke:#1C2A4A;stroke-width:5;stroke-linecap:round}.k-ill .k-n{font-size:13px;fill:#14C6EE;font-weight:600;letter-spacing:.04em}.k-ill .k-t{font-size:15px;fill:#F4F4F6}.k-ill .k-p1{animation:k-p1 12s linear infinite}.k-ill .k-p1only{animation:k-p1only 12s linear infinite}.k-ill .k-p2{animation:k-p2 12s linear infinite}.k-ill .k-p2only{animation:k-p2only 12s linear infinite}.k-ill .k-p3{animation:k-p3 12s linear infinite}.k-ill .k-c1{animation:k-c1 12s linear infinite}.k-ill .k-c2{animation:k-c2 12s linear infinite}.k-ill .k-c3{animation:k-c3 12s linear infinite}
@keyframes k-p1{0%,30%{opacity:1}36%,94%{opacity:.35}100%{opacity:1}}
@keyframes k-p1only{0%,30%{opacity:1}36%,96%{opacity:0}100%{opacity:1}}
@keyframes k-p2{0%,30%{opacity:0}36%,94%{opacity:1}100%{opacity:0}}
@keyframes k-p2only{0%,30%{opacity:0}36%,60%{opacity:1}66%,100%{opacity:0}}
@keyframes k-p3{0%,60%{opacity:0}66%,94%{opacity:1}100%{opacity:0}}
@keyframes k-c1{0%,28%{opacity:1}32%,96%{opacity:0}100%{opacity:1}}
@keyframes k-c2{0%,32%{opacity:0}36%,59%{opacity:1}63%,100%{opacity:0}}
@keyframes k-c3{0%,63%{opacity:0}67%,92%{opacity:1}96%,100%{opacity:0}}
/* aire */
.ill-air .aq-hi{fill:rgba(255,0,153,.55)}.ill-air .aq-md{fill:rgba(232,179,65,.42)}.ill-air .aq-lo{fill:rgba(61,214,140,.32)}.ill-air .aq-zbe{fill:none;stroke:#14C6EE;stroke-width:2;stroke-dasharray:8 6;animation:k-dash 1.4s linear infinite;filter:drop-shadow(0 0 3px rgba(20,198,238,.7))}.ill-air .aq-ring{fill:none;stroke:#14C6EE;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:k-ping 2s ease-out infinite}.ill-air .aq-post{stroke:rgba(125,227,247,.55);stroke-width:1.4}.ill-air .aq-head{fill:#7DE3F7;filter:drop-shadow(0 0 5px rgba(20,198,238,.9))}.ill-air .aq-beam{fill:none;stroke:rgba(20,198,238,.6);stroke-width:1.4;stroke-dasharray:4 7;animation:k-dash 1s linear infinite}.ill-air .aq-sat rect{fill:#1C2A4A;stroke:rgba(125,227,247,.5);stroke-width:1}.ill-air .aq-sat .aq-panel{fill:#14C6EE;opacity:.75}
/* verde */
.ill-green .gr-park{fill:rgba(61,214,140,.28);stroke:rgba(61,214,140,.6);stroke-width:1}.ill-green .gr-def{fill:rgba(232,179,65,.5)}.ill-green .gr-corr{fill:rgba(61,214,140,.30);stroke:rgba(61,214,140,.7);stroke-width:1;stroke-dasharray:6 5}.ill-green .gr-cand{fill:rgba(232,179,65,.12);stroke:#E8B341;stroke-width:1.4;stroke-dasharray:5 4}.ill-green .gr-roof{fill:rgba(61,214,140,.75);stroke:#3DD68C;stroke-width:1}.ill-green .gr-trunk{stroke:#6b5a3e;stroke-width:2}.ill-green .gr-crown{fill:#3DD68C;stroke:#3DD68C;stroke-width:1;filter:drop-shadow(0 0 4px rgba(61,214,140,.5))}
/* calor */
.ill-heat .ht-hot{fill:rgba(255,0,153,.55)}.ill-heat .ht-warm{fill:rgba(232,179,65,.40)}.ill-heat .ht-cov{fill:rgba(20,198,238,.07);stroke:rgba(20,198,238,.7);stroke-width:1.4;stroke-dasharray:6 5}.ill-heat .ht-stem{stroke:rgba(125,227,247,.6);stroke-width:1.2}.ill-heat .ht-ref{fill:#14C6EE;filter:drop-shadow(0 0 6px rgba(20,198,238,.8))}.ill-heat .ht-ref-i{fill:none;stroke:#0A1428;stroke-width:1.6;stroke-linejoin:round}.ill-heat .ht-route{fill:none;stroke:#14C6EE;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2 10;animation:k-dash .9s linear infinite;filter:drop-shadow(0 0 3px rgba(20,198,238,.7))}.ill-heat .ht-hotroute{fill:none;stroke:rgba(255,0,153,.55);stroke-width:2;stroke-dasharray:4 6}.ill-heat .ht-me{fill:#fff}
/* agua */
.ill-runoff .wp-imp{fill:rgba(120,140,180,.18)}.ill-runoff .wp-f{stroke:#14C6EE;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:2 12;animation:k-dash 1.2s linear infinite}.ill-runoff .wp-flow{filter:drop-shadow(0 0 3px rgba(20,198,238,.6))}.ill-runoff .wp-pond{fill:rgba(20,198,238,.35);stroke:#7DE3F7;stroke-width:1.2}.ill-runoff .wp-green{fill:rgba(61,214,140,.45);stroke:rgba(143,224,126,.8);stroke-width:1}.ill-runoff .wp-arrow{fill:none;stroke:#3DD68C;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ill-runoff .wp-drop{stroke:#7DE3F7;stroke-width:1.4;stroke-linecap:round;stroke-dasharray:12 34;animation:k-fall .9s linear infinite}
@keyframes k-dash{to{stroke-dashoffset:-28}}
@keyframes k-ping{0%{transform:scale(.3);opacity:.9}100%{transform:scale(1.4);opacity:0}}
@keyframes k-fall{to{stroke-dashoffset:-46}}
@media (max-width:640px){.k-ill .k-t{font-size:22px;transform:translateX(8px)}.k-ill .k-n{font-size:19px}}
@media (prefers-reduced-motion:reduce){.k-ill *{animation:none !important}.k-ill .k-p1{opacity:.35}.k-ill .k-p1only,.k-ill .k-p2only,.k-ill .k-c1,.k-ill .k-c2{opacity:0}.k-ill .k-p2,.k-ill .k-p3,.k-ill .k-c3{opacity:1}
}
/* ilustraciones que se alternan (una vertical con varias soluciones) */
.cv-art.rot{display:grid;gap:12px}.rot-tabs{display:flex;flex-wrap:wrap;gap:8px}.rot-tabs > span{font-size:12.5px;line-height:1;padding:7px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.14);color:var(--fg-2);animation-duration:var(--rl);animation-timing-function:linear;animation-iteration-count:infinite;animation-delay:var(--rd)}.rot-tabs .sname{color:inherit}.rot-stack{display:grid}.rot-stack > .ill-frame{grid-area:1/1;animation-duration:var(--rl);animation-timing-function:linear;animation-iteration-count:infinite;animation-delay:var(--rd)}.rot-2{--rl:24s}.rot-3{--rl:36s}.rot-2 .rot-stack > .ill-frame{animation-name:rot-f2}.rot-2 .rot-tabs > span{animation-name:rot-t2}.rot-3 .rot-stack > .ill-frame{animation-name:rot-f3}.rot-3 .rot-tabs > span{animation-name:rot-t3}
@keyframes rot-f2{0%,48%{opacity:1}50%,98%{opacity:0}100%{opacity:1}}
@keyframes rot-f3{0%,32%{opacity:1}33.4%,98.6%{opacity:0}100%{opacity:1}}
@keyframes rot-t2{0%,48%{color:#0A1428;background:#14C6EE;border-color:#14C6EE}50%,98%{color:var(--fg-2);background:transparent;border-color:rgba(255,255,255,.14)}100%{color:#0A1428;background:#14C6EE;border-color:#14C6EE}}
@keyframes rot-t3{0%,32%{color:#0A1428;background:#14C6EE;border-color:#14C6EE}33.4%,98.6%{color:var(--fg-2);background:transparent;border-color:rgba(255,255,255,.14)}100%{color:#0A1428;background:#14C6EE;border-color:#14C6EE}}
@media (prefers-reduced-motion:reduce){.rot-tabs{display:none}.rot-stack{gap:12px}.rot-stack > .ill-frame{grid-area:auto;animation:none !important;opacity:1}
}

/* capacidades · ejemplos como banner de cierre */
.cv-view > .cv-ex{position:relative;isolation:isolate;overflow:clip;margin-top:clamp(120px,10vw,168px);padding:clamp(64px,7vw,104px) 0;background:var(--bg-band);border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06)}.cv-view > .cv-ex > .wrap{position:relative;z-index:1}.halo-ex{left:-12%;top:-40%;width:min(1000px,80vw);height:180%}
@media (max-width:760px){.halo-ex{left:-40%;width:170vw}}
/* pies de texto de la ilustración del agua */
:where(.ill) .cap-n{font-size:13px;fill:#14C6EE;font-weight:600;letter-spacing:.04em}:where(.ill) .cap-t{font-size:15px;fill:#F4F4F6}.ill-water .ag-c1{animation:k-c1 12s linear infinite}.ill-water .ag-c2{animation:k-c2 12s linear infinite}.ill-water .ag-c3{animation:k-c3 12s linear infinite}
@media (prefers-reduced-motion:reduce){.ill-water .ag-c1,.ill-water .ag-c2{animation:none;opacity:0}.ill-water .ag-c3{animation:none;opacity:1}}

/* arquitectura con el mismo degradado de las tarjetas (marino → violeta al pasar el ratón) */
.tile,.layer,.arch-side{transition:--hl .45s ease,border-color .35s ease,transform .35s cubic-bezier(.2,.7,.2,1),opacity .35s}.tile{background:radial-gradient(90% 120% at 0% 0%, rgba(20,198,238,calc(.10 * var(--hl))), transparent 62%),linear-gradient(115deg, rgba(22,35,63,var(--hl)) 0%, rgba(28,42,74,var(--hl)) 55%, rgba(17,29,56,var(--hl)) 100%),#1C2A4A}.layer{background:radial-gradient(90% 120% at 0% 0%, rgba(20,198,238,calc(.08 * var(--hl))), transparent 62%),linear-gradient(115deg, rgba(22,35,63,var(--hl)) 0%, rgba(28,42,74,var(--hl)) 55%, rgba(17,29,56,var(--hl)) 100%),rgba(255,255,255,.02)}.arch-side{background:radial-gradient(90% 120% at 0% 0%, rgba(20,198,238,calc(.10 * var(--hl))), transparent 62%),linear-gradient(115deg, rgba(22,35,63,var(--hl)) 0%, rgba(28,42,74,var(--hl)) 55%, rgba(17,29,56,var(--hl)) 100%),rgba(255,255,255,.025)}.tile:hover,.layer:hover,.arch-side:hover{--hl:1;border-color:rgba(125,227,247,.32)}.tile::before{display:none}.layer:hover .lname{background:rgba(22,35,63,.85)}

/* plataforma: el diagrama de arquitectura dentro de «Cinco capas, una sola base» */
.arch-wrap{margin-top:clamp(40px,5vw,72px)}.arch-wrap .arch{margin-top:0}.arch-wrap .arch-note{text-align:center}

/* ¿Qué tienes que decidir?: tres decisiones por perfil, con lo que se obtiene */
.dz-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dz-get{color:var(--fg-2);font-size:15px;line-height:1.55}.dz-get b{color:#F4F4F6;font-weight:600}.dz-cap{font-size:13.5px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);margin-top:auto}.dz-grid .dz-card .more{margin-top:6px}.dz-note{color:var(--muted);font-size:15px;margin:0 0 18px;max-width:640px}.dz-panels .dz-note{margin-top:4px}
@media (max-width:1060px){.dz-grid{grid-template-columns:1fr}}

/* de los datos a la decisión · tres pasos */
.flow.flow-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flow-3 .fl-step{animation:fl-lit3 6s linear infinite;animation-delay:calc(var(--i) * 2s - 6s)}.flow-3 .fl-step b{color:var(--accent)}.flow-3 .fl-step:nth-child(3) b{color:var(--magenta-300)}
@keyframes fl-lit3{0%,29%{border-color:rgba(20,198,238,.55);box-shadow:0 0 0 1px rgba(20,198,238,.15),0 14px 40px rgba(20,198,238,.08)}36%,100%{border-color:rgba(255,255,255,.07);box-shadow:none}}.fl-copy.fl-copy-1{grid-template-columns:minmax(0,760px)}
@media (max-width:900px){.flow.flow-3{grid-template-columns:1fr}.flow-3 .fl-step + .fl-step::before{display:block;left:28px;top:-17px;width:2px;height:18px;background:repeating-linear-gradient(180deg,var(--accent) 0 4px,transparent 4px 8px)}}
@media (prefers-reduced-motion:reduce){.flow-3 .fl-step{animation:none}}
/* soluciones en la home */
.lp-sol{padding-top:150px}.lp-sol .lp-head{display:flex;align-items:end;justify-content:space-between;gap:24px;flex-wrap:wrap}.solgrid{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.solgrid > li{display:flex;min-width:0}.sol{flex:1;display:flex;flex-direction:column;gap:12px;padding:26px 26px 22px;border-radius:16px;border:1px solid rgba(255,255,255,.07);color:inherit;text-decoration:none;min-width:0}.sol h3{font:400 clamp(20px,1.6vw,23px)/1.28 var(--display);color:#fff;letter-spacing:-.005em}.sol-need{color:var(--fg-2);font-size:15px;line-height:1.55}.sol-dec{list-style:none;margin:0;padding:0;display:grid;gap:6px}.sol-dec li{position:relative;padding-left:16px;color:var(--muted);font-size:14.5px;line-height:1.55}.sol-dec li::before{content:"–" / "";position:absolute;left:0;top:0;color:var(--accent)}.sol-get{color:var(--fg-2);font-size:14.5px;line-height:1.55}.sol-get b{color:#F4F4F6;font-weight:600}.sol-sn{margin-top:auto;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);font-size:13.5px;color:var(--muted)}.sol-sn .sname{color:var(--fg-2)}.sol:hover{transform:translateY(-2px)}.sol,.dz-card{background:
    radial-gradient(90% 120% at 0% 0%, rgba(20,198,238,calc(.10 * var(--hl))), transparent 62%),
    linear-gradient(115deg, rgba(22,35,63,var(--hl)) 0%, rgba(28,42,74,var(--hl)) 55%, rgba(17,29,56,var(--hl)) 100%),
    var(--card);
  transition:--hl .45s ease,border-color .3s ease,box-shadow .4s ease,transform .5s cubic-bezier(.2,.7,.2,1)}.sol:hover,.sol:focus-visible{--hl:1;border-color:rgba(125,227,247,.32)}
@media (max-width:1060px){.solgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:680px){.solgrid{grid-template-columns:1fr}.lp-sol{padding-top:96px}}
/* dónde lo hemos aplicado · alcance de cada piloto */
.lp-cases .lp-head .lede,.lp-head .lede{max-width:560px}.lp-cases .casegrid{margin-top:40px}.case .case-sn{font-size:13.5px;color:var(--muted);margin-top:-4px}.case .case-sn .sname{color:var(--fg-2)}.case .case-sn b{font:600 13.5px/1.3 var(--body);color:var(--fg-2);letter-spacing:0}.case-dl{margin:6px 0 0;display:grid;gap:12px}.case-dl > div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:4px 16px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}.case-dl dt{font:500 12px/1.5 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-top:2px}.case-dl dd{margin:0;color:var(--fg-2);font-size:14.5px;line-height:1.6}
@media (max-width:560px){.case-dl > div{grid-template-columns:1fr}}

/* empieza por una decisión: recorrido en cuatro pasos dentro de la banda */
.lp-banner .bn-txt{padding-bottom:0}.bn-steps{list-style:none;margin:clamp(36px,4vw,52px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;counter-reset:none}.bn-steps li{position:relative;display:flex;flex-direction:column;gap:10px;padding:22px 22px 24px;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:rgba(17,29,56,.78);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.bn-steps li + li::before{content:"";position:absolute;left:-17px;top:38px;width:18px;height:2px;background:repeating-linear-gradient(90deg,var(--accent) 0 4px,transparent 4px 8px)}.bn-n{font:500 12px/1 var(--body);letter-spacing:.12em;color:var(--accent)}.bn-steps b{font:400 21px/1.25 var(--display);color:#fff;letter-spacing:-.005em}.bn-d{font-size:14.5px;line-height:1.6;color:var(--muted)}.bn-foot{display:flex;align-items:center;justify-content:space-between;gap:20px 40px;flex-wrap:wrap;padding:clamp(32px,3.5vw,44px) 0 clamp(56px,7vw,96px)}.bn-foot p{max-width:640px;color:var(--fg-2);font-size:16px;line-height:1.6}.bn-foot p .more{margin-left:6px;white-space:nowrap}.bn-foot .btn{height:52px;padding:0 28px;font-size:15px;flex:none}
@media (max-width:1000px){.bn-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.bn-steps li:nth-child(3)::before{display:none}}
@media (max-width:560px){.bn-steps{grid-template-columns:1fr}.bn-steps li:nth-child(n+2)::before{display:block;left:28px;top:-17px;width:2px;height:18px;background:repeating-linear-gradient(180deg,var(--accent) 0 4px,transparent 4px 8px)}.bn-foot .btn{width:100%;justify-content:center}}
/* integrable en tu ecosistema */
.eco{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 32px}.eco li{display:flex;flex-direction:column;gap:8px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14)}.eco b{font:400 20px/1.3 var(--display);color:#fff}.eco span{font-size:14.5px;line-height:1.6;color:var(--muted)}.eco-more{display:inline-flex;margin-top:32px}
@media (max-width:900px){.eco{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.eco{grid-template-columns:1fr}}

/* función primero: el nombre smart_ va como etiqueta bajo el título */
.vs-tag{margin-top:4px !important;font-size:13.5px !important;line-height:1.3 !important;color:var(--muted) !important}.vs-tag .sname{color:var(--fg-2)}.vs-sol .vs-tag + p,.vs-base .vs-tag + p{margin-top:8px}

/* perfiles en móvil: rejilla de 2×2, sin barra que se desplace ni pestañas cortadas */
@media (max-width:820px){
  .dz-tabs{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow:visible;margin:28px 0 0;padding:0;background:none;border-bottom:0;scroll-snap-type:none}
  .dz-tab{height:auto;min-height:44px;padding:10px 12px;white-space:normal;line-height:1.25;text-align:center}
}
/* formulario: qué pasa después de enviarlo */
.ct-next{padding:16px 18px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02)}
.ct-next-t{font:500 14px/1.3 var(--body);color:#F4F4F6}
.ct-next ol{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px;counter-reset:ctn}
.ct-next li{position:relative;padding-left:26px;font-size:14px;line-height:1.5;color:var(--fg-2);counter-increment:ctn}
.ct-next li::before{content:counter(ctn);position:absolute;left:0;top:1px;width:18px;height:18px;border-radius:50%;border:1px solid rgba(20,198,238,.5);font:500 11px/16px var(--body);text-align:center;color:var(--accent)}
.ct-done .ct-next{background:rgba(10,20,40,.12)}

/* mapa de la plataforma (órbitas) */
.omap{margin-top:clamp(36px,4vw,56px);container-type:inline-size;container-name:omap}
.om-stage{position:relative;aspect-ratio:1300/640;max-width:1300px;margin:0 auto}
.om-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.om-m{display:none}
.om-o1{fill:none;stroke:rgba(20,198,238,.32);stroke-width:1.2;stroke-dasharray:3 6}
.om-o2{fill:none;stroke:rgba(255,255,255,.10);stroke-width:1;stroke-dasharray:2 7}
.om-spk{stroke:rgba(20,198,238,.28);stroke-width:1.2}
.om-con{stroke:rgba(255,0,153,.30);stroke-width:1.2}
.om-sat{fill:#f07cc4}
.om-coreglow{fill:none;stroke:rgba(20,198,238,.18);stroke-width:1}
.om-pul{stroke:#ff8fd2;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:7 120;stroke-dashoffset:7;opacity:0}
:where(.om-stage > button){font:inherit;color:inherit}
.om-stage > button{position:absolute;left:var(--x);top:var(--y);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .35s ease,border-color .3s ease,--hl .45s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.om-core{width:14.8cqw;max-width:192px;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid rgba(20,198,238,.55);
  background:radial-gradient(90% 120% at 30% 20%,rgba(20,198,238,calc(.10 + .12 * var(--hl))),transparent 62%),linear-gradient(135deg,#16233F 0%,#16233F 55%,#0D1830 100%);box-shadow:0 0 0 10px rgba(20,198,238,.05),0 20px 60px rgba(28,42,74,.6)}
.om-wm{font-family:'Lexend',var(--display);font-weight:300;font-size:clamp(17px,2cqw,26px);letter-spacing:-.01em;color:#fff;line-height:1}
.om-wm b{font-weight:600}
.om-csub{font-size:clamp(12px,.95cqw,12.5px);color:var(--fg-2);line-height:1.2}
.om-cstd{font:500 12px/1 var(--body);letter-spacing:.1em;color:var(--accent)}
.om-cap{transform:translate(-50%,-50%);width:max-content;max-width:min(184px,14.2cqw);text-align:center;padding:8px 14px;border-radius:16px;border:1px solid rgba(20,198,238,.38);font-size:clamp(12px,1.04cqw,13.5px);line-height:1.2;color:var(--fg-2);background:radial-gradient(90% 120% at 0% 0%,rgba(20,198,238,calc(.10 * var(--hl))),transparent 62%),linear-gradient(115deg,rgba(22,35,63,var(--hl)) 0%,rgba(28,42,74,var(--hl)) 55%,rgba(17,29,56,var(--hl)) 100%),#1C2A4A}
.om-v{display:flex;align-items:center;gap:12px;text-align:left;padding:8px 10px;margin:0;border:1px solid transparent;border-radius:14px;background:radial-gradient(90% 120% at 0% 0%,rgba(255,0,153,calc(.08 * var(--hl))),transparent 62%),linear-gradient(115deg,rgba(22,35,63,var(--hl)) 0%,rgba(28,42,74,var(--hl)) 55%,rgba(17,29,56,var(--hl)) 100%);background:radial-gradient(90% 120% at 0% 0%,rgba(255,0,153,calc(.08 * var(--hl))),transparent 62%),linear-gradient(115deg,rgba(22,35,63,var(--hl)) 0%,rgba(28,42,74,var(--hl)) 55%,rgba(17,29,56,var(--hl)) 100%)}
.om-v.om-r{transform:translate(-18px,-50%)}
.om-v.om-l{transform:translate(calc(-100% + 18px),-50%);flex-direction:row-reverse;text-align:right}
.om-dot{flex:none;width:14px;height:14px;border-radius:50%;background:#FF0099;box-shadow:0 0 0 5px rgba(255,0,153,.18),0 0 18px rgba(255,0,153,.45)}
.om-vt{display:flex;flex-direction:column;gap:4px}
.om-vt b{font:400 clamp(15px,1.32cqw,18px)/1.2 var(--display);color:#fff;letter-spacing:-.005em}
.om-vs{display:flex;flex-direction:column;gap:2px;font-size:clamp(12px,.98cqw,13px);line-height:1.35;color:var(--muted)}
.om-stage > button:hover,.om-stage > button:focus-visible,.om-stage > button[aria-pressed="true"]{--hl:1}
.om-cap:hover,.om-cap:focus-visible,.om-cap[aria-pressed="true"]{border-color:rgba(125,227,247,.6);color:#fff}
.om-v:hover,.om-v:focus-visible,.om-v[aria-pressed="true"]{border-color:rgba(125,227,247,.32)}
.om-v:hover .om-vs,.om-v:focus-visible .om-vs,.om-v[aria-pressed="true"] .om-vs{color:var(--fg-2)}
.om-stage > button:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}
.om-stage > button,.om-stage > button span,.om-stage > button b{line-height:1.25}
.om-cap span{display:block}
/* resaltado: lo que no participa se apaga */
.omap[data-a] .om-stage > button:not(.on){opacity:.32}
.omap[data-a] .om-con:not(.hot),.omap[data-a] .om-spk:not(.hot){opacity:.25}
.om-con.hot{stroke:rgba(255,102,194,.85);stroke-width:1.8}
.om-spk.hot{stroke:rgba(20,198,238,.85);stroke-width:1.8}
.omap[data-a] .om-pul.hot{animation:om-pul1 1.6s ease-in infinite}
.om-con,.om-spk{transition:opacity .35s ease,stroke .3s ease}
@keyframes om-pul1{0%{stroke-dashoffset:7;opacity:1}85%{stroke-dashoffset:-100;opacity:1}86%,100%{opacity:0}}
@keyframes om-pul{0%{stroke-dashoffset:7;opacity:1}22%{stroke-dashoffset:-100;opacity:1}23%,100%{stroke-dashoffset:-100;opacity:0}}
/* construcción al llegar (una vez) y dos rondas de pulsos */
.js-omap .omap:not(.in) .om-stage > *{opacity:0}
.js-omap .omap .om-svg,.js-omap .omap .om-core,.js-omap .omap .om-cap,.js-omap .omap .om-v{transition:opacity .6s ease,transform .7s cubic-bezier(.2,.7,.2,1),border-color .3s ease,--hl .45s ease}
.js-omap .omap:not(.in) .om-core{transform:translate(-50%,-50%) scale(.85)}
.js-omap .omap.in:not(.built) .om-cap{transition-delay:calc(.5s + var(--i) * .09s)}
.js-omap .omap.in:not(.built) .om-v{transition-delay:calc(1.2s + var(--i) * .12s)}
.js-omap .omap .om-o1,.js-omap .omap .om-o2{stroke-dashoffset:0}
.omap.in:not(.done) .om-pul{animation:om-pul 6s ease-in 2;animation-delay:calc(2.4s + var(--i) * 1s)}
/* pie del mapa */
.om-cap-box{min-height:92px;max-width:820px;margin:clamp(20px,2.4vw,32px) auto 0;padding:16px 20px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.02);text-align:center}
.om-hint{color:var(--muted);font-size:14.5px;line-height:1.6}
.om-ct{font:400 19px/1.3 var(--display);color:#fff}
.om-ct .sname{font-size:15px;color:var(--fg-2)}
.om-cs{margin-top:6px;font-size:14px;color:var(--fg-2);line-height:1.6}
.om-cs .sname{color:var(--muted)}
.om-sep{color:var(--muted)}
.om-cd{margin-top:6px;font-size:14.5px;line-height:1.6;color:var(--muted);max-width:36em;margin-inline:auto}
.om-cd .more{margin-left:4px;white-space:nowrap}
/* versión estrecha: el mismo mapa en vertical; las capacidades son puntos y se nombran en el pie */
@container omap (max-width:1039px){
  .om-stage{aspect-ratio:360/630;max-width:520px}
  .om-d{display:none}.om-m{display:block}
  .om-stage > button{left:var(--mx);top:var(--my)}
  .om-core{width:32.2cqw;max-width:168px}
  .om-wm{font-size:clamp(15px,4.6cqw,21px)}
  .om-csub{font-size:12px}
  .om-cap{width:28px;height:28px;max-width:none;padding:0;border-radius:50%;font-size:0;border-color:rgba(20,198,238,.6)}
  .om-cap span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .om-cap::after{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--accent)}
  .om-v,.om-v.om-l{flex-direction:column;align-items:center;text-align:center;gap:6px;padding:6px;max-width:min(30cqw,130px)}
  .om-v.om-mb,.om-v.om-l.om-mb{transform:translate(-50%,-14px)}
  .om-v.om-mt,.om-v.om-l.om-mt{flex-direction:column-reverse;transform:translate(-50%,calc(-100% + 14px))}
  .om-vs{display:none}
  .om-vt b{font-size:clamp(13px,3.9cqw,15px)}
}
@media (prefers-reduced-motion:reduce){.om-pul{display:none}.omap .om-stage > *{transition:none !important}}

/* mapa en la portada: abre «Varias soluciones, una misma base»; las tarjetas quedan debajo */
.lp-sol .omap{margin-top:clamp(28px,3vw,44px)}
.lp-sol .omap + .solgrid{margin-top:clamp(40px,4vw,64px)}
.solgrid > li{scroll-margin-top:calc(var(--navh) + 24px)}
.sol.flash{animation:sol-flash 1.8s ease}
@keyframes sol-flash{0%{border-color:rgba(125,227,247,.9);box-shadow:0 0 0 3px rgba(125,227,247,.35);--hl:1}70%{border-color:rgba(125,227,247,.6);box-shadow:0 0 0 3px rgba(125,227,247,.15);--hl:1}100%{border-color:rgba(255,255,255,.07);box-shadow:none;--hl:0}}
@media (prefers-reduced-motion:reduce){.sol.flash{animation:none;border-color:rgba(125,227,247,.9)}}

/* ¿Qué tienes que decidir?: casos a medida */
.dz-custom{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:16px 32px;flex-wrap:wrap;padding:22px 26px;border-radius:16px;border:1px dashed rgba(255,255,255,.24);background:rgba(255,255,255,.015);transition:border-color .3s ease}
.dz-custom:hover,.dz-custom:focus-within{border-color:rgba(125,227,247,.55)}
.dz-custom-h{font:400 clamp(19px,1.6vw,23px)/1.3 var(--display);color:#F4F4F6}
.dz-custom p{margin-top:6px;color:var(--fg-2);font-size:15px;line-height:1.55;max-width:620px}
.dz-custom .btn{flex:none;gap:8px}
@media (max-width:640px){.dz-custom{padding:20px}.dz-custom .btn{width:100%;justify-content:center}}

/* base común con 9 capacidades: rejilla de 3×3 */
.vs-base{grid-template-columns:repeat(3,minmax(0,1fr))}
.vs-base li:last-child{grid-column:auto}
@media (max-width:1100px){.vs-base{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.vs-base{grid-template-columns:minmax(0,1fr)}}
/* mapa con 9 capacidades: puntos algo menores en la versión estrecha */
@container omap (max-width:1039px){.om-cap{width:24px;height:24px}.om-cap::after{inset:7px}}

/* títulos principales de Soluciones y Plataforma: mismo aspecto que antes */
.sec-head h1{font-family:var(--display);font-weight:400;font-size:clamp(40px,5.15vw,72px);line-height:1.1;letter-spacing:-.02em;color:inherit;margin-top:0}

/* línea «Para» de la cabecera: cabe en dos líneas con «polígonos» */
.meta div:first-child .mv{max-width:44ch}

/* mapas: en ancho, la explicación de cada pieza es una tarjeta flotante junto a la pieza; en estrecho, la caja de debajo (solo Plataforma) */
.omap{position:relative}
.om-hint-w{display:none}
/* etiqueta «En desarrollo»: borde discontinuo y punto a medio llenar; las piezas del mapa usan el mismo borde */
.dev{display:inline-flex;align-items:center;gap:6px;vertical-align:middle;font:500 12px/1 var(--body);letter-spacing:.01em;color:#e3e6ee;padding:5px 10px 5px 8px;border:1px dashed rgba(255,255,255,.42);border-radius:999px;white-space:nowrap;text-transform:none}
.dev::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;border:1px solid currentColor;background:linear-gradient(90deg,currentColor 50%,transparent 50%)}
.dev-line{margin:16px 0 0;line-height:1}
.vs-tag .dev,.om-ct .dev{margin-left:4px}
.dz-cap .dev{display:flex;width:max-content;margin:8px 0 0}
.cmp-card .dev-line{margin:-6px 0 0}
.agentbar .dev{color:#fff;border-color:rgba(255,255,255,.5)}
.sol .dev-line{margin:12px 0 2px}
.vs .txt > .dev-line{margin:18px 0 6px}
.om-cap.om-dev{border-style:dashed;border-color:rgba(20,198,238,.55)}
.om-v.om-dev .om-dot{background:radial-gradient(circle,#FF0099 0 3px,transparent 3.5px);border:1.5px dashed #FF0099;box-shadow:0 0 14px rgba(255,0,153,.3)}
.om-key{display:flex;align-items:center;justify-content:center;gap:8px;margin:clamp(12px,1.4vw,18px) 0 0;font-size:13px;line-height:1.3;color:var(--muted)}
.om-key i{flex:none;width:26px;height:14px;border-radius:7px;border:1px dashed rgba(20,198,238,.7)}

.omap-lite .om-cap-box{display:none}
@container omap (min-width:1040px){
  .om-hint-w{display:block;margin:clamp(14px,1.8vw,22px) auto 0;text-align:center;font-size:14px}
  .omap .om-cap-box{display:block;position:absolute;left:0;top:0;z-index:6;width:min(360px,30cqw);max-width:none;min-height:0;margin:0;padding:14px 18px 13px;text-align:left;
    border-radius:14px;border:1px solid rgba(125,227,247,.34);background:#111D38;box-shadow:0 20px 48px rgba(10,20,40,.55),0 0 0 1px rgba(10,20,40,.2);
    opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility 0s linear .18s}
  .omap .om-cap-box.is-on{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .18s ease}
  .om-cap-box .om-ct{font-size:17px;line-height:1.3}
  .om-cap-box .om-ct .sname{font-size:14px}
  .om-cap-box .om-cs{font-size:13.5px;line-height:1.5}
  .om-cap-box .om-cd{font-size:14px;line-height:1.55}
  .om-cap-box .om-cd .more{display:flex;width:max-content;margin:2px 0 -6px}
  /* pico que señala la pieza */
  .om-cap-box::before{content:"";position:absolute;width:10px;height:10px;background:#111D38;border:solid rgba(125,227,247,.34);border-width:1px 0 0 1px}
  .om-cap-box[data-side="b"]::before{top:-6px;left:calc(var(--ax) - 5px);transform:rotate(45deg)}
  .om-cap-box[data-side="t"]::before{bottom:-6px;left:calc(var(--ax) - 5px);transform:rotate(225deg)}
  .om-cap-box[data-side="r"]::before{left:-6px;top:calc(var(--ay) - 5px);transform:rotate(-45deg)}
  .om-cap-box[data-side="l"]::before{right:-6px;top:calc(var(--ay) - 5px);transform:rotate(135deg)}
}
@media (prefers-reduced-motion:reduce){.omap .om-cap-box{transition:none}}

/* logo oficial: isotipo (calcado de la imagen de marca, provisional hasta el vectorial) + «smartcitiNG» en Lexend
   extrafina («smart»), seminegrita («citi») y negrita («NG»); en blanco sobre el fondo oscuro */
.wm-iso{display:inline-block;flex:none;width:1.32em;height:1.32em;margin-right:.42em;background:currentColor;
  -webkit-mask:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="-1 -1 102 102"%3E%3Cpath d="M49.1 99.9c0-0.1-0.3-0.2-0.6-0.2c-4-0.9-7-3.4-8.3-7c-0.5-1.4-0.6-4.6-0.3-6.3c0.8-3.8 3.5-6.3 8-7.8c6.9-2.2 7.5-2.4 11.1-4.4c7.4-4.1 11.5-8.3 15.7-16.3c1.3-2.5 1.8-3.6 3.1-8c2.2-7 4.5-9.5 9.7-10.1c5.5-0.7 10.5 2.7 11.8 7.8c0.1 0.5 0.3 1.1 0.4 1.3c0.7 1.3-0.4 5.8-1.9 7.8c-1.5 2.1-3.5 3.3-7.4 4.5c-5.7 1.8-7.8 2.7-11.7 5c-5.6 3.4-10.4 8.3-13.4 14.1c-0.4 0.7-0.9 1.7-1.3 2.3c-0.7 1.4-1.4 3.1-2.6 7c-2 6.6-3.6 8.5-8.3 9.9c-1.5 0.5-3.9 0.7-4.1 0.4zM81.4 93c-4.4-0.9-6.7-3.7-6.7-8c0-4.9 3.6-8.3 8.5-8.1c4.7 0.3 7.5 3.3 7.5 8.1c0 4.2-2.1 6.9-5.9 7.8c-0.9 0.2-2.7 0.3-3.4 0.1zM19.2 89.3c-2.2-0.2-4.2-1.2-6.2-2.8c-6.5-5.5-5.8-14.1 1.5-19c1.5-1 2.7-1.5 7.9-3.5c8.2-3.2 10.2-5.6 12.8-15.4c1.9-7.1 2.8-8.9 5.5-11.7c2.9-3 4.7-3.9 10.9-5.2c10.5-2.3 12.4-4 15.5-13.2c1.6-4.7 2.7-6.7 4.7-8.6c4.9-4.6 11-4.6 15.8-0.1c5.1 4.8 5.3 11.2 0.6 16.3c-1.9 2-3.7 3.1-8.4 4.6c-7.8 2.6-10 4.5-12 10.1c-0.5 1.4-0.7 2.4-1.7 6.9c-1 4.7-2.1 6.8-5 9.5c-2.8 2.7-4.6 3.5-11.3 5.3c-10.4 2.8-12.8 4.8-16.2 13.8c-2 5.3-3 7.2-5 9.2c-2.8 2.8-6.1 4.1-9.4 3.7zM9.1 60c-3.8-0.6-7.4-3.5-8.5-7c-0.1-0.3-0.3-0.6-0.4-0.7c-0.3-0.3-0.3-5.9 0-6.2c0.1-0.1 0.4-0.6 0.6-1.1c1.3-3.2 3.5-4.9 8.7-6.5c5.6-1.8 6.8-2.3 10.7-4.5c6-3.4 10.9-8.4 14.2-14.5c0.4-0.8 1-1.9 1.4-2.5c0.7-1.3 1.6-3.8 2.7-7.3c1.6-5.4 3-7.3 6.4-8.9c0.7-0.3 1.4-0.7 1.4-0.8c0.1-0.2 5.9-0.2 6.1 0c0.1 0.1 0.6 0.3 1.2 0.6c4.1 1.7 6.6 5.5 6.6 10.1c0 5.3-2.7 8.7-8.3 10.5c-7.4 2.3-7.3 2.3-11 4.3c-7.6 4.2-11.8 8.6-16.1 16.8c-1 1.9-1.8 4-3 7.9c-1.7 5.7-3.8 8.2-7.6 9.3c-1.4 0.4-3.6 0.6-5 0.4zM15 22.6c-3.7-0.7-6.1-3.8-6.1-7.9c0-4.1 2.4-7.2 6.2-7.9c6.2-1.1 10.7 3.3 9.8 9.5c-0.7 4.5-5 7.3-9.9 6.3z"/%3E%3C/svg%3E') center/contain no-repeat;mask:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="-1 -1 102 102"%3E%3Cpath d="M49.1 99.9c0-0.1-0.3-0.2-0.6-0.2c-4-0.9-7-3.4-8.3-7c-0.5-1.4-0.6-4.6-0.3-6.3c0.8-3.8 3.5-6.3 8-7.8c6.9-2.2 7.5-2.4 11.1-4.4c7.4-4.1 11.5-8.3 15.7-16.3c1.3-2.5 1.8-3.6 3.1-8c2.2-7 4.5-9.5 9.7-10.1c5.5-0.7 10.5 2.7 11.8 7.8c0.1 0.5 0.3 1.1 0.4 1.3c0.7 1.3-0.4 5.8-1.9 7.8c-1.5 2.1-3.5 3.3-7.4 4.5c-5.7 1.8-7.8 2.7-11.7 5c-5.6 3.4-10.4 8.3-13.4 14.1c-0.4 0.7-0.9 1.7-1.3 2.3c-0.7 1.4-1.4 3.1-2.6 7c-2 6.6-3.6 8.5-8.3 9.9c-1.5 0.5-3.9 0.7-4.1 0.4zM81.4 93c-4.4-0.9-6.7-3.7-6.7-8c0-4.9 3.6-8.3 8.5-8.1c4.7 0.3 7.5 3.3 7.5 8.1c0 4.2-2.1 6.9-5.9 7.8c-0.9 0.2-2.7 0.3-3.4 0.1zM19.2 89.3c-2.2-0.2-4.2-1.2-6.2-2.8c-6.5-5.5-5.8-14.1 1.5-19c1.5-1 2.7-1.5 7.9-3.5c8.2-3.2 10.2-5.6 12.8-15.4c1.9-7.1 2.8-8.9 5.5-11.7c2.9-3 4.7-3.9 10.9-5.2c10.5-2.3 12.4-4 15.5-13.2c1.6-4.7 2.7-6.7 4.7-8.6c4.9-4.6 11-4.6 15.8-0.1c5.1 4.8 5.3 11.2 0.6 16.3c-1.9 2-3.7 3.1-8.4 4.6c-7.8 2.6-10 4.5-12 10.1c-0.5 1.4-0.7 2.4-1.7 6.9c-1 4.7-2.1 6.8-5 9.5c-2.8 2.7-4.6 3.5-11.3 5.3c-10.4 2.8-12.8 4.8-16.2 13.8c-2 5.3-3 7.2-5 9.2c-2.8 2.8-6.1 4.1-9.4 3.7zM9.1 60c-3.8-0.6-7.4-3.5-8.5-7c-0.1-0.3-0.3-0.6-0.4-0.7c-0.3-0.3-0.3-5.9 0-6.2c0.1-0.1 0.4-0.6 0.6-1.1c1.3-3.2 3.5-4.9 8.7-6.5c5.6-1.8 6.8-2.3 10.7-4.5c6-3.4 10.9-8.4 14.2-14.5c0.4-0.8 1-1.9 1.4-2.5c0.7-1.3 1.6-3.8 2.7-7.3c1.6-5.4 3-7.3 6.4-8.9c0.7-0.3 1.4-0.7 1.4-0.8c0.1-0.2 5.9-0.2 6.1 0c0.1 0.1 0.6 0.3 1.2 0.6c4.1 1.7 6.6 5.5 6.6 10.1c0 5.3-2.7 8.7-8.3 10.5c-7.4 2.3-7.3 2.3-11 4.3c-7.6 4.2-11.8 8.6-16.1 16.8c-1 1.9-1.8 4-3 7.9c-1.7 5.7-3.8 8.2-7.6 9.3c-1.4 0.4-3.6 0.6-5 0.4zM15 22.6c-3.7-0.7-6.1-3.8-6.1-7.9c0-4.1 2.4-7.2 6.2-7.9c6.2-1.1 10.7 3.3 9.8 9.5c-0.7 4.5-5 7.3-9.9 6.3z"/%3E%3C/svg%3E') center/contain no-repeat}
.brand.wm{align-items:center}
.brand.wm .wm-a{font-weight:200}
.brand.wm .wm-b b{font-weight:800}
.logo-anim .la-l,.logo-anim .la-mart{font-weight:200}
.logo-anim .la-b b{font-weight:800}
.om-wm{font-weight:200}
.om-wm b b{font-weight:800}
@media (max-width:360px){.topnav .brand.wm{font-size:17px}}

/* qué pagas y qué no: base EU LDT Toolbox (EUPL) + servicio + módulos de Nunsys (aplicado el 23/10) */
.bn-model{margin-top:clamp(40px,4.5vw,60px)}
.bn-model h3{font:400 clamp(22px,2vw,26px)/1.25 var(--display);color:#fff;letter-spacing:-.01em}
.bm-l{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 32px}
.bm-l li{display:flex;flex-direction:column;gap:8px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16)}
.bm-l li:first-child{border-top-color:var(--accent)}
.bm-l b{font:400 20px/1.3 var(--display);color:#fff}
.bm-l span{font-size:14.5px;line-height:1.6;color:var(--muted)}
.lp-banner .bn-model{padding:24px 26px 26px;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:rgba(17,29,56,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.pl-model{max-width:1040px;margin:clamp(36px,4vw,52px) auto 0;text-align:left}
.pl-model .bm-l{margin-top:0}
.pl-note{margin-top:22px;font-size:14.5px;line-height:1.6;color:var(--muted);text-align:center}
@media (max-width:820px){.bm-l{grid-template-columns:1fr}}
/* Plataforma · así se ve: pantalla de ejemplo (València, ola de calor), datos simulados */
.ui-mock{margin:clamp(28px,3vw,44px) 0 0;container-type:inline-size;container-name:uimock}
.ui-stage{position:relative;width:100%}
.ui-stage-m{display:none;max-width:440px;margin:0 auto}
/* la pantalla completa solo cuando cabe a tamaño real (letra ≥ 12 px); por debajo, la versión vertical */
@container uimock (max-width:1159px){.ui-stage-d{display:none}.ui-stage-m{display:block}}
@container uimock (min-width:700px) and (max-width:1159px){.ui-grid{display:grid;grid-template-columns:440px minmax(0,1fr);gap:clamp(28px,4cqw,56px);align-items:center}.ui-grid .ui-leg{grid-template-columns:1fr;margin-top:0}.ui-stage-m{margin:0}}
.ui-svg{display:block;width:100%;height:100%;font-family:var(--body);overflow:visible}
.ui-svg text{fill:#B0B8C9}
.ui-svg .fr{fill:#0D1830;stroke:rgba(255,255,255,.13)}
.ui-svg .sep{stroke:rgba(255,255,255,.08)}
.ui-svg .lg path{fill:#fff}.ui-svg .lg text{font-family:'Lexend',var(--display);fill:#fff}
.ui-svg .w2{font-weight:200}.ui-svg .w6{font-weight:600}.ui-svg .w8{font-weight:800}
.ui-svg .nav{font-size:13.5px;fill:#8792A8}.ui-svg .nav.on{fill:#fff}
.ui-svg .navu{stroke:var(--accent);stroke-width:2}
.ui-svg .chip{fill:none;stroke:rgba(255,255,255,.22)}.ui-svg .chipt{font-size:12.5px;fill:#F4F4F6}
.ui-svg .rail{fill:rgba(255,255,255,.14)}.ui-svg .rail.on{fill:#F4F4F6}
.ui-svg .pn{fill:#111D38;stroke:rgba(255,255,255,.09)}
.ui-svg .pt{font-size:13.5px;font-weight:500;fill:#F4F4F6}
.ui-svg .ps{font-size:12.5px;fill:#7f8799}
.ui-svg .ep{fill:rgba(255,255,255,.02);stroke:rgba(255,255,255,.08)}.ui-svg .ep.on{fill:rgba(255,0,153,.07);stroke:rgba(255,0,153,.55)}
.ui-svg .epd{fill:rgba(255,255,255,.28)}.ui-svg .epd.on{fill:#FF0099}
.ui-svg .et{font-size:13px;fill:#F4F4F6}.ui-svg .es{font-size:12.5px;fill:#8792A8}
.ui-svg .tag{fill:none;stroke:rgba(255,255,255,.25)}.ui-svg .tag.sev{stroke:#FF0099}
.ui-svg .tagt{font-size:12.5px;fill:#B0B8C9}.ui-svg .tagt.sev{fill:#FF66C2}
.ui-svg .gl{stroke:rgba(255,255,255,.06)}.ui-svg .ax{font-size:12.5px;fill:#6f778a}
.ui-svg .br{fill:rgba(20,198,238,.55)}.ui-svg .br.hi{fill:#FF0099}
.ui-svg .thr{stroke:#FF0099;stroke-dasharray:4 4;stroke-width:1.2}.ui-svg .thl{font-size:12.5px;fill:#FF66C2}
.ui-svg .dn0{fill:none;stroke:rgba(255,255,255,.08);stroke-width:9}
.ui-svg .dn1{fill:none;stroke:#FF0099;stroke-width:9;stroke-dasharray:38 100;stroke-linecap:round}
.ui-svg .dnv{font:400 24px/1 var(--display);fill:#fff}.ui-svg .dnl{font-size:12.5px;fill:#8792A8}
.ui-svg .hb0{fill:rgba(255,255,255,.07)}.ui-svg .hb1{fill:rgba(255,0,153,.7)}
.ui-svg .m-land{fill:#111D38}.ui-svg .m-sea{fill:#16233F}
.ui-svg .m-field{stroke:rgba(255,255,255,.035);fill:none}
.ui-svg .m-st{stroke:rgba(255,255,255,.07);fill:none;stroke-width:.8}
.ui-svg .m-st2{stroke:rgba(255,255,255,.12);fill:none;stroke-width:.8}
.ui-svg .m-av{stroke:rgba(255,255,255,.2);fill:none;stroke-width:1.2}
.ui-svg .m-port{fill:none;stroke:rgba(255,255,255,.22);stroke-width:1.2}
.ui-svg .m-turia{stroke:rgba(31,184,166,.15);fill:none;stroke-linecap:round}
.ui-svg .m-rd{stroke:rgba(255,255,255,.13)}.ui-svg .m-rad{stroke:rgba(255,255,255,.12);stroke-width:1}
.ui-svg .m-plansur{stroke:rgba(255,255,255,.07);fill:none}
.ui-svg .m-lake{fill:#1C2A4A;stroke:rgba(20,198,238,.25)}
.ui-svg .m-coast{fill:none;stroke:rgba(20,198,238,.35);stroke-width:1.2}
.ui-svg .mlab{fill:#aeb5c6;font-weight:500;paint-order:stroke;stroke:#111D38;stroke-width:3.5px;stroke-linejoin:round}.ui-svg .msea{fill:#6f7fa2;letter-spacing:.06em}
.ui-svg .ref{fill:#14C6EE;stroke:#0D1830;stroke-width:1.2}
.ui-svg .ref-r{fill:rgba(20,198,238,.05);stroke:rgba(20,198,238,.45);stroke-dasharray:2 3}
.ui-svg .route{fill:none;stroke:#14C6EE;stroke-width:2;stroke-dasharray:5 4;stroke-linecap:round}
.ui-svg .dep{fill:none;stroke:#14C6EE;stroke-width:1.4}.ui-svg .riego{fill:#14C6EE}.ui-svg .pvd{fill:#7DE3F7}
.ui-svg .pl rect{fill:rgba(13,24,48,.88);stroke:rgba(255,255,255,.22)}.ui-svg .pl text{fill:#fff;font-weight:500}
.ui-svg .pl circle{fill:#FF0099}
.ui-mock[data-capa="lluvia"] .ui-svg .pv circle{fill:#7DE3F7}.ui-mock[data-capa="agua"] .ui-svg .pv circle{fill:#14C6EE}
.ui-svg .pc rect{fill:rgba(13,24,48,.9);stroke:rgba(255,255,255,.35)}
.ui-svg .tb{fill:rgba(13,24,48,.88);stroke:rgba(255,255,255,.16)}
.ui-svg .tbs{fill:transparent;stroke:transparent;transition:fill .25s,stroke .25s}
.ui-svg .tbt{font-size:13px;fill:#8792A8;transition:fill .25s}
.ui-mock[data-capa="calor"] .tbs-calor,.ui-mock[data-capa="lluvia"] .tbs-lluvia,.ui-mock[data-capa="agua"] .tbs-agua{fill:rgba(255,255,255,.08);stroke:rgba(255,255,255,.4)}
.ui-mock[data-capa="calor"] .tbt-calor,.ui-mock[data-capa="lluvia"] .tbt-lluvia,.ui-mock[data-capa="agua"] .tbt-agua{fill:#fff}
.ui-svg .lgb{fill:rgba(13,24,48,.88);stroke:rgba(255,255,255,.14)}.ui-svg .lgt{font-size:12.5px;fill:#B0B8C9}
.ui-svg .zm,.ui-svg .tl{fill:rgba(13,24,48,.88);stroke:rgba(255,255,255,.18)}.ui-svg .zmt{font-size:15px;fill:#F4F4F6}
.ui-svg .tlk{fill:rgba(255,255,255,.35)}.ui-svg .tlm line{stroke:#FF0099;stroke-width:2}.ui-svg .tlm text{font-size:12.5px;fill:#FF66C2}
.ui-svg .kp{fill:rgba(255,255,255,.02);stroke:rgba(255,255,255,.1)}
.ui-svg .kb{font:400 24px/1 var(--display);fill:#fff}.ui-svg .ku{font-size:14px;fill:#B0B8C9}.ui-svg .kl{font-size:12.5px;fill:#8792A8}
.ui-svg .fband{fill:rgba(255,0,153,.14)}
.ui-svg .obs{fill:none;stroke:#14C6EE;stroke-width:2}
.ui-svg .fc{fill:none;stroke:#FF0099;stroke-width:2;stroke-dasharray:.02 .015}
.ui-svg .now{stroke:rgba(255,255,255,.25);stroke-dasharray:3 3}.ui-svg .nowp{fill:#fff;stroke:#0D1830;stroke-width:2}
.ui-svg .avh{font:400 17px/1 var(--display);fill:#fff}.ui-svg .avh.sm{font-size:15px}
.ui-svg .avd{fill:#FF0099}
.ui-svg .et.sm{font-size:14.5px}.ui-svg .es.sm{font-size:13.5px}
.ui-svg .mk circle{fill:#111D38;stroke:#7DE3F7;stroke-width:1.4}.ui-svg .mk text{font:600 12.5px/1 var(--body);fill:#fff}
/* versión vertical: letra mínima de 13,5 unidades (≥ 12 px en un móvil de 360 px) */
.ui-m .pt{font-size:14.5px}.ui-m .chipt,.ui-m .tbt,.ui-m .ax,.ui-m .thl,.ui-m .kl,.ui-m .mk text{font-size:13.5px}.ui-m .ku{font-size:14.5px}
/* capas: se ve la de la pestaña activa */
.ui-svg .ly{transition:opacity .35s ease}
.ui-mock:not([data-capa="calor"]) .ly-calor,.ui-mock:not([data-capa="lluvia"]) .ly-lluvia,.ui-mock:not([data-capa="agua"]) .ly-agua{opacity:0;pointer-events:none}
.ui-tab{position:absolute;margin:0;padding:0;border:0;background:none;border-radius:999px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ui-tab:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}
/* entrada: los paneles aparecen, la previsión se dibuja y los avisos llegan uno a uno; los refugios laten dos veces */
.js-ui .ui-mock:not(.in) .pg{opacity:0}
.js-ui .ui-mock .pg{transition:opacity .6s ease calc(var(--o) * .14s)}
.js-ui .ui-mock .obs{stroke-dasharray:1;stroke-dashoffset:1}
.js-ui .ui-mock.in .obs{stroke-dashoffset:0;transition:stroke-dashoffset 1.2s ease .9s}
.js-ui .ui-mock .fc,.js-ui .ui-mock .fband,.js-ui .ui-mock .nowp{opacity:0}
.js-ui .ui-mock.in .fc,.js-ui .ui-mock.in .fband,.js-ui .ui-mock.in .nowp{opacity:1;transition:opacity .8s ease 2s}
.js-ui .ui-mock .av{opacity:0}
.js-ui .ui-mock.in .av{opacity:1;transition:opacity .5s ease calc(2.6s + var(--i) * .45s)}
.js-ui .ui-mock.in .ly-calor .ref{animation:ui-ref 2.4s ease-in-out 3.2s 2;animation-delay:calc(3.2s + var(--d))}
@keyframes ui-ref{50%{r:6px}}
.js-ui .ui-mock .br{transform-box:fill-box;transform-origin:bottom;transform:scaleY(.2)}
.js-ui .ui-mock.in .br{transform:none;transition:transform .7s cubic-bezier(.2,.7,.2,1) calc(.6s + var(--i) * .04s)}
.js-ui .ui-mock .hb1{transform-box:fill-box;transform-origin:left;transform:scaleX(0)}
.js-ui .ui-mock.in .hb1{transform:none;transition:transform .8s ease calc(1s + var(--i) * .12s)}
@media (prefers-reduced-motion:reduce){.js-ui .ui-mock .pg,.js-ui .ui-mock .av,.js-ui .ui-mock .fc,.js-ui .ui-mock .fband,.js-ui .ui-mock .nowp{opacity:1!important;transition:none!important}
  .js-ui .ui-mock .obs{stroke-dashoffset:0!important;transition:none!important}.js-ui .ui-mock .br,.js-ui .ui-mock .hb1{transform:none!important;transition:none!important}
  .js-ui .ui-mock .ref{animation:none!important}.ui-svg .ly{transition:none}}
/* leyenda numerada */
.ui-leg{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 28px}
.ui-leg li{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;color:var(--muted)}
.ui-leg li b{font-weight:500;color:#F4F4F6}
.ui-leg .sname b{font-weight:600}
.ui-n{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-top:-1px;border-radius:50%;background:#111D38;border:1.4px solid #7DE3F7;color:#fff;font:600 12px/1 var(--body)}
.ui-note{margin-top:16px;font-size:14px;color:var(--muted-2)}
@media (max-width:900px){.ui-leg{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ui-leg{grid-template-columns:1fr}}
@container uimock (max-width:1159px){.ui-leg li[data-d]{display:none}}

/* logo animado de la portada, más pequeño que el titular (petición de Sheila, 23/10) */
.logo-anim{font-size:clamp(26px,3vw,40px)}
/* cabecera entre 821 y 1100 px: con el isotipo no cabía en una línea; botón corto y huecos menores */
.nav-links a{white-space:nowrap}
/* botón secundario de la feria en la cabecera (v65) */
.topnav .btn.nav-ev{margin-right:-28px;padding:0 18px}
.topnav .btn.nav-ev[aria-current="page"]{border-color:rgba(125,227,247,.6);box-shadow:inset 0 0 0 1px rgba(125,227,247,.25)}
[data-ev-hide][hidden]{display:none !important}
@media (min-width:821px) and (max-width:1100px){
  .topnav .btn:not(.nav-try):not(.nav-ev){display:none}
  .topnav .btn.nav-ev{display:inline-flex;margin-left:auto;margin-right:-12px;height:40px;padding:0 14px;font-size:14px}
  .topnav .nav-ev + .btn + .nav-try{margin-left:0}
  .topnav .nav-try{display:inline-flex;margin-left:auto;height:40px;padding:0 16px;font-size:14px}
  .topnav-in{gap:24px}
  .topnav .nav-links{gap:22px}
}
/* 821–900 px: con el botón de la feria no cabía; huecos y rellenos algo menores */
@media (min-width:821px) and (max-width:900px){
  .topnav-in{gap:16px}
  .topnav .nav-links{gap:16px}
  .topnav .btn.nav-ev{padding:0 12px;margin-right:-6px}
  .topnav .btn.nav-try{padding:0 12px}
}
/* la franja de la feria también se oculta (su display:flex anulaba el atributo hidden) */
#evStrip[hidden]{display:none !important}
/* ===== Páginas legales ===== */
.legal{padding:8px 0 110px}
.legal .lg-grid{display:grid;grid-template-columns:220px minmax(0,780px);gap:clamp(32px,5vw,80px);margin-top:44px;align-items:start}
.legal h1{font-size:clamp(36px,5vw,56px);line-height:1.1;margin-top:0;letter-spacing:-.02em}
.legal .lg-upd{margin-top:18px;font:500 13px/1.4 var(--body);color:var(--muted-2);letter-spacing:.02em}
.legal .lg-intro{margin-top:26px;color:var(--fg-2);font-size:17px;line-height:1.8}
.legal .lg-toc{position:sticky;top:calc(var(--navh) + 28px);display:grid;gap:4px;font:500 13.5px/1.4 var(--body)}
.legal .lg-toc a{color:var(--muted);text-decoration:none;padding:7px 0 7px 14px;border-left:1px solid var(--line)}
.legal .lg-toc a:hover{color:#fff}
.legal .lg-toc a[aria-current="page"]{color:#fff;border-left-color:var(--accent)}
.legal .lg-body,.legal .lg-toc{min-width:0}
.legal .lg-body h2{font-size:clamp(21px,2vw,26px);line-height:1.25;margin:52px 0 0;padding-top:28px;border-top:1px solid var(--line)}
.legal .lg-body h3{font:400 19px/1.3 var(--display);letter-spacing:-.005em;color:#fff;margin:30px 0 0}
.legal .lg-body p:not([class]),.legal .lg-body li{color:var(--fg-2);font-size:16px;line-height:1.7}
.legal .lg-body p:not([class]),.legal .lg-body ul,.legal .lg-intro,.legal .lg-note{max-width:38em}
.legal .lg-body p{margin-top:14px}
.legal .lg-body ul{margin:14px 0 0;padding-left:20px;display:grid;gap:6px}
.legal .lg-body a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.35);text-underline-offset:3px}
.legal .lg-body a:hover{text-decoration-color:#fff}
.legal .lg-body strong{color:#fff;font-weight:500}
.legal .lg-data{margin-top:18px;display:grid;grid-template-columns:minmax(150px,auto) 1fr;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.legal .lg-data dt,.legal .lg-data dd{margin:0;padding:13px 18px;border-top:1px solid var(--line);font-size:14.5px;line-height:1.6}
.legal .lg-data dt:first-of-type,.legal .lg-data dt:first-of-type + dd{border-top:0}
.legal .lg-data dt{color:var(--muted);background:rgba(255,255,255,.025)}
.legal .lg-data dd{color:var(--fg-2)}
.legal .lg-tbl{margin-top:18px;overflow-x:auto;border:1px solid var(--line);border-radius:14px}
.legal .lg-tbl table{width:100%;border-collapse:collapse;min-width:560px}
.legal .lg-tbl th,.legal .lg-tbl td{text-align:left;vertical-align:top;padding:12px 16px;font-size:14px;line-height:1.55;border-top:1px solid var(--line)}
.legal .lg-tbl th{font:500 12px/1.3 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:rgba(255,255,255,.025);border-top:0}
.legal .lg-tbl td{color:var(--fg-2)}
.lg-draft{margin-top:28px;padding:14px 18px;border-radius:12px;border:1px dashed rgba(232,179,65,.6);background:rgba(232,179,65,.07);color:#F6D98A;font-size:14px;line-height:1.6}
.lg-draft b{color:#F6D98A;font-weight:600}
mark.lg-todo{background:rgba(232,179,65,.16);color:#F6D98A;border:1px dashed rgba(232,179,65,.55);border-radius:4px;padding:0 5px;font-weight:500}
.lg-note{margin-top:16px;padding:12px 16px;border-left:3px solid rgba(232,179,65,.8);background:rgba(232,179,65,.06);border-radius:0 10px 10px 0;color:#F6D98A;font-size:13.5px;line-height:1.65}
.lg-note b{display:block;font:600 12px/1.2 var(--body);letter-spacing:.12em;text-transform:uppercase;color:#E8B341;margin-bottom:4px}
footer .lg-links{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:12.5px;margin:0;padding:0;list-style:none}
footer .lg-links a{color:var(--muted-2)}
footer .lg-links a:hover{color:#fff}
@media (max-width:860px){.legal .lg-grid{grid-template-columns:1fr;gap:28px}.legal .lg-toc{position:static;grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto;gap:0}.legal .lg-toc a{border-left:0;border-bottom:1px solid var(--line);padding:10px 14px}.legal .lg-toc a[aria-current="page"]{border-bottom-color:var(--accent)}.legal .lg-data{grid-template-columns:1fr}.legal .lg-data dd{border-top:0;padding-top:0}}

/* ===== Por qué Nunsys y el EU LDT Toolbox ===== */
.lp-why{position:relative}
.lp-why .why-head{max-width:860px}
.lp-why h2{font-size:clamp(28px,3.2vw,44px);line-height:1.14}
.lp-why .lede{margin-top:22px;max-width:620px}
.why-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:16px;margin-top:52px}
.why-card{position:relative;border-radius:20px;padding:30px 30px 32px;background:var(--card);border:1px solid rgba(255,255,255,.07);min-width:0;overflow:hidden}
.why-card h3{font-size:clamp(22px,2vw,28px);line-height:1.25;letter-spacing:-.01em;color:#fff;margin-top:0}
.why-card p{margin-top:16px;color:var(--fg-2);font-size:15.5px;line-height:1.75}
.why-nunsys{display:flex;flex-direction:column}
.why-nunsys::after{content:"";position:absolute;right:-60px;bottom:-60px;width:220px;height:220px;border-radius:50%;border:1px solid rgba(20,198,238,.18);box-shadow:0 0 0 30px rgba(20,198,238,.04),0 0 0 60px rgba(20,198,238,.025);pointer-events:none}
.why-tags{list-style:none;margin:auto 0 0;padding:26px 0 0;display:flex;flex-wrap:wrap;gap:8px;position:relative;z-index:1}
.why-tags li{font:400 12.5px/1 var(--body);color:var(--fg-2);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:8px 12px}
.why-ben{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.why-ben li{display:grid;gap:8px;padding:18px 0;border-top:1px solid var(--line)}
.why-ben b{font:400 20px/1.3 var(--display);letter-spacing:-.005em;color:#fff}
.why-ben b::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:10px;vertical-align:2px;box-shadow:0 0 0 4px rgba(20,198,238,.15)}
.why-ben span{font-size:14.5px;line-height:1.6;color:var(--muted)}
.why-edic{margin-top:16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 32px;align-items:center;padding:22px 28px;border-radius:16px;border:1px dashed rgba(20,198,238,.35);background:rgba(20,198,238,.04)}
.why-edic p{color:var(--fg-2);font-size:14.5px;line-height:1.7;max-width:40em}
.why-edic p b{color:#fff;font-weight:500}
.why-edic .more{white-space:nowrap}
@media (max-width:1020px){.why-grid{grid-template-columns:1fr}.why-edic{grid-template-columns:1fr}}
@media (max-width:640px){.why-card{padding:24px 22px 26px}.why-ben{grid-template-columns:1fr}.why-edic{padding:20px}.why-edic .more{white-space:normal}}
.why-card{background:
    radial-gradient(90% 120% at 0% 0%, rgba(20,198,238,calc(.10 * var(--hl))), transparent 62%),
    linear-gradient(115deg, rgba(22,35,63,var(--hl)) 0%, rgba(28,42,74,var(--hl)) 55%, rgba(17,29,56,var(--hl)) 100%),
    var(--card);
  border-color:rgba(255,255,255,.07);
  transition:--hl .45s ease,border-color .3s ease,box-shadow .4s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.why-card:hover{--hl:1;border-color:rgba(125,227,247,.32);transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){.why-card:hover{transform:none}}

/* Fase 2 · cada página con su dirección: el título de la vertical es el principal y los de dentro bajan un nivel, con el mismo aspecto */
.cv-vhead h1{font-size:clamp(28px,3vw,42px);line-height:1.14}
.vs .cv-vhead h1{margin:0}
.vs-sol h2{font-family:var(--display);font-weight:400;font-size:clamp(20px,1.7vw,23px);line-height:1.25;color:#F4F4F6}
.sol h2{font:400 clamp(20px,1.6vw,23px)/1.28 var(--display);color:#fff;letter-spacing:-.005em}
.topnav .nav-links a[aria-current="true"]{color:#fff;box-shadow:inset 0 -2px 0 var(--accent-2)}
.menu-panel a[aria-current="true"]{color:#fff}
/* ruta de navegación (migas de pan) */
.viewbar ol{display:flex;flex-wrap:wrap;align-items:center;gap:0 14px;list-style:none;margin:0;padding:0}
.viewbar li{display:inline-flex;align-items:center;gap:14px}
.viewbar li + li::before{content:"";width:1px;height:14px;background:var(--line)}
.viewbar [aria-current="page"]{color:#fff}
@media (max-width:420px){
  .viewbar ol{flex-wrap:nowrap;min-width:0}
  .viewbar li{flex:none}
  .viewbar li:last-child{flex:0 1 auto;min-width:0}
  .viewbar li:last-child span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
/* página no encontrada: ocupa la pantalla, con el título más abajo */
#view-404 > .nf{padding-top:clamp(72px,10vw,150px);min-height:calc(100svh - 190px)}
/* =====================================================================
   NOCTURNE · capa de sistema (dark-first, el color solo entra como luz)
   ===================================================================== */
:root{
  color-scheme:dark;
  --bg-0:#0A1428;--bg-1:#0D1830;--bg-2:#111D38;--bg-3:#16233F;--bg-4:#1C2A4A;
  --line-1:rgba(255,255,255,.06);--line-2:rgba(255,255,255,.10);--line-3:rgba(255,255,255,.16);
  --tx-1:#F4F4F6;--tx-2:#B0B8C9;--tx-3:#8792A8;--tx-4:#4A5570;
  --ember-300:#7DE3F7;--ember-500:#14C6EE;--ember-700:#0A8FB0;
  --violet-300:#7DE3F7;--violet-500:#14C6EE;--violet-700:#0A8FB0;
  --azure-300:#7DE3F7;--azure-500:#14C6EE;--azure-700:#0A8FB0;
  --teal-300:#7FE3D4;--teal-500:#1FB8A6;--teal-700:#0E6E63;
  --gold-300:#F6D98A;--gold-500:#E8B341;--gold-700:#9C7319;
  --success:#3DD68C;--warning:#F5B83D;--danger:#FF5A5F;--info:#14C6EE;
  --r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-2xl:28px;--r-full:999px;
  --font:'Onest',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:var(--font);
  /* tokens heredados de la web, ahora apuntan a Nocturne */
  --bg:var(--bg-0);--bg-band:var(--bg-1);--bg-band-2:var(--bg-0);--bg-comp:var(--bg-1);--bg-deep:var(--bg-0);
  --card:var(--bg-2);--pill:var(--bg-3);
  --fg:var(--tx-1);--fg-2:var(--tx-2);--muted:var(--tx-3);--muted-2:var(--tx-3);--label:var(--tx-2);
  --accent:var(--azure-300);--accent-2:var(--azure-500);--accent-fill:var(--violet-500);--accent-fill-hover:var(--violet-300);
  --line:var(--line-2);
  --display:'Figtree',"Helvetica Neue",Arial,sans-serif;--body:var(--font);
}
body{background:var(--bg-0);color:var(--tx-1);font-family:var(--font);-webkit-font-smoothing:antialiased}
body{background-color:var(--page,var(--bg-0))}
h1,h2,h3{letter-spacing:-.02em}
.lede,.hero .sub{color:var(--tx-2)}
.eyebrow{font:500 12px/1.2 var(--font);letter-spacing:.14em;color:var(--tx-3)}

/* Navegación */
.topnav.solid{background:rgba(10,20,40,.78);border-bottom-color:var(--line-1)}
.menu-panel{background:rgba(13,24,48,.97);border-bottom-color:var(--line-1)}

/* Botones */
.btn{height:44px;padding:0 18px;border-radius:var(--r-sm);font:500 14px/1 var(--font);letter-spacing:0;color:var(--tx-1);
  background:linear-gradient(180deg,#3FD3F3,#0EA5C9);border:1px solid rgba(125,227,247,.45);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 6px 20px -4px rgba(20,198,238,.6);transition:filter .15s,transform .15s}
.btn:hover{background:linear-gradient(180deg,#3FD3F3,#0EA5C9);filter:brightness(1.12);transform:none}
.btn:active{transform:translateY(1px)}
.btn,.btn:hover{color:var(--tx-1)}
.btn:focus-visible,.dz-tab:focus-visible,.more:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(20,198,238,.35)}
.btn.ghost{background:linear-gradient(180deg,#1E2C4C,#14203A);border:1px solid var(--line-2);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.btn.ghost:hover{background:linear-gradient(180deg,#1E2C4C,#14203A);border-color:var(--line-3);filter:brightness(1.12)}
.more{color:var(--tx-2);border-bottom-color:var(--line-3)}
.more:hover{color:var(--tx-1);border-color:var(--tx-1)}

/* Selector segmentado (pestañas de organización) */
.dz-tab{border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--bg-1);color:var(--tx-3);font:500 13.5px/1 var(--font)}
.dz-tab:hover{color:var(--tx-1);border-color:var(--line-3)}
.dz-tab[aria-selected="true"]{background:var(--bg-4);border-color:rgba(20,198,238,.55);color:var(--tx-1);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 20px -4px rgba(20,198,238,.55)}

/* Cards: degradado bg-3 → bg-2 y la luz entra desde el borde superior al pasar el ratón */
.dz-card,.sol,.case,.fl-step,.ct-form,.ct-aside .contact > div,.lp-cases .cap,.why-card,.bn-model,.dz-custom{
  border-radius:var(--r-xl);border:1px solid var(--line-1);
  background:radial-gradient(70% 55% at 50% 0%,rgba(20,198,238,calc(.42 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-3),var(--bg-2));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 20px 40px -20px rgba(0,0,0,.8);
  transition:--hl .45s ease,border-color .3s ease,filter .2s ease,transform .2s ease}
.dz-card:hover,.sol:hover,.sol:focus-visible,.case:hover,.fl-step:hover,.ct-aside .contact > div:hover,.lp-cases .cap:hover,.why-card:hover{--hl:1;border-color:rgba(125,227,247,.35);transform:translateY(-1px)}
.ct-form:focus-within{--hl:.6;border-color:rgba(20,198,238,.4)}
.dz-custom{border-style:dashed;border-color:var(--line-2);background:linear-gradient(180deg,var(--bg-2),var(--bg-1))}
.case .case-art{background:var(--bg-1)}
.tile,.layer,.arch-side{background:radial-gradient(70% 60% at 50% 0%,rgba(20,198,238,calc(.35 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-3),var(--bg-2));border-color:var(--line-1)}
.om-cap{background:radial-gradient(80% 90% at 50% 0%,rgba(20,198,238,calc(.4 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-3),var(--bg-2));border-color:rgba(125,227,247,.28);color:var(--tx-2)}

/* Badges y chips */
.case .mat span,.dz-card .mat span,.why-tags li{height:24px;display:inline-flex;align-items:center;padding:0 10px;border-radius:var(--r-full);font:500 11.5px/1 var(--font);color:var(--tx-2);border:1px solid var(--line-2);background:rgba(255,255,255,.04)}
.case .code{color:var(--azure-300)}

/* Formulario */
.ct-f input[type=text],.ct-f input[type=email],.ct-f select,.ct-f textarea{border-radius:var(--r-sm);background-color:var(--bg-1);border:1px solid var(--line-2);color:var(--tx-1);box-shadow:inset 0 1px 2px rgba(0,0,0,.6)}
.ct-f input:hover,.ct-f select:hover:not(:disabled),.ct-f textarea:hover{border-color:var(--line-3)}
.ct-f input:focus,.ct-f select:focus,.ct-f textarea:focus{border-color:rgba(20,198,238,.7);box-shadow:0 0 0 3px rgba(20,198,238,.2);background-color:var(--bg-1)}
.ct-f ::placeholder{color:var(--tx-3)}
.ct-f select option{background:var(--bg-2)}
.ct-f label i{color:var(--violet-300)}
.contact .copy{border-radius:var(--r-sm);border-color:var(--line-2);background:linear-gradient(180deg,#1E2C4C,#14203A)}

/* Luz ambiental: violeta arriba a la derecha, ember arriba a la izquierda */
.halo{mix-blend-mode:normal;filter:none}
.halo-hero{left:0;top:0;width:100%;height:100%;
  background:radial-gradient(45% 55% at 88% 0%,rgba(20,198,238,.35),transparent 72%),radial-gradient(40% 45% at 6% 0%,rgba(20,198,238,.18),transparent 72%)}
.halo-bn,.halo-ex{left:0;top:0;width:100%;height:100%;
  background:radial-gradient(55% 60% at 12% 0%,rgba(20,198,238,.30),transparent 72%)}
.hero::before{background:linear-gradient(90deg,rgba(10,20,40,.86) 0,rgba(10,20,40,.6) 50%,rgba(10,20,40,.25) 100%)}
.lp-banner{background:var(--bg-1);border-color:var(--line-1)}

/* Bloque europeo con orbs */
.why-card{display:flex;flex-direction:column;gap:0}
.why-nunsys{--hl:.45}
.why-nunsys:hover{--hl:1}
.why-orb{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin-bottom:22px;flex:none;
  background:radial-gradient(circle at 50% 30%,#22315A,#0C1528 70%);border:1px solid var(--line-3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 0 0 6px rgba(255,255,255,.02),0 0 40px rgba(20,198,238,.5)}
.why-orb svg{width:28px;height:28px;stroke:var(--violet-300);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.why-ben-ico{width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;flex:none;
  background:linear-gradient(180deg,#1F2D4D,#101B33);border:1px solid var(--line-3);box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}
.why-ben-ico svg{width:20px;height:20px;stroke:var(--azure-300);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.why-ben li{grid-template-columns:44px minmax(0,1fr);column-gap:14px;align-items:start;border-top-color:var(--line-1)}
.why-ben li > b,.why-ben li > span{grid-column:2}
.why-ben li .why-ben-ico{grid-row:1;grid-column:1}
.why-ben b::before{display:none}
.why-ben span{color:var(--tx-3)}
.why-nunsys::after{border-color:rgba(20,198,238,.18);box-shadow:0 0 0 30px rgba(20,198,238,.04),0 0 0 60px rgba(20,198,238,.02)}
.why-edic{border-radius:var(--r-lg);border:1px dashed rgba(125,227,247,.3);background:linear-gradient(180deg,var(--bg-2),var(--bg-1))}

/* Páginas legales */
.legal .lg-toc a[aria-current="page"]{border-left-color:var(--violet-500)}
.legal .lg-data,.legal .lg-tbl{border-color:var(--line-2);border-radius:var(--r-md)}

footer{border-top-color:var(--line-1)}
@media (max-width:860px){.legal .lg-toc a[aria-current="page"]{border-bottom-color:var(--violet-500)}}
@media (prefers-reduced-motion:reduce){.dz-card:hover,.sol:hover,.case:hover,.why-card:hover{transform:none}}
.why-eu .why-orb{box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 0 0 6px rgba(255,255,255,.02),0 0 40px rgba(20,198,238,.5)}
.why-eu .why-orb svg{stroke:var(--azure-300)}
.why-nunsys .why-orb{box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 0 0 6px rgba(255,255,255,.02),0 0 40px rgba(20,198,238,.55)}
.why-nunsys{background:radial-gradient(70% 55% at 50% 0%,rgba(20,198,238,calc(.5 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-3),var(--bg-2))}
.why-nunsys:hover{border-color:rgba(125,227,247,.4)}

/* Marca: navy + naranja sobre Nocturne */
:root{--accent-fill:var(--ember-500);--accent-fill-hover:var(--ember-300)}
.btn,.btn:hover{color:#0A1428;font-weight:600}
.btn.ghost,.btn.ghost:hover{color:var(--tx-1);font-weight:500}
.halo-hero{background:radial-gradient(45% 55% at 88% 0%,rgba(20,198,238,.30),transparent 72%),radial-gradient(40% 45% at 6% 0%,rgba(20,198,238,.28),transparent 72%)}
.halo-bn,.halo-ex{background:radial-gradient(55% 60% at 12% 0%,rgba(20,198,238,.24),transparent 72%)}
.why-ben li{align-content:start}

/* Marca: navy + cyan (principal) + magenta (segundo acento) */
:root{--cyan-300:#7DE3F7;--cyan-500:#14C6EE;--cyan-700:#0A8FB0;--magenta-300:#FF66C2;--magenta-500:#FF0099;--magenta-700:#B3006B;
  --accent:var(--cyan-300);--accent-2:var(--cyan-500);--accent-fill:var(--cyan-500);--accent-fill-hover:var(--cyan-300)}
.btn{background:linear-gradient(180deg,#3FD3F3,#0EA5C9);border-color:rgba(125,227,247,.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 6px 20px -4px rgba(20,198,238,.55)}
.btn:hover{background:linear-gradient(180deg,#3FD3F3,#0EA5C9)}
.btn.ghost,.btn.ghost:hover{background:linear-gradient(180deg,#1E2C4C,#14203A)}
.halo-hero{background:radial-gradient(45% 55% at 88% 0%,rgba(20,198,238,.30),transparent 72%),radial-gradient(40% 45% at 6% 0%,rgba(255,0,153,.20),transparent 72%)}
.halo-bn,.halo-ex{background:radial-gradient(55% 60% at 12% 0%,rgba(255,0,153,.20),transparent 72%)}
.why-nunsys{background:radial-gradient(70% 55% at 50% 0%,rgba(20,198,238,calc(.45 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-3),var(--bg-2))}
.why-nunsys:hover{border-color:rgba(125,227,247,.4)}
.why-nunsys .why-orb{box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 0 0 6px rgba(255,255,255,.02),0 0 40px rgba(20,198,238,.5)}
.why-nunsys .why-orb svg{stroke:var(--cyan-300)}
.why-nunsys::after{border-color:rgba(20,198,238,.16);box-shadow:0 0 0 30px rgba(20,198,238,.035),0 0 0 60px rgba(20,198,238,.02)}
.why-eu .why-orb{box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 0 0 6px rgba(255,255,255,.02),0 0 40px rgba(255,0,153,.45)}
.why-eu .why-orb svg{stroke:var(--magenta-300)}
.why-eu{background:radial-gradient(70% 55% at 50% 0%,rgba(255,0,153,calc(.32 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-3),var(--bg-2))}
.why-eu:hover{border-color:rgba(255,102,194,.4)}
.why-ben-ico svg{stroke:var(--magenta-300)}
.dz-tab[aria-selected="true"]{border-color:rgba(20,198,238,.6);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 20px -4px rgba(20,198,238,.55)}
.ct-f input:focus,.ct-f select:focus,.ct-f textarea:focus{border-color:rgba(20,198,238,.7);box-shadow:0 0 0 3px rgba(20,198,238,.2)}
.btn:focus-visible,.dz-tab:focus-visible,.more:focus-visible{box-shadow:0 0 0 3px rgba(20,198,238,.4)}
/* Halos más contenidos */
.btn{box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 3px 10px -4px rgba(20,198,238,.35)}
.btn.ghost{box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.dz-tab[aria-selected="true"]{box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 10px -4px rgba(20,198,238,.35)}
.why-nunsys .why-orb{box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 0 0 5px rgba(255,255,255,.02),0 0 22px rgba(20,198,238,.28)}
.why-eu .why-orb{box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 0 0 5px rgba(255,255,255,.02),0 0 22px rgba(255,0,153,.26)}
.dz-card,.sol,.case,.fl-step,.ct-form,.ct-aside .contact > div,.lp-cases .cap,.bn-model,.dz-custom{background:radial-gradient(70% 55% at 50% 0%,rgba(20,198,238,calc(.26 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-3),var(--bg-2))}
.dz-custom{background:linear-gradient(180deg,var(--bg-2),var(--bg-1))}
.why-nunsys{background:radial-gradient(70% 55% at 50% 0%,rgba(20,198,238,calc(.28 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-3),var(--bg-2))}
.why-eu{background:radial-gradient(70% 55% at 50% 0%,rgba(255,0,153,calc(.2 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-3),var(--bg-2))}
.tile,.layer,.arch-side{background:radial-gradient(70% 60% at 50% 0%,rgba(20,198,238,calc(.22 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-3),var(--bg-2))}
.om-cap{background:radial-gradient(80% 90% at 50% 0%,rgba(20,198,238,calc(.24 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-3),var(--bg-2))}
.halo-hero{background:radial-gradient(45% 55% at 88% 0%,rgba(20,198,238,.22),transparent 72%),radial-gradient(40% 45% at 6% 0%,rgba(255,0,153,.14),transparent 72%)}
.halo-bn,.halo-ex{background:radial-gradient(55% 60% at 12% 0%,rgba(255,0,153,.14),transparent 72%)}
.om-dot{box-shadow:0 0 0 4px rgba(255,0,153,.12),0 0 10px rgba(255,0,153,.28)}
.om-core{box-shadow:0 0 0 6px rgba(20,198,238,.03),0 12px 36px rgba(28,42,74,.5)}

/* Visuales de las cards de soluciones (un acento por card) */
.sol{gap:14px}
.sol-vis{position:relative;height:168px;margin:-14px -14px 4px;border-radius:14px;overflow:hidden;border:1px solid var(--line-1);
  background:radial-gradient(70% 80% at 50% 0%,rgba(20,198,238,calc(.10 + .10 * var(--hl))),transparent 70%),
    radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.2px) 0 0/12px 12px,linear-gradient(180deg,var(--bg-2),var(--bg-1))}
.sol-m .sol-vis{background:radial-gradient(70% 80% at 50% 0%,rgba(255,0,153,calc(.08 + .09 * var(--hl))),transparent 70%),
    radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.2px) 0 0/12px 12px,linear-gradient(180deg,var(--bg-2),var(--bg-1))}
.sol-vis .sv{position:absolute;inset:0;width:100%;height:100%}
.sol-m{background:radial-gradient(70% 55% at 50% 0%,rgba(255,0,153,calc(.18 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-3),var(--bg-2))}
.sol-m:hover,.sol-m:focus-visible{border-color:rgba(255,102,194,.35)}
.sv-flow{stroke-dasharray:60 240;animation:sv-flow 3.2s linear infinite}
@keyframes sv-flow{to{stroke-dashoffset:-300}}
.sv-beam{animation:sv-beam 2.8s ease-in-out infinite;transform-origin:50% 100%}
@keyframes sv-beam{0%,100%{opacity:.55}50%{opacity:1}}
.sv-needle{transform-origin:160px 128px;transition:transform .8s cubic-bezier(.2,.7,.2,1);transform:rotate(-38deg)}
.sol:hover .sv-needle,.sol:focus-visible .sv-needle{transform:rotate(0deg)}
.sol-sn{margin-top:auto}

/* Visual del equipo en la card de Nunsys */
.why-vis{flex:1;min-height:150px;display:flex;align-items:center;justify-content:center;margin:18px -10px 0}
.why-vis .sv{width:100%;max-width:360px;height:auto}
@media (prefers-reduced-motion:reduce){.sv-flow,.sv-beam{animation:none}.sv-needle{transition:none;transform:none}}
.why-ben li{grid-template-rows:auto 1fr}.why-ben li .why-ben-ico{grid-row:1 / 3;align-self:start}
.sv-dots{animation:sv-dots 1.6s linear infinite}
@keyframes sv-dots{to{stroke-dashoffset:-32}}
@media (prefers-reduced-motion:reduce){.sv-dots{animation:none}}

/* Sistema tipográfico: Figtree (títulos y cifras grandes, 400), Onest (texto e interfaz, 400/500/600), Lexend (logo y módulos) */
h1,h2,h3{font-family:var(--display);font-weight:400}
.legal h1{font-weight:300}
body,.btn,.dz-tab,.more,.ct-f input,.ct-f select,.ct-f textarea{font-family:var(--body)}
.brand.wm,.sname{font-family:'Lexend',var(--display)}
.brand.wm .wm-a{font-weight:200}.brand.wm .wm-b{font-weight:600}.brand.wm .wm-b b{font-weight:800}
.sname{font-weight:300}.sname b{font-weight:600}

/* ===== Cards unificadas: mismo fondo, borde, radio y respuesta al ratón ===== */
.dz-card,.sol,.case,.why-card,.ct-aside .contact > div,.fl-step,.bn-steps li,.bn-model,.lp-banner .bn-model,.cmp-card,.vs-col{
  --glow:20,198,238;--edge:125,227,247;
  border-radius:var(--r-xl);border:1px solid var(--line-1);
  background:radial-gradient(70% 55% at 50% 0%,rgba(var(--glow),calc(.26 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-3),var(--bg-2));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 20px 40px -20px rgba(0,0,0,.8);
  -webkit-backdrop-filter:none;backdrop-filter:none;
  transition:--hl .45s ease,border-color .3s ease,transform .25s ease}
.sol-m,.why-eu{--glow:255,0,153;--edge:255,102,194}
.why-nunsys{--hl:0}
.dz-card:hover,.sol:hover,.sol:focus-visible,.case:hover,.case:focus-visible,.why-card:hover,.ct-aside .contact > div:hover,.fl-step:hover,.bn-steps li:hover,.bn-model:hover,.lp-banner .bn-model:hover,.cmp-card:hover,.vs-col:hover{
  --hl:1;border-color:rgba(var(--edge),.35);transform:translateY(-1px)}
.why-nunsys:hover{--hl:1}
/* Formulario: misma superficie, la luz se enciende al rellenarlo y no se desplaza */
.ct-form{border-radius:var(--r-xl);border:1px solid var(--line-1);
  background:radial-gradient(70% 55% at 50% 0%,rgba(20,198,238,calc(.26 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-3),var(--bg-2))}
.ct-form:focus-within{--hl:.7;border-color:rgba(125,227,247,.35)}
/* Avisos con borde discontinuo: los dos iguales */
.dz-custom,.why-edic{border-radius:var(--r-xl);border:1px dashed var(--line-3);
  background:radial-gradient(70% 80% at 50% 0%,rgba(20,198,238,calc(.16 * var(--hl))),transparent 75%),linear-gradient(180deg,var(--bg-2),var(--bg-1));
  transition:--hl .45s ease,border-color .3s ease}
.dz-custom:hover,.why-edic:hover{--hl:1;border-color:rgba(125,227,247,.45)}
@media (prefers-reduced-motion:reduce){.bn-steps li:hover,.bn-model:hover,.cmp-card:hover,.vs-col:hover,.fl-step:hover,.ct-aside .contact > div:hover{transform:none}}
.flow:hover .fl-step{animation:none}

/* ===== Arreglos tras la revisión de código ===== */
/* Foco visible también en la pestaña seleccionada */
.dz-tab[aria-selected="true"]:focus-visible{box-shadow:0 0 0 3px rgba(20,198,238,.5)}
/* Un solo acento por card: las cards magenta llevan las viñetas en magenta */
.sol-m .sol-dec li::before{color:var(--magenta-300)}
/* El visual de la card se ilumina con la card */
.sol:hover .sol-vis,.sol:focus-visible .sol-vis{--hl:1}
.sol-vis{transition:--hl .45s ease}
/* Movimiento reducido: ninguna card se desplaza */
@media (prefers-reduced-motion:reduce){
  .dz-card:hover,.sol:hover,.sol:focus-visible,.case:hover,.case:focus-visible,.why-card:hover,.ct-aside .contact > div:hover,.fl-step:hover,.bn-steps li:hover,.bn-model:hover,.lp-banner .bn-model:hover,.cmp-card:hover,.vs-col:hover{transform:none}
}
.legal .lg-grid{margin-top:24px}
/* Card «Qué pagas» de /plataforma/: mismo interior que la de la home */
.pl-model{padding:28px 30px 26px}
.pl-model .pl-note{margin-top:24px;padding-top:18px;border-top:1px solid var(--line-1);text-align:left;font-size:13.5px;line-height:1.6;color:var(--tx-3)}
@media (max-width:640px){.pl-model{padding:22px 20px 20px}}
/* Visuales de los ejemplos de /plataforma/ (mismo lenguaje que las cards de soluciones) */
.cmp-vis{margin:-14px -14px 0}
.cmp-card:hover .sol-vis{--hl:1}
.cmp-m{--glow:255,0,153;--edge:255,102,194}
.cmp-m .sol-vis{background:radial-gradient(70% 80% at 50% 0%,rgba(255,0,153,calc(.08 + .09 * var(--hl))),transparent 70%),
    radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.2px) 0 0/12px 12px,linear-gradient(180deg,var(--bg-2),var(--bg-1))}
.cmp-m .cmp-chain li:first-child{border-color:rgba(255,0,153,.5);color:var(--magenta-300)}
.cv-wave{animation:cv-wave 2.4s ease-in-out infinite}
@keyframes cv-wave{0%,100%{opacity:.25}50%{opacity:1}}
.cv-dots{animation:sv-dots 1.6s linear infinite}
@media (prefers-reduced-motion:reduce){.cv-wave,.cv-dots{animation:none}}

/* ===== Página SCEWC26 ===== */
.ev-bar{justify-content:space-between}
.ev-lang{display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--bg-1);color:var(--tx-2);text-decoration:none;font:500 13px/1 var(--font)}
.ev-lang:hover{color:var(--tx-1);border-color:var(--line-3)}
.ev-hero{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(48px,7vw,96px) clamp(40px,5vw,64px)}
.ev-hero .halo{z-index:-1}
.ev-hero h1{margin-top:0;font-size:clamp(44px,6.6vw,88px);line-height:1;letter-spacing:-.025em;max-width:14ch}
.ev-sub{margin-top:28px;max-width:720px;font-size:17px;line-height:1.88;color:var(--tx-2)}
.ev-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.ev-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 32px;margin:clamp(40px,5vw,64px) 0 0;padding-top:24px;border-top:1px solid var(--line-2)}
.ev-meta div{display:grid;gap:8px;min-width:0}
.ev-meta dt{font:500 12px/1.2 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--tx-3)}
.ev-meta dd{margin:0;font-size:16px;line-height:1.5;color:var(--tx-1)}
.ev-sec{padding-top:clamp(80px,9vw,140px)}
.ev-head{display:grid;gap:18px;max-width:780px}
.ev-head h2,.ev-why h2,.ev-form h2{font-size:clamp(28px,3.2vw,44px);line-height:1.14}
.ev-caps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:44px}
.ev-cap{display:flex;flex-direction:column;gap:12px;padding:26px 26px 22px}
.ev-cap h3{font-size:clamp(20px,1.6vw,23px);line-height:1.28}
.ev-cap .sol-get b{color:var(--tx-1);font-weight:600}
.ev-why{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px 64px;align-items:start}
.ev-why-t{display:grid;gap:20px;justify-items:start}
.ev-pts{list-style:none;margin:0;padding:0;display:grid;gap:0}
.ev-pts li{display:grid;gap:6px;padding:20px 0;border-top:1px solid var(--line-2)}
.ev-pts li:first-child{border-top-color:var(--cyan-500)}
.ev-pts b{font:400 20px/1.3 var(--display);color:var(--tx-1)}
.ev-pts span{font-size:14.5px;line-height:1.6;color:var(--tx-3)}
.ev-form-wrap{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px;align-items:start}
.ev-form{display:grid;gap:18px;padding:clamp(22px,3vw,34px)}
.ev-fp{font-size:15.5px;line-height:1.7;color:var(--tx-2);margin-top:-6px}
.ev-fs{border:0;margin:0;padding:0;display:grid;gap:10px;min-width:0}
.ev-fs legend{padding:0;margin-bottom:10px;font:500 13.5px/1.3 var(--font);color:var(--tx-2)}
.ev-fs legend i{font-style:normal;color:var(--cyan-300)}
.ev-fs legend em,.ct-check em{font-style:normal;font-weight:400;color:var(--tx-3)}
.ev-pills{display:flex;flex-wrap:wrap;gap:8px}
.ev-pill{position:relative;display:inline-flex}
.ev-pill input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.ev-pill span{display:inline-flex;align-items:center;min-height:40px;padding:8px 14px;border-radius:var(--r-full);border:1px solid var(--line-2);background:var(--bg-1);color:var(--tx-2);font:500 13.5px/1.2 var(--font);transition:border-color .2s,background .2s,color .2s}
.ev-pill:hover span{border-color:var(--line-3);color:var(--tx-1)}
.ev-pill input:checked + span{background:rgba(20,198,238,.12);border-color:rgba(20,198,238,.6);color:var(--tx-1)}
.ev-pill input:focus-visible + span{box-shadow:0 0 0 3px rgba(20,198,238,.45)}
.ev-fs[aria-invalid="true"] .ev-pill span{border-color:rgba(255,90,95,.55)}
.ev-small{display:block;margin-top:4px;font-size:12.5px;line-height:1.55;color:var(--tx-3)}
.ev-small a{color:var(--tx-2)}
.ev-send{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:4px}
.ev-send .ev-small{max-width:300px;margin:0}
.ev-done{display:grid;gap:10px;padding:20px 22px;border-radius:var(--r-md);border:1px solid rgba(20,198,238,.35);background:rgba(20,198,238,.06)}
.ev-done h3{font-size:21px}
.ev-done p{font-size:14.5px;color:var(--tx-2)}
.ev-done-a{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.ev-to{user-select:all;color:var(--tx-1)}
.ev-form.is-done > :not(.ev-done):not(h2){display:none}
.ev-next{padding:26px;border-radius:var(--r-xl);border:1px dashed var(--line-3);background:linear-gradient(180deg,var(--bg-2),var(--bg-1))}
.ev-next h3{font-size:21px}
.ev-next ol{margin:16px 0 0;padding:0;list-style:none;counter-reset:n;display:grid;gap:14px}
.ev-next li{counter-increment:n;display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;font-size:14.5px;line-height:1.6;color:var(--tx-2)}
.ev-next li::before{content:counter(n);width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(20,198,238,.6);color:var(--cyan-300);font:500 12px/1 var(--font)}
@media (max-width:1020px){.ev-caps{grid-template-columns:1fr 1fr}.ev-why,.ev-form-wrap{grid-template-columns:1fr}}
@media (max-width:700px){.ev-caps{grid-template-columns:1fr}.ev-meta{grid-template-columns:1fr}.ev-ctas .btn{flex:1 1 100%}}

/* Franja temporal de la home durante la feria */
.ev-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 14px;padding:10px 16px;background:linear-gradient(90deg,rgba(20,198,238,.14),rgba(255,0,153,.10));border-bottom:1px solid var(--line-1);font-size:14px;color:var(--tx-1);text-align:center}
.ev-strip a{color:var(--cyan-300);font-weight:500;text-decoration:none;border-bottom:1px solid rgba(125,227,247,.4)}
.ev-strip a:hover{color:var(--tx-1);border-color:var(--tx-1)}
.ev-hero{overflow:visible}.ev-hero .halo{top:-140px;height:calc(100% + 140px)}
@media (max-width:400px){.topnav .btn.nav-try{padding:0 12px}}
.ev-hero .halo{display:none}#view-scewc{background:radial-gradient(55% 520px at 86% 0%,rgba(20,198,238,.15),transparent 72%),radial-gradient(40% 420px at 0% 0%,rgba(255,0,153,.09),transparent 72%)}
/* Franja de la feria en magenta, bien visible */
.ev-strip{background:linear-gradient(90deg,#D6007F,#B3006B);border-bottom:0;color:#fff;font-weight:500;box-shadow:0 6px 24px -10px rgba(255,0,153,.6)}
.ev-strip a{color:#fff;font-weight:600;border-bottom:1.5px solid rgba(255,255,255,.75)}
.ev-strip a:hover{color:#fff;border-color:#fff}
.ev-strip a:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:2px}
