/* Navegación compartida */
.site-nav{
  position:sticky;
  top:0;
  z-index:1000;
  background:var(--navy,#0b1220);
  border-bottom:1px solid rgba(255,255,255,.12);
}
.site-nav .container{
  max-width:1180px;
  margin:0 auto;
  padding:0 16px;
}
.site-nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:68px;
}
.site-brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  color:#fff;
  text-decoration:none;
}
.site-brand span{
  font-weight:900;
  letter-spacing:-.02em;
  font-size:14px;
  white-space:nowrap;
}
.site-brand-mark{
  width:34px;
  height:34px;
  min-width:34px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.08);
  color:#93c5fd;
  font-weight:900;
  font-size:18px;
  line-height:1;
  border-radius:0;
}
.site-menu{
  display:none;
  align-items:center;
  gap:4px;
}
.site-link,
.site-dd-btn{
  min-height:74px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:0 10px;
  border:0;
  background:transparent;
  color:rgba(255,255,255,.82);
  font-family:inherit;
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-decoration:none;
  cursor:pointer;
}
.site-link:hover,
.site-dd-btn:hover{color:#fff}
.site-dd{position:relative;display:flex;align-self:stretch;align-items:center}
.site-dd-menu{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  min-width:270px;
  padding:8px;
  background:#0f172a;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 36px rgba(2,6,23,.22);
  border-radius:0;
}
.site-dd-menu::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-10px;
  height:10px;
}
.site-dd:hover .site-dd-menu,
.site-dd:focus-within .site-dd-menu,
.site-dd.is-open .site-dd-menu{display:block}
.site-dd-menu a{
  display:block;
  padding:12px;
  color:rgba(255,255,255,.88);
  font-size:13px;
  font-weight:800;
  text-decoration:none;
}
.site-dd-menu a:hover,
.site-dd-menu a:focus,
.site-dd-menu a[aria-current="page"]{
  background:rgba(255,255,255,.08);
  color:#fff;
  outline:none;
}
.site-cta{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:11px 15px;
  background:var(--blue,#1d4ed8);
  border:1px solid rgba(255,255,255,.10);
  color:#fff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-decoration:none;
  white-space:nowrap;
  border-radius:0;
}
.site-cta:hover{background:var(--blue2,#1e40af)}
.site-mobile-nav{position:relative;display:block;color:#fff}
.site-mobile-nav summary{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.12);
  color:#fff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  list-style:none;
  cursor:pointer;
  border-radius:0;
}
.site-mobile-nav summary::-webkit-details-marker{display:none}
.site-mobile-panel{
  position:absolute;
  right:0;
  top:54px;
  width:min(78vw,320px);
  padding:8px;
  background:#0f172a;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 36px rgba(2,6,23,.24);
  border-radius:0;
}
.site-mobile-panel a{
  display:block;
  padding:13px 12px;
  color:rgba(255,255,255,.9);
  font-size:13px;
  font-weight:850;
  letter-spacing:.02em;
  text-decoration:none;
}
.site-mobile-panel a:hover,
.site-mobile-panel a:focus{background:rgba(255,255,255,.07);color:#fff;outline:none}
.site-mobile-label{
  display:block;
  margin-top:8px;
  padding:10px 0 6px;
  color:#93c5fd;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.12em;
}
@media (max-width:420px){
  .site-brand span{max-width:140px;overflow:hidden;text-overflow:ellipsis;font-size:12px}
  .site-cta{display:none}
}
@media (min-width:900px){
  .site-menu{display:flex}
  .site-mobile-nav{display:none}
  .site-nav-inner{min-height:74px}
  .site-cta{min-height:48px;padding:12px 18px}
}

/* Accesibilidad visual de navegación */
.site-nav a:focus-visible,
.site-nav button:focus-visible,
.site-mobile-nav summary:focus-visible{
  outline:3px solid rgba(147,197,253,.9);
  outline-offset:3px;
}

/* Header visible en desktop */
@media (min-width:900px){
  body{padding-top:74px}
  .site-nav{
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:1200;
    background:rgba(11,18,32,.96);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(255,255,255,.14);
  }
}


/* Bloque 41 - corrección visual del toggle mobile */
.site-mobile-nav summary{
  width:44px;
  min-width:44px;
  padding:0;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  font-size:20px;
  line-height:1;
}
.site-mobile-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  transform:translateY(-1px);
}
.site-mobile-nav[open] summary{
  background:rgba(255,255,255,.10);
}
@media (max-width:480px){
  .site-nav-inner{
    gap:8px;
  }
}


/* Bloque 42 - corrección definitiva del details del menú móvil */
.site-nav .site-mobile-nav{
  position:relative;
  display:block;
  color:#fff;
  background:transparent;
  border:0;
  box-shadow:none;
  overflow:visible;
  border-radius:0;
}
.site-nav .site-mobile-nav summary{
  width:44px;
  min-width:44px;
  min-height:44px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:none;
  color:#fff;
  cursor:pointer;
  list-style:none;
  border-radius:0;
}
.site-nav .site-mobile-nav summary::-webkit-details-marker{display:none}
.site-nav .site-mobile-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  color:#fff;
  font-size:20px;
  line-height:1;
  transform:translateY(-1px);
}
.site-nav .site-mobile-nav[open] summary{
  background:rgba(255,255,255,.10);
}
.site-nav .site-mobile-panel{
  overflow:visible;
  border-radius:0;
}

/* Bloque 62 - menú mobile/desktop consolidado */
.site-nav .site-mobile-services{
  background:transparent;
  border:0;
  box-shadow:none;
  overflow:visible;
  border-radius:0;
  margin:2px 0;
}
.site-nav .site-mobile-services summary{
  min-height:44px;
  width:100%;
  padding:13px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);
  color:rgba(255,255,255,.92);
  font-size:13px;
  font-weight:850;
  letter-spacing:.02em;
  cursor:pointer;
  list-style:none;
  border-radius:0;
}
.site-nav .site-mobile-services summary::-webkit-details-marker{display:none}
.site-nav .site-mobile-services[open] summary{
  background:rgba(255,255,255,.08);
  color:#fff;
}
.site-nav .site-mobile-services-panel{
  padding:6px 0 6px 10px;
  border-left:1px solid rgba(147,197,253,.32);
  margin-left:10px;
}
.site-nav .site-mobile-services-panel a{
  padding:11px 12px;
  font-size:12px;
}
@media (min-width:900px){
  .site-nav .site-mobile-nav,
  .site-nav details.site-mobile-nav,
  .site-nav .site-nav-toggle{
    display:none !important;
    visibility:hidden !important;
  }
  .site-nav .site-menu,
  .site-nav .site-links{
    display:flex !important;
  }
}
@media (max-width:899px){
  .site-nav .site-menu,
  .site-nav .site-links{
    display:none !important;
  }
  .site-nav .site-mobile-nav{
    display:block !important;
    visibility:visible !important;
  }
  .site-nav .site-mobile-panel{
    max-height:calc(100vh - 80px);
    overflow-y:auto;
  }
}

/* Bloque 64 - servicios del menú móvil plegado por defecto */
.site-nav .site-mobile-services:not([open]) .site-mobile-services-panel{
  display:none !important;
}
.site-nav .site-mobile-services[open] .site-mobile-services-panel{
  display:block !important;
}
@media (min-width:900px){
  .site-nav .site-mobile-nav,
  .site-nav details.site-mobile-nav,
  .site-nav .site-nav-toggle{
    display:none !important;
    visibility:hidden !important;
  }
  .site-nav .site-menu,
  .site-nav .site-links{
    display:flex !important;
  }
}
@media (max-width:899px){
  .site-nav .site-menu,
  .site-nav .site-links{
    display:none !important;
  }
  .site-nav .site-mobile-nav{
    display:block !important;
    visibility:visible !important;
  }
  .site-nav .site-mobile-panel{
    max-height:calc(100vh - 80px);
    overflow-y:auto;
  }
}

