
/* Concepto: fotos reales del colegio como protagonistas; los 4 colores institucionales marcan niveles y accesos. Opción A = portada de foto completa; Opción B = collage alegre. */
:root{
  --blue:#1F55A6; --yellow:#F4B91F; --red:#D63A2F; --green:#2F9A5A; --on-yellow:#2A2205;
  --bg:#F5F8FC; --surface:#FFFFFF; --fg:#14213A; --muted:#51607A; --line:#DCE4F0; --soft:#E8EFFA; --ink:#0F2447;
  --font-d:"Bricolage Grotesque","Trebuchet MS",system-ui,sans-serif;
  --font-b:"Source Sans 3","Segoe UI",system-ui,sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --blue:#6A9BE6; --red:#EE6256; --green:#4DBE7C;
  --bg:#0E1930; --surface:#15233F; --fg:#EAF0FA; --muted:#A5B3CC; --line:#26385A; --soft:#1B2D4F; --ink:#0A1428; color-scheme:dark}}
:root[data-theme="dark"]{
  --blue:#6A9BE6; --red:#EE6256; --green:#4DBE7C;
  --bg:#0E1930; --surface:#15233F; --fg:#EAF0FA; --muted:#A5B3CC; --line:#26385A; --soft:#1B2D4F; --ink:#0A1428; color-scheme:dark}
body[data-opt="b"]{--font-d:"Fredoka","Trebuchet MS",system-ui,sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:400 17px/1.55 var(--font-b);padding-block:0}
.g{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.wrap{max-width:1120px;margin-inline:auto}
a{color:inherit} h1,h2,h3{font-family:var(--font-d);line-height:1.1;margin:0;text-wrap:balance} p{margin:0}
img{display:block;max-width:100%}
:focus-visible{outline:3px solid var(--yellow);outline-offset:3px;border-radius:6px}
[data-opt="a"] .onlyb,[data-opt="b"] .onlya{display:none!important}

/* Encabezado */
header.site{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:env(safe-area-inset-top,0px);z-index:20}
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:10px;position:relative}
.logo{background:#fff;border-radius:14px;padding:4px 10px;display:block}
.logo img{height:46px;width:auto}
nav>ul{list-style:none;display:flex;gap:2px;margin:0;padding:0;align-items:center}
nav li{position:relative}
nav a,nav .t{display:block;text-decoration:none;font:600 16px var(--font-b);padding:10px 13px;border-radius:999px;background:none;border:0;color:var(--fg);cursor:pointer}
nav a:hover,nav .t:hover{background:var(--soft)}
nav .t::after{content:"▾";margin-left:6px;font-size:12px;color:var(--muted)}
nav a.cta{background:var(--blue);color:#fff;margin-left:6px}
:root[data-theme="dark"] nav a.cta{color:#0B1424}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) nav a.cta{color:#0B1424}}
.sub{list-style:none;margin:0;padding:8px;position:absolute;left:0;top:100%;min-width:250px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 14px 30px rgba(10,20,40,.18);display:none;z-index:30}
.sub a{font-weight:400;border-radius:10px;padding:9px 12px}
li.open>.sub{display:block}
.menu-btn{display:none;font:600 15px var(--font-b);background:var(--soft);color:var(--fg);border:0;border-radius:999px;padding:10px 18px;cursor:pointer}
@media (max-width:900px){
  .menu-btn{display:block}
  nav{position:absolute;left:-8px;right:-8px;top:100%;background:var(--surface);border:1px solid var(--line);border-radius:0 0 18px 18px;padding:8px;box-shadow:0 14px 30px rgba(10,20,40,.18);max-height:75vh;overflow:auto}
  nav{display:none}
  nav.show{display:block}
  nav>ul{flex-direction:column;align-items:stretch}
  nav a.cta{margin:6px 0 0;text-align:center}
  .sub{display:block;position:static;box-shadow:none;border:0;padding:0 0 4px 14px;min-width:0}
  nav .t{width:100%;text-align:left;cursor:default}
  nav .t::after{content:""}
}

.btn{display:inline-block;text-decoration:none;font:700 17px var(--font-b);padding:14px 24px;border-radius:999px}
.btn.main{background:var(--yellow);color:var(--on-yellow)}
.btn.line{border:2px solid #fff;color:#fff}
.btn.line2{border:2px solid var(--blue);color:var(--blue)}
.eyebrow{display:inline-block;font:700 14px var(--font-b);letter-spacing:.09em;text-transform:uppercase;margin-bottom:14px}

/* Accesos */
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding-block:28px 12px}
.q{display:flex;flex-direction:column;gap:6px;text-decoration:none;padding:20px;border-radius:20px;color:#fff;min-height:120px;transition:transform .15s}
.q:hover{transform:translateY(-3px)}
.q b{font:700 21px var(--font-d)} .q small{font-size:15px;opacity:.93}
.q.blue{background:var(--blue)} .q.yellow{background:var(--yellow);color:var(--on-yellow)} .q.red{background:var(--red)} .q.green{background:var(--green)}
:root[data-theme="dark"] :is(.q.blue,.q.red,.q.green){color:#0B1424}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) :is(.q.blue,.q.red,.q.green){color:#0B1424}}
[data-opt="a"] .q{border-radius:6px}
@media (max-width:860px){.quick{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.quick{grid-template-columns:1fr}}

section.s{padding-block:44px 24px}
.head{max-width:36em;margin-bottom:26px}
.head h2{font-size:clamp(28px,4vw,42px);font-weight:700}
.head p{color:var(--muted);margin-top:10px}

/* Niveles con foto */
.levels{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.lv{background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;display:flex;flex-direction:column}
.lv .ph{aspect-ratio:4/3;overflow:hidden;position:relative}
.lv .ph img{width:100%;height:100%;object-fit:cover}
.lv .ph::after{content:"";position:absolute;left:0;right:0;bottom:0;height:8px;background:var(--c)}
.lv.blue{--c:var(--blue)} .lv.yellow{--c:var(--yellow)} .lv.red{--c:var(--red)} .lv.green{--c:var(--green)}
.lv .body{padding:18px 18px 22px;display:flex;flex-direction:column;gap:6px}
.lv .age{font:700 13px var(--font-b);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.lv h3{font-size:22px} .lv p{color:var(--muted);font-size:16px}
[data-opt="a"] .lv{border-radius:6px}
[data-opt="b"] .lv .ph{border-radius:0 0 60px 0}
@media (max-width:980px){.levels{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.levels{grid-template-columns:1fr}}

/* Galería */
.gal{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px;height:360px}
.gal img{width:100%;height:100%;object-fit:cover;border-radius:18px}
[data-opt="a"] .gal img{border-radius:4px}
@media (max-width:700px){.gal{grid-template-columns:1fr 1fr;height:auto}.gal img{height:200px}.gal img:first-child{grid-column:span 2;height:230px}}
.cap{font-size:14px;color:var(--muted);margin-top:10px}

/* Inteligencias */
.mi{background:var(--soft);border-radius:28px;padding:clamp(24px,5vw,48px);display:grid;grid-template-columns:1fr 1.1fr;gap:30px;align-items:center}
[data-opt="a"] .mi{border-radius:6px}
.mi h2{font-size:clamp(26px,4vw,38px)}
.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.chips li{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:9px 16px;font-weight:600;font-size:16px}
@media (max-width:820px){.mi{grid-template-columns:1fr}}

/* Documentos */
.docs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;list-style:none;margin:0;padding:0}
.docs a{display:flex;justify-content:space-between;align-items:center;gap:10px;text-decoration:none;font-weight:600;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.docs a:hover{border-color:var(--blue)} .docs a::after{content:"→";color:var(--blue)}
@media (max-width:820px){.docs{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.docs{grid-template-columns:1fr}}

/* Admisiones */
.adm{background:var(--blue);color:#fff;border-radius:28px;padding:clamp(26px,5vw,52px);display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:center}
[data-opt="a"] .adm{border-radius:6px}
:root[data-theme="dark"] .adm{background:#1B3A72}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .adm{background:#1B3A72}}
.adm h2{font-size:clamp(28px,4vw,40px)} .adm p{margin-top:10px;opacity:.93}
.nums{display:flex;flex-direction:column;gap:10px}
.nums div{background:rgba(255,255,255,.14);border-radius:16px;padding:14px 18px}
.nums small{display:block;font-size:13px;letter-spacing:.06em;text-transform:uppercase;opacity:.85}
.nums b{font:700 24px var(--font-d);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
@media (max-width:820px){.adm{grid-template-columns:1fr}}

footer{border-top:1px solid var(--line);margin-top:48px;padding-block:36px 44px}
.foot{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:28px}
.foot h3{font-size:18px;margin-bottom:10px}
.foot p,.foot li{color:var(--muted);font-size:16px}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.foot a{color:var(--blue);font-weight:600}
.slogan{font:700 21px var(--font-d);color:var(--fg)}
.note{margin-top:26px;font-size:14px;color:var(--muted);border-top:1px dashed var(--line);padding-top:14px}
@media (max-width:820px){.foot{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.q{transition:none}}

/* Franja superior */
.topbar{background:var(--ink);color:#fff;font-size:14px}
.tb{display:flex;justify-content:space-between;align-items:center;gap:8px 20px;flex-wrap:wrap;padding-block:8px}
.tb-l,.tb-r{display:flex;gap:6px 18px;flex-wrap:wrap;align-items:center}
.tb a{color:#fff;text-decoration:none;opacity:.92} .tb a:hover{opacity:1;text-decoration:underline}
.tb .pill{background:#fff;color:var(--ink);font-weight:700;border-radius:999px;padding:5px 14px;opacity:1}
@media (max-width:700px){.tb-l span:last-child{display:none}}
/* Botones del menú */
nav li.nb{margin-left:6px}
nav a.bn{border-radius:10px;font-weight:700;padding:10px 18px}
nav a.bn.blue{background:var(--blue);color:#fff} nav a.bn.yel{background:var(--yellow);color:var(--on-yellow)}
:root[data-theme="dark"] nav a.bn.blue{color:#0B1424}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) nav a.bn.blue{color:#0B1424}}
@media (max-width:900px){nav li.nb{margin:6px 0 0}nav a.bn{text-align:center}}
.quick{padding-top:36px}

.ban{background:var(--ink)}
.ban>a{display:block}
.ban img{width:100%;height:auto;margin-inline:auto;max-width:1920px}
.ban-m{display:none;padding-block:16px;text-align:center;background:var(--bg)}
@media (max-width:700px){.ban-m{display:block}}

[hidden]{display:none!important}
.docs .empty{padding:16px 18px;color:var(--muted)}
.news-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.news{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:20px;display:flex;flex-direction:column;gap:6px}
.news small{color:var(--muted);font-weight:700}.news h3{font-size:21px}.news p{color:var(--muted)}
@media (max-width:700px){.news-grid{grid-template-columns:1fr}}
.staff{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.staff li{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:14px 16px;display:flex;flex-direction:column}
.staff span{color:var(--muted);font-size:15px}
.gal.many{height:auto;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.gal.many img{height:200px}
.art{max-width:820px;margin:0 auto;padding-block:40px 24px}
.art .eb{font:700 14px var(--font-b);letter-spacing:.09em;text-transform:uppercase;color:var(--blue)}
.art h1{font-size:clamp(32px,5vw,48px);font-weight:800;margin:8px 0 22px}
.body-txt{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:clamp(20px,4vw,36px);line-height:1.7}
.body-txt h3{font-size:24px;margin:22px 0 8px}.body-txt h3:first-child{margin-top:0}.body-txt p{margin:0 0 14px}
.body-txt ul{padding-left:22px}.body-txt li{margin-bottom:6px}.body-txt a{color:var(--blue);font-weight:600}
.body-txt img{border-radius:10px;margin:12px 0}
.dg{margin-bottom:30px}.dg h2{font-size:28px;margin-bottom:12px}
.docs a[target]::after{content:"↗"}
.hero-m,.wa-float,.swipe{display:none}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:8px;background:#fff;color:#000;padding:8px 12px;z-index:99}

.slider{position:relative;border-radius:8px;overflow:hidden;background:var(--ink);aspect-ratio:16/9}
.sl-track{display:flex;height:100%;transition:transform .6s ease}
.sl-slide{min-width:100%;position:relative}
.sl-slide img{width:100%;height:100%;object-fit:cover;display:block}
.sl-cap{position:absolute;left:0;right:0;bottom:0;padding:48px 20px 18px;color:#fff;font-weight:700;font-size:18px;background:linear-gradient(transparent,rgba(10,20,40,.82))}
.sl-arr{position:absolute;top:50%;translate:0 -50%;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#0F2447;font-size:22px;cursor:pointer}
.sl-prev{left:12px}.sl-next{right:12px}
.sl-dots{position:absolute;bottom:12px;right:16px;display:flex;gap:7px}
.sl-dots button{width:10px;height:10px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.55);cursor:pointer}
.sl-dots button[aria-current=true]{background:var(--yellow);width:24px;border-radius:6px}
@media (max-width:700px){.slider{aspect-ratio:4/5}.sl-cap{font-size:16px}.sl-arr{width:38px;height:38px}}
@media (prefers-reduced-motion:reduce){.sl-track{transition:none}}
.albums{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.albums button{border:1px solid var(--line);background:var(--surface);color:var(--fg);padding:9px 16px;border-radius:999px;font:600 15px var(--font-b);cursor:pointer}
.albums button[aria-pressed=true]{background:var(--blue);color:#fff;border-color:var(--blue)}
.gl{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.gl button{padding:0;border:0;border-radius:8px;overflow:hidden;aspect-ratio:4/3;cursor:pointer;background:var(--line)}
.gl img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.gl button:hover img{transform:scale(1.05)}
.lb{position:fixed;inset:0;background:rgba(8,16,32,.94);display:grid;place-items:center;z-index:200;padding:16px}
.lb figure{margin:0;max-width:1000px;text-align:center}
.lb img{max-width:100%;max-height:78vh;border-radius:6px}
.lb figcaption{color:#fff;margin-top:10px}
.lb-x,.lb-p,.lb-n{position:absolute;width:46px;height:46px;border-radius:50%;border:0;background:#fff;color:#0F2447;font-size:22px;cursor:pointer}
.lb-x{top:calc(12px + env(safe-area-inset-top,0px));right:16px}.lb-p{left:12px;top:50%}.lb-n{right:12px;top:50%}
@media (max-width:700px){.gl{grid-template-columns:repeat(2,1fr)}}

/* ---------- Celular ---------- */
.wa-float{position:fixed;right:max(14px,env(safe-area-inset-right,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:40;align-items:center;justify-content:center;background:#25D366;color:#073B1A;width:56px;height:56px;border-radius:50%;box-shadow:0 8px 22px rgba(0,0,0,.28)}
.wa-float span{position:absolute;left:-9999px}.wa-float svg{width:30px;height:30px}
@media (max-width:700px){
  .wa-float{display:inline-flex}
  body{padding-bottom:0}
  /* franja superior: una sola línea */
  .tb{flex-wrap:nowrap;padding-block:7px;gap:10px}
  .tb-l .t2,.tb-l span:last-child:not(:first-child),.tb-r a:not([data-href="wa"]){display:none}
  .tb-r a[data-href="wa"]{background:#fff;color:var(--ink);font-weight:700;border-radius:999px;padding:4px 14px;opacity:1}
  .tb{font-size:14px}
  /* banner vertical */
  .ban{display:flex;flex-direction:column}
  .ban>a#banLink{display:block;order:1}
  .hero-m{display:block;position:relative;background:var(--ink);color:#fff;order:2}
  .hm-in{padding:16px max(16px,env(safe-area-inset-left,0px)) 18px;width:100%}
  .hm-tag,.hm-in p{display:none}
  .hm-in h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .hm-act{display:flex;flex-direction:column;gap:10px}
  .hm-act .btn{text-align:center}
  /* accesos 2 x 2 */
  .quick{grid-template-columns:1fr 1fr;gap:10px;padding-top:20px}
  .q{padding:14px;min-height:92px;border-radius:12px}
  .q b{font-size:18px;line-height:1.1}.q small{font-size:13px;line-height:1.25}
  /* menos espacio entre secciones */
  section.s{padding-block:26px 6px}
  .head{margin-bottom:16px}.head h2{font-size:27px}
  footer{margin-top:28px}
  /* niveles: se deslizan de lado */
  .swipe{display:block;color:var(--muted);font-size:14px;margin:-6px 0 10px}
  .levels{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;margin-inline:-16px;padding-inline:16px;scroll-padding-inline:16px;-webkit-overflow-scrolling:touch}
  .lv{flex:0 0 78%;scroll-snap-align:start}
  .gal{grid-template-columns:1fr 1fr}
}
@media (max-width:360px){.quick{grid-template-columns:1fr}}
