:root{
    --bg0:#050913;
    --bg1:#071026;
    --bg2:#071a33;
  
    --txt:#e8f2ff;
    --muted:#a9c3e6;
  
    --cyan:#38d7ff;
    --cyan2:#00a9ff;
    --blue:#2b67ff;
  
    --red:#ff375f;
  
    --shadow: 0 18px 60px rgba(0,0,0,.55);
  
    --radius:18px;
    --radius2:26px;
  
    --max:1120px;
  }
  
  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    margin:0;
    font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
    color:var(--txt);
    background: radial-gradient(900px 500px at 20% 15%, rgba(56,215,255,.12), transparent 60%),
                radial-gradient(700px 420px at 80% 20%, rgba(43,103,255,.12), transparent 55%),
                radial-gradient(700px 520px at 50% 85%, rgba(255,55,95,.10), transparent 65%),
                linear-gradient(180deg, var(--bg0), var(--bg1) 45%, var(--bg2));
    min-height:100vh;
    overflow-x:hidden;
  }
  
  a{ color:inherit; text-decoration:none; }
  .container{
    width:min(var(--max), calc(100% - 44px));
    margin-inline:auto;
  }
  
  /* NAV */
  .nav{
    position:sticky;
    top:0;
    z-index:50;
    backdrop-filter: blur(10px);
    background: linear-gradient(180deg, rgba(5,9,19,.82), rgba(5,9,19,.45));
    border-bottom:1px solid rgba(56,215,255,.14);
  }
  
  .nav-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding: 14px clamp(18px, 4vw, 52px);
  }
  
  /* Marca sin icono */
  .brand{
    display:flex;
    align-items:center;
    gap:0;
    min-width: 180px;
  }
  
  .brand-text h1{
    margin:0;
    font-size:14px;
    line-height:1.1;
    letter-spacing:.8px;
    text-transform:uppercase;
    color:var(--txt);
  }
  
  .brand-text p{
    margin:0;
    font-size:12px;
    color:var(--muted);
  }
  
  /* Separador vertical */
  .nav-sep{
    width: 1px;
    height: 34px;
    background: rgba(56,215,255,.20);
    margin: 0 6px;
  }
  
  /* Menú */
  .links{
    display:flex;
    gap:10px;
    flex-wrap:nowrap;
    align-items:center;
    margin-right:auto;
  }
  
  .links a{
    font-size:14px;
    color:var(--muted);
    padding:8px 10px;
    border-radius:12px;
    border:1px solid transparent;
    transition: .18s ease;
  }
  
  .links a:hover{
    color:var(--txt);
    border-color:rgba(56,215,255,.22);
    background:rgba(8,21,44,.35);
  }
  
  /* Logos header */
  .nav-logos{
    display:flex;
    align-items:center;
    gap:12px;
    margin-left: 8px;
  }
  
  .nav-logos a{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:6px 8px;
    border-radius:12px;
    border: 1px solid rgba(56,215,255,.10);
    background: rgba(6,14,30,.18);
    transition: .18s ease;
  }
  
  .nav-logos a:hover{
    transform: translateY(-1px);
    border-color: rgba(56,215,255,.22);
  }
  
  .nav-logos img{
    height: 26px;
    width: auto;
    object-fit: contain;
    opacity: .95;
    filter: drop-shadow(0 0 12px rgba(0,0,0,.55));
  }
  
  /* En móvil: ocultar logos para que no se rompa */
  @media (max-width: 900px){
    .nav-logos{ display:none; }
  }
  
  /* HERO */
  .hero{
    padding:54px 0 28px;
    position:relative;
  }
  
  .hero-card{
    border-radius: var(--radius2);
    border:1px solid rgba(56,215,255,.18);
    box-shadow: var(--shadow);
    padding:22px;
    position:relative;
    overflow:hidden;
  
    background-image:
        linear-gradient(90deg, rgba(5,9,19,.92), rgba(5,9,19,.55) 55%, rgba(5,9,19,.25)),
        radial-gradient(900px 380px at 20% 20%, rgba(56,215,255,.18), transparent 62%),
        radial-gradient(700px 320px at 70% 60%, rgba(255,55,95,.10), transparent 65%),
        url("/img/FondoPantalla.png");
    background-size: cover;
    background-position: center;
  }
  
  .hero-card > *{
    position:relative;
    z-index:1;
  }
  
  .hero-card .subtitle{
    max-width: 75ch;
  }
  
  .title{
    font-size: clamp(30px, 3.6vw, 52px);
    line-height:1.05;
    margin:0 0 14px;
    letter-spacing:.8px;
    text-transform:uppercase;
    color: #a8eaff;
    text-shadow: 0 0 18px rgba(56,215,255,.20);
  }
  
  .subtitle{
    margin:0 0 20px;
    color:var(--muted);
    font-size:16px;
    line-height:1.6;
    max-width:64ch;
  }
  
  .btn{
    display:inline-flex;
    font-size:13px;
    padding:10px 14px;
    border-radius:14px;
    border:1px solid rgba(56,215,255,.28);
    background: linear-gradient(135deg, rgba(56,215,255,.16), rgba(43,103,255,.12));
    color:var(--txt);
    box-shadow: 0 0 18px rgba(56,215,255,.10);
    transition:.18s ease;
    white-space:nowrap;
  }
  
  .btn:hover{
    transform: translateY(-1px);
    border-color:rgba(56,215,255,.40);
  }
  
  .btn.red{
    border-color:rgba(255,55,95,.40);
    background: linear-gradient(135deg, rgba(255,55,95,.18), rgba(56,215,255,.10));
    box-shadow: 0 0 18px rgba(255,55,95,.10);
  }
  
  /* SECTIONS */
  section{ padding:32px 0; }
  
  .section-title{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
    margin-bottom:14px;
  }
  
  .section-title h2{
    margin:0;
    font-size:18px;
    letter-spacing:.8px;
    text-transform:uppercase;
    color:#b8eeff;
  }
  
  .section-title p{
    margin:0;
    font-size:13px;
    color:var(--muted);
  }
  
  .divider{
    height:1px;
    background: linear-gradient(90deg, transparent, rgba(56,215,255,.28), transparent);
    margin:14px 0 18px;
  }
  
  .grid{
    display:grid;
    gap:16px;
  }
  
  .grid.cols-3{
    grid-template-columns: repeat(3, minmax(0,1fr));
  }
  
  .card{
    background: linear-gradient(180deg, rgba(8,21,44,.65), rgba(8,21,44,.25));
    border:1px solid rgba(56,215,255,.16);
    border-radius: var(--radius);
    box-shadow: 0 10px 38px rgba(0,0,0,.35);
    padding:16px;
    position:relative;
    overflow:hidden;
  }
  
  .card:before{
    content:"";
    position:absolute; inset:-20%;
    background: radial-gradient(240px 180px at 25% 30%, rgba(56,215,255,.10), transparent 65%);
    opacity:.9;
    pointer-events:none;
  }
  
  .card > *{ position:relative; }
  
  .tag{
    display:inline-flex;
    font-size:11px;
    padding:6px 10px;
    border-radius:999px;
    border:1px solid rgba(56,215,255,.22);
    color:var(--muted);
    background: rgba(6,14,30,.45);
  }
  
  .card h3{
    margin:10px 0 8px;
    font-size:15px;
    color:#e6f7ff;
    letter-spacing:.3px;
  }
  
  .card p{
    margin:0;
    font-size:13px;
    color:var(--muted);
    line-height:1.6;
  }
  
  /* NEWS */
  .news{
    display:grid;
    gap:12px;
  }
  
  .news-item{
    display:flex;
    gap:12px;
    align-items:flex-start;
    padding:14px;
    border-radius: 16px;
    background: rgba(6,14,30,.40);
    border:1px solid rgba(56,215,255,.14);
  }
  
  .dot{
    width:10px;height:10px;border-radius:50%;
    margin-top:5px;
    background: var(--red);
    box-shadow: 0 0 18px rgba(255,55,95,.35);
    flex:0 0 auto;
  }
  
  .news-item b{
    display:block;
    font-size:13px;
    color:#eaf8ff;
    margin-bottom:4px;
  }
  
  .news-item span{
    display:block;
    font-size:12px;
    color:var(--muted);
    line-height:1.55;
  }

  .news-body{
    flex: 1;
  }
  
  .news-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
  }
  
  .news-date{
    align-items: center;
    font-size: 12px;
    color: rgba(169,195,230,.85); /* similar a muted */
    white-space: nowrap;
    opacity: .95;
  }  
  
  /* FOOTER */
  .footer2{
    margin-top: 30px;
    padding: 28px 0 18px;
    border-top: 1px solid rgba(56,215,255,.14);
    background: linear-gradient(180deg, rgba(5,9,19,0), rgba(5,9,19,.55));
  }
  
  .footer2-wrap{
    width: min(1500px, calc(100% - 70px));
    margin-inline: auto;
  
    display: grid;
    gap: 18px;
  
    grid-template-columns: 420px 1fr 280px;
    grid-template-rows: 260px 130px;
    grid-template-areas:
      "logos mapa contacto"
      "ubicacion mapa contacto";
  }
  
  .f2-card{
    border-radius: 22px;
    border: 1px solid rgba(56,215,255,.14);
    background: rgba(6,14,30,.10);
    box-shadow: 0 18px 60px rgba(0,0,0,.35);
    padding: 16px 16px;
    overflow: hidden;
    position: relative;
  }
  
  .f2-title{
    margin: 0 0 12px;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .9px;
    color: #b8eeff;
  }
  
  .f2-text{
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.6;
  }
  
  .f2-logos{ grid-area: logos; }
  .f2-ubicacion{ grid-area: ubicacion; }
  .f2-mapa{ grid-area: mapa; padding: 16px; }
  
  /* LOGOS */
  .f2-logos-row{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    align-items: center;
  }
  
  .f2-logos-row img{
    width: 100%;
    height: 90px;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 0 16px rgba(0,0,0,.6));
    opacity: .98;
  }
  
  .f2-logos-row img:nth-child(3){
    grid-column: 1 / -1;
    height: 95px;
  }
  
  /* MAPA */
  .f2-map-box{
    height: calc(100% - 28px);
    border-radius: 18px;
    border: 1px solid rgba(56,215,255,.12);
    background: rgba(6,14,30,.14);
    overflow: hidden;
  }
  
  .f2-map-box iframe{
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
  }
  
  .f2-rightcol{
    grid-area: contacto;
    display: grid;
    grid-template-rows: auto 1fr;
    gap: 18px;
  }
  
  /* BOTTOM LINE */
  .footer2-bottom{
    width: min(1500px, calc(100% - 70px));
    margin: 14px auto 0;
    padding-top: 12px;
    border-top: 1px solid rgba(56,215,255,.10);
    color: var(--muted);
    font-size: 12px;
  }
  
  /* Responsive footer */
  @media (max-width: 1100px){
    .footer2-wrap{
      grid-template-columns: 1fr;
      grid-template-rows: auto;
      grid-template-areas:
        "mapa"
        "logos"
        "ubicacion"
        "contacto";
    }
    .f2-map-box{ height: 320px; }
  }
  
  /* enlaces */
  .f2-link{
    color: #b8eeff;
    text-decoration: none;
    border-bottom: 1px solid rgba(56,215,255,.25);
    transition: .18s ease;
  }
  
  .f2-link:hover{
    color: white;
    border-bottom-color: rgba(56,215,255,.55);
  }
  
  .f2-links-list{
    margin: 10px 0 0;
    padding-left: 18px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.6;
  }
  
  .f2-links-list a{
    color: var(--muted);
    text-decoration: none;
    font-weight: 600;
    transition: .18s ease;
  }
  
  .f2-links-list a:hover{
    color: #e8f2ff;
    text-decoration: underline;
  }
  
  .f2-links-list li::marker{
    color: #b8eeff;
  }
  