:root{
  --navy:#0B2545;--navy-mid:#14375E;--navy-lt:#1D4D80;
  --gold:#C8960C;--gold-hi:#E8B428;--gold-pale:#FEF6E0;
  --off:#F7F9FC;--gray:#E4E7EE;--muted:#7A8499;
  --text:#1A1F2E;--white:#FFFFFF;--r:12px;--rs:8px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:"Mulish",sans-serif;color:var(--text);background:var(--white);overflow-x:hidden;}
h1,h2,h3,h4,h5,h6{font-family:"Cormorant Garamond",serif;}
a{text-decoration:none;}
.lbl{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:8px;}
.sec-title{font-size:clamp(26px,4vw,44px);font-weight:700;line-height:1.1;color:var(--navy);}
.sec-title span{color:var(--gold);}
.sec-lead{font-size:15.5px;color:var(--muted);line-height:1.8;max-width:580px;}
.rule{width:48px;height:3px;background:var(--gold);border-radius:2px;margin:14px 0 22px;}
section{padding:96px 0;}
.sec-off{background:var(--off);}
.sec-navy{background:var(--navy);}

#navbar{background:var(--navy);border-bottom:3px solid var(--gold);position:sticky;top:0;z-index:1000;box-shadow:0 2px 20px rgba(0,0,0,.3);}
.brand{display:flex;align-items:center;gap:13px;padding:8px 0;}
.logo-wrap{width:52px;height:52px;border-radius:50%;background:#000;display:grid;place-items:center;flex-shrink:0;border:2px solid var(--gold);overflow:hidden;}
.logo-wrap img{width:46px;height:46px;object-fit:contain;}
.bname{font-family:"Cormorant Garamond",serif;font-size:17px;font-weight:700;color:var(--white);line-height:1.15;}
.bsub{font-size:9.5px;color:var(--gold-hi);letter-spacing:1.5px;text-transform:uppercase;font-family:"Mulish",sans-serif;}
.nl{font-size:13px;font-weight:600;letter-spacing:.3px;color:rgba(255,255,255,.75)!important;padding:20px 12px!important;border-bottom:2px solid transparent;transition:all .2s;}
.nl:hover,.nl.act{color:var(--white)!important;border-bottom-color:var(--gold-hi);}
.btn-portal{background:var(--gold-hi)!important;color:var(--navy)!important;border:2px solid var(--gold-hi)!important;font-weight:700!important;font-size:13px!important;padding:8px 18px!important;border-radius:6px!important;transition:all .25s;white-space:nowrap;line-height:1;font-family:"Mulish",sans-serif;}
.btn-portal:hover{background:transparent!important;color:var(--gold-hi)!important;}
.navbar-toggler{border:1.5px solid rgba(255,255,255,.25)!important;padding:6px 10px;border-radius:4px;}

#inicio{min-height:100vh;padding:0;position:relative;display:flex;align-items:center;}
.h-photo{position:absolute;inset:0;background:url("https://images.unsplash.com/photo-1503676260728-1c00da094a0b?w=1920&q=90&auto=format&fit=crop") center/cover no-repeat;}
.h-overlay{position:absolute;inset:0;background:linear-gradient(100deg,rgba(11,37,69,.97) 0%,rgba(11,37,69,.9) 42%,rgba(11,37,69,.5) 70%,rgba(11,37,69,.15) 100%);}
.h-content{position:relative;z-index:2;padding:130px 0 100px;}
.h-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(232,180,40,.1);border:1px solid rgba(232,180,40,.35);color:var(--gold-hi);font-size:11.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;padding:7px 15px;border-radius:4px;margin-bottom:24px;}
.h-title{font-size:clamp(40px,6vw,78px);font-weight:700;color:var(--white);line-height:1.02;margin-bottom:10px;}
.h-title em{color:var(--gold-hi);font-style:normal;}
.h-desc{font-size:17px;color:rgba(255,255,255,.62);max-width:510px;line-height:1.8;margin:18px 0 34px;font-weight:300;}
.btn-gld{background:var(--gold-hi);color:var(--navy);border:none;padding:13px 28px;font-weight:700;font-size:15px;border-radius:6px;transition:all .3s;display:inline-flex;align-items:center;gap:8px;font-family:"Mulish",sans-serif;cursor:pointer;}
.btn-gld:hover{background:var(--gold);color:var(--navy);transform:translateY(-2px);box-shadow:0 6px 20px rgba(200,150,12,.45);}
.btn-wht{background:transparent;color:var(--white);border:1.5px solid rgba(255,255,255,.38);padding:13px 28px;font-weight:600;font-size:15px;border-radius:6px;transition:all .3s;display:inline-flex;align-items:center;gap:8px;font-family:"Mulish",sans-serif;cursor:pointer;}
.btn-wht:hover{border-color:var(--white);background:rgba(255,255,255,.08);color:var(--white);}
.h-stats{display:flex;margin-top:52px;border-top:1px solid rgba(255,255,255,.1);padding-top:32px;flex-wrap:wrap;}
.hs{padding:0 32px 0 0;margin-right:32px;border-right:1px solid rgba(255,255,255,.1);}
.hs:last-child{border-right:none;margin-right:0;padding-right:0;}
.hs-n{font-family:"Cormorant Garamond",serif;font-size:38px;font-weight:700;color:var(--gold-hi);line-height:1;}
.hs-l{font-size:11.5px;color:rgba(255,255,255,.4);margin-top:5px;letter-spacing:.4px;}

.id-card{background:var(--white);border-radius:var(--r);border:1px solid var(--gray);padding:32px 28px;height:100%;transition:transform .3s,box-shadow .3s;}
.id-card:hover{transform:translateY(-4px);box-shadow:0 10px 32px rgba(0,0,0,.1);}
.id-card.dk{background:var(--navy);border-color:transparent;}
.id-ico{width:50px;height:50px;border-radius:10px;display:grid;place-items:center;font-size:21px;margin-bottom:18px;}
.id-card:not(.dk) .id-ico{background:var(--gold-pale);color:var(--navy);border:1px solid rgba(200,150,12,.22);}
.id-card.dk .id-ico{background:rgba(232,180,40,.12);color:var(--gold-hi);}
.id-card:not(.dk) h3{font-size:23px;color:var(--navy);margin-bottom:12px;font-weight:600;}
.id-card.dk h3{font-size:23px;color:var(--gold-hi);margin-bottom:12px;font-weight:600;}
.id-card:not(.dk) p{font-size:14px;color:var(--muted);line-height:1.8;}
.id-card.dk p{font-size:14px;color:rgba(255,255,255,.7);line-height:1.8;}
.sello-card{background:linear-gradient(135deg,var(--gold) 0%,var(--gold-hi) 100%);border-radius:var(--r);padding:28px;text-align:center;border:none;}
.sello-card i{font-size:32px;color:var(--navy);display:block;margin-bottom:12px;}
.sello-card h4{font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--navy);margin-bottom:8px;}
.sello-card p{font-family:"Cormorant Garamond",serif;font-size:22px;color:var(--navy);font-weight:700;line-height:1.3;margin:0;}
.chip{display:inline-flex;align-items:center;gap:5px;background:var(--white);border:1.5px solid var(--gray);border-radius:20px;padding:5px 12px;font-size:12.5px;font-weight:600;color:var(--navy);margin:3px;transition:all .2s;cursor:default;}
.chip:hover{border-color:var(--gold);background:var(--gold-pale);}
.chip i{color:var(--gold);font-size:12px;}
.tl{border-left:2px solid var(--gold);padding-left:28px;}
.tl-i{padding-bottom:26px;position:relative;}
.tl-i:last-child{padding-bottom:0;}
.tl-i::before{content:"";position:absolute;left:-35px;top:5px;width:14px;height:14px;border-radius:50%;background:var(--gold-hi);border:2px solid var(--off);}
.tl-yr{font-size:11px;font-weight:700;letter-spacing:1.5px;color:var(--gold);text-transform:uppercase;margin-bottom:3px;}
.tl-t{font-family:"Cormorant Garamond",serif;font-size:18px;font-weight:600;color:var(--navy);margin-bottom:4px;}
.tl-d{font-size:13.5px;color:var(--muted);line-height:1.65;}

.act-card{border-radius:var(--r);overflow:hidden;position:relative;height:220px;cursor:pointer;}
.act-card img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
.act-card:hover img{transform:scale(1.05);}
.act-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(11,37,69,.9) 0%,rgba(11,37,69,.3) 60%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:18px 16px;}
.act-tag{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold-hi);margin-bottom:4px;}
.act-title{font-family:"Cormorant Garamond",serif;font-size:19px;font-weight:700;color:var(--white);line-height:1.2;}
.act-desc{font-size:12px;color:rgba(255,255,255,.7);margin-top:4px;line-height:1.5;}

.intercultural-wrap{background:var(--navy);border-radius:var(--r);padding:36px 40px;border:1px solid rgba(232,180,40,.25);margin-top:60px;}
.intercultural-wrap h3{font-size:clamp(22px,3vw,34px);color:var(--white);font-weight:700;margin-bottom:12px;}
.intercultural-wrap h3 span{color:var(--gold-hi);}
.intercultural-wrap p{font-size:15px;color:rgba(255,255,255,.65);line-height:1.8;max-width:580px;}
.flag-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;}
.flag-pill{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:5px 14px;font-size:12.5px;color:rgba(255,255,255,.8);font-weight:500;}
.flag-pill span{font-size:16px;}

.school-badge{display:inline-flex;align-items:center;gap:10px;background:var(--navy);color:var(--white);border-radius:var(--rs);padding:11px 18px;font-size:13.5px;font-weight:600;margin-bottom:24px;}
.school-badge i{color:var(--gold-hi);font-size:17px;}
.lv{display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:var(--rs);border:1px solid var(--gray);margin-bottom:10px;transition:all .2s;}
.lv:hover{border-color:var(--gold);background:var(--gold-pale);}
.lv-dot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:15px;flex-shrink:0;}
.lv-dot.nv{background:var(--navy);color:var(--gold-hi);}
.lv-dot.gd{background:var(--gold-pale);color:var(--navy);border:1px solid rgba(200,150,12,.25);}
.lv-n{font-weight:600;font-size:14px;color:var(--navy);}
.lv-d{font-size:12px;color:var(--muted);}
.step{display:flex;gap:14px;padding:15px 0;border-bottom:1px solid var(--gray);}
.step:last-child{border-bottom:none;}
.sn{width:34px;height:34px;border-radius:50%;background:var(--navy);color:var(--gold-hi);display:grid;place-items:center;font-family:"Cormorant Garamond",serif;font-size:17px;font-weight:700;flex-shrink:0;}
.st-t{font-size:14px;font-weight:600;color:var(--navy);margin-bottom:2px;}
.st-d{font-size:13px;color:var(--muted);line-height:1.6;}

.f-card{background:var(--off);border:1px solid var(--gray);border-radius:var(--r);padding:38px;}
.fl{font-size:12.5px;font-weight:700;color:var(--navy);letter-spacing:.3px;margin-bottom:5px;display:block;}
.fi{width:100%;border:1.5px solid var(--gray);border-radius:var(--rs);padding:10px 13px;font-size:14px;font-family:"Mulish",sans-serif;color:var(--text);background:var(--white);outline:none;transition:border-color .2s,box-shadow .2s;}
.fi:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(11,37,69,.06);}
.fi-sel{background-repeat:no-repeat;background-position:right 12px center;padding-right:34px;}
.fg{margin-bottom:16px;}
.btn-sub{width:100%;padding:13px;background:var(--navy);color:var(--white);border:none;border-radius:var(--rs);font-size:15px;font-weight:700;font-family:"Mulish",sans-serif;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:8px;}
.btn-sub:hover{background:var(--navy-lt);transform:translateY(-1px);box-shadow:0 6px 18px rgba(11,37,69,.28);}
.f-note{font-size:12px;color:var(--muted);text-align:center;margin-top:10px;}

#documentos .sec-title{color:var(--white);}
#documentos .sec-lead{color:rgba(255,255,255,.55);}
.doc{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:var(--r);padding:20px 16px;display:flex;align-items:flex-start;gap:13px;transition:all .3s;text-decoration:none;}
.doc:hover{background:rgba(255,255,255,.1);border-color:rgba(232,180,40,.42);transform:translateY(-2px);}
.d-ico{width:42px;height:42px;border-radius:var(--rs);background:rgba(232,180,40,.1);border:1px solid rgba(232,180,40,.2);display:grid;place-items:center;font-size:19px;color:var(--gold-hi);flex-shrink:0;}
.d-title{font-size:14px;font-weight:600;color:var(--white);margin-bottom:3px;line-height:1.3;}
.d-desc{font-size:11.5px;color:rgba(255,255,255,.45);line-height:1.5;}
.d-dl{display:inline-flex;align-items:center;gap:4px;margin-top:7px;font-size:11px;font-weight:700;letter-spacing:.4px;color:var(--gold-hi);text-transform:uppercase;}

.ci{display:flex;gap:13px;padding:14px 0;border-bottom:1px solid var(--gray);}
.ci:last-child{border-bottom:none;}
.ci-ic{width:40px;height:40px;border-radius:var(--rs);background:var(--gold-pale);border:1px solid rgba(200,150,12,.2);display:grid;place-items:center;font-size:17px;color:var(--navy);flex-shrink:0;}
.ci-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:2px;}
.ci-val{font-size:14px;font-weight:500;color:var(--navy);}
.map-w{border-radius:var(--r);overflow:hidden;}
.map-w iframe{width:100%;height:370px;border:none;display:block;}
.how-card{background:var(--white);border-radius:var(--rs);padding:14px;border:1px solid var(--gray);display:flex;gap:10px;align-items:flex-start;}

footer{background:var(--navy);padding:52px 0 0;}
.ft-title{font-size:10.5px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);margin-bottom:16px;}
.ftl{list-style:none;padding:0;}
.ftl li{margin-bottom:8px;}
.ftl a{color:rgba(255,255,255,.58);font-size:13.5px;transition:color .2s;}
.ftl a:hover{color:var(--gold-hi);}
.ft-bot{border-top:1px solid rgba(255,255,255,.08);margin-top:40px;padding:18px 0;font-size:12px;color:rgba(255,255,255,.32);}
.sc{width:33px;height:33px;border-radius:50%;background:rgba(255,255,255,.07);display:inline-grid;place-items:center;font-size:14px;color:rgba(255,255,255,.58);margin-right:5px;transition:all .2s;}
.sc:hover{background:var(--gold-hi);color:var(--navy);}
.scc{width:33px;height:33px;border-radius:50%;background:rgba(255,255,255,.07);display:inline-grid;place-items:center;font-size:14px;color:var(--navy);margin-right:5px;transition:all .2s;}
.scc:hover{background:var(--gold-hi);color:var(--navy);}
#btt{position:fixed;bottom:22px;right:22px;width:42px;height:42px;background:var(--navy);color:var(--gold-hi);border-radius:50%;display:grid;place-items:center;font-size:17px;box-shadow:0 4px 14px rgba(0,0,0,.28);opacity:0;pointer-events:none;transition:all .3s;z-index:999;border:none;}
#btt.on{opacity:1;pointer-events:auto;}
#btt:hover{background:var(--gold-hi);color:var(--navy);}
@media(max-width:991px){section{padding:72px 0;}.nl{padding:11px 14px!important;border-bottom:1px solid rgba(255,255,255,.07)!important;}.nl.act{border-bottom-color:var(--gold-hi)!important;}.hs{padding-right:18px;margin-right:18px;}.intercultural-wrap{padding:28px 24px;}}
@media(max-width:767px){.h-title{font-size:38px;}.f-card{padding:22px;}.intercultural-wrap{padding:22px 18px;}}

/* ============================================================
   PRELOADER — pantalla de carga con el escudo del colegio
   ============================================================ */
#preloader{
  position:fixed;inset:0;z-index:99999;
  background:radial-gradient(120% 120% at 50% 20%,var(--navy-mid) 0%,var(--navy) 65%,#081a33 100%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;
  transition:opacity .5s ease,visibility .5s ease;
}
#preloader.pl-hidden{opacity:0;visibility:hidden;pointer-events:none;}
.pl-ring{
  position:relative;width:112px;height:112px;
  display:grid;place-items:center;
}
.pl-ring::before{
  content:"";position:absolute;inset:0;border-radius:50%;
  border:3px solid rgba(232,180,40,.18);
}
.pl-ring::after{
  content:"";position:absolute;inset:0;border-radius:50%;
  border:3px solid transparent;
  border-top-color:var(--gold-hi);
  border-right-color:var(--gold-hi);
  animation:pl-spin 1.1s linear infinite;
}
.pl-logo{
  width:78px;height:78px;border-radius:50%;object-fit:cover;
  border:2px solid var(--gold);
  background:#000;
  animation:pl-pulse 1.6s ease-in-out infinite;
  box-shadow:0 0 22px rgba(232,180,40,.35);
}
.pl-text{
  font-family:"Cormorant Garamond",serif;font-weight:700;font-size:16px;
  letter-spacing:2.5px;text-transform:uppercase;color:var(--gold-hi);
  opacity:.9;
}
@keyframes pl-spin{to{transform:rotate(360deg);}}
@keyframes pl-pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.06);}}
@media(prefers-reduced-motion:reduce){
  .pl-ring::after{animation-duration:2.2s;}
  .pl-logo{animation:none;}
}

/* ============================================================
   VALIDACIÓN DE FORMULARIO
   ============================================================ */
.fi.is-invalid{border-color:#D64545!important;box-shadow:0 0 0 3px rgba(214,69,69,.08)!important;}
.fi.is-valid{border-color:#2E9E5B!important;}
.fe{
  display:block;min-height:16px;font-size:11.5px;color:#D64545;
  margin-top:4px;font-weight:600;letter-spacing:.2px;
}
.form-status{
  font-size:13px;font-weight:600;text-align:center;margin-top:4px;min-height:0;
  border-radius:var(--rs);padding:0;transition:all .2s ease;
}
.form-status.show{padding:10px 12px;margin-bottom:4px;}
.form-status.ok{background:rgba(46,158,91,.1);color:#1E7A44;border:1px solid rgba(46,158,91,.3);}
.form-status.err{background:rgba(214,69,69,.08);color:#B23A3A;border:1px solid rgba(214,69,69,.28);}
.btn-sub[disabled]{opacity:.65;cursor:not-allowed;transform:none!important;}
