/* Contacto primero. Personalizaciones independientes del núcleo de Canvas. */
.contacto-primero .contacto-encabezado { margin-bottom: 1rem; }
.contacto-primero .contacto-titulo { margin-bottom: 0; font-size: 1.5rem; line-height: 1.4; text-align: center; text-transform: none; }
.contacto-primero .contacto-feature { --cnvs-featured-box-icon: 3rem; --cnvs-featured-box-plain-icon-size: 2.25rem; --cnvs-featured-box-plain-font-size: 2.25rem; margin: 2rem 0 0; padding: 0 1.5rem 1.5rem; height: calc(100% - 2rem); border-color: #e5e8eb; border-radius: 0; background: #fff; color: var(--cnvs-heading-color); text-decoration: none !important; transition: background-color .2s, border-color .2s; }
/* Dos tramos de borde dejan libre el icono, sin fondos que lo enmascaren. */
.contacto-primero .contacto-feature { position: relative; border-top-color: transparent; }
.contacto-primero .contacto-feature::before, .contacto-primero .contacto-feature::after { content: ""; position: absolute; top: -1px; width: calc(50% - 1.875rem); border-top: 1px solid #e5e8eb; pointer-events: none; transition: border-color .2s; }
.contacto-primero .contacto-feature::before { left: 0; }
.contacto-primero .contacto-feature::after { right: 0; }
.contacto-primero .contacto-feature .fbox-icon { width: 3.75rem; height: 3rem; margin: -1.5rem 0 1.25rem; background: transparent; }
.contacto-primero .contacto-feature .fbox-icon i { color: var(--cnvs-themecolor); }
.contacto-primero .contacto-feature .fbox-content { display: flex; flex-direction: column; align-items: center; flex: 1; width: 100%; min-width: 0; padding: 0; }
.contacto-primero .contacto-feature h3 { margin: 0; font-size: .875rem; line-height: 1.5; letter-spacing: .5px; font-weight: 500; text-transform: uppercase; }
.contacto-primero .contacto-feature h3 .subtitle { margin-top: .625rem; font-size: .875rem; font-weight: 400; line-height: 1.6; color: #626971; letter-spacing: 0; overflow-wrap: anywhere; }
.contacto-primero .contacto-accion { display: inline-flex; align-items: center; justify-content: center; gap: .375rem; margin-top: auto; padding-top: 1rem; font-size: .8125rem; color: var(--cnvs-themecolor); }
.contacto-primero .contacto-feature:hover { background-color: #f5f9fc; border-color: #88aabd; border-top-color: transparent; }
.contacto-primero .contacto-feature:hover::before, .contacto-primero .contacto-feature:hover::after { border-color: #88aabd; }
.contacto-primero .contacto-feature:focus-visible, .contacto-primero .contacto-redes-enlaces a:focus-visible { outline: 2px solid var(--cnvs-themecolor); outline-offset: 3px; }
.contacto-primero .contacto-sedes { margin-top: 1rem; }
.contacto-primero .contacto-sede { height: 100%; display: flex; flex-direction: column; }
.contacto-primero .contacto-sede .contacto-feature { height: auto; flex: 1; }
.contacto-primero .contacto-mapa { display: block; width: 100%; height: 300px; border: 1px solid #e5e8eb; border-top: 0; }
.contacto-primero .contacto-redes { margin-top: 2.5rem; padding: 2rem 1.25rem; background: #f5f7f9; }
.contacto-primero .contacto-redes h2 { margin: 0 0 1.25rem; font-size: 1.25rem; font-weight: 500; text-align: center; text-transform: none; }
.contacto-primero .contacto-redes-enlaces { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .625rem; }
.contacto-primero .contacto-redes-enlaces a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .625rem; min-width: 0; padding: .75rem .25rem; border-radius: .25rem; color: var(--cnvs-themecolor); font-size: .8125rem; text-decoration: none !important; }
.contacto-primero .contacto-redes-enlaces i { font-size: 1.75rem; line-height: 1; }
.contacto-primero .contacto-redes-enlaces span { color: #536370; }
.contacto-primero .contacto-redes-enlaces a:hover { background-color: #e6eef4; }
@media (max-width: 575.98px) {
    .contacto-primero .contacto-redes-enlaces { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .contacto-primero .contacto-redes { padding: 1.5rem .75rem; }
}
@media (prefers-reduced-motion: reduce) { .contacto-primero .contacto-feature, .contacto-primero .contacto-feature::before, .contacto-primero .contacto-feature::after { transition: none; } }
