/* Navegación camaleónica LNXGEST: ninguna franja, sombra, cristal ni gradiente. */
:root {--lnx-accent:#04bde6; --lnx-header-height:74px;}
html {scroll-behavior:smooth;scroll-padding-top:calc(var(--lnx-header-height) + 22px)}
body {overflow-x:hidden}
section[id] {scroll-margin-top:calc(var(--lnx-header-height) + 22px)}
.lnx-skip {position:fixed;top:-120px;left:16px;z-index:99999;padding:12px 18px;background:#e7f9ff;color:#100b47;border-radius:8px}
.lnx-skip:focus {top:10px}
.lnx-header,.lnx-header * {box-sizing:border-box}
.lnx-header {position:fixed;top:0;left:0;right:0;z-index:10050;padding:13px 18px;pointer-events:none;transition:padding .25s ease;color:#fff;--lnx-link:#f5f7ff;--lnx-link-hover:#fff;--lnx-accent:#51e9ef;--lnx-hover:rgba(255,255,255,.10)}
.lnx-header.on-light {--lnx-link:#30354b;--lnx-link-hover:#111329;--lnx-accent:#009fc9;--lnx-hover:rgba(9,30,78,.065)}
.lnx-header-inner {pointer-events:auto;display:flex;justify-content:center;align-items:center;position:relative;width:min(1160px,100%);margin:0 auto;min-height:50px;padding:0 16px;background:transparent!important;border:0!important;box-shadow:none!important;outline:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.lnx-header.is-scrolled {padding-top:8px}
.lnx-nav {display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.lnx-nav .lnx-nav-link {position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:45px;padding:10px 13px;color:var(--lnx-link)!important;font:500 13px/1.25 'Roboto',Arial,sans-serif;text-decoration:none!important;border-radius:8px;transition:color .2s,background .2s}
.lnx-nav .lnx-nav-link:hover {background:var(--lnx-hover);color:var(--lnx-link-hover)!important}
.lnx-nav .lnx-nav-link.is-active {color:var(--lnx-accent)!important}
.lnx-nav .lnx-nav-link::after {content:"";position:absolute;bottom:4px;left:50%;width:0;height:2px;transform:translateX(-50%);border-radius:2px;background:var(--lnx-accent);transition:width .22s}
.lnx-nav .lnx-nav-link.is-active::after {width:calc(100% - 28px)}
.lnx-static-brand {position:absolute;z-index:10051;top:21px;left:max(24px,calc((100% - 1160px)/2));display:block;max-width:170px;padding:0;text-decoration:none!important}
.lnx-static-brand img {display:block;width:155px;max-width:100%;height:auto;object-fit:contain}
.lnx-static-brand:focus-visible,.lnx-nav-link:focus-visible,.lnx-menu-toggle:focus-visible,.lnx-top:focus-visible {outline:2px solid #51e9ef;outline-offset:3px}
.lnx-header-end {display:none}
.lnx-menu-toggle {display:none;flex-flow:column;gap:5px;justify-content:center;align-items:center;width:44px;height:44px;border:1px solid currentColor;border-radius:10px;background:transparent;color:var(--lnx-link);cursor:pointer}
.lnx-menu-toggle span {width:20px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s,opacity .2s}
.lnx-top {position:fixed;bottom:25px;right:25px;z-index:10020;display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(40,77,143,.2);border-radius:13px;background:#110c53;color:#68e7ed;font-size:25px;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.16);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s,transform .2s,visibility .2s}
.lnx-top.is-visible {opacity:1;visibility:visible;transform:translateY(0)}
.lnx-top:hover {background:#252079}
#contacto a[href^="tel:"],#contacto a[href^="mailto:"] {color:inherit;text-decoration:underline;text-decoration-color:#07b4dc;text-underline-offset:4px}
@media(max-width:1120px) {
 :root {--lnx-header-height:70px}
 .lnx-header {padding:10px 14px}
 .lnx-header-inner {justify-content:flex-end;min-height:52px;padding:0 8px}
 .lnx-header-end {display:flex;justify-content:flex-end}
 .lnx-menu-toggle {display:flex}
 .lnx-static-brand {top:21px;left:25px;max-width:145px}
 .lnx-static-brand img {width:145px}
 .lnx-nav {position:absolute;top:calc(100% + 7px);left:0;right:0;display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:10px;white-space:normal;border:1px solid rgba(90,150,200,.22);border-radius:14px;background:#10104d;box-shadow:0 15px 32px rgba(0,0,0,.2);opacity:0;visibility:hidden;transform:translateY(-8px);pointer-events:none;transition:opacity .2s,transform .2s,visibility .2s}
 .lnx-header.is-open .lnx-nav {opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
 .lnx-nav .lnx-nav-link {justify-content:flex-start;min-height:44px;padding:12px 15px;color:#f5f7ff!important;font-size:14px}
 .lnx-nav .lnx-nav-link:hover {color:#fff!important;background:rgba(255,255,255,.09)}
 .lnx-nav .lnx-nav-link.is-active {color:#51e9ef!important;background:rgba(81,233,239,.09)}
 .lnx-nav .lnx-nav-link::after {left:3px;top:12px;bottom:12px;width:2px!important;height:auto;transform:none;opacity:0}
 .lnx-nav .lnx-nav-link.is-active::after {opacity:1}
 .lnx-header.is-open .lnx-menu-toggle span:nth-child(1) {transform:translateY(7px) rotate(45deg)}
 .lnx-header.is-open .lnx-menu-toggle span:nth-child(2) {opacity:0}
 .lnx-header.is-open .lnx-menu-toggle span:nth-child(3) {transform:translateY(-7px) rotate(-45deg)}
}
@media(max-width:480px) { .lnx-header {padding:8px 12px} .lnx-static-brand {left:16px;top:18px} .lnx-static-brand img {width:118px} .lnx-top {right:14px;bottom:14px;width:43px;height:43px} }
@media(prefers-reduced-motion:reduce) {html {scroll-behavior:auto} .lnx-header,.lnx-nav,.lnx-nav-link,.lnx-nav-link::after,.lnx-menu-toggle span,.lnx-top {transition:none!important}}

/* Corrección del cruce entre curva azul y fondo blanco.
   Cada enlace ajusta su contraste individualmente, no toda la barra. */
@media(min-width:1121px) {
  .lnx-header .lnx-nav-link.on-light:not(.is-active) {color:#222842!important; text-shadow:0 1px 1px rgba(255,255,255,.65)}
  .lnx-header .lnx-nav-link.on-dark:not(.is-active) {color:#f5f7ff!important; text-shadow:0 1px 2px rgba(9,7,54,.8),0 0 2px rgba(9,7,54,.7)}
  .lnx-header .lnx-nav-link.on-light:hover {color:#101432!important}
  .lnx-header .lnx-nav-link.on-dark:hover {color:#fff!important}
  /* Los píxeles de la curva no se corresponden siempre con el fondo CSS:
     la pequeña sombra mantiene los caracteres legibles en esa transición. */
  .lnx-header .lnx-nav-link.on-dark { -webkit-text-stroke:.25px rgba(12,10,66,.65); }
  .lnx-header .lnx-nav-link.on-light { -webkit-text-stroke:.18px rgba(255,255,255,.60); }
}

/* Ajuste de legibilidad v2: superficie flotante sutil limitada al menú.
   No afecta al logo ni al diseño de la portada. */
@media (min-width:1121px) {
  .lnx-header .lnx-nav {
    padding: 3px 11px;
    border-radius: 15px;
    background: rgba(9, 10, 70, .43);
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 5px 20px rgba(8,10,50,.09);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    transition: background-color .25s ease,border-color .25s ease,box-shadow .25s ease;
  }
  .lnx-header.on-light .lnx-nav {
    background: rgba(255,255,255,.80);
    border-color: rgba(18,35,75,.08);
    box-shadow: 0 4px 18px rgba(14,29,77,.075);
  }
  .lnx-header:not(.on-light) .lnx-nav .lnx-nav-link:not(.is-active) {
    color: #f4f7ff !important;
    -webkit-text-stroke: 0;
    text-shadow: none;
  }
  .lnx-header.on-light .lnx-nav .lnx-nav-link:not(.is-active) {
    color: #303850 !important;
    -webkit-text-stroke: 0;
    text-shadow: none;
  }
  .lnx-header.on-light .lnx-nav .lnx-nav-link:hover { background: rgba(17,34,84,.06); }
  .lnx-header:not(.on-light) .lnx-nav .lnx-nav-link:hover { background: rgba(255,255,255,.09); }
}
@media (max-width:1120px) {
  .lnx-header .lnx-menu-toggle {background:rgba(11,16,80,.35);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .lnx-header.on-light .lnx-menu-toggle {background:rgba(255,255,255,.85)}
}
@media (prefers-reduced-motion:reduce) {
  .lnx-header .lnx-nav {transition:none!important}
}

/* La portada es oscura aunque su fondo se dibuje mediante imagen/pseudoelemento.
   Forzamos contraste claro y cristal azul al recorrer esa región. */
@media (min-width:1121px) {
  .lnx-header.on-hero .lnx-nav {
    background:rgba(16, 12, 78, .58);
    border-color:rgba(218,225,255,.15);
    box-shadow:0 5px 22px rgba(4,4,42,.13);
  }
  .lnx-header.on-hero .lnx-nav .lnx-nav-link:not(.is-active) {
    color:#f5f7ff!important;
    -webkit-text-stroke:0;
    text-shadow:none;
  }
}
