/* FAGL Funciones: marca institucional sobre Astra. Paleta: #0a1f44 #faf7f0 #c0913c #ffffff */
@font-face { font-family: "Lato"; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/lato-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: "Lato"; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/lato-latin-700-normal.woff2) format("woff2"); }
@font-face { font-family: "Lato"; font-style: normal; font-weight: 900; font-display: swap; src: url(fonts/lato-latin-900-normal.woff2) format("woff2"); }
@font-face { font-family: "Playfair Display"; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/playfair-display-latin-600-normal.woff2) format("woff2"); }
@font-face { font-family: "Playfair Display"; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/playfair-display-latin-700-normal.woff2) format("woff2"); }

:root {
  --wp--preset--color--azul: #0a1f44; --wp--preset--color--crema: #faf7f0; --wp--preset--color--dorado: #c0913c; --wp--preset--color--blanco: #ffffff;
  --wp--preset--font-family--lato: "Lato", "Helvetica Neue", Arial, sans-serif;
  --wp--preset--font-family--playfair: "Playfair Display", Georgia, serif;
  --wp--preset--font-size--xs: .75rem; --wp--preset--font-size--sm: .9375rem; --wp--preset--font-size--md: 1rem; --wp--preset--font-size--lg: 1.125rem;
  --wp--preset--font-size--xl: 1.25rem; --wp--preset--font-size--xxl: 1.5rem; --wp--preset--font-size--hero: 2rem;
}
/* Clases de color y tamaño que usan los patrones */
.has-azul-color { color: #0a1f44 !important; } .has-crema-color { color: #faf7f0 !important; } .has-dorado-color { color: #c0913c !important; } .has-blanco-color { color: #ffffff !important; }
.has-azul-background-color { background-color: #0a1f44 !important; } .has-crema-background-color { background-color: #faf7f0 !important; } .has-dorado-background-color { background-color: #c0913c !important; } .has-blanco-background-color { background-color: #ffffff !important; }
.has-xs-font-size { font-size: .75rem !important; } .has-sm-font-size { font-size: .9375rem !important; } .has-md-font-size { font-size: 1rem !important; } .has-lg-font-size { font-size: 1.125rem !important; }
.has-xl-font-size { font-size: 1.25rem !important; } .has-xxl-font-size { font-size: 1.5rem !important; } .has-hero-font-size { font-size: 2rem !important; }

/* Base tipográfica sobre Astra */
body, button, input, select, textarea, .main-header-menu, .ast-builder-menu, .site-footer { font-family: var(--wp--preset--font-family--lato); }
body { background-color: #faf7f0; color: #0a1f44; font-size: 16px; line-height: 1.6; }
body h1, body h2, body h3, body h4, body h5, body h6, .entry-title, .site-title { font-family: var(--wp--preset--font-family--playfair); color: #0a1f44; line-height: 1.25; }
body h1, body .entry-content h1, body .entry-title { font-size: 2rem; }
body h2, body .entry-content h2 { font-size: 1.5rem; }
body h3, body .entry-content h3 { font-size: 1.25rem; }
body h4, body .entry-content h4 { font-size: 1.125rem; }
a { color: #0a1f44; } a:hover, a:focus { color: #c0913c; }
.ast-separate-container, .ast-plain-container, .site-content { background-color: #faf7f0; }
.ast-separate-container .ast-article-post, .ast-separate-container .ast-article-single { background-color: #ffffff; }

/* Cabecera de Astra: barra superior azul y menú principal */
.ast-above-header-bar, .ast-above-header-wrap .ast-above-header-bar { background: #0a1f44 !important; border-bottom: 1px solid #c0913c; }
.ast-above-header-bar, .ast-above-header-bar a, .ast-above-header-bar .ast-header-html { color: #ffffff !important; font-size: .8125rem; }
.ast-above-header-bar a:hover { color: #c0913c !important; }
.fagl-topbar-links { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; margin: 0; }
.fagl-topbar-links strong { color: #c0913c; }
.fagl-campus a { display: inline-block; padding: 4px 12px; border: 1px solid #c0913c; margin-left: 6px; text-decoration: none; }
.fagl-campus a.fagl-campus-pri { background: #c0913c; color: #0a1f44 !important; font-weight: 700; }
.ast-primary-header-bar, .main-header-bar { background: #faf7f0 !important; border-bottom: 1px solid #0a1f44; }
.main-header-menu .menu-link, .ast-builder-menu .menu-item > .menu-link { color: #0a1f44 !important; font-weight: 700; }
.main-header-menu .menu-item:hover > .menu-link, .main-header-menu .current-menu-item > .menu-link { color: #c0913c !important; }
.main-header-menu .sub-menu { background: #ffffff !important; border: 1px solid #0a1f44 !important; }
.ast-mobile-popup-drawer .ast-mobile-popup-inner, .ast-mobile-header-content { background: #faf7f0 !important; }

/* Pie de Astra a 4 columnas */
.site-footer, .site-primary-footer-wrap, .site-below-footer-wrap, .site-above-footer-wrap { background: #0a1f44 !important; color: #faf7f0; }
.site-footer h2, .site-footer h3, .site-footer h4, .site-footer .widget-title { color: #ffffff !important; font-size: 1.125rem !important; }
.site-footer a, .site-footer p, .site-footer li { color: #faf7f0 !important; }
.site-footer a:hover { color: #c0913c !important; }
.site-below-footer-wrap { border-top: 1px solid #c0913c; }
.site-below-footer-wrap .ast-footer-copyright { color: #faf7f0; font-size: .8125rem; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li + li { margin-top: 6px; }

/* Módulos desplegables de Contacto */
details.fagl-modulo { background: #ffffff; border: 1px solid #0a1f44; border-top: 3px solid #c0913c; margin: 0 0 16px; }
details.fagl-modulo > summary { cursor: pointer; padding: 16px 20px; font-family: var(--wp--preset--font-family--playfair); font-size: 1.375rem; font-weight: 700; color: #0a1f44; list-style: none; }
details.fagl-modulo > summary::-webkit-details-marker { display: none; }
details.fagl-modulo > summary::after { content: "+"; float: right; color: #c0913c; }
details.fagl-modulo[open] > summary::after { content: "−"; }
details.fagl-modulo > :not(summary) { padding: 0 20px; }
details.fagl-modulo[open] { padding-bottom: 16px; }

/* Perfil de La Iniciativa */
.fagl-trabajos { counter-reset: trab; list-style: none; padding: 0; margin: 0; }
.fagl-trabajos li { counter-increment: trab; padding: 10px 0 10px 56px; position: relative; border-bottom: 1px solid #faf7f0; }
.fagl-trabajos li::before { content: counter(trab, decimal-leading-zero); position: absolute; left: 0; top: 6px; font-family: var(--wp--preset--font-family--playfair); font-size: 1.5rem; font-weight: 700; color: #c0913c; }
.fagl-perfil img { border: 3px solid #c0913c; width: 100%; height: auto; object-fit: cover; }
.fagl-instituciones { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 12px; list-style: none; padding: 0; margin: 0; }
.fagl-instituciones li { background: #faf7f0; border-left: 3px solid #c0913c; padding: 10px 12px; font-weight: 700; }
.fagl-sub { font-size: 1.375rem; margin-top: 24px; }

/* Páginas legales con título de Astra: el H2 interno solo se ve cuando el texto se incrusta en otro formulario */
.fagl-con-titulo .fagl-legal > h2:first-of-type { display: none; }



:root { --fagl-azul:#0a1f44; --fagl-crema:#faf7f0; --fagl-dorado:#c0913c; --fagl-blanco:#ffffff; }

body { background: var(--fagl-crema); }

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--fagl-dorado); outline-offset: 2px;
}

/* ---------- Barra superior (Yo soy + servicios) ---------- */
.fagl-topbar p { margin: 0; line-height: 1.5; }
.fagl-topbar a { color: var(--fagl-blanco); text-decoration: none; }
.fagl-topbar a:hover { color: var(--fagl-dorado); }
.fagl-topbar .fagl-sep { color: var(--fagl-dorado); }
.fagl-yosoy > p:first-child { font-weight: 700; }

/* ---------- Menú principal ---------- */
.fagl-mainnav .wp-block-navigation-item__content { font-weight: 700; }
.fagl-mainnav .wp-block-navigation-item__content:hover { color: var(--fagl-dorado); }
.fagl-mainnav .wp-block-navigation__submenu-container {
  background: var(--fagl-blanco) !important; border: 1px solid var(--fagl-azul) !important;
}

/* ---------- Buscador y chips ---------- */
.fagl-chips .wp-block-button__link {
  background: var(--fagl-blanco); color: var(--fagl-azul);
  border: 1px solid var(--fagl-azul); border-radius: 2px;
  font-size: 0.85rem; padding: 0.45em 0.9em;
}
.fagl-chips .wp-block-button__link:hover,
.fagl-chips .is-activo .wp-block-button__link { background: var(--fagl-azul); color: var(--fagl-blanco); }
.fagl-buscador .wp-block-search__input {
  background: var(--fagl-blanco); color: var(--fagl-azul);
  border: 1px solid var(--fagl-azul); border-radius: 0; padding: 0.8em 1em;
}
.fagl-buscador .wp-block-search__inside-wrapper { border: 0; padding: 0; }
.fagl-buscador .wp-block-search__button {
  background: var(--fagl-dorado); color: var(--fagl-azul);
  font-weight: 900; border-radius: 0; margin-left: 0; border: 1px solid var(--fagl-dorado);
}
.fagl-buscador .wp-block-search__button:hover { background: var(--fagl-azul); color: var(--fagl-blanco); border-color: var(--fagl-azul); }

/* ---------- Botones propios ---------- */
.fagl-botones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.fagl-btn {
  display: inline-block; font-family: var(--wp--preset--font-family--lato); font-weight: 700; font-size: .9375rem;
  line-height: 1.2; padding: 0.7em 1.2em; border-radius: 2px; border: 1px solid var(--fagl-azul);
  cursor: pointer; text-decoration: none; text-align: center;
}
.fagl-btn-pri { background: var(--fagl-azul); color: var(--fagl-blanco); }
.fagl-btn-pri:hover { background: var(--fagl-dorado); border-color: var(--fagl-dorado); color: var(--fagl-azul); }
.fagl-btn-sec { background: var(--fagl-blanco); color: var(--fagl-azul); }
.fagl-btn-sec:hover { background: var(--fagl-azul); color: var(--fagl-blanco); }
.fagl-btn-dorado { background: var(--fagl-dorado); border-color: var(--fagl-dorado); color: var(--fagl-azul); font-weight: 900; }
.fagl-btn-dorado:hover { background: var(--fagl-azul); border-color: var(--fagl-azul); color: var(--fagl-blanco); }

/* ---------- Programas insignia ---------- */
.fagl-insignia-col { display: flex; }
.fagl-insignia { width: 100%; }
.fagl-insignia .fagl-sello { background: var(--fagl-dorado); color: var(--fagl-azul); font-weight: 900; text-transform: uppercase; letter-spacing: .06em; padding: 6px 12px; margin: 0; }
.fagl-insignia .fagl-datos { list-style: none; padding: 12px 14px; margin: 0; background: var(--fagl-blanco); color: var(--fagl-azul); }
.fagl-insignia .fagl-datos li + li { margin-top: 4px; }
.fagl-insignia-botones { margin-top: auto; }

/* ---------- Tarjetas de cursos ---------- */
.fagl-mooc .wp-block-post { display: flex; }
.fagl-card { display: flex; flex-direction: column; width: 100%; box-shadow: none; }
.fagl-card > .fagl-botones, .fagl-card > .wp-block-shortcode:last-child { margin-top: auto; }
.fagl-card .wp-block-post-title a { color: var(--fagl-azul); text-decoration: none; }
.fagl-card .wp-block-post-title a:hover { color: var(--fagl-dorado); }
.fagl-meta, .fagl-meta a { color: var(--fagl-dorado) !important; text-decoration: none; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; }
.fagl-etiquetas { display: flex; flex-wrap: wrap; gap: 6px; }
.fagl-badge { background: var(--fagl-crema); border: 1px solid var(--fagl-dorado); color: var(--fagl-azul); font-size: .72rem; font-weight: 700; padding: 3px 8px; }
.fagl-estado { background: var(--fagl-azul); color: var(--fagl-blanco); font-size: .72rem; font-weight: 700; padding: 3px 8px; text-transform: uppercase; letter-spacing: .05em; }
.fagl-ficha { list-style: none; padding: 10px 0 0; margin: 0; border-top: 1px solid var(--fagl-dorado); font-size: .9375rem; }
.fagl-ficha li { padding: 2px 0; }
.fagl-ficha span { font-weight: 700; }
.fagl-ficha span::after { content: ":"; }
.fagl-unidades { margin: 0; padding-left: 0; list-style: none; }
.fagl-unidades li { padding: 12px 0; border-bottom: 1px solid var(--fagl-crema); }
.fagl-unidades a { font-weight: 700; color: var(--fagl-azul); text-decoration: none; }
.fagl-unidades a:hover { color: var(--fagl-dorado); }
.fagl-unidades .fagl-num { color: var(--fagl-dorado); text-transform: uppercase; font-size: .75rem; letter-spacing: .06em; margin-right: 6px; }
.fagl-unidades p { margin: 4px 0 0; font-size: .9375rem; }
.fagl-unidad-nav { display: flex; flex-wrap: wrap; gap: 16px; font-weight: 700; font-size: .9375rem; }

/* ---------- Publicaciones ---------- */
.fagl-pubs .wp-block-post { display: flex; }
.fagl-pub { width: 100%; }
.fagl-pub > .wp-block-shortcode:last-child, .fagl-pub > .fagl-botones { margin-top: auto; }
.fagl-pub .wp-block-post-title a { color: var(--fagl-azul); text-decoration: none; }
.fagl-pub .wp-block-post-title a:hover { color: var(--fagl-dorado); }
.fagl-pub-met, .fagl-pub-idx { font-size: .9375rem; margin: 0; }
.fagl-pub-met span { font-weight: 700; color: var(--fagl-dorado); text-transform: uppercase; font-size: .72rem; letter-spacing: .06em; display: block; }
.fagl-pub-idx { border-left: 3px solid var(--fagl-dorado); padding-left: 8px; font-weight: 700; }

/* ---------- Visor PDF ---------- */
.fagl-visor { width: min(1100px, 96vw); height: min(92vh, 1000px); padding: 0; border: 2px solid var(--fagl-dorado); background: var(--fagl-blanco); }
.fagl-visor::backdrop { background: var(--fagl-azul); opacity: .85; }
.fagl-visor[open] { display: flex; flex-direction: column; }
.fagl-visor-barra { display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: var(--fagl-azul); }
.fagl-visor-titulo { flex: 1; margin: 0; color: var(--fagl-blanco); font-weight: 700; font-size: .9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fagl-visor iframe { flex: 1; width: 100%; border: 0; background: var(--fagl-blanco); }

/* ---------- Formularios ---------- */
.fagl-form p { margin: 0 0 12px; }
.fagl-form label { display: block; font-weight: 700; font-size: .9375rem; margin-bottom: 4px; }
.fagl-form input:not([type=checkbox]):not([type=file]), .fagl-form select, .fagl-form textarea {
  width: 100%; box-sizing: border-box; background: var(--fagl-blanco); color: var(--fagl-azul);
  border: 1px solid var(--fagl-azul); border-radius: 0; padding: .65em .8em; font: inherit; font-size: .95rem;
}
.fagl-form input[type=file] { width: 100%; padding: .5em; border: 1px dashed var(--fagl-azul); background: var(--fagl-crema); }
.fagl-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 0 14px; }
.fagl-check label { font-weight: 400; display: flex; gap: 8px; align-items: flex-start; }
.fagl-check input { margin-top: 4px; accent-color: var(--fagl-azul); }
.fagl-trampa { position: absolute !important; left: -9999px; height: 1px; overflow: hidden; }
.fagl-aviso { padding: 12px 14px; margin-bottom: 14px; font-size: .9rem; }
.fagl-ok { background: var(--fagl-crema); border-left: 4px solid var(--fagl-dorado); }
.fagl-error { background: var(--fagl-azul); color: var(--fagl-blanco); border-left: 4px solid var(--fagl-dorado); }
.fagl-error ul { margin: 0; padding-left: 18px; }
.fagl-curso-sel { background: var(--fagl-crema); padding: 8px 10px; font-size: .9375rem; }
.fagl-canales { list-style: none; padding: 0; }

/* ---------- Accesos y pie ---------- */
.fagl-acceso a { color: var(--fagl-azul); text-decoration: none; }
.fagl-acceso:hover { border-top-color: var(--fagl-azul) !important; }
.fagl-footer a { color: var(--fagl-crema); text-decoration: none; }
.fagl-footer a:hover { color: var(--fagl-dorado); }
.fagl-footer .wp-block-social-links .wp-social-link { background: transparent !important; color: var(--fagl-crema) !important; border: 1px solid var(--fagl-dorado); }
.fagl-contador { font-variant-numeric: tabular-nums; }
.fagl-vacio { font-style: italic; }

@media (max-width: 781px) {
  .fagl-topbar .wp-block-group { justify-content: center !important; }
  .fagl-servicios { gap: .4rem 1rem !important; }
}

/* Sin franja entre el contenido y el pie */


/* ---------- Artículos en cajas modulares ---------- */
.fagl-single .wp-block-post-title { margin: 0; }
.fagl-art-cabecera > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.fagl-art-v2 { display: flex; flex-direction: column; gap: 16px; font-size: 1rem; line-height: 1.65; }
.fagl-box { background: var(--fagl-blanco); border: 1px solid var(--fagl-azul); padding: 20px 24px; }
.fagl-box > h2 { font-family: var(--wp--preset--font-family--playfair); font-size: 1.375rem; color: var(--fagl-azul); margin: 0 0 10px; padding-bottom: 8px; border-bottom: 1px solid var(--fagl-dorado); }
.fagl-box p { margin: 0 0 10px; }
.fagl-box p:last-child { margin-bottom: 0; }
.fagl-box-meta { border-top: 3px solid var(--fagl-dorado); font-size: .9rem; }
.fagl-box-claves { background: var(--fagl-crema); border-left: 4px solid var(--fagl-dorado); }
.fagl-box-refs ol { margin: 0; padding-left: 20px; font-size: .9rem; }
.fagl-box-refs li { margin-bottom: 6px; overflow-wrap: anywhere; }
.fagl-box-citar { border: 2px solid var(--fagl-dorado); }
.fagl-box-citar p { font-size: .95rem; overflow-wrap: anywhere; }
.fagl-box-docs { background: var(--fagl-azul); border-color: var(--fagl-dorado); }
.fagl-box-docs > h2 { color: var(--fagl-blanco); }
.fagl-box-docs .fagl-btn-sec { border-color: var(--fagl-blanco); }
.fagl-art-v2 .fagl-note { font-size: .85rem; font-style: italic; }
.fagl-single .fagl-login-cta { margin-top: 16px; }

/* Ritmo vertical compacto */

.wp-block-post-content > * + * { margin-block-start: 1rem; }

/* ---------- Tarjetas simétricas (Sobre mí) ---------- */
.fagl-rejilla { display: grid; gap: 20px; }
.fagl-rejilla > * { margin: 0 !important; }
.fagl-rejilla-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .fagl-rejilla-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .fagl-rejilla-3 { grid-template-columns: 1fr; } }
.fagl-rejilla-4 { grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.fagl-tarjeta { background: var(--fagl-blanco); border: 1px solid var(--fagl-azul); border-top: 3px solid var(--fagl-dorado); padding: 22px 24px; box-sizing: border-box; height: 100%; }
.fagl-tarjeta > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.fagl-tarjeta h3 { font-size: 1.25rem; margin: 0 0 10px; }
.fagl-tarjeta h4 { font-size: 1rem; margin: 0 0 6px; font-family: var(--wp--preset--font-family--playfair); }
.fagl-tarjeta ul { margin: 0; padding-left: 18px; }
.fagl-tarjeta li + li { margin-top: 6px; }
.fagl-subcaja { background: var(--fagl-crema); padding: 14px 16px; height: 100%; box-sizing: border-box; }
.fagl-subcaja p { margin: 0; }
.fagl-tarjeta-azul { background: var(--fagl-azul); color: var(--fagl-blanco); border-color: var(--fagl-dorado); }
.fagl-tarjeta-azul h3 { color: var(--fagl-crema); }
.fagl-sobre > h2 { margin-top: 12px; }
.fagl-insignia-unico { max-width: 760px; margin-inline: auto; }

/* ---------- Referencias con sangría francesa y cita copiable ---------- */
.fagl-box-refs ol { list-style: none; padding-left: 0; }
.fagl-box-refs li { padding-left: 2em; text-indent: -2em; }
.fagl-copiar { margin-top: 12px; }

/* ---------- Formularios de Ultimate Member y contraseña en la paleta ---------- */
body .um :is(div, span, label, li, p, i, small):not(.um-button) { color: var(--fagl-azul) !important; }
body .um :is(input, select, textarea).um-form-field, body .um :is(input[type=text], input[type=email], input[type=password], input[type=date], select, textarea) { border-color: var(--fagl-azul) !important; }
body .um .um-misc-with-img { border-color: var(--fagl-dorado) !important; }
.fagl-pw li { color: var(--fagl-azul) !important; }
.fagl-pw li:before, .fagl-pm.bad { color: var(--fagl-dorado) !important; }
.fagl-pw li.ok:before, .fagl-pm.good { color: var(--fagl-azul) !important; }
.fagl-pw-bar { background: var(--fagl-crema) !important; border: 1px solid var(--fagl-dorado); }
.fagl-pw-bar span { background: var(--fagl-dorado) !important; }
input.fagl-bad { border-color: var(--fagl-dorado) !important; }
input.fagl-good { border-color: var(--fagl-azul) !important; }
body .um.um:not(.um-admin) { color: var(--fagl-azul) !important; }
html body body .um.um .um-form input.um-form-field.um-form-field, html body body .um.um .um-form select.um-form-field, html body body .um.um .um-form textarea.um-form-field { border-color: var(--fagl-azul) !important; color: var(--fagl-azul) !important; }

/* Escala académica: H2 entre 22px y 26px aunque el bloque use un tamaño menor */
body h2.wp-block-heading.has-xl-font-size, body h2.wp-block-heading.has-lg-font-size, body h2.wp-block-heading.has-md-font-size { font-size: 1.375rem !important; }

/* Páginas legales: el título H1 lo pone la plantilla; el H2 interno solo se muestra cuando el texto se incrusta en otro formulario */
.fagl-con-titulo .fagl-legal > h2:first-of-type { display: none; }
.fagl-con-titulo .wp-block-post-title { margin: 0; }
