/* Magistral se conserva para títulos sin acentos; Exo 2 Black cubre los títulos editables en español. */
@font-face {
  font-family: "Magistral";
  src: url("../fonts/magistral-black.woff2") format("woff2");
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}
@font-face {
  font-family: "Exo 2 local";
  src: url("../fonts/exo2-black.woff2") format("woff2");
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}
@font-face {
  font-family: "Segoe UI local";
  src: url("../fonts/segoe-ui.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Segoe UI local";
  src: url("../fonts/segoe-ui-semibold.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "Segoe UI local";
  src: url("../fonts/segoe-ui-bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
:root {
  --color-crema: #ededed; --color-gris-claro: #c3cfd1; --color-gris-oscuro: #999286;
  --color-azul: #0d3d47; --color-amarillo-naranja: #f2b94b; --color-amarillo: #f3e8d5; --color-rojo-ocre: #bb4136;
  --fuente-texto: "Segoe UI local", "Segoe UI", sans-serif; --fuente-titulo: "Magistral", "Segoe UI local", "Segoe UI", sans-serif; --fuente-titulo-es: "Exo 2 local", "Segoe UI local", "Segoe UI", sans-serif;
  --shadow: 0 8px 28px #0d3d471f;
}
/* Los contenidos editables y el texto ampliado deben poder reducir sus columnas. */
main :where(div,article,section,nav,fieldset) { min-width:0; }
main :where(h1,h2,h3,p,li,span,strong,small,a) { overflow-wrap:anywhere; }
.button { max-width:100%; min-width:0; }
h1, .section h2 { font-family: var(--fuente-titulo); font-weight: 900; letter-spacing: -.025em; }
.site-header { position: sticky; top: 0; padding: 18px 0; background: var(--color-crema); box-shadow: none; }
.brand { width: 220px; flex-shrink: 0; }
.navegacion-escritorio { display: flex; gap: 23px; align-items: center; }
.navegacion-escritorio a { font-weight: 400; font-size: .9rem; padding-block: 0; border-bottom: 2px solid transparent; }
.navegacion-escritorio a:hover, .navegacion-escritorio a[aria-current] { border-bottom-color: var(--color-rojo-ocre); }
.navegacion-escritorio a[aria-current], .navegacion-movil a[aria-current] { font-weight: 700; }
.navegacion-escritorio .nav-cta { padding: 10px 14px; border: 1px solid var(--color-gris-oscuro); }
.navegacion-escritorio .nav-cta:hover { border: 1px solid var(--color-gris-oscuro); background-color: var(--color-rojo-ocre); }
.navegacion-movil { display: none; }
.site-footer { background: var(--color-azul); color: white; padding: 50px 0 22px; }
.pie-columnas { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 35px; }
.pie-columnas h2 { font: 700 .85rem var(--fuente-texto); margin: 16px 0 12px; }
.pie-columnas p, .pie-columnas a { font-size: .8rem; line-height: 1.6; overflow-wrap: anywhere; }
.pie-columnas p { max-width: 90%; text-wrap: balance; }
.pie-logotipo { width: 240px; }
.enlace-linkedin { display: flex; align-items: center; gap: 8px; font-size: .8rem; line-height: 1.6; overflow-wrap: anywhere; }
.enlace-linkedin img { width: 23px; height: 23px; object-fit: contain; }
.pie-derechos { border-top: 1px solid var(--color-gris-claro); text-align: center; padding-top: 20px; margin-top: 30px; font-size: .7rem; line-height: 1.8; }
.pie-derechos p { margin: 0; }
/* Los textos legales X2 son editables por separado sin cambiar el diseño de escritorio. */
.pie-derechos .symbol_derechos:not(:empty), .pie-derechos .symbol_creditos:not(:empty) { margin-inline: .45em; }
.pie-derechos .symbol_derechos:empty, .pie-derechos .symbol_creditos:empty { margin-inline: .25em; }
@media (max-width: 40rem) {
  .pie-derechos .symbol_derechos { display: none; }
  .pie-derechos .derechos-lema:not(:empty) { display: block; }
}

/* Dos accesos rápidos independientes: imágenes cuadradas sin recorte ni texto visual. */
.contactos-flotantes { position:fixed; right:20px; bottom:max(20px,env(safe-area-inset-bottom)); z-index:70; display:flex; flex-direction:column; gap:12px; align-items:center; }
.contactos-flotantes .contacto-flotante { position:static; display:block; width:68px; height:68px; padding:0; line-height:0; border-radius:50%; }
.contactos-flotantes .contacto-flotante img { width:100%; height:100%; display:block; object-fit:contain; }
.contactos-flotantes .contacto-flotante:focus-visible { outline:3px solid var(--color-amarillo-naranja); outline-offset:3px; }
.button-accent { color: white; border: 1px solid var(--color-amarillo-naranja); }
.button-accent:hover { background: white; color: var(--color-amarillo-naranja); }
#solicitud { scroll-margin-top: -30px; }
.pagina-provisional > .section { min-height: 45vh; }
@media (max-width: 62rem) {
  .header-shell { gap:16px; }
  .brand { min-width:0; flex-shrink:1; }
  .navegacion-movil { flex-shrink:0; }
  .navegacion-escritorio { display: none; }
  .navegacion-movil { display: block; position: relative; }
  .navegacion-movil summary { cursor: pointer; border: 1px solid var(--color-azul); padding: 10px 14px; }
  .navegacion-movil nav { position: absolute; right: 0; top: 100%; width: min(18rem, calc(100vw - 48px)); background: var(--color-crema); border: 1px solid var(--color-gris-oscuro); padding: 14px; box-shadow: var(--shadow); }
  .navegacion-movil a { display: block; padding: 12px 8px; }
  .pie-columnas { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 35rem) {
  .brand { width: 175px; }
  .pie-columnas { grid-template-columns: 1fr; gap: 15px; text-align: center; }
  .pie-logotipo, .pie-columnas p { margin: auto; }
  .enlace-linkedin { width: fit-content; margin: auto; }
  .contactos-flotantes { right:12px; bottom:max(12px,env(safe-area-inset-bottom)); gap:10px; }
  .contactos-flotantes .contacto-flotante { width:58px; height:58px; }
}

.enlace-red-social{display:block;margin-top:.5rem;text-decoration:underline;text-underline-offset:.2em}
