/* ===========================================================
   Componentes modernos reutilizables (ExtraMile 2026)
   Cabecera, rejillas de tarjetas, secciones feature, CTA.
   Usar en páginas con {% block body_class %}nav-solida{% endblock %}.
   =========================================================== */

/* --- Cabecera de página (gradiente violeta) --- */
.page-head{position:relative;overflow:hidden;padding:4.5rem 1rem 4rem;text-align:center;
  background:#3b3d68;background:linear-gradient(130deg,#505285 0%,#65689f 45%,#7e7ebb 75%,#b5aee4 100%);}
.page-head::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.08) 1.4px,transparent 1.5px);background-size:26px 26px;}
.page-head__in{position:relative;z-index:1;max-width:820px;margin:0 auto}
.page-head__eyebrow{font-size:.82rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.85);margin:0 0 1rem}
.page-head h1{font-size:clamp(2rem,4.6vw,3rem);font-weight:800;color:#fff;letter-spacing:-.01em;margin:0 0 1rem;line-height:1.14;text-shadow:0 2px 16px rgba(0,0,0,.18)}
.page-head p{color:rgba(255,255,255,.92);font-size:1.12rem;line-height:1.55;margin:0 auto;max-width:720px}

/* --- Rejilla de tarjetas --- */
.m-grid{max-width:1180px;margin:0 auto;padding:3.5rem 1rem 1rem;display:grid;gap:1.6rem}
.m-grid--2{grid-template-columns:repeat(2,1fr)}
.m-grid--3{grid-template-columns:repeat(3,1fr)}
.m-grid--4{grid-template-columns:repeat(4,1fr)}
.m-card{display:flex;flex-direction:column;text-align:center;align-items:center;background:#fff;border:1px solid #e3ecf3;
  border-radius:18px;padding:2.3rem 1.6rem;text-decoration:none;box-shadow:0 14px 38px rgba(20,33,44,.07);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.m-card:hover{transform:translateY(-5px);box-shadow:0 26px 58px rgba(20,33,44,.13);border-color:#d3e2ee}
.m-card__ico{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;margin:0 0 1.3rem;
  background:rgba(86,91,144,.12);color:#565b90;transition:transform .25s ease}
.m-card:hover .m-card__ico{transform:scale(1.06)}
.m-card__ico svg{width:34px;height:34px}
.m-card--amarillo .m-card__ico{background:rgba(251,188,5,.15);color:#f6ab00}
.m-card--azul .m-card__ico{background:rgba(66,133,244,.13);color:#4285f4}
.m-card--verde .m-card__ico{background:rgba(52,168,83,.13);color:#34a853}
.m-card--rojo .m-card__ico{background:rgba(234,67,53,.12);color:#ea4335}
.m-card--violeta .m-card__ico{background:rgba(86,91,144,.13);color:#565b90}
.m-card h3{font-size:1.14rem;font-weight:800;color:#14212c;margin:0 0 .7rem;letter-spacing:-.01em}
.m-card p{font-size:.96rem;color:#5a6b78;line-height:1.55;margin:0}
.m-card__more{margin-top:auto;padding-top:1rem;font-size:.9rem;font-weight:700;color:#565b90}
.m-card:hover .m-card__more{text-decoration:underline}

/* --- Sección feature (imagen + contenido) --- */
.m-feat{max-width:1100px;margin:0 auto;padding:3.5rem 1rem}
.m-feat__grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.m-feat__media{min-width:0}
.m-feat__media img{width:100%;height:auto;border-radius:16px;display:block}
.m-feat__eyebrow{font-size:.82rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#565b90;margin:0 0 .8rem;display:flex;align-items:center;gap:.5rem}
.m-feat__eyebrow svg{width:20px;height:20px}
.m-feat h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;color:#14212c;letter-spacing:-.01em;margin:0 0 1rem;line-height:1.18}
.m-feat__sub{color:#4a5b6b;font-size:1.05rem;line-height:1.6;margin:0 0 1.3rem}
.m-list{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.m-list li{display:flex;align-items:flex-start;gap:.8rem;color:#41525f;line-height:1.5;font-size:1rem}
.m-list li svg{flex:0 0 auto;width:21px;height:21px;margin-top:.15rem;color:#565b90}
.m-list li strong{color:#14212c}

/* --- Sección simple centrada --- */
.m-sec{max-width:980px;margin:0 auto;padding:3.5rem 1rem;text-align:center}
.m-sec h2{font-size:clamp(1.6rem,3.2vw,2.3rem);font-weight:800;color:#14212c;letter-spacing:-.01em;margin:0 0 1.2rem}
.m-sec p{color:#4a5b6b;font-size:1.08rem;line-height:1.65;margin:0 auto 1rem;max-width:760px}
.m-sec p strong{color:#14212c}

/* --- CTA banda violeta --- */
.m-cta{position:relative;overflow:hidden;text-align:center;padding:4rem 1rem;margin-top:1rem;
  background:linear-gradient(130deg,#505285 0%,#65689f 55%,#7e7ebb 100%)}
.m-cta::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.08) 1.4px,transparent 1.5px);background-size:26px 26px}
.m-cta__in{position:relative;z-index:1;max-width:720px;margin:0 auto}
.m-cta h2{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:800;color:#fff;margin:0 0 1.6rem;text-shadow:0 2px 16px rgba(0,0,0,.18)}
.m-cta a{display:inline-block;background:#fff;color:#565b90;font-weight:800;font-size:1.05rem;border-radius:12px;padding:.95rem 2rem;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}
.m-cta a:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(0,0,0,.2)}

@media (max-width:860px){
  .m-grid--2,.m-grid--3,.m-grid--4{grid-template-columns:1fr}
  .m-feat__grid{grid-template-columns:1fr;gap:2rem}
  .m-feat__media{order:-1}
}
@media (min-width:861px) and (max-width:1100px){
  .m-grid--4{grid-template-columns:repeat(2,1fr)}
}
