/* Colegio Montessori de Los Mochis · estilos del sitio
   Paleta y tipografías del Kit de Identidad v1.1 (azul del escudo, vino, plata, marfil). */
:root{
  --azul:#282F52; --marino:#17233C; --vino:#781D25; --vino-osc:#5E151C;
  --plata:#C3C3C5; --marfil:#F6F3EE; --blanco:#FFFFFF;
  --texto:#4C5567; --linea:#DDDFE6; --linea-osc:rgba(255,255,255,.18);
  --sobre-osc:#FFFFFF; --sobre-osc-suave:#C9CFDE; --whatsapp:#1F7A4D;
  --display:"Montserrat","Segoe UI",Arial,sans-serif;
  --body:"Open Sans","Segoe UI",Arial,sans-serif;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--blanco);color:var(--texto);font:400 17px/1.65 var(--body);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:var(--vino)}
:focus-visible{outline:3px solid var(--plata);outline-offset:3px}
[hidden]{display:none!important}
.saltar{position:absolute;left:-9999px;top:0;background:var(--blanco);color:var(--azul);padding:.8em 1.2em;z-index:50;font:600 .9rem var(--display)}
.saltar:focus{left:16px;top:16px}
.wrap{max-width:var(--max);margin-inline:auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
h1,h2,h3,h4{font-family:var(--display);color:var(--azul);margin:0;text-wrap:balance;letter-spacing:-.02em;line-height:1.1}
h1{font-size:clamp(2.3rem,5.4vw,4.2rem);font-weight:700;letter-spacing:-.03em}
h2{font-size:clamp(1.8rem,3.4vw,2.7rem);font-weight:700}
h3{font-size:1.2rem;font-weight:700;letter-spacing:-.01em;line-height:1.25}
p{margin:0}
.eyebrow{font:600 .76rem/1.3 var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--vino)}
.lead{font-size:1.14rem;max-width:62ch}
.prosa{display:grid;gap:1.1rem;max-width:68ch}
.prosa ul,.prosa ol{margin:0;padding-left:1.2rem;display:grid;gap:.4rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font:600 .95rem/1 var(--display);letter-spacing:.02em;text-decoration:none;padding:1.05em 1.6em;border:2px solid transparent;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.btn-vino{background:var(--vino);color:var(--blanco)}
.btn-vino:hover{background:var(--vino-osc)}
.btn-linea{border-color:var(--linea-osc);color:var(--sobre-osc)}
.btn-linea:hover{border-color:var(--sobre-osc)}
.btn-azul{border-color:var(--azul);color:var(--azul)}
.btn-azul:hover{background:var(--azul);color:var(--blanco)}
.acciones{display:flex;gap:.9rem;flex-wrap:wrap}

/* Cabecera */
.cab{background:var(--marino);position:relative;z-index:10}
.cab .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:.9rem}
.cab .logo{display:flex;align-items:center;gap:.9rem;text-decoration:none;color:var(--sobre-osc)}
.cab .logo img{width:62px}
.cab .logo span{font:700 .95rem/1.15 var(--display);letter-spacing:.02em}
.cab .logo small{display:block;font:500 .72rem/1.3 var(--body);color:var(--sobre-osc-suave);letter-spacing:.04em}
.nav{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;justify-content:flex-end}
.nav a{font:600 .86rem/1 var(--display);color:var(--sobre-osc);text-decoration:none;letter-spacing:.02em;padding-block:.55em;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--plata)}
.nav .btn{padding:.85em 1.2em;border-bottom-width:2px}
.menu-btn{display:none;background:none;border:2px solid var(--linea-osc);color:var(--sobre-osc);font:600 .86rem/1 var(--display);padding:.8em 1em;cursor:pointer}

/* Portada de inicio */
.portada{background:var(--marino);color:var(--sobre-osc-suave);overflow:hidden}
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,5vw,4.5rem);align-items:center;padding-block:clamp(2.5rem,5vw,4rem) clamp(3.5rem,7vw,6rem)}
.hero .eyebrow{color:var(--plata)}
.hero h1{color:var(--sobre-osc);font-size:clamp(2.7rem,6.6vw,5.4rem);line-height:.98;margin-block:1.1rem 1.5rem}
.hero h1 span{display:block}
.hero .lead{color:var(--sobre-osc-suave)}
.hero .acciones{margin-top:2.1rem}
.hero-fotos{position:relative;padding:0 0 3.2rem 2.4rem}
.hero-fotos::before{content:"";position:absolute;right:-1.4rem;top:2.2rem;bottom:1.2rem;width:58%;background:var(--vino)}
.hero-fotos .a{position:relative;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 25%}
.hero-fotos .b{position:absolute;left:0;bottom:0;width:54%;aspect-ratio:3/2;object-fit:cover;border:6px solid var(--marino)}

/* Encabezado de páginas interiores */
.encabezado{background:var(--marino);color:var(--sobre-osc-suave)}
.encabezado .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(1.5rem,4vw,4rem);align-items:end;padding-block:clamp(2.5rem,5vw,4.5rem)}
.encabezado.sin-foto .wrap{grid-template-columns:minmax(0,1fr)}
.encabezado .eyebrow{color:var(--plata)}
.encabezado h1{color:var(--sobre-osc);margin-block:.8rem 1rem}
.encabezado .lead{color:var(--sobre-osc-suave)}
.encabezado img{width:100%;aspect-ratio:4/3;object-fit:cover;border-bottom:6px solid var(--vino)}
.migas{font-size:.82rem;color:var(--sobre-osc-suave);display:flex;gap:.4rem;flex-wrap:wrap}
.migas a{color:var(--sobre-osc-suave)}

/* Datos */
.datos{background:var(--azul)}
.datos dl{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.datos dl>div{padding:1.9rem 1.5rem;border-left:1px solid var(--linea-osc)}
.datos dl>div:first-child{border-left:0;padding-left:0}
.datos dt{font:700 clamp(1.8rem,3vw,2.5rem)/1 var(--display);color:var(--sobre-osc);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.datos dd{margin:.55rem 0 0;color:var(--sobre-osc-suave);font-size:.92rem;line-height:1.45}

.banda{padding-block:clamp(3.5rem,8vw,6.5rem)}
.banda.marfil{background:var(--marfil)}
.titulo{display:grid;gap:1rem;margin-bottom:clamp(2rem,4vw,3.2rem);max-width:780px}
.dos{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.dos.arriba{align-items:start}
.dos img{width:100%;aspect-ratio:4/3;object-fit:cover}

/* Niveles */
.niveles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.6rem}
.nivel{display:flex;flex-direction:column;text-decoration:none;color:var(--texto)}
.nivel figure{margin:0;overflow:hidden;aspect-ratio:3/4;background:var(--marfil)}
.nivel img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.nivel:hover img{transform:scale(1.04)}
.nivel .cuerpo{display:grid;gap:.5rem;padding-top:1.1rem;border-top:3px solid var(--azul);margin-top:1rem;flex:1;align-content:start}
.nivel .edad{font:600 .76rem/1.3 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--vino)}
.nivel .alt{font:500 .86rem/1.3 var(--display)}
.nivel p{font-size:.95rem;line-height:1.55}
.nivel .hora{font-size:.84rem;color:var(--azul);font-weight:600}
.nivel .ver{font:600 .86rem/1 var(--display);color:var(--vino);padding-top:.4rem}

/* Lista con líneas */
.lineas{list-style:none;margin:0;padding:0}
.lineas li{display:grid;gap:.35rem;padding-block:1.25rem;border-top:1px solid var(--plata)}
.lineas li:last-child{border-bottom:1px solid var(--plata)}
.lineas p{font-size:.98rem}
.rejilla{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2.5rem}
.rejilla.tres{grid-template-columns:repeat(3,minmax(0,1fr))}

/* Banda vino de inglés */
.vino{background:var(--vino);color:#F3DDE0}
.vino h2{color:var(--blanco)}
.vino .eyebrow{color:#E9C3C7}
.chips{display:flex;gap:.6rem;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.chips li{font:600 .82rem/1 var(--display);letter-spacing:.05em;color:var(--azul);border:1px solid var(--plata);padding:.65em .9em;background:var(--blanco)}
.vino .chips li{color:var(--blanco);border-color:rgba(255,255,255,.45);background:transparent}

/* Mosaico y galería */
.mosaico{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(240px,30vw,420px);gap:1rem}
.mosaico figure{margin:0;position:relative;overflow:hidden;background:var(--marino)}
.mosaico img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mosaico figcaption,.galeria figcaption{position:absolute;left:0;bottom:0;background:var(--marino);color:var(--sobre-osc);font:600 .8rem/1.2 var(--display);letter-spacing:.05em;padding:.7em 1em}
.m1{grid-column:span 7}.m2{grid-column:span 5}.m3{grid-column:span 4}.m4{grid-column:span 8}
.galeria{columns:3 300px;column-gap:1rem}
.galeria figure{margin:0 0 1rem;break-inside:avoid;position:relative}
.galeria a{display:block}

/* Pasos */
.pasos{list-style:none;counter-reset:p;margin:0;padding:0}
.pasos li{counter-increment:p;display:grid;grid-template-columns:3rem minmax(0,1fr);gap:.25rem 1rem;padding-block:1.3rem;border-top:1px solid var(--linea)}
.pasos li::before{content:counter(p);font:700 1.8rem/1 var(--display);color:var(--vino);grid-row:span 2;font-variant-numeric:tabular-nums}

/* Tabla */
.tabla{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--linea);vertical-align:top}
th{font:600 .78rem/1.3 var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--vino);border-bottom:2px solid var(--azul)}
td strong{color:var(--azul)}

/* Llamado final */
.llamado{background:var(--marino);color:var(--sobre-osc-suave)}
.llamado .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:center;padding-block:clamp(3rem,6vw,4.5rem)}
.llamado h2{color:var(--sobre-osc)}
.llamado .eyebrow{color:var(--plata)}

/* Contacto */
.tarjeta{background:var(--marfil);padding:clamp(1.4rem,3vw,2.2rem);display:grid;gap:1rem}
.dato{display:grid;gap:.15rem}
.dato span{font:600 .74rem/1.3 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--vino)}
.dato a,.dato b{font:600 1.1rem/1.4 var(--display);color:var(--azul);text-decoration:none}

/* Aviso de privacidad */
.legal{max-width:76ch;display:grid;gap:1.1rem}
.legal h2{font-size:1.4rem;margin-top:1.4rem}
.legal ul,.legal ol{margin:0;padding-left:1.3rem;display:grid;gap:.45rem}

/* Pie */
.pie{background:var(--marino);color:var(--sobre-osc-suave);font-size:.93rem}
.pie .cols{display:grid;grid-template-columns:auto repeat(3,minmax(0,1fr));gap:2.5rem;padding-block:3.5rem 2.5rem;align-items:start}
.pie img{width:120px}
.pie h2{color:var(--sobre-osc);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:.9rem}
.pie ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.pie a{color:var(--sobre-osc-suave);text-decoration:none}
.pie a:hover{color:var(--sobre-osc);text-decoration:underline}
.legalpie{border-top:1px solid var(--linea-osc);padding-block:1.2rem;font-size:.8rem;display:flex;justify-content:space-between;gap:.5rem 2rem;flex-wrap:wrap}

.wa{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:20;background:var(--whatsapp);color:#FFFFFF;text-decoration:none;font:600 .9rem/1 var(--display);padding:.9em 1.15em;display:inline-flex;gap:.55em;align-items:center;box-shadow:0 6px 20px rgba(23,35,60,.3)}
.wa svg{width:1.25em;height:1.25em;fill:#FFFFFF}

@media (max-width:1000px){
  .niveles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .datos dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .datos dl>div:nth-child(3){border-left:0;padding-left:0}
  .datos dl>div:nth-child(n+3){border-top:1px solid var(--linea-osc)}
  .pie .cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rejilla.tres{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .menu-btn{display:inline-flex}
  .cab .wrap{flex-wrap:wrap}
  .nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0;padding-bottom:1rem}
  .nav.abierto{display:flex}
  .nav a{padding-block:1em;border-bottom:1px solid var(--linea-osc)}
  .nav .btn{margin-top:1rem}
  .hero,.dos,.encabezado .wrap,.llamado .wrap{grid-template-columns:minmax(0,1fr)}
  .hero-fotos{padding-left:1.2rem;max-width:520px}
  .hero-fotos::before{right:-20px}
  .mosaico{grid-auto-rows:auto}
  .m1,.m2,.m3,.m4{grid-column:span 12;aspect-ratio:3/2}
}
@media (max-width:600px){
  body{font-size:16px}
  .cab .logo img{width:50px}
  .cab .logo small{display:none}
  .niveles,.rejilla,.rejilla.tres{grid-template-columns:minmax(0,1fr)}
  .nivel figure{aspect-ratio:4/3}
  .pie .cols{grid-template-columns:minmax(0,1fr);gap:2rem}
  .wa span{display:none}
}

/* Formulario de admisiones dentro del sitio */
.solicitud{background:var(--marfil);padding-block:1rem 1.5rem}
.solicitud .migas{color:var(--texto);margin-bottom:.8rem}
.solicitud .migas a{color:var(--texto)}
.solicitud-marco{max-width:900px;margin-inline:auto;padding-left:max(0px,env(safe-area-inset-left,0px));padding-right:max(0px,env(safe-area-inset-right,0px))}
.solicitud iframe{display:block;width:100%;height:calc(100vh - 150px);height:calc(100dvh - 150px);min-height:620px;border:0;background:var(--marfil)}
.ayuda-form{font-size:.85rem;margin-top:1rem;text-align:center}
.solicitud ~ * .wa, body:has(.solicitud) .wa{display:none}
