:root{
    --primary:#5281B6;
    --primary-600:#3A6EA2;
    --accent:#B2CAE3;
    --bg-hero:#0B1020;     /* mantiene contraste nocturno */
    --ink:#0b1220;
    --muted:#6b7280;
  }
  
  /* Base */
  *{ box-sizing: border-box; }
  html,body{ scroll-behavior:smooth; }
  body{ font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial; color:var(--ink); }
  h1,h2,h3,h4{ font-family:"Playfair Display", serif; letter-spacing:-.3px; }
  .fw-extrabold{ font-weight:800; }
  .text-secondary{ color:var(--muted)!important; }
  
  /* Brand images */
  .brand-logo{ height:32px; width:auto; filter: drop-shadow(0 0 0 rgba(0,0,0,0)); }
  .footer-logo{ height:44px; width:auto; }
  .hero-badge{ height:52px; width:auto; border-radius:8px; background: rgba(255,255,255,.06); padding:6px; }
  .hero-logo{ background:#ffffff; padding:12px; }
  
  /* Navbar */
  .bg-gradient-nav{
    background: linear-gradient(180deg, rgba(11,16,32,.92), rgba(11,16,32,.70));
    backdrop-filter: blur(6px);
  }
  .navbar .nav-link{ color:#e5e7eb; opacity:.9; }
  .navbar .nav-link:hover, .footer-link:hover{ opacity:1; color:#fff; }
  
  /* Hero con guiños al logo (aureola azul claro) */
  .hero{
    background:
     radial-gradient(1100px 520px at 10% 10%, rgba(178,202,227,.18), transparent 40%),
     radial-gradient(780px 470px at 90% 20%, rgba(82,129,182,.22), transparent 45%),
     var(--bg-hero);
    color:#fff;
  }
  .hero .underline{ box-shadow: inset 0 -0.4em rgba(178,202,227,.35); border-radius:.2em; }
  .text-gradient{
    background: linear-gradient(90deg, #fff, #e9f1fb);
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .hero .hero-card{ border:1px solid rgba(255,255,255,.15); }
  .glass{ background: rgba(255,255,255,.08); backdrop-filter: blur(10px); }
  .wave-sep svg{ width:100%; height:120px; fill:#fff; display:block; }
  .hero .py-7{ padding-top:7rem!important; }
  
  /* Badges */
  .badge-ubit{
    background: rgba(178,202,227,.22);
    color:#eaf3ff;
    border:1px solid rgba(178,202,227,.35);
    font-weight:700;
  }

  .badge-ubit-dark{
    background: rgba(11,16,32,.92);
    color: #ffffff;
    border:1px solid rgba(11,16,32,.92);
    font-weight:700;
  }
  
  /* Sections */
  .py-6{ padding:3rem 0; } .py-7{ padding:4.5rem 0; }
  .section-title{ font-weight:800; letter-spacing:-.5px; }
  
  /* Cards & effects */
  .lift{ transition: transform .25s ease, box-shadow .25s ease; }
  .lift:hover{ transform: translateY(-4px); box-shadow: 0 20px 30px rgba(0,0,0,.08); }
  .object-cover{ object-fit:cover; }
  .bg-soft{ background: #f8fafc; }
  .bg-soft-primary{ background: rgba(82,129,182,.10); }
  .badge.bg-soft-primary{ background: rgba(82,129,182,.15); color:var(--primary-600); }
  
  /* Servicios */
  .service{ padding:1.25rem; border-radius:1rem; background:#fff; border:1px solid #eef2f7; transition:transform .2s; }
  .service:hover{ transform: translateY(-3px); }
  
  /* Chips */
  .chip{ padding:.45rem .8rem; border-radius:2rem; background: #fff; border:1px solid #e5e7eb; font-weight:600; color:#374151; }
  
  /* Stats */
  .stat{ background:#fff; border:1px solid #eef2f7; padding:1.25rem; border-radius:1rem; }
  .stat-num{ font-weight:800; font-size:2rem; color:var(--primary-600); }
  .stat-label{ color:var(--muted); }
  
  /* CTA & Footer con tonos UBIT */
  .gradient-2{ background: linear-gradient(120deg, var(--primary), var(--primary-600) 60%, #111a3a); }
  .bg-footer{ background:#0b1220; }
  .footer-link { color:#e5e7eb; text-decoration:none; display:inline-block; margin:.25rem 0; opacity:.85; }
  .footer-link:hover { opacity:1; color:#fff; text-decoration:underline; }
  .hover-up{ transition: transform .2s ease, opacity .2s ease; }
  .hover-up:hover{ transform: translateY(-3px); opacity:1; }
  
  /* Reveal animations */
  .reveal{ opacity:0; transform: translateY(12px); transition: all .6s cubic-bezier(.2,.65,.2,1); }
  .reveal[data-reveal="fade"]{ transform:none; }
  .reveal-visible{ opacity:1; transform: none; }
  .reveal[data-reveal="up"].reveal-visible{ transform:none; }
  .reveal[data-reveal-delay]{ transition-delay: calc(var(--delay, 0ms)); }
  
  /* Helpers */
  .ratio-21x9{ --bs-aspect-ratio: 42.857%; }
  
  .rector-photo{ max-height: 420px; object-fit: cover; }

  .ratio-9x16 { --bs-aspect-ratio: 177.777%; }

  /* Botón Aula Virtual en navbar */
  #mainNav .btn.btn-light.btn-sm {
    border-radius: 999px;
  }
  #mainNav .btn.btn-light.btn-sm:hover {
    transform: translateY(-1px);
  }
