/* M360 · v1.2 · secciones según la presentación institucional 2026 + ajustes de accesibilidad (UX)
   Mobile first: base para celular, ampliaciones en 640 / 900 / 1100 px. */

/* --- Accesibilidad: contraste mínimo 4,5:1 para textos chicos (WCAG AA) -------------------------
   Los colores de marca (#7088C8, #808080) se mantienen en logos, botones y elementos grandes;
   para textos pequeños se usan variantes más oscuras del mismo tono. */
:root{--blue-tx:#4F5B95;--grey-tx:#666B73}
.label{color:var(--blue-tx)}
.topbar,.topbar a,.form label,.form .note{color:var(--grey-tx)}
.topbar a:hover{color:var(--navy)}
/* Áreas táctiles de al menos 44 px */
.langs a{display:inline-flex;align-items:center;min-height:32px;padding:0 .2rem}
.menu-btn{min-height:44px;min-width:44px}
@media(max-width:900px){nav.main a{min-height:48px;display:flex;align-items:center}}
.btn{min-height:44px}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:6px}
img{height:auto}
section[id]{scroll-margin-top:84px}
.sec-head.center{margin-inline:auto;text-align:center}
.sub-h{font-size:1.05rem;margin:2.4rem 0 1rem;color:var(--navy)}
.hero .label{margin-bottom:.9rem}
.hs-h{font-size:1rem;color:var(--navy);margin-bottom:.9rem;line-height:1.35}

/* --- Cifras ---------------------------------------------------------------------------------- */
.stats{padding:0;margin-top:-1rem}
.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.stat-grid div{background:#fff;padding:1.2rem 1rem;text-align:center}
.stat-grid dt{font-size:clamp(1.7rem,4vw,2.4rem);font-weight:800;color:var(--btn);line-height:1}
.stat-grid dd{margin:.45rem 0 0;font-size:.86rem;color:var(--ink-2);line-height:1.35}
@media(min-width:900px){.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* --- Misión, visión y valores ---------------------------------------------------------------- */
.mvv-grid{display:grid;gap:1rem}
.mvv-card{background:linear-gradient(160deg,#7C93CF 0%,var(--btn) 100%);color:#fff;border-radius:22px;padding:1.6rem 1.5rem}
.mvv-card h3{color:#fff;font-size:1.05rem;letter-spacing:.12em;text-transform:uppercase;margin:.8rem 0 .5rem}
.mvv-card p{color:#fff;font-size:1rem;line-height:1.55}
.mvv-ic{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.18)}
.mvv-ic svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(min-width:900px){.mvv-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* --- Historia y reconocimiento --------------------------------------------------------------- */
.hist-grid{display:grid;gap:2rem;align-items:center}
.rec{margin-top:1.5rem;padding:1.3rem 1.4rem;border-left:4px solid var(--btn);background:var(--soft);border-radius:0 16px 16px 0}
.rec h3{font-size:1.1rem;margin:.4rem 0 .5rem}
.rec p{color:var(--ink-2);font-size:.95rem}
.hist-ph{margin:0;position:relative}
.hist-ph>img{width:100%;border-radius:22px;display:block;box-shadow:0 18px 40px -24px rgba(27,35,60,.55)}
.hist-ph figcaption{margin-top:1rem}
.hist-ph .placa{width:min(320px,70%);border-radius:14px;border:4px solid #fff;box-shadow:0 10px 30px -14px rgba(27,35,60,.5);display:block}
@media(min-width:900px){
  .hist-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:3rem}
  .hist-ph figcaption{position:absolute;right:-1rem;bottom:-1.6rem;margin:0}
  .hist-ph .placa{width:240px}
}

/* --- Certificaciones ------------------------------------------------------------------------- */
.cert-row{display:grid;gap:1rem}
.cert{margin:0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.2rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.8rem}
.cert img{max-height:110px;width:auto}
.cert figcaption{font-size:.86rem;color:var(--ink-2);line-height:1.4}
.cert figcaption b{display:block;color:var(--navy);font-size:.95rem}
@media(min-width:640px){.cert-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
.award-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.award{margin:0;text-align:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem .8rem}
.award img{max-height:120px;width:auto;margin:0 auto;display:block}
.award figcaption{margin-top:.6rem;font-size:.8rem;color:var(--ink-2);line-height:1.35}
@media(min-width:640px){.award-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1100px){.award-row{grid-template-columns:repeat(5,minmax(0,1fr))}}
.trophies{list-style:none;margin:2rem 0 0;padding:0;display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}
.trophies li{width:clamp(96px,26vw,150px);aspect-ratio:1;border-radius:50%;overflow:hidden;border:5px solid #fff;box-shadow:0 0 0 2px var(--tint)}
.trophies img{width:100%;height:100%;object-fit:cover}

/* --- Membresías ------------------------------------------------------------------------------ */
.memb-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:center}
.memb-row li{display:flex;align-items:center;justify-content:center;min-height:88px;padding:.8rem;border:1px solid var(--line);border-radius:16px;background:#fff}
.memb-row img{max-height:58px;width:auto;max-width:100%}
@media(min-width:640px){.memb-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1100px){.memb-row{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* --- Servicios (3 bloques) ------------------------------------------------------------------- */
.svc-grid{display:grid;gap:1rem}
.svc{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.5rem;display:flex;flex-direction:column;gap:.7rem}
.svc-n{font-weight:800;font-size:1.4rem;color:var(--tint);line-height:1}
.svc h3{font-size:1.12rem;line-height:1.3}
.svc ul{margin:0;padding-left:1.1rem;color:var(--ink-2);font-size:.93rem;display:flex;flex-direction:column;gap:.35rem}
.svc .more{margin-top:auto;padding-top:.6rem;font-weight:700;color:var(--blue-tx);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.svc .more:hover{text-decoration:underline}
@media(min-width:900px){.svc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* --- Experiencias positivas: muro de logos --------------------------------------------------- */
.logo-wall{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.logo-wall li{display:flex;align-items:center;justify-content:center;height:76px;padding:.6rem;background:#fff;border:1px solid var(--line-2);border-radius:12px}
.logo-wall img{max-height:52px;max-width:100%;width:auto;object-fit:contain}
@media(min-width:640px){.logo-wall{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:900px){.logo-wall{grid-template-columns:repeat(6,minmax(0,1fr));gap:.8rem}.logo-wall li{height:86px}}
@media(min-width:1100px){.logo-wall{grid-template-columns:repeat(8,minmax(0,1fr))}}

/* --- Reseñas con logo ------------------------------------------------------------------------ */
.reviews{display:grid;gap:1rem}
.review{margin:0;background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.5rem;display:flex;flex-direction:column;gap:.9rem}
.rv-logo{height:56px;display:flex;align-items:center}
.rv-logo img{max-height:52px;width:auto;max-width:180px}
.review p{color:var(--ink-2);font-size:.98rem;line-height:1.6}
.review p::before{content:"“"}.review p::after{content:"”"}
.review cite{margin-top:auto;font-style:normal;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-tx)}
@media(min-width:900px){.reviews{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* --- Encuentros ------------------------------------------------------------------------------ */
.hitos{display:grid;gap:1rem;margin-bottom:1.8rem}
.hito{display:flex;gap:1rem;align-items:center;background:var(--soft);border-radius:18px;padding:1rem 1.2rem}
.hito img{width:96px;height:48px;object-fit:contain;flex:none;background:#fff;border-radius:10px;padding:.3rem}
.hito p{font-size:.93rem;color:var(--ink-2);line-height:1.45}
.hito b{color:var(--navy)}
@media(min-width:900px){.hitos{grid-template-columns:repeat(3,minmax(0,1fr))}}
.gallery{list-style:none;margin:0;padding:0;columns:2;column-gap:.6rem}
.gallery li{break-inside:avoid;margin-bottom:.6rem}
.gallery a{display:block;border-radius:14px;overflow:hidden;background:var(--soft)}
.gallery img{width:100%;display:block;transition:transform .3s ease}
.gallery a:hover img{transform:scale(1.04)}
@media(min-width:640px){.gallery{columns:3}}
@media(min-width:1100px){.gallery{columns:4;column-gap:.8rem}.gallery li{margin-bottom:.8rem}}
.frases{display:grid;gap:1rem;margin-top:1.6rem}
.frase{margin:0;font-size:clamp(1.1rem,2.4vw,1.4rem);font-weight:700;color:var(--navy);padding:1.2rem 1.4rem;border-radius:18px;background:linear-gradient(100deg,var(--soft),#fff)}
@media(min-width:900px){.frases{grid-template-columns:1fr 1fr}}

/* --- Prensa ---------------------------------------------------------------------------------- */
.press-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
.press{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}
.press:hover{border-color:var(--blue);transform:translateY(-2px)}
.press img{width:100%;aspect-ratio:4/5;object-fit:contain;object-position:center;background:#F3F5FA;display:block;border-bottom:1px solid var(--line-2)}
.press-tx{padding:.8rem .9rem 1rem;font-size:.84rem;line-height:1.4;color:var(--ink-2)}
.press-tx b{display:block;color:var(--navy);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.3rem}
@media(min-width:640px){.press-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1100px){.press-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* --- Filiales -------------------------------------------------------------------------------- */
.fil-grid{display:grid;gap:1rem}
.fil{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.5rem;display:flex;flex-direction:column;gap:.7rem}
.fil-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:72px}
.fil-logo img{max-height:64px;width:auto;max-width:170px}
.fil-name{font-weight:800;font-size:1.8rem;color:var(--btn)}
.flag{width:54px;height:36px;object-fit:cover;border-radius:6px;box-shadow:0 0 0 1px var(--line);flex:none}
.fil h3{font-size:1.05rem}
.fil p{font-size:.92rem;color:var(--ink-2);line-height:1.5}
.fil-ct a{color:var(--blue-tx);font-weight:600}
@media(min-width:900px){.fil-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* --- Visor de imágenes (galería y prensa) ---------------------------------------------------- */
dialog.lb{border:0;padding:0;background:transparent;max-width:min(96vw,1100px);max-height:92vh}
dialog.lb::backdrop{background:rgba(15,20,35,.88)}
dialog.lb img{max-width:100%;max-height:86vh;display:block;border-radius:12px;margin:0 auto}
dialog.lb button{position:fixed;top:1rem;right:1rem;width:48px;height:48px;border-radius:50%;border:0;background:#fff;color:var(--navy);font-size:1.5rem;font-weight:700;cursor:pointer}
dialog.lb .lb-nav{top:50%;transform:translateY(-50%)}
dialog.lb .lb-prev{left:1rem;right:auto}
dialog.lb .lb-next{right:1rem}

@media (prefers-reduced-motion:reduce){.gallery img,.press{transition:none}.gallery a:hover img{transform:none}.press:hover{transform:none}}
