/* Montserrat (variable 400-900) servida desde el propio servidor; antes venía de Google Fonts. */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/fonts/montserrat-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/fonts/montserrat-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* =====================================================================
   invisual.es · cabecera, menú del móvil, pie y aviso de cookies
   Comunes a TODAS las páginas (también a /congresos, que no usa el CSS de YOOtheme),
   así que no dependen de UIkit: cada regla fija lo que necesita.
   Medidas copiadas de la web de YOOtheme (cabecera 210 px, menú en mayúsculas 16 px…).
   ===================================================================== */
.ivh, .ivh *, .ivm, .ivm *, .ivf, .ivf *, .ivc, .ivc * { box-sizing: border-box; }

/* Enlace "saltar al contenido" (sólo visible con el teclado) */
.iv-saltar { position: absolute; left: -9999px; top: 8px; z-index: 1100; background: #fff; color: #0B2545; padding: 8px 14px; border-radius: 8px; font: 600 14px/1.4 Montserrat, sans-serif; }
.iv-saltar:focus { left: 8px; }

/* ---------- Cabecera ---------- */
.ivh { position: absolute; top: 0; left: 0; right: 0; z-index: 980; font-family: Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; color: #fff; }
.ivh-solida { position: relative; background: linear-gradient(135deg, #134074 0%, #0B2545 55%, #07182E 100%); }
.ivh ul { list-style: none; margin: 0; padding: 0; }
.ivh a { text-decoration: none; }
.ivh-logo { display: flex; align-items: center; justify-content: center; height: 80px; }
.ivh-logo img { display: block; width: 200px; height: auto; max-width: none; }
.ivh-nav { display: none; }
.ivh-burger { position: absolute; top: 0; right: 15px; height: 80px; width: 40px; display: flex; align-items: center; justify-content: center; padding: 0; margin: 0; border: 0; background: none; color: rgba(255, 255, 255, .4); cursor: pointer; }
.ivh-burger:hover, .ivh-burger:focus-visible { color: rgba(255, 255, 255, .7); }
.ivh-burger svg { width: 20px; height: 20px; display: block; }
@media (min-width: 640px) { .ivh-burger { right: 30px; } }
@media (min-width: 960px) {
    .ivh-logo { height: auto; padding: 20px 0; }
    .ivh-logo img { width: 260px; }
    .ivh-burger { display: none; }
    .ivh-nav { display: flex; justify-content: center; height: 80px; padding: 0 40px; }
    .ivh-nav ul { display: flex; gap: 0 30px; }
    .ivh-nav a { display: flex; align-items: center; justify-content: center; min-height: 80px; color: #fff; font-size: 16px; font-weight: 500; line-height: 1.65; letter-spacing: .04em; text-transform: uppercase; transition: color .1s ease-in-out; }
    .ivh-nav a:hover, .ivh-nav a:focus-visible, .ivh-nav a[aria-current="page"] { color: #FB4D80; }
}

/* ---------- Menú del móvil (panel lateral) ---------- */
.ivm { position: fixed; inset: 0; z-index: 1000; display: none; font-family: Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
.ivm.abierto { display: block; }
.ivm-fondo { position: absolute; inset: 0; background: rgba(0, 0, 0, .1); opacity: 0; transition: opacity .3s ease-out; }
.ivm-panel { position: absolute; top: 0; right: 0; bottom: 0; width: 270px; max-width: 100%; background: #0B2545; padding: 20px; overflow-y: auto; text-align: center; transform: translateX(100%); transition: transform .3s ease-out; }
.ivm.visible .ivm-fondo { opacity: 1; }
.ivm.visible .ivm-panel { transform: none; }
.ivm-cerrar { position: absolute; top: 5px; right: 5px; width: 24px; height: 24px; padding: 0; border: 0; background: none; color: rgba(255, 255, 255, .4); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.ivm-cerrar:hover, .ivm-cerrar:focus-visible { color: rgba(255, 255, 255, .7); }
.ivm-cerrar svg { width: 14px; height: 14px; }
.ivm-logo { display: inline-block; }
.ivm-logo img { display: block; width: 150px; height: auto; }
.ivm ul { list-style: none; margin: 20px 0 0; padding: 0; }
.ivm li a { display: block; padding: 8px 0; color: #fff; text-decoration: none; font-size: 16px; font-weight: 400; line-height: 26.4px; letter-spacing: 2px; text-transform: uppercase; }
.ivm li a:hover, .ivm li a[aria-current="page"] { color: #FB4D80; }
@media (min-width: 640px) { .ivm-panel { width: 350px; padding: 40px; } .ivm-cerrar { top: 10px; right: 10px; } .ivm-cerrar svg { width: 20px; height: 20px; } }
html.ivm-sin-scroll, html.ivm-sin-scroll body { overflow: hidden; }

/* ---------- Pie ---------- */
.ivf { position: relative; overflow: hidden; background: linear-gradient(135deg, #134074 0%, #0B2545 55%, #07182E 100%); color: rgba(255, 255, 255, .82); padding: 80px 0 32px; font-family: Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 16px; line-height: 1.65; letter-spacing: -.005em; text-align: left; }
.ivf::before { content: ""; position: absolute; width: 50vw; height: 50vw; max-width: 700px; max-height: 700px; top: -20%; right: -15%; border-radius: 50%; background: radial-gradient(circle, rgba(251, 77, 128, .35) 0%, transparent 65%); filter: blur(100px); pointer-events: none; }
.ivf-ancho { position: relative; z-index: 1; max-width: 1440px; margin: 0 auto; padding: 0 2rem; }
.ivf-cols { display: grid; grid-template-columns: 1fr; gap: 40px; }
@media (min-width: 960px) { .ivf-cols { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 70px; } }
.ivf-logo { display: block; height: 56px; width: auto; margin: 0 0 24px; }
.ivf-tag { font-size: .9rem; color: rgba(255, 255, 255, .72); max-width: 320px; line-height: 1.6; margin: 20px 0 0; }
.ivf h4 { font-family: inherit; font-size: 12px; font-weight: 800; line-height: 1.4; letter-spacing: .14em; text-transform: uppercase; color: #fff; margin: 0 0 20px; }
.ivf ul { list-style: none; padding: 0; margin: 0; }
.ivf li { margin: 0 0 .6rem; font-size: .92rem; line-height: 1.65; }
.ivf a { color: rgba(255, 255, 255, .82); text-decoration: none; transition: color .2s; }
.ivf a:hover, .ivf a:focus-visible { color: #FFB5CE; }
.ivf-bajo { margin-top: 56px; padding-top: 28px; border-top: 1px solid rgba(255, 255, 255, .12); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; font-size: .8rem; color: rgba(255, 255, 255, .55); }
.ivf-bajo a { font-size: .8rem; }
.ivf-enlace { background: none; border: 0; padding: 0; font: inherit; color: rgba(255, 255, 255, .82); cursor: pointer; }
.ivf-enlace:hover { color: #FFB5CE; }

/* ---------- Aviso de cookies ---------- */
.ivc { position: fixed; left: 1.5rem; right: 1.5rem; bottom: 1.5rem; z-index: 1010; max-width: 980px; margin: 0 auto; font-family: Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
.ivc[hidden], .ivc-ajustes[hidden] { display: none; }
.ivc-caja { background: rgba(11, 37, 69, .97); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-radius: 16px; border: 1px solid rgba(255, 255, 255, .08); box-shadow: 0 18px 48px rgba(7, 24, 46, .45); padding: 1rem 1.4rem; display: flex; align-items: center; justify-content: space-between; gap: .8rem 2rem; }
.ivc p { color: rgba(255, 255, 255, .82); font-size: .8rem; line-height: 1.45; margin: 0; flex: 1 1 auto; text-align: left; }
.ivc p a { color: #FB4D80; text-decoration: underline; font-weight: 700; }
.ivc-botones { display: flex; gap: 10px; flex: 0 0 auto; white-space: nowrap; }
.ivc-btn { font-family: inherit; font-size: .72rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; padding: 0 1.2rem; line-height: 2.5; border-radius: 10px; cursor: pointer; background: #FB4D80; border: 1px solid #FB4D80; color: #fff; box-shadow: 0 10px 28px rgba(251, 77, 128, .28); }
.ivc-btn:hover { background: #D63872; border-color: #D63872; }
.ivc-btn-2 { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .28); box-shadow: none; }
.ivc-btn-2:hover { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .6); }
@media (max-width: 639px) {
    .ivc { left: .8rem; right: .8rem; bottom: .8rem; }
    .ivc-caja { padding: .9rem 1rem; flex-wrap: wrap; }
    .ivc-botones { width: 100%; flex-wrap: wrap; white-space: normal; }
    .ivc-btn { flex: 1 1 auto; }
}
/* Ventana de ajustes */
.ivc-ajustes { position: fixed; inset: 0; z-index: 1020; background: rgba(0, 0, 0, .6); display: flex; align-items: center; justify-content: center; padding: 15px; overflow-y: auto; font-family: Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
.ivc-dialogo { position: relative; width: 720px; max-width: 100%; margin: auto; background: #fff; color: #475569; border-radius: 16px; padding: 30px; font-size: 15px; line-height: 1.6; }
@media (min-width: 640px) { .ivc-dialogo { padding: 40px; } }
.ivc-dialogo h2 { margin: 0 0 16px; font-size: 1.6rem; font-weight: 800; color: #0B2545; letter-spacing: -.02em; }
.ivc-dialogo h3 { margin: 0; font-size: 1rem; font-weight: 800; color: #0B2545; }
.ivc-dialogo a { color: #D63872; }
.ivc-cat { display: flex; gap: 15px; margin-top: 22px; }
.ivc-cat input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: #FB4D80; flex: none; }
.ivc-cat p { margin: 4px 0 0; font-size: .9rem; }
.ivc-x { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; border: 0; background: none; color: #94a3b8; cursor: pointer; font-size: 28px; line-height: 1; }
.ivc-pie { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.ivc-pie .ivc-btn-2 { background: #fff; color: #0B2545; border-color: rgba(11, 37, 69, .2); }
.ivc-pie .ivc-btn-2:hover { background: #F7F8FC; }
.ivc-pie .ivc-guardar { margin-left: auto; }
@media (max-width: 639px) { .ivc-pie .ivc-btn { width: 100%; } .ivc-pie .ivc-guardar { margin-left: 0; } }

/* Hueco del alto de la cabecera transparente (lo ponía theme.js de YOOtheme) */
.ivh-hueco { height: 80px; }
@media (min-width: 960px) { .ivh-hueco { height: 210px; } }

/* Formulario de contacto (/contacto) */
.iv-form .uk-form-label { display: block; margin-bottom: 6px; font-weight: 600; color: #0B2545; }
.iv-form .uk-input, .iv-form .uk-textarea { border-radius: 12px; background: #fff; }
.iv-form-trampa { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.iv-form-privacidad { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; }
.iv-form-privacidad .uk-checkbox { margin-top: 3px; flex: none; }
.iv-form-rgpd { margin: 12px 0 0 30px; font-size: .78rem; line-height: 1.5; opacity: .85; }
.iv-form-aviso { margin: 0 0 24px; padding: 14px 18px; border-radius: 12px; background: #fff; border: 1px solid rgba(11, 37, 69, .12); color: #0B2545; font-weight: 600; }
.iv-form-aviso.ok { border-color: rgba(22, 163, 74, .4); }
.iv-form-aviso.mal { border-color: rgba(251, 77, 128, .5); }
