/* ============ TOKENS ============ */
  :root{
    --navy-900:#0a2540;
    --navy-700:#123a5e;
    --navy-500:#1e3a5f;
    --gold:#c9a961;
    --gold-dark:#a9824b;
    --cream:#faf7f2;
    --paper:#ffffff;
    --ink:#1c2b3a;
    --muted:#5b6b7c;
    --line:#e4ddd0;
    --shadow: 0 20px 50px -20px rgba(10,37,64,.25);
    --radius: 14px;
    --maxw: 1180px;
  }

  *{margin:0;padding:0;box-sizing:border-box;}

  html{scroll-behavior:smooth;}

  body{
    font-family:'Inter',system-ui,sans-serif;
    color:var(--ink);
    background:var(--paper);
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }

  img{max-width:100%;height:auto;display:block;}

  h1,h2,h3,h4{
    font-family:'Fraunces',Georgia,serif;
    color:var(--navy-900);
    font-weight:600;
    line-height:1.15;
  }

  a{color:inherit;}

  section{scroll-margin-top:92px;}

  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.5rem;}

  :focus-visible{
    outline:3px solid var(--gold);
    outline-offset:3px;
  }

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
  }

  /* ============ HEADER ============ */
  .header{
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(10px);
    position:sticky;
    top:0;
    z-index:1000;
    border-bottom:1px solid var(--line);
  }

  .nav{
    max-width:var(--maxw);
    margin:0 auto;
    padding:.85rem 1.5rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.5rem;
  }

  .brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;}
  .brand img{height:52px;width:auto;}
  .brand-text{font-family:'Fraunces',serif;font-weight:600;font-size:1.05rem;color:var(--navy-900);line-height:1.1;}
  .brand-text span{display:block;font-family:'Inter',sans-serif;font-weight:500;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dark);margin-top:.2rem;}

  .nav-menu{
    display:flex;
    list-style:none;
    align-items:center;
    gap:2.1rem;
  }

  .nav-menu a{
    text-decoration:none;
    color:var(--ink);
    font-size:.92rem;
    font-weight:500;
    position:relative;
    padding:.3rem 0;
  }
  .nav-menu a:not(.btn-primary)::after{
    content:'';
    position:absolute;
    left:0;bottom:-2px;
    width:0;height:2px;
    background:var(--gold);
    transition:width .25s ease;
  }
  .nav-menu a:not(.btn-primary):hover::after{width:100%;}

  .btn-primary{
    background:var(--navy-900);
    color:#fff !important;
    padding:.65rem 1.4rem;
    border-radius:999px;
    font-weight:600;
    font-size:.88rem;
    text-decoration:none;
    border:none;
    cursor:pointer;
    transition:background .25s ease, transform .25s ease;
    display:inline-block;
  }
  .btn-primary:hover{background:var(--gold-dark);transform:translateY(-1px);}

  /* Botón "Aplicar ahora" dentro del header/nav-menu — más específico
     que .btn-primary, así que estas reglas ganan sin tocar otros botones */

  .nav-menu .btn-primary{
    background:var(--gold);
    color:var(--navy-900) !important;
    border-radius:8px;
    padding:.2rem 1rem;
  }

  .nav-menu .btn-primary:hover{
    background:var(--gold-dark);
    color:#fff !important;
    transform:translateY(-1px);
  }

  .btn-secondary{
    background:transparent;
    color:#fff;
    padding:.75rem 1.6rem;
    border:1.5px solid rgba(255,255,255,.55);
    border-radius:999px;
    text-decoration:none;
    font-weight:500;
    transition:all .25s ease;
    display:inline-block;
  }
  .btn-secondary:hover{background:#fff;color:var(--navy-900);border-color:#fff;}

  .menu-toggle{
    display:none;
    flex-direction:column;
    gap:5px;
    background:none;
    border:none;
    cursor:pointer;
    padding:.4rem;
  }
  .menu-toggle span{width:24px;height:2px;background:var(--navy-900);transition:.3s;}
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  /* ============ HERO ============ */
  .hero{
    position:relative;
    background:
      linear-gradient(160deg, rgba(10,37,64,.92), rgba(10,37,64,.78) 55%, rgba(18,58,94,.65)),
      url('img/Bla6.jpg') center/cover no-repeat;
    color:#fff;
    padding:7.5rem 1.5rem 6.5rem;
    overflow:hidden;
  }
  .hero::before{
    content:'';
    position:absolute;
    inset:auto -10% -30% auto;
    width:520px;height:520px;
    background:radial-gradient(circle, rgba(201,169,97,.25), transparent 70%);
    pointer-events:none;
  }
  .hero-inner{max-width:720px;margin:0 auto;text-align:center;position:relative;}
  .eyebrow{
    display:inline-flex;
    align-items:center;
    gap:.6rem;
    color:var(--gold);
    font-size:.8rem;
    letter-spacing:.18em;
    text-transform:uppercase;
    margin-bottom:1.4rem;
    font-weight:600;
  }
  .eyebrow::before,.eyebrow::after{content:'';width:24px;height:1px;background:var(--gold);}
  .hero h1{
    font-size:clamp(2.4rem, 5vw, 3.6rem);
    color:#fff;
    margin-bottom:.9rem;
  }
  .hero .tagline{
    font-family:'Fraunces',serif;
    font-style:italic;
    font-weight:400;
    font-size:clamp(1.1rem, 2vw, 1.4rem);
    color:var(--gold);
    margin-bottom:1.6rem;
  }
  .hero p.lede{
    font-size:1.05rem;
    opacity:.88;
    margin-bottom:2.4rem;
    max-width:560px;
    margin-left:auto;margin-right:auto;
  }
  .hero-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}

  /* ============ SECTION HEADINGS ============ */
  .section-head{text-align:center;max-width:640px;margin:0 auto 3.2rem;}
  .section-eyebrow{
    display:block;
    color:var(--gold-dark);
    font-size:.78rem;
    letter-spacing:.16em;
    text-transform:uppercase;
    font-weight:700;
    margin-bottom:.7rem;
  }
  .section-title{font-size:clamp(1.7rem,3vw,2.35rem);}
  .section-sub{color:var(--muted);margin-top:.9rem;font-size:1.02rem;}

  /* ============ ABOUT ============ */
  .about{padding:6rem 0;background:var(--paper);}
  .about-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2.5rem;}
  .about-card{
    background:var(--cream);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:2.4rem;
  }
  .about-icon{
    width:52px;height:52px;
    border-radius:50%;
    background:var(--navy-900);
    display:flex;align-items:center;justify-content:center;
    margin-bottom:1.3rem;
    padding:12px;
  }
  .about-icon img{filter:brightness(0) saturate(100%) invert(80%) sepia(24%) saturate(500%) hue-rotate(1deg);}
  .about-card h3{font-size:1.35rem;margin-bottom:.8rem;}
  .about-card p{color:var(--muted);}

  /* ============ VALUES ============ */
  .values{padding:6rem 0;background:var(--navy-900);color:#fff;}
  .values .section-title{color:#fff;}
  .values .section-eyebrow{color:var(--gold);}
  .values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;}
  .value-card{
    text-align:center;
    padding:2.2rem 1.4rem;
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.1);
    border-radius:var(--radius);
    transition:transform .3s ease, background .3s ease;
  }
  .value-card:hover{transform:translateY(-6px);background:rgba(255,255,255,.07);}
  .value-card .about-icon{background:var(--gold);margin:0 auto 1.2rem;}
  .value-card .about-icon img{filter:none;}
  .value-card h3{color:#fff;font-size:1.15rem;margin-bottom:.5rem;}
  .value-card p{color:rgba(255,255,255,.68);font-size:.92rem;}

  /* ============ PHILOSOPHY ============ */
  .philosophy{padding:6rem 0;background:var(--cream);}
  .philosophy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.8rem;}
  .philosophy-card{
    background:var(--paper);
    border-radius:var(--radius);
    padding:2rem 2rem 2rem 1.7rem;
    border-left:3px solid var(--gold);
    box-shadow:var(--shadow);
    position:relative;
  }
  .philosophy-num{
    font-family:'Fraunces',serif;
    font-size:.85rem;
    color:var(--gold-dark);
    font-weight:700;
    letter-spacing:.08em;
    display:block;
    margin-bottom:.6rem;
  }
  .philosophy-card h3{font-size:1.2rem;margin-bottom:.7rem;}
  .philosophy-card p{color:var(--muted);font-size:.96rem;}

  /* ============ STUDENT PROFILE ============ */
  .student-profile{padding:6rem 0;background:var(--paper);}
  .profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem;}
  .profile-item{
    display:flex;
    gap:1.1rem;
    background:var(--cream);
    border:1px solid var(--line);
    padding:1.6rem;
    border-radius:12px;
    align-items:flex-start;
    transition:border-color .25s ease;
  }
  .profile-item:hover{border-color:var(--gold);}
  .profile-check{
    width:30px;height:30px;flex-shrink:0;
    border-radius:50%;
    background:var(--navy-900);
    display:flex;align-items:center;justify-content:center;
    padding:7px;
  }
  .profile-check img{filter:brightness(0) saturate(100%) invert(80%) sepia(24%) saturate(500%) hue-rotate(1deg);}
  .profile-item h4{font-size:1.02rem;margin-bottom:.35rem;color:var(--navy-900);font-family:'Inter',sans-serif;font-weight:700;}
  .profile-item p{color:var(--muted);font-size:.92rem;}

  /* ============ ACADEMIC OFFER — signature timeline ============ */
  .academic-offer{padding:6.5rem 0 7rem;background:var(--navy-900);color:#fff;position:relative;overflow:hidden;}
  .academic-offer .section-title{color:#fff;}
  .academic-offer .section-eyebrow{color:var(--gold);}
  .academic-offer .section-sub{color:rgba(255,255,255,.7);}

  .rise-track{
    max-width:var(--maxw);
    margin:4.5rem auto 0;
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:1.2rem;
    align-items:end;
  }
  .rise-step{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    /* el transform no afecta el cálculo de alineación del grid,
       así que el escalonado se ve siempre, sin importar el
       largo del texto de cada tarjeta */
    transition:transform .3s ease;
  }
  /* staggered rise: each step sits a bit higher, echoing "Minds that Rise" */
  .rise-step:nth-child(1){transform:translateY(0);}
  .rise-step:nth-child(2){transform:translateY(-24px);}
  .rise-step:nth-child(3){transform:translateY(-48px);}
  .rise-step:nth-child(4){transform:translateY(-72px);}
  .rise-step:nth-child(5){transform:translateY(-96px);}

  .rise-dot{
    width:14px;height:14px;
    border-radius:50%;
    background:var(--gold);
    box-shadow:0 0 0 5px rgba(201,169,97,.18);
    margin-bottom:1rem;
    flex-shrink:0;
  }
  .rise-card{
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.12);
    border-radius:12px;
    padding:1.4rem 1.1rem;
    width:100%;
    height:210px;
    display:flex;
    flex-direction:column;
  }
  .rise-card h3{color:#fff;font-size:1.05rem;margin-bottom:.55rem;}
  .rise-card p{color:rgba(255,255,255,.65);font-size:.85rem;line-height:1.5;}

  @media (max-width:900px){
    .rise-track{grid-template-columns:1fr;gap:1rem;}
    .rise-step{transform:none !important;flex-direction:row;text-align:left;align-items:flex-start;gap:1rem;}
    .rise-card{height:auto;}
    .rise-dot{margin-bottom:0;margin-top:.4rem;}
  }

  /* ============ FACILITIES ============ */
  .facilities{padding:6rem 0;background:var(--paper);}
  .facility-image{
    aspect-ratio:4/3;
    border-radius:12px;
    overflow:hidden;
    background:linear-gradient(135deg,var(--navy-500),var(--navy-900));
  }
  .facility-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
  .facility-image:hover img{transform:scale(1.06);}

  /* ============ FACILITIES CAROUSEL ============ */
  .carousel{
    position:relative;
    max-width:900px;
    margin:0 auto;
  }
  .carousel-viewport{
    overflow:hidden;
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    background:linear-gradient(135deg,var(--navy-500),var(--navy-900));
  }
  .carousel-track{
    display:flex;
    transition:transform .5s cubic-bezier(.65,0,.35,1);
  }
  .carousel-slide{
    flex:0 0 100%;
    aspect-ratio:16/9;
  }
  .carousel-slide img{width:100%;height:100%;object-fit:cover;}

  .carousel-arrow{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:44px;height:44px;
    border-radius:50%;
    border:none;
    background:rgba(255,255,255,.92);
    color:var(--navy-900);
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;
    box-shadow:0 8px 20px rgba(10,37,64,.2);
    transition:background .2s ease, transform .2s ease;
  }
  .carousel-arrow:hover{background:var(--gold);color:#fff;}
  .carousel-arrow.prev{left:-14px;}
  .carousel-arrow.next{right:-14px;}

  @media (max-width:600px){
    .carousel-arrow{width:38px;height:38px;}
    .carousel-arrow.prev{left:8px;}
    .carousel-arrow.next{right:8px;}
  }

  .carousel-dots{
    display:flex;
    justify-content:center;
    gap:.55rem;
    margin-top:1.3rem;
  }
  .carousel-dots button{
    width:9px;height:9px;
    border-radius:50%;
    border:none;
    background:var(--line);
    cursor:pointer;
    padding:0;
    transition:background .25s ease, transform .25s ease;
  }
  .carousel-dots button.is-active{
    background:var(--gold);
    transform:scale(1.25);
  }

  /* ============ CONTACT ============ */
  .contact{padding:6rem 0;background:var(--cream);}
  .contact-methods{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1.5rem;
    max-width:var(--maxw);
    margin:0 auto 3.5rem;
  }
  .contact-method{
    text-align:center;
    padding:2rem 1.2rem;
    background:var(--paper);
    border-radius:12px;
    border:1px solid var(--line);
  }
  .contact-method-icon{font-size:1.7rem;margin-bottom:.8rem;}
  .contact-method h4{font-size:1rem;margin-bottom:.35rem;}
  .contact-method p{color:var(--muted);font-size:.92rem;}

  .contact-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:3rem;
    max-width:var(--maxw);
    margin:0 auto;
    align-items:start;
  }
  .contact-form{
    background:var(--paper);
    padding:2.3rem;
    border-radius:var(--radius);
    box-shadow:var(--shadow);
  }
  .form-group{margin-bottom:1.3rem;}
  .form-group label{display:block;margin-bottom:.4rem;font-weight:600;font-size:.9rem;}
  .form-group input,
  .form-group select,
  .form-group textarea{
    width:100%;
    padding:.75rem .9rem;
    border:1px solid var(--line);
    border-radius:8px;
    font-family:inherit;
    font-size:.95rem;
    background:var(--paper);
    color:var(--ink);
  }
  .form-group input:focus,
  .form-group select:focus,
  .form-group textarea:focus{border-color:var(--gold);}
  .form-group textarea{min-height:110px;resize:vertical;}
  .form-submit{
    width:100%;
    padding:.95rem;
    background:var(--navy-900);
    color:#fff;
    border:none;
    border-radius:8px;
    font-size:1rem;
    font-weight:600;
    cursor:pointer;
    transition:background .25s ease;
  }
  .form-submit:hover{background:var(--gold-dark);}

  .contact-aside h3{font-size:1.3rem;margin-bottom:1rem;}
  .contact-aside p{color:var(--muted);margin-bottom:1.4rem;}
  .contact-aside .facility-image{aspect-ratio:5/4;margin-bottom:1rem;}

  /* ============ FOOTER ============ */
  .footer{background:var(--navy-900);color:rgba(255,255,255,.85);padding:3.5rem 0 1.5rem;}
  .footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem;margin-bottom:2.5rem;}
  .footer-section h3{color:var(--gold);font-size:1.1rem;margin-bottom:1rem;}
  .footer-section p{color:rgba(255,255,255,.65);font-size:.92rem;}
  .footer-section a{display:block;color:rgba(255,255,255,.75);text-decoration:none;margin-bottom:.55rem;font-size:.92rem;transition:color .2s ease;}
  .footer-section a:hover{color:var(--gold);}
  .footer-bottom{text-align:center;padding-top:1.8rem;border-top:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.5);font-size:.85rem;}

  /* ============ WHATSAPP FLOAT ============ */
  .whatsapp-float{
    position:fixed;
    bottom:26px;right:26px;
    width:60px;height:60px;
    background:#25d366;
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 10px 30px rgba(0,0,0,.28);
    z-index:999;
    transition:transform .25s ease;
  }
  .whatsapp-float:hover{transform:scale(1.08);}
  .whatsapp-float img{width:30px;height:30px;}

  /* ============ REVEAL ANIMATION ============ */
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
  .reveal.is-visible{opacity:1;transform:translateY(0);}

  /* ============ RESPONSIVE ============ */
  @media (max-width:960px){
    .about-grid,.contact-layout{grid-template-columns:1fr;}
    .values-grid{grid-template-columns:repeat(2,1fr);}
    .profile-grid{grid-template-columns:1fr;}
    .facilities-grid{grid-template-columns:repeat(2,1fr);}
    .contact-methods{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr;gap:2rem;}
  }

  @media (max-width:768px){
    .menu-toggle{display:flex;}
    .nav-menu{
      position:absolute;top:100%;left:0;width:100%;
      background:var(--paper);
      flex-direction:column;
      align-items:stretch;
      gap:0;
      padding:.5rem 1.5rem 1.5rem;
      box-shadow:0 12px 20px rgba(0,0,0,.08);
      border-bottom:1px solid var(--line);
      transform:translateY(-8px);
      opacity:0;visibility:hidden;
      transition:.25s ease;
    }
    .nav-menu.active{transform:translateY(0);opacity:1;visibility:visible;}
    .nav-menu li{width:100%;border-bottom:1px solid var(--line);}
    .nav-menu li:last-child{border-bottom:none;margin-top:.6rem;}
    .nav-menu a{display:block;padding:.9rem 0;}
    .nav-menu a.btn-primary{text-align:center;padding:.85rem 1.4rem;}
    .hero{padding:5.5rem 1.2rem 4.5rem;}
    .facilities-grid{grid-template-columns:1fr;}
  }