
@font-face {
  font-family: "Roboto";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fuentes/roboto-latin.woff2") format("woff2-variations");
  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;
}

@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fuentes/source-serif-4-600.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;
}

:root {
  --tinta:       #0a1f3d;
  --azul:        #073784;
  --azul-hondo:  #06296F;
  --oro:         #9c711f;
  --oro-claro:   #b8862b;
  --oro-vivo:    #f0b429;
  --naranja:     #da6334;

  --sombra-foto:
    0 1px 2px rgba(10, 31, 61, 0.55),
    0 6px 12px -2px rgba(7, 55, 132, 0.38),
    0 18px 36px -8px rgba(6, 41, 111, 0.32),
    0 36px 60px -24px rgba(156, 113, 31, 0.30);
  --suave:       #5a6570;
  --foco:        #6a1b9a;
  --linea:       #c9d2dd;
  --fondo-suave: #f5f7fa;

  --via-publico:    #073784;
  --via-empresa:    #0c545a;
  --via-ciudadania: #6b2d7a;
  --via-oposiciones:#7a3b00;

  --ancho: min(92vw, 90rem);
  --lectura: 46rem;
  --radio: 2px;
}

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: "Roboto", "Segoe UI", system-ui, Arial, sans-serif;
  font-size: 17px;
  line-height: 1.65;
  color: var(--tinta);
  background: #fff;
}

img { max-width: 100%; height: auto; }

h1, h2 { font-family: "Source Serif 4", Georgia, "Times New Roman", serif; font-weight: 600; }
h1 { font-size: clamp(2.3rem, 1.3rem + 4.4vw, 4.2rem); line-height: 1.04;
     letter-spacing: -0.02em;
     color: var(--azul-hondo); margin: 0 0 24px; text-wrap: balance; }
h2 { font-size: clamp(1.6rem, 1.2rem + 1.9vw, 2.5rem); line-height: 1.1;
     letter-spacing: -0.01em;
     color: var(--azul); margin: 0 0 16px; text-wrap: balance; }
h3 { font-family: inherit; font-weight: 600; font-size: 1.125rem; line-height: 1.3;
     color: var(--azul); margin: 0 0 8px; }

.entradilla { font-size: clamp(1.0625rem, 1rem + 0.5vw, 1.45rem); line-height: 1.45;
              max-width: 46rem; }

main p, main li, main dd { text-align: justify; hyphens: auto; }
main .rotulo, main .tarjeta-meta, main .hero-botones,
.tarj-cuerpo p, .diapo-cuerpo p, .linea-detalle li,
.pie p { text-align: left; hyphens: manual; }
.rotulo { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em;
          text-transform: uppercase; line-height: 1; color: var(--suave); }
.metadato { font-size: 0.875rem; line-height: 1.5; color: var(--suave); }

.salta { position: absolute; left: -9999px; top: 0; z-index: 10001;
         background: var(--azul); color: #fff; padding: 16px 24px; }
.salta:focus { left: 0; }

a:focus-visible, button:focus-visible, summary:focus-visible {
  outline: 3px solid var(--foco);
  outline-offset: 2px;
}

.cabecera { border-bottom: 3px solid var(--azul); background: #fff;
            position: relative; z-index: 60; }
.cabecera-interior {
  max-width: var(--ancho); margin: 0 auto; padding: 10px 24px;
  display: flex; flex-wrap: nowrap; gap: 14px; align-items: center;
  justify-content: space-between;
}
.cabecera-interior > .menu-fila { flex: 1 1 auto; min-width: 0; order: 2; }
.cabecera-interior > .marca { flex: 0 0 auto; order: 1; }
.cabecera-interior > .cabecera-derecha { flex: 0 0 auto; order: 3; }
.cabecera-interior > .marca img { height: 52px; max-height: none; width: auto; }
.marca { display: inline-block; line-height: 0; }
.marca img { display: block; height: 80px; width: auto; }

.menu-boton { display: none; }
.menu-lista { display: flex; flex-wrap: wrap; align-items: center;
              gap: 8px 24px; list-style: none; margin: 0; padding: 0; }
.menu-lista a { color: var(--tinta); text-decoration: none; font-weight: 500; padding: 8px 0;
                border-bottom: 3px solid transparent; }
.menu-lista a:hover,
.menu-lista > li > a:focus-visible { color: var(--azul); border-bottom-color: var(--oro); }

.menu-item { position: relative; }

.desplegable > summary {
  list-style: none; cursor: pointer;
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--tinta); font-weight: 500; padding: 8px 0;
  border-bottom: 3px solid transparent;
}
.desplegable > summary::-webkit-details-marker { display: none; }

.desplegable > summary::after {
  content: ''; width: 8px; height: 8px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 0.2s ease;
}
.desplegable[open] > summary::after { transform: translateY(2px) rotate(225deg); }
.desplegable > summary:hover,
.desplegable > summary:focus-visible { color: var(--azul); border-bottom-color: var(--oro); }
.desplegable[open] > summary { color: var(--azul); border-bottom-color: var(--oro); }
.desplegable > summary:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; }

.desplegable:not([open]) .desplegable-panel { display: none; }

.desplegable-panel {
  position: absolute; top: calc(100% + 3px); left: 0; z-index: 70;
  min-width: 21rem; padding: 8px 24px 16px;
  background: #fff;
  border: 1px solid var(--linea);
  border-top: 3px solid var(--oro);
  border-radius: var(--radio);
  box-shadow: 0 2px 4px rgba(10, 31, 61, 0.18), 0 18px 36px -10px rgba(10, 31, 61, 0.38);
}
.desplegable-panel ul { list-style: none; margin: 0; padding: 0; }
.desplegable-panel a { display: block; padding: 8px 0; border-bottom: none; }
.desplegable-panel a:hover { color: var(--azul); text-decoration: underline;
                             text-decoration-color: var(--oro); text-decoration-thickness: 2px;
                             text-underline-offset: 3px; }
.desplegable-panel .desplegable-todo {
  font-weight: 600; color: var(--azul); padding: 16px 0 12px;
  border-bottom: 1px solid var(--linea); margin-bottom: 8px;
}
.desplegable-rotulo {
  font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
  line-height: 1; color: var(--suave); margin: 16px 0 8px;
}

.enlace-tarjeta::after { content: ''; position: absolute; inset: 0;
                         border-radius: var(--radio); }
.tarjeta, .via { cursor: pointer; }

.acceso-campus { display: flex; gap: 8px; flex-wrap: wrap; }

.boton {
  display: inline-block; font: inherit; font-weight: 600;
  padding: 12px 22px; border-radius: var(--radio); border: 1px solid var(--azul);
  text-decoration: none; cursor: pointer; text-align: center;
}
.boton--relleno { background: var(--azul); color: #fff; }
.boton--contorno { background: #fff; color: var(--azul); }
.boton:hover { background: var(--azul-hondo); border-color: var(--azul-hondo); color: #fff; }

.seccion { padding: 72px 24px; }
.franja--suave { background: var(--fondo-suave); }
.contenido { max-width: var(--ancho); margin: 0 auto; }
.contenido--lectura { max-width: var(--lectura); }
.seccion > .contenido > p { max-width: var(--lectura); }

.hero { padding: clamp(56px, 8vw, 116px) 24px clamp(40px, 5vw, 72px);
        border-bottom: 1px solid var(--linea); }
.hero p { max-width: var(--lectura); }
.hero-donde { color: var(--suave); border-left: 3px solid var(--oro); padding-left: 16px; }
.hero-botones { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 40px; }

.rejilla { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
           perspective: 1200px; }
.rejilla--vias { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 62rem) { .rejilla--vias { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 30rem) { .rejilla--vias { grid-template-columns: 1fr; } }

.tarjeta, .via {
  --foco: #ffffff;
  position: relative;
  padding: 24px;
  border: 0;
  border-top: 3px solid var(--oro-vivo);
  border-radius: var(--radio);
  background: var(--fondo-tarjeta, var(--azul));
  color: #fff;
  box-shadow:
    inset 0 -4px 0 rgba(0, 0, 0, 0.30),
    0 1px 2px rgba(10, 31, 61, 0.30),
    0 10px 20px -6px rgba(10, 31, 61, 0.45);
  transform-origin: 50% 100%;
  transition: transform 0.28s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.28s ease;
}

.tarjeta:hover, .via:hover,
.tarjeta:focus-within, .via:focus-within {
  z-index: 2;
  transform: translateY(-10px) rotateX(6deg) scale(1.015);
  box-shadow:
    inset 0 -4px 0 rgba(0, 0, 0, 0.30),
    0 2px 4px rgba(10, 31, 61, 0.32),
    0 26px 46px -10px rgba(10, 31, 61, 0.50);
}

.tarjeta h3, .via h3,
.tarjeta p,  .via p,
.tarjeta li, .via li,
.tarjeta a,  .via a { color: #fff; }
.tarjeta .icono, .via .icono { color: var(--oro-vivo); }
.tarjeta a, .via a { text-decoration-color: var(--oro-vivo);
                     text-decoration-thickness: 2px; text-underline-offset: 3px; }
.tarjeta a:hover, .via a:hover { text-decoration-color: #fff; }
.tarjeta p { margin-bottom: 0; }
.tarjeta-meta { margin-bottom: 0; }

.via--publico,     .rejilla > *:nth-child(6n + 1) { --fondo-tarjeta: #073784; }
.via--empresa,     .rejilla > *:nth-child(6n + 2) { --fondo-tarjeta: #0d5c63; }
.via--ciudadania,  .rejilla > *:nth-child(6n + 3) { --fondo-tarjeta: #6b2d7a; }
.via--oposiciones, .rejilla > *:nth-child(6n + 4) { --fondo-tarjeta: #7a3b00; }
.rejilla > *:nth-child(6n + 5) { --fondo-tarjeta: #7a1230; }
.rejilla > *:nth-child(6n + 6) { --fondo-tarjeta: #14532d; }

.via ul { margin: 0 0 16px; padding-left: 20px; }
.via li { margin-bottom: 8px; }
.via-enlace { font-weight: 600; }

.iconos-fuente { display: none; }
.icono { width: 32px; height: 32px; color: var(--oro); display: block; margin-bottom: 16px; }

.carrusel { position: relative; }

.carrusel-marco { overflow: hidden; }

.carrusel-pista {
  list-style: none; margin: 0; padding: 0;
  display: flex; align-items: center;
  --tarjeta: min(78vw, 22rem);
  transition: transform .55s cubic-bezier(.85, 0, 0, 1);
}
@media (min-width: 900px) { .carrusel-pista { --tarjeta: clamp(17rem, 30.6vw, 26rem); } }
@media (max-width: 560px) {
  .carrusel-pista { --tarjeta: min(86vw, 22rem); }
}

.diapo {
  flex: 0 0 var(--tarjeta); margin-right: 5px;
  display: flex; align-items: center; justify-content: center;
}

.diapo-tarjeta {
  position: relative; display: block; width: 100%; aspect-ratio: 3 / 4;
  overflow: hidden; border-radius: var(--radio);
  text-decoration: none; color: #fff;
  cursor: grab;
  transform: scale(.6);
  transition: transform .55s cubic-bezier(.85, 0, 0, 1);
}
.diapo-tarjeta, .diapo-tarjeta p { text-align: left; hyphens: manual; }

.diapo--lejos-izq, .diapo--lejos-der { opacity: 0; }
.diapo { transition: opacity .55s cubic-bezier(.85, 0, 0, 1); }
.diapo--lejos-izq  .diapo-tarjeta { transform: scale(.6) translateX(30%); }
.diapo--lejos-der  .diapo-tarjeta { transform: scale(.6) translateX(-30%); }
.diapo--vecina-izq .diapo-tarjeta { transform: scale(.8); }
.diapo--vecina-der .diapo-tarjeta { transform: scale(.8); }
.diapo--centro     .diapo-tarjeta { transform: scale(1); }

.capitulo--azul    { background: var(--via-publico);     color: #fff; }
.capitulo--teal    { background: var(--via-empresa);     color: #fff; }
.capitulo--violeta { background: var(--via-ciudadania);  color: #fff; }
.capitulo--bronce  { background: var(--via-oposiciones); color: #fff; }
.diapo--azul    .diapo-tarjeta { background: var(--via-publico); }
.diapo--azul    { --velo: 7, 55, 132; }
.diapo--teal    .diapo-tarjeta { background: var(--via-empresa); }
.diapo--teal    { --velo: 12, 84, 90; }
.diapo--violeta .diapo-tarjeta { background: var(--via-ciudadania); }
.diapo--violeta { --velo: 107, 45, 122; }
.diapo--bronce  .diapo-tarjeta { background: var(--via-oposiciones); }
.diapo--bronce  { --velo: 122, 59, 0; }
.diapo--granate .diapo-tarjeta { background: #7a1230; }
.diapo--granate { --velo: 122, 18, 48; }
.diapo--verde   .diapo-tarjeta { background: #14532d; }
.diapo--verde   { --velo: 20, 83, 45; }

.diapo-foto { position: absolute; inset: 0; display: block; width: 100%; height: 100%;
              object-fit: cover; object-position: center; }

.diapo--teal.diapo--foto .diapo-capa {
  background:
    radial-gradient(128% 94% at 100% 100%,
      rgba(var(--velo, 12, 84, 90), .88) 0%,
      rgba(var(--velo, 12, 84, 90), .867) 4%,
      rgba(var(--velo, 12, 84, 90), .854) 8%,
      rgba(var(--velo, 12, 84, 90), .843) 12%,
      rgba(var(--velo, 12, 84, 90), .831) 16%,
      rgba(var(--velo, 12, 84, 90), .818) 20%,
      rgba(var(--velo, 12, 84, 90), .805) 24%,
      rgba(var(--velo, 12, 84, 90), .789) 28%,
      rgba(var(--velo, 12, 84, 90), .77) 32%,
      rgba(var(--velo, 12, 84, 90), .748) 36%,
      rgba(var(--velo, 12, 84, 90), .717) 40%,
      rgba(var(--velo, 12, 84, 90), .678) 44%,
      rgba(var(--velo, 12, 84, 90), .633) 48%,
      rgba(var(--velo, 12, 84, 90), .585) 52%,
      rgba(var(--velo, 12, 84, 90), .535) 56%,
      rgba(var(--velo, 12, 84, 90), .484) 60%,
      rgba(var(--velo, 12, 84, 90), .435) 64%,
      rgba(var(--velo, 12, 84, 90), .381) 68%,
      rgba(var(--velo, 12, 84, 90), .323) 72%,
      rgba(var(--velo, 12, 84, 90), .265) 76%,
      rgba(var(--velo, 12, 84, 90), .21) 80%,
      rgba(var(--velo, 12, 84, 90), .16) 84%,
      rgba(var(--velo, 12, 84, 90), .117) 88%,
      rgba(var(--velo, 12, 84, 90), .077) 92%,
      rgba(var(--velo, 12, 84, 90), .039) 96%,
      rgba(var(--velo, 12, 84, 90), 0) 100%),
    linear-gradient(to right,
      rgba(var(--velo, 12, 84, 90), 0) 0%,
      rgba(var(--velo, 12, 84, 90), 0) 4%,
      rgba(var(--velo, 12, 84, 90), 0) 8%,
      rgba(var(--velo, 12, 84, 90), 0) 12%,
      rgba(var(--velo, 12, 84, 90), 0) 16%,
      rgba(var(--velo, 12, 84, 90), 0) 20%,
      rgba(var(--velo, 12, 84, 90), 0) 24%,
      rgba(var(--velo, 12, 84, 90), .036) 28%,
      rgba(var(--velo, 12, 84, 90), .1) 32%,
      rgba(var(--velo, 12, 84, 90), .16) 36%,
      rgba(var(--velo, 12, 84, 90), .22) 40%,
      rgba(var(--velo, 12, 84, 90), .272) 44%,
      rgba(var(--velo, 12, 84, 90), .319) 48%,
      rgba(var(--velo, 12, 84, 90), .361) 52%,
      rgba(var(--velo, 12, 84, 90), .407) 56%,
      rgba(var(--velo, 12, 84, 90), .444) 60%,
      rgba(var(--velo, 12, 84, 90), .46) 64%,
      rgba(var(--velo, 12, 84, 90), .456) 68%,
      rgba(var(--velo, 12, 84, 90), .444) 72%,
      rgba(var(--velo, 12, 84, 90), .429) 76%,
      rgba(var(--velo, 12, 84, 90), .409) 80%,
      rgba(var(--velo, 12, 84, 90), .374) 84%,
      rgba(var(--velo, 12, 84, 90), .336) 88%,
      rgba(var(--velo, 12, 84, 90), .307) 92%,
      rgba(var(--velo, 12, 84, 90), .283) 96%,
      rgba(var(--velo, 12, 84, 90), .26) 100%),
    linear-gradient(to bottom,
      rgba(var(--velo, 12, 84, 90), .64) 0%,
      rgba(var(--velo, 12, 84, 90), .603) 4%,
      rgba(var(--velo, 12, 84, 90), .564) 8%,
      rgba(var(--velo, 12, 84, 90), .51) 12%,
      rgba(var(--velo, 12, 84, 90), .435) 16%,
      rgba(var(--velo, 12, 84, 90), .36) 20%,
      rgba(var(--velo, 12, 84, 90), .295) 24%,
      rgba(var(--velo, 12, 84, 90), .233) 28%,
      rgba(var(--velo, 12, 84, 90), .18) 32%,
      rgba(var(--velo, 12, 84, 90), .133) 36%,
      rgba(var(--velo, 12, 84, 90), .092) 40%,
      rgba(var(--velo, 12, 84, 90), .06) 44%,
      rgba(var(--velo, 12, 84, 90), .033) 48%,
      rgba(var(--velo, 12, 84, 90), .01) 52%,
      rgba(var(--velo, 12, 84, 90), 0) 56%,
      rgba(var(--velo, 12, 84, 90), 0) 60%,
      rgba(var(--velo, 12, 84, 90), 0) 64%,
      rgba(var(--velo, 12, 84, 90), 0) 68%,
      rgba(var(--velo, 12, 84, 90), 0) 72%,
      rgba(var(--velo, 12, 84, 90), 0) 76%,
      rgba(var(--velo, 12, 84, 90), 0) 80%,
      rgba(var(--velo, 12, 84, 90), 0) 84%,
      rgba(var(--velo, 12, 84, 90), 0) 88%,
      rgba(var(--velo, 12, 84, 90), 0) 92%,
      rgba(var(--velo, 12, 84, 90), 0) 96%,
      rgba(var(--velo, 12, 84, 90), 0) 100%);
}
.diapo--teal.diapo--foto .diapo-tarjeta:hover .diapo-capa,
.diapo--teal.diapo--foto .diapo-tarjeta:focus-visible .diapo-capa {
  background:
    radial-gradient(128% 94% at 100% 100%,
      rgba(var(--velo, 12, 84, 90), .94)   0%,
      rgba(var(--velo, 12, 84, 90), .86)  34%,
      rgba(var(--velo, 12, 84, 90), .64)  62%,
      rgba(var(--velo, 12, 84, 90), .38)  84%,
      rgba(var(--velo, 12, 84, 90), .24) 100%),
    linear-gradient(to right,
      rgba(var(--velo, 12, 84, 90), .14)   0%,
      rgba(var(--velo, 12, 84, 90), .20)  24%,
      rgba(var(--velo, 12, 84, 90), .30)  40%,
      rgba(var(--velo, 12, 84, 90), .48)  64%,
      rgba(var(--velo, 12, 84, 90), .40) 100%),
    linear-gradient(to bottom,
      rgba(var(--velo, 12, 84, 90), .72)   0%,
      rgba(var(--velo, 12, 84, 90), .50)  20%,
      rgba(var(--velo, 12, 84, 90), .24)  36%,
      rgba(var(--velo, 12, 84, 90), 0)    56%);
}

.diapo--bronce.diapo--foto .diapo-capa {
  background:
    radial-gradient(62% 42% at 37.5% 56%,
      rgba(var(--velo, 122, 59, 0), .46) 0%,
      rgba(var(--velo, 122, 59, 0), .448) 4%,
      rgba(var(--velo, 122, 59, 0), .436) 8%,
      rgba(var(--velo, 122, 59, 0), .425) 12%,
      rgba(var(--velo, 122, 59, 0), .414) 16%,
      rgba(var(--velo, 122, 59, 0), .403) 20%,
      rgba(var(--velo, 122, 59, 0), .392) 24%,
      rgba(var(--velo, 122, 59, 0), .38) 28%,
      rgba(var(--velo, 122, 59, 0), .368) 32%,
      rgba(var(--velo, 122, 59, 0), .354) 36%,
      rgba(var(--velo, 122, 59, 0), .34) 40%,
      rgba(var(--velo, 122, 59, 0), .324) 44%,
      rgba(var(--velo, 122, 59, 0), .306) 48%,
      rgba(var(--velo, 122, 59, 0), .284) 52%,
      rgba(var(--velo, 122, 59, 0), .26) 56%,
      rgba(var(--velo, 122, 59, 0), .233) 60%,
      rgba(var(--velo, 122, 59, 0), .205) 64%,
      rgba(var(--velo, 122, 59, 0), .177) 68%,
      rgba(var(--velo, 122, 59, 0), .15) 72%,
      rgba(var(--velo, 122, 59, 0), .124) 76%,
      rgba(var(--velo, 122, 59, 0), .1) 80%,
      rgba(var(--velo, 122, 59, 0), .079) 84%,
      rgba(var(--velo, 122, 59, 0), .059) 88%,
      rgba(var(--velo, 122, 59, 0), .039) 92%,
      rgba(var(--velo, 122, 59, 0), .02) 96%,
      rgba(var(--velo, 122, 59, 0), 0) 100%),
    linear-gradient(to bottom,
      rgba(var(--velo, 122, 59, 0), 0) 0%,
      rgba(var(--velo, 122, 59, 0), 0) 4%,
      rgba(var(--velo, 122, 59, 0), 0) 8%,
      rgba(var(--velo, 122, 59, 0), 0) 12%,
      rgba(var(--velo, 122, 59, 0), 0) 16%,
      rgba(var(--velo, 122, 59, 0), 0) 20%,
      rgba(var(--velo, 122, 59, 0), 0) 24%,
      rgba(var(--velo, 122, 59, 0), 0) 28%,
      rgba(var(--velo, 122, 59, 0), 0) 32%,
      rgba(var(--velo, 122, 59, 0), 0) 36%,
      rgba(var(--velo, 122, 59, 0), 0) 40%,
      rgba(var(--velo, 122, 59, 0), .011) 44%,
      rgba(var(--velo, 122, 59, 0), .079) 48%,
      rgba(var(--velo, 122, 59, 0), .165) 52%,
      rgba(var(--velo, 122, 59, 0), .278) 56%,
      rgba(var(--velo, 122, 59, 0), .408) 60%,
      rgba(var(--velo, 122, 59, 0), .556) 64%,
      rgba(var(--velo, 122, 59, 0), .68) 68%,
      rgba(var(--velo, 122, 59, 0), .794) 72%,
      rgba(var(--velo, 122, 59, 0), .86) 76%,
      rgba(var(--velo, 122, 59, 0), .879) 80%,
      rgba(var(--velo, 122, 59, 0), .891) 84%,
      rgba(var(--velo, 122, 59, 0), .9) 88%,
      rgba(var(--velo, 122, 59, 0), .908) 92%,
      rgba(var(--velo, 122, 59, 0), .914) 96%,
      rgba(var(--velo, 122, 59, 0), .92) 100%),
    linear-gradient(to bottom,
      rgba(var(--velo, 122, 59, 0), .34) 0%,
      rgba(var(--velo, 122, 59, 0), .334) 4%,
      rgba(var(--velo, 122, 59, 0), .328) 8%,
      rgba(var(--velo, 122, 59, 0), .322) 12%,
      rgba(var(--velo, 122, 59, 0), .316) 16%,
      rgba(var(--velo, 122, 59, 0), .31) 20%,
      rgba(var(--velo, 122, 59, 0), .303) 24%,
      rgba(var(--velo, 122, 59, 0), .296) 28%,
      rgba(var(--velo, 122, 59, 0), .289) 32%,
      rgba(var(--velo, 122, 59, 0), .28) 36%,
      rgba(var(--velo, 122, 59, 0), .272) 40%,
      rgba(var(--velo, 122, 59, 0), .264) 44%,
      rgba(var(--velo, 122, 59, 0), .256) 48%,
      rgba(var(--velo, 122, 59, 0), .249) 52%,
      rgba(var(--velo, 122, 59, 0), .241) 56%,
      rgba(var(--velo, 122, 59, 0), .234) 60%,
      rgba(var(--velo, 122, 59, 0), .227) 64%,
      rgba(var(--velo, 122, 59, 0), .222) 68%,
      rgba(var(--velo, 122, 59, 0), .218) 72%,
      rgba(var(--velo, 122, 59, 0), .215) 76%,
      rgba(var(--velo, 122, 59, 0), .212) 80%,
      rgba(var(--velo, 122, 59, 0), .209) 84%,
      rgba(var(--velo, 122, 59, 0), .207) 88%,
      rgba(var(--velo, 122, 59, 0), .205) 92%,
      rgba(var(--velo, 122, 59, 0), .203) 96%,
      rgba(var(--velo, 122, 59, 0), .2) 100%);
}
.diapo--bronce.diapo--foto .diapo-tarjeta:hover .diapo-capa,
.diapo--bronce.diapo--foto .diapo-tarjeta:focus-visible .diapo-capa {
  background:
    radial-gradient(62% 42% at 37.5% 56%,
      rgba(var(--velo, 122, 59, 0), .54)   0%,
      rgba(var(--velo, 122, 59, 0), .40)  45%,
      rgba(var(--velo, 122, 59, 0), .18)  80%,
      rgba(var(--velo, 122, 59, 0), .08) 100%),
    linear-gradient(to bottom,
      rgba(var(--velo, 122, 59, 0), .10)   0%,
      rgba(var(--velo, 122, 59, 0), .18)  42%,
      rgba(var(--velo, 122, 59, 0), .40)  58%,
      rgba(var(--velo, 122, 59, 0), .72)  70%,
      rgba(var(--velo, 122, 59, 0), .92)  84%,
      rgba(var(--velo, 122, 59, 0), .94) 100%),
    linear-gradient(to bottom,
      rgba(var(--velo, 122, 59, 0), .44)   0%,
      rgba(var(--velo, 122, 59, 0), .38)  46%,
      rgba(var(--velo, 122, 59, 0), .30) 100%);
}

.diapo--granate.diapo--foto .diapo-capa {
  background:
    radial-gradient(120% 78% at 100% 100%,
      rgba(var(--velo, 122, 18, 48), .8) 0%,
      rgba(var(--velo, 122, 18, 48), .781) 4%,
      rgba(var(--velo, 122, 18, 48), .763) 8%,
      rgba(var(--velo, 122, 18, 48), .745) 12%,
      rgba(var(--velo, 122, 18, 48), .728) 16%,
      rgba(var(--velo, 122, 18, 48), .71) 20%,
      rgba(var(--velo, 122, 18, 48), .691) 24%,
      rgba(var(--velo, 122, 18, 48), .67) 28%,
      rgba(var(--velo, 122, 18, 48), .646) 32%,
      rgba(var(--velo, 122, 18, 48), .62) 36%,
      rgba(var(--velo, 122, 18, 48), .587) 40%,
      rgba(var(--velo, 122, 18, 48), .547) 44%,
      rgba(var(--velo, 122, 18, 48), .5) 48%,
      rgba(var(--velo, 122, 18, 48), .45) 52%,
      rgba(var(--velo, 122, 18, 48), .399) 56%,
      rgba(var(--velo, 122, 18, 48), .348) 60%,
      rgba(var(--velo, 122, 18, 48), .301) 64%,
      rgba(var(--velo, 122, 18, 48), .26) 68%,
      rgba(var(--velo, 122, 18, 48), .223) 72%,
      rgba(var(--velo, 122, 18, 48), .189) 76%,
      rgba(var(--velo, 122, 18, 48), .156) 80%,
      rgba(var(--velo, 122, 18, 48), .125) 84%,
      rgba(var(--velo, 122, 18, 48), .094) 88%,
      rgba(var(--velo, 122, 18, 48), .063) 92%,
      rgba(var(--velo, 122, 18, 48), .032) 96%,
      rgba(var(--velo, 122, 18, 48), 0) 100%),
    linear-gradient(to right,
      rgba(var(--velo, 122, 18, 48), 0) 0%,
      rgba(var(--velo, 122, 18, 48), 0) 4%,
      rgba(var(--velo, 122, 18, 48), 0) 8%,
      rgba(var(--velo, 122, 18, 48), 0) 12%,
      rgba(var(--velo, 122, 18, 48), 0) 16%,
      rgba(var(--velo, 122, 18, 48), 0) 20%,
      rgba(var(--velo, 122, 18, 48), .003) 24%,
      rgba(var(--velo, 122, 18, 48), .025) 28%,
      rgba(var(--velo, 122, 18, 48), .061) 32%,
      rgba(var(--velo, 122, 18, 48), .102) 36%,
      rgba(var(--velo, 122, 18, 48), .14) 40%,
      rgba(var(--velo, 122, 18, 48), .177) 44%,
      rgba(var(--velo, 122, 18, 48), .218) 48%,
      rgba(var(--velo, 122, 18, 48), .257) 52%,
      rgba(var(--velo, 122, 18, 48), .288) 56%,
      rgba(var(--velo, 122, 18, 48), .31) 60%,
      rgba(var(--velo, 122, 18, 48), .328) 64%,
      rgba(var(--velo, 122, 18, 48), .345) 68%,
      rgba(var(--velo, 122, 18, 48), .356) 72%,
      rgba(var(--velo, 122, 18, 48), .36) 76%,
      rgba(var(--velo, 122, 18, 48), .357) 80%,
      rgba(var(--velo, 122, 18, 48), .349) 84%,
      rgba(var(--velo, 122, 18, 48), .337) 88%,
      rgba(var(--velo, 122, 18, 48), .324) 92%,
      rgba(var(--velo, 122, 18, 48), .311) 96%,
      rgba(var(--velo, 122, 18, 48), .3) 100%),
    linear-gradient(to bottom,
      rgba(var(--velo, 122, 18, 48), .66) 0%,
      rgba(var(--velo, 122, 18, 48), .665) 4%,
      rgba(var(--velo, 122, 18, 48), .671) 8%,
      rgba(var(--velo, 122, 18, 48), .676) 12%,
      rgba(var(--velo, 122, 18, 48), .682) 16%,
      rgba(var(--velo, 122, 18, 48), .687) 20%,
      rgba(var(--velo, 122, 18, 48), .693) 24%,
      rgba(var(--velo, 122, 18, 48), .698) 28%,
      rgba(var(--velo, 122, 18, 48), .703) 32%,
      rgba(var(--velo, 122, 18, 48), .708) 36%,
      rgba(var(--velo, 122, 18, 48), .714) 40%,
      rgba(var(--velo, 122, 18, 48), .718) 44%,
      rgba(var(--velo, 122, 18, 48), .72) 48%,
      rgba(var(--velo, 122, 18, 48), .695) 52%,
      rgba(var(--velo, 122, 18, 48), .64) 56%,
      rgba(var(--velo, 122, 18, 48), .582) 60%,
      rgba(var(--velo, 122, 18, 48), .542) 64%,
      rgba(var(--velo, 122, 18, 48), .506) 68%,
      rgba(var(--velo, 122, 18, 48), .476) 72%,
      rgba(var(--velo, 122, 18, 48), .46) 76%,
      rgba(var(--velo, 122, 18, 48), .455) 80%,
      rgba(var(--velo, 122, 18, 48), .451) 84%,
      rgba(var(--velo, 122, 18, 48), .448) 88%,
      rgba(var(--velo, 122, 18, 48), .445) 92%,
      rgba(var(--velo, 122, 18, 48), .443) 96%,
      rgba(var(--velo, 122, 18, 48), .44) 100%);
}
.diapo--granate.diapo--foto .diapo-tarjeta:hover .diapo-capa,
.diapo--granate.diapo--foto .diapo-tarjeta:focus-visible .diapo-capa {
  background:
    radial-gradient(120% 78% at 100% 100%,
      rgba(var(--velo, 122, 18, 48), .88)   0%,
      rgba(var(--velo, 122, 18, 48), .72)  36%,
      rgba(var(--velo, 122, 18, 48), .40)  68%,
      rgba(var(--velo, 122, 18, 48), .18) 100%),
    linear-gradient(to right,
      rgba(var(--velo, 122, 18, 48), .10)   0%,
      rgba(var(--velo, 122, 18, 48), .22)  40%,
      rgba(var(--velo, 122, 18, 48), .40)  70%,
      rgba(var(--velo, 122, 18, 48), .36) 100%),
    linear-gradient(to bottom,
      rgba(var(--velo, 122, 18, 48), .76)   0%,
      rgba(var(--velo, 122, 18, 48), .80)  40%,
      rgba(var(--velo, 122, 18, 48), .66)  66%,
      rgba(var(--velo, 122, 18, 48), .58) 100%);
}

.diapo-capa {
  position: absolute; inset: 0;
  background: linear-gradient(to top,
              rgba(10, 31, 61, .76) 0%, rgba(10, 31, 61, .54) 24%, rgba(10, 31, 61, 0) 46%);
  opacity: 0;
  transition: background .55s cubic-bezier(.85, 0, 0, 1), opacity .75s ease-in-out;
}
.diapo-tarjeta:hover .diapo-capa,
.diapo-tarjeta:focus-visible .diapo-capa { background: rgba(10, 31, 61, .88); }

.diapo-panel {
  --cuerpo: 7rem; --pie: 2.4rem; --hueco: 14px; --borde: 20px;
  --oculto: calc(var(--borde) + var(--cuerpo) + var(--hueco) + var(--pie));
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 0 var(--borde) var(--borde);
  transform: translateY(var(--oculto));
  opacity: 0;
  transition: transform .55s cubic-bezier(.85, 0, 0, 1), opacity .75s ease-in-out;
}
.diapo--centro .diapo-capa,
.diapo--centro .diapo-panel { opacity: 1; }

.diapo--verde.diapo--foto .diapo-capa {
  background:
    radial-gradient(64% 50% at 12% 24%,
      rgba(var(--velo, 20, 83, 45), .58) 0%,
      rgba(var(--velo, 20, 83, 45), .572) 4%,
      rgba(var(--velo, 20, 83, 45), .566) 8%,
      rgba(var(--velo, 20, 83, 45), .559) 12%,
      rgba(var(--velo, 20, 83, 45), .553) 16%,
      rgba(var(--velo, 20, 83, 45), .546) 20%,
      rgba(var(--velo, 20, 83, 45), .539) 24%,
      rgba(var(--velo, 20, 83, 45), .531) 28%,
      rgba(var(--velo, 20, 83, 45), .522) 32%,
      rgba(var(--velo, 20, 83, 45), .512) 36%,
      rgba(var(--velo, 20, 83, 45), .5) 40%,
      rgba(var(--velo, 20, 83, 45), .484) 44%,
      rgba(var(--velo, 20, 83, 45), .462) 48%,
      rgba(var(--velo, 20, 83, 45), .436) 52%,
      rgba(var(--velo, 20, 83, 45), .405) 56%,
      rgba(var(--velo, 20, 83, 45), .372) 60%,
      rgba(var(--velo, 20, 83, 45), .337) 64%,
      rgba(var(--velo, 20, 83, 45), .301) 68%,
      rgba(var(--velo, 20, 83, 45), .266) 72%,
      rgba(var(--velo, 20, 83, 45), .231) 76%,
      rgba(var(--velo, 20, 83, 45), .196) 80%,
      rgba(var(--velo, 20, 83, 45), .158) 84%,
      rgba(var(--velo, 20, 83, 45), .119) 88%,
      rgba(var(--velo, 20, 83, 45), .079) 92%,
      rgba(var(--velo, 20, 83, 45), .039) 96%,
      rgba(var(--velo, 20, 83, 45), 0) 100%),
    linear-gradient(to bottom,
      rgba(var(--velo, 20, 83, 45), .24) 0%,
      rgba(var(--velo, 20, 83, 45), .24) 4%,
      rgba(var(--velo, 20, 83, 45), .24) 8%,
      rgba(var(--velo, 20, 83, 45), .24) 12%,
      rgba(var(--velo, 20, 83, 45), .24) 16%,
      rgba(var(--velo, 20, 83, 45), .24) 20%,
      rgba(var(--velo, 20, 83, 45), .24) 24%,
      rgba(var(--velo, 20, 83, 45), .24) 28%,
      rgba(var(--velo, 20, 83, 45), .236) 32%,
      rgba(var(--velo, 20, 83, 45), .211) 36%,
      rgba(var(--velo, 20, 83, 45), .173) 40%,
      rgba(var(--velo, 20, 83, 45), .135) 44%,
      rgba(var(--velo, 20, 83, 45), .105) 48%,
      rgba(var(--velo, 20, 83, 45), .075) 52%,
      rgba(var(--velo, 20, 83, 45), .06) 56%,
      rgba(var(--velo, 20, 83, 45), .107) 60%,
      rgba(var(--velo, 20, 83, 45), .2) 64%,
      rgba(var(--velo, 20, 83, 45), .333) 68%,
      rgba(var(--velo, 20, 83, 45), .48) 72%,
      rgba(var(--velo, 20, 83, 45), .606) 76%,
      rgba(var(--velo, 20, 83, 45), .7) 80%,
      rgba(var(--velo, 20, 83, 45), .751) 84%,
      rgba(var(--velo, 20, 83, 45), .787) 88%,
      rgba(var(--velo, 20, 83, 45), .81) 92%,
      rgba(var(--velo, 20, 83, 45), .826) 96%,
      rgba(var(--velo, 20, 83, 45), .84) 100%),
    radial-gradient(110% 70% at 100% 100%,
      rgba(var(--velo, 20, 83, 45), .5) 0%,
      rgba(var(--velo, 20, 83, 45), .488) 4%,
      rgba(var(--velo, 20, 83, 45), .478) 8%,
      rgba(var(--velo, 20, 83, 45), .467) 12%,
      rgba(var(--velo, 20, 83, 45), .457) 16%,
      rgba(var(--velo, 20, 83, 45), .446) 20%,
      rgba(var(--velo, 20, 83, 45), .435) 24%,
      rgba(var(--velo, 20, 83, 45), .423) 28%,
      rgba(var(--velo, 20, 83, 45), .41) 32%,
      rgba(var(--velo, 20, 83, 45), .396) 36%,
      rgba(var(--velo, 20, 83, 45), .38) 40%,
      rgba(var(--velo, 20, 83, 45), .361) 44%,
      rgba(var(--velo, 20, 83, 45), .337) 48%,
      rgba(var(--velo, 20, 83, 45), .309) 52%,
      rgba(var(--velo, 20, 83, 45), .28) 56%,
      rgba(var(--velo, 20, 83, 45), .249) 60%,
      rgba(var(--velo, 20, 83, 45), .218) 64%,
      rgba(var(--velo, 20, 83, 45), .188) 68%,
      rgba(var(--velo, 20, 83, 45), .159) 72%,
      rgba(var(--velo, 20, 83, 45), .134) 76%,
      rgba(var(--velo, 20, 83, 45), .11) 80%,
      rgba(var(--velo, 20, 83, 45), .088) 84%,
      rgba(var(--velo, 20, 83, 45), .066) 88%,
      rgba(var(--velo, 20, 83, 45), .044) 92%,
      rgba(var(--velo, 20, 83, 45), .022) 96%,
      rgba(var(--velo, 20, 83, 45), 0) 100%);
}
.diapo--verde.diapo--foto .diapo-tarjeta:hover .diapo-capa,
.diapo--verde.diapo--foto .diapo-tarjeta:focus-visible .diapo-capa {
  background:
    radial-gradient(64% 50% at 12% 24%,
      rgba(var(--velo, 20, 83, 45), .58) 0%,
      rgba(var(--velo, 20, 83, 45), .572) 4%,
      rgba(var(--velo, 20, 83, 45), .566) 8%,
      rgba(var(--velo, 20, 83, 45), .559) 12%,
      rgba(var(--velo, 20, 83, 45), .553) 16%,
      rgba(var(--velo, 20, 83, 45), .546) 20%,
      rgba(var(--velo, 20, 83, 45), .539) 24%,
      rgba(var(--velo, 20, 83, 45), .531) 28%,
      rgba(var(--velo, 20, 83, 45), .522) 32%,
      rgba(var(--velo, 20, 83, 45), .512) 36%,
      rgba(var(--velo, 20, 83, 45), .5) 40%,
      rgba(var(--velo, 20, 83, 45), .484) 44%,
      rgba(var(--velo, 20, 83, 45), .462) 48%,
      rgba(var(--velo, 20, 83, 45), .436) 52%,
      rgba(var(--velo, 20, 83, 45), .405) 56%,
      rgba(var(--velo, 20, 83, 45), .372) 60%,
      rgba(var(--velo, 20, 83, 45), .337) 64%,
      rgba(var(--velo, 20, 83, 45), .301) 68%,
      rgba(var(--velo, 20, 83, 45), .266) 72%,
      rgba(var(--velo, 20, 83, 45), .231) 76%,
      rgba(var(--velo, 20, 83, 45), .196) 80%,
      rgba(var(--velo, 20, 83, 45), .158) 84%,
      rgba(var(--velo, 20, 83, 45), .119) 88%,
      rgba(var(--velo, 20, 83, 45), .079) 92%,
      rgba(var(--velo, 20, 83, 45), .039) 96%,
      rgba(var(--velo, 20, 83, 45), 0) 100%),
    linear-gradient(to bottom,
      rgba(var(--velo, 20, 83, 45), .24) 0%,
      rgba(var(--velo, 20, 83, 45), .24) 4%,
      rgba(var(--velo, 20, 83, 45), .24) 8%,
      rgba(var(--velo, 20, 83, 45), .24) 12%,
      rgba(var(--velo, 20, 83, 45), .24) 16%,
      rgba(var(--velo, 20, 83, 45), .24) 20%,
      rgba(var(--velo, 20, 83, 45), .24) 24%,
      rgba(var(--velo, 20, 83, 45), .24) 28%,
      rgba(var(--velo, 20, 83, 45), .236) 32%,
      rgba(var(--velo, 20, 83, 45), .211) 36%,
      rgba(var(--velo, 20, 83, 45), .173) 40%,
      rgba(var(--velo, 20, 83, 45), .135) 44%,
      rgba(var(--velo, 20, 83, 45), .105) 48%,
      rgba(var(--velo, 20, 83, 45), .075) 52%,
      rgba(var(--velo, 20, 83, 45), .06) 56%,
      rgba(var(--velo, 20, 83, 45), .107) 60%,
      rgba(var(--velo, 20, 83, 45), .2) 64%,
      rgba(var(--velo, 20, 83, 45), .333) 68%,
      rgba(var(--velo, 20, 83, 45), .48) 72%,
      rgba(var(--velo, 20, 83, 45), .606) 76%,
      rgba(var(--velo, 20, 83, 45), .7) 80%,
      rgba(var(--velo, 20, 83, 45), .751) 84%,
      rgba(var(--velo, 20, 83, 45), .787) 88%,
      rgba(var(--velo, 20, 83, 45), .81) 92%,
      rgba(var(--velo, 20, 83, 45), .826) 96%,
      rgba(var(--velo, 20, 83, 45), .84) 100%),
    radial-gradient(110% 70% at 100% 100%,
      rgba(var(--velo, 20, 83, 45), .6) 0%,
      rgba(var(--velo, 20, 83, 45), .584) 4%,
      rgba(var(--velo, 20, 83, 45), .57) 8%,
      rgba(var(--velo, 20, 83, 45), .555) 12%,
      rgba(var(--velo, 20, 83, 45), .541) 16%,
      rgba(var(--velo, 20, 83, 45), .527) 20%,
      rgba(var(--velo, 20, 83, 45), .512) 24%,
      rgba(var(--velo, 20, 83, 45), .496) 28%,
      rgba(var(--velo, 20, 83, 45), .479) 32%,
      rgba(var(--velo, 20, 83, 45), .46) 36%,
      rgba(var(--velo, 20, 83, 45), .44) 40%,
      rgba(var(--velo, 20, 83, 45), .416) 44%,
      rgba(var(--velo, 20, 83, 45), .388) 48%,
      rgba(var(--velo, 20, 83, 45), .357) 52%,
      rgba(var(--velo, 20, 83, 45), .323) 56%,
      rgba(var(--velo, 20, 83, 45), .289) 60%,
      rgba(var(--velo, 20, 83, 45), .254) 64%,
      rgba(var(--velo, 20, 83, 45), .22) 68%,
      rgba(var(--velo, 20, 83, 45), .187) 72%,
      rgba(var(--velo, 20, 83, 45), .158) 76%,
      rgba(var(--velo, 20, 83, 45), .13) 80%,
      rgba(var(--velo, 20, 83, 45), .104) 84%,
      rgba(var(--velo, 20, 83, 45), .078) 88%,
      rgba(var(--velo, 20, 83, 45), .052) 92%,
      rgba(var(--velo, 20, 83, 45), .026) 96%,
      rgba(var(--velo, 20, 83, 45), 0) 100%);
}

.diapo--violeta.diapo--foto .diapo-capa {
  background:
    radial-gradient(46% 42% at 18% 15%,
      rgba(var(--velo, 107, 45, 122), .6) 0%,
      rgba(var(--velo, 107, 45, 122), .592) 4%,
      rgba(var(--velo, 107, 45, 122), .584) 8%,
      rgba(var(--velo, 107, 45, 122), .577) 12%,
      rgba(var(--velo, 107, 45, 122), .57) 16%,
      rgba(var(--velo, 107, 45, 122), .563) 20%,
      rgba(var(--velo, 107, 45, 122), .555) 24%,
      rgba(var(--velo, 107, 45, 122), .547) 28%,
      rgba(var(--velo, 107, 45, 122), .538) 32%,
      rgba(var(--velo, 107, 45, 122), .528) 36%,
      rgba(var(--velo, 107, 45, 122), .517) 40%,
      rgba(var(--velo, 107, 45, 122), .504) 44%,
      rgba(var(--velo, 107, 45, 122), .486) 48%,
      rgba(var(--velo, 107, 45, 122), .46) 52%,
      rgba(var(--velo, 107, 45, 122), .428) 56%,
      rgba(var(--velo, 107, 45, 122), .389) 60%,
      rgba(var(--velo, 107, 45, 122), .348) 64%,
      rgba(var(--velo, 107, 45, 122), .304) 68%,
      rgba(var(--velo, 107, 45, 122), .26) 72%,
      rgba(var(--velo, 107, 45, 122), .219) 76%,
      rgba(var(--velo, 107, 45, 122), .18) 80%,
      rgba(var(--velo, 107, 45, 122), .144) 84%,
      rgba(var(--velo, 107, 45, 122), .108) 88%,
      rgba(var(--velo, 107, 45, 122), .072) 92%,
      rgba(var(--velo, 107, 45, 122), .036) 96%,
      rgba(var(--velo, 107, 45, 122), 0) 100%),
    radial-gradient(40% 52% at 92% 25%,
      rgba(var(--velo, 107, 45, 122), .6) 0%,
      rgba(var(--velo, 107, 45, 122), .592) 4%,
      rgba(var(--velo, 107, 45, 122), .584) 8%,
      rgba(var(--velo, 107, 45, 122), .577) 12%,
      rgba(var(--velo, 107, 45, 122), .57) 16%,
      rgba(var(--velo, 107, 45, 122), .563) 20%,
      rgba(var(--velo, 107, 45, 122), .555) 24%,
      rgba(var(--velo, 107, 45, 122), .547) 28%,
      rgba(var(--velo, 107, 45, 122), .538) 32%,
      rgba(var(--velo, 107, 45, 122), .528) 36%,
      rgba(var(--velo, 107, 45, 122), .517) 40%,
      rgba(var(--velo, 107, 45, 122), .504) 44%,
      rgba(var(--velo, 107, 45, 122), .486) 48%,
      rgba(var(--velo, 107, 45, 122), .46) 52%,
      rgba(var(--velo, 107, 45, 122), .428) 56%,
      rgba(var(--velo, 107, 45, 122), .389) 60%,
      rgba(var(--velo, 107, 45, 122), .348) 64%,
      rgba(var(--velo, 107, 45, 122), .304) 68%,
      rgba(var(--velo, 107, 45, 122), .26) 72%,
      rgba(var(--velo, 107, 45, 122), .219) 76%,
      rgba(var(--velo, 107, 45, 122), .18) 80%,
      rgba(var(--velo, 107, 45, 122), .144) 84%,
      rgba(var(--velo, 107, 45, 122), .108) 88%,
      rgba(var(--velo, 107, 45, 122), .072) 92%,
      rgba(var(--velo, 107, 45, 122), .036) 96%,
      rgba(var(--velo, 107, 45, 122), 0) 100%),
    linear-gradient(to bottom,
      rgba(var(--velo, 107, 45, 122), .25) 0%,
      rgba(var(--velo, 107, 45, 122), .25) 4%,
      rgba(var(--velo, 107, 45, 122), .25) 8%,
      rgba(var(--velo, 107, 45, 122), .25) 12%,
      rgba(var(--velo, 107, 45, 122), .25) 16%,
      rgba(var(--velo, 107, 45, 122), .25) 20%,
      rgba(var(--velo, 107, 45, 122), .243) 24%,
      rgba(var(--velo, 107, 45, 122), .225) 28%,
      rgba(var(--velo, 107, 45, 122), .202) 32%,
      rgba(var(--velo, 107, 45, 122), .18) 36%,
      rgba(var(--velo, 107, 45, 122), .158) 40%,
      rgba(var(--velo, 107, 45, 122), .133) 44%,
      rgba(var(--velo, 107, 45, 122), .11) 48%,
      rgba(var(--velo, 107, 45, 122), .09) 52%,
      rgba(var(--velo, 107, 45, 122), .07) 56%,
      rgba(var(--velo, 107, 45, 122), .06) 60%,
      rgba(var(--velo, 107, 45, 122), .113) 64%,
      rgba(var(--velo, 107, 45, 122), .22) 68%,
      rgba(var(--velo, 107, 45, 122), .386) 72%,
      rgba(var(--velo, 107, 45, 122), .56) 76%,
      rgba(var(--velo, 107, 45, 122), .68) 80%,
      rgba(var(--velo, 107, 45, 122), .76) 84%,
      rgba(var(--velo, 107, 45, 122), .798) 88%,
      rgba(var(--velo, 107, 45, 122), .82) 92%,
      rgba(var(--velo, 107, 45, 122), .831) 96%,
      rgba(var(--velo, 107, 45, 122), .84) 100%),
    radial-gradient(120% 75% at 100% 100%,
      rgba(var(--velo, 107, 45, 122), .55) 0%,
      rgba(var(--velo, 107, 45, 122), .537) 4%,
      rgba(var(--velo, 107, 45, 122), .526) 8%,
      rgba(var(--velo, 107, 45, 122), .514) 12%,
      rgba(var(--velo, 107, 45, 122), .503) 16%,
      rgba(var(--velo, 107, 45, 122), .491) 20%,
      rgba(var(--velo, 107, 45, 122), .479) 24%,
      rgba(var(--velo, 107, 45, 122), .466) 28%,
      rgba(var(--velo, 107, 45, 122), .452) 32%,
      rgba(var(--velo, 107, 45, 122), .437) 36%,
      rgba(var(--velo, 107, 45, 122), .42) 40%,
      rgba(var(--velo, 107, 45, 122), .4) 44%,
      rgba(var(--velo, 107, 45, 122), .377) 48%,
      rgba(var(--velo, 107, 45, 122), .351) 52%,
      rgba(var(--velo, 107, 45, 122), .322) 56%,
      rgba(var(--velo, 107, 45, 122), .293) 60%,
      rgba(var(--velo, 107, 45, 122), .262) 64%,
      rgba(var(--velo, 107, 45, 122), .231) 68%,
      rgba(var(--velo, 107, 45, 122), .202) 72%,
      rgba(var(--velo, 107, 45, 122), .173) 76%,
      rgba(var(--velo, 107, 45, 122), .145) 80%,
      rgba(var(--velo, 107, 45, 122), .116) 84%,
      rgba(var(--velo, 107, 45, 122), .087) 88%,
      rgba(var(--velo, 107, 45, 122), .058) 92%,
      rgba(var(--velo, 107, 45, 122), .029) 96%,
      rgba(var(--velo, 107, 45, 122), 0) 100%);
}
.diapo--violeta.diapo--foto .diapo-tarjeta:hover .diapo-capa,
.diapo--violeta.diapo--foto .diapo-tarjeta:focus-visible .diapo-capa {
  background:
    radial-gradient(46% 42% at 18% 15%,
      rgba(var(--velo, 107, 45, 122), .6) 0%,
      rgba(var(--velo, 107, 45, 122), .592) 4%,
      rgba(var(--velo, 107, 45, 122), .584) 8%,
      rgba(var(--velo, 107, 45, 122), .577) 12%,
      rgba(var(--velo, 107, 45, 122), .57) 16%,
      rgba(var(--velo, 107, 45, 122), .563) 20%,
      rgba(var(--velo, 107, 45, 122), .555) 24%,
      rgba(var(--velo, 107, 45, 122), .547) 28%,
      rgba(var(--velo, 107, 45, 122), .538) 32%,
      rgba(var(--velo, 107, 45, 122), .528) 36%,
      rgba(var(--velo, 107, 45, 122), .517) 40%,
      rgba(var(--velo, 107, 45, 122), .504) 44%,
      rgba(var(--velo, 107, 45, 122), .486) 48%,
      rgba(var(--velo, 107, 45, 122), .46) 52%,
      rgba(var(--velo, 107, 45, 122), .428) 56%,
      rgba(var(--velo, 107, 45, 122), .389) 60%,
      rgba(var(--velo, 107, 45, 122), .348) 64%,
      rgba(var(--velo, 107, 45, 122), .304) 68%,
      rgba(var(--velo, 107, 45, 122), .26) 72%,
      rgba(var(--velo, 107, 45, 122), .219) 76%,
      rgba(var(--velo, 107, 45, 122), .18) 80%,
      rgba(var(--velo, 107, 45, 122), .144) 84%,
      rgba(var(--velo, 107, 45, 122), .108) 88%,
      rgba(var(--velo, 107, 45, 122), .072) 92%,
      rgba(var(--velo, 107, 45, 122), .036) 96%,
      rgba(var(--velo, 107, 45, 122), 0) 100%),
    radial-gradient(40% 52% at 92% 25%,
      rgba(var(--velo, 107, 45, 122), .6) 0%,
      rgba(var(--velo, 107, 45, 122), .592) 4%,
      rgba(var(--velo, 107, 45, 122), .584) 8%,
      rgba(var(--velo, 107, 45, 122), .577) 12%,
      rgba(var(--velo, 107, 45, 122), .57) 16%,
      rgba(var(--velo, 107, 45, 122), .563) 20%,
      rgba(var(--velo, 107, 45, 122), .555) 24%,
      rgba(var(--velo, 107, 45, 122), .547) 28%,
      rgba(var(--velo, 107, 45, 122), .538) 32%,
      rgba(var(--velo, 107, 45, 122), .528) 36%,
      rgba(var(--velo, 107, 45, 122), .517) 40%,
      rgba(var(--velo, 107, 45, 122), .504) 44%,
      rgba(var(--velo, 107, 45, 122), .486) 48%,
      rgba(var(--velo, 107, 45, 122), .46) 52%,
      rgba(var(--velo, 107, 45, 122), .428) 56%,
      rgba(var(--velo, 107, 45, 122), .389) 60%,
      rgba(var(--velo, 107, 45, 122), .348) 64%,
      rgba(var(--velo, 107, 45, 122), .304) 68%,
      rgba(var(--velo, 107, 45, 122), .26) 72%,
      rgba(var(--velo, 107, 45, 122), .219) 76%,
      rgba(var(--velo, 107, 45, 122), .18) 80%,
      rgba(var(--velo, 107, 45, 122), .144) 84%,
      rgba(var(--velo, 107, 45, 122), .108) 88%,
      rgba(var(--velo, 107, 45, 122), .072) 92%,
      rgba(var(--velo, 107, 45, 122), .036) 96%,
      rgba(var(--velo, 107, 45, 122), 0) 100%),
    linear-gradient(to bottom,
      rgba(var(--velo, 107, 45, 122), .25) 0%,
      rgba(var(--velo, 107, 45, 122), .25) 4%,
      rgba(var(--velo, 107, 45, 122), .25) 8%,
      rgba(var(--velo, 107, 45, 122), .25) 12%,
      rgba(var(--velo, 107, 45, 122), .25) 16%,
      rgba(var(--velo, 107, 45, 122), .25) 20%,
      rgba(var(--velo, 107, 45, 122), .243) 24%,
      rgba(var(--velo, 107, 45, 122), .225) 28%,
      rgba(var(--velo, 107, 45, 122), .202) 32%,
      rgba(var(--velo, 107, 45, 122), .18) 36%,
      rgba(var(--velo, 107, 45, 122), .158) 40%,
      rgba(var(--velo, 107, 45, 122), .133) 44%,
      rgba(var(--velo, 107, 45, 122), .11) 48%,
      rgba(var(--velo, 107, 45, 122), .09) 52%,
      rgba(var(--velo, 107, 45, 122), .07) 56%,
      rgba(var(--velo, 107, 45, 122), .06) 60%,
      rgba(var(--velo, 107, 45, 122), .113) 64%,
      rgba(var(--velo, 107, 45, 122), .22) 68%,
      rgba(var(--velo, 107, 45, 122), .386) 72%,
      rgba(var(--velo, 107, 45, 122), .56) 76%,
      rgba(var(--velo, 107, 45, 122), .68) 80%,
      rgba(var(--velo, 107, 45, 122), .76) 84%,
      rgba(var(--velo, 107, 45, 122), .798) 88%,
      rgba(var(--velo, 107, 45, 122), .82) 92%,
      rgba(var(--velo, 107, 45, 122), .831) 96%,
      rgba(var(--velo, 107, 45, 122), .84) 100%),
    radial-gradient(120% 75% at 100% 100%,
      rgba(var(--velo, 107, 45, 122), .65) 0%,
      rgba(var(--velo, 107, 45, 122), .633) 4%,
      rgba(var(--velo, 107, 45, 122), .618) 8%,
      rgba(var(--velo, 107, 45, 122), .602) 12%,
      rgba(var(--velo, 107, 45, 122), .587) 16%,
      rgba(var(--velo, 107, 45, 122), .572) 20%,
      rgba(var(--velo, 107, 45, 122), .556) 24%,
      rgba(var(--velo, 107, 45, 122), .539) 28%,
      rgba(var(--velo, 107, 45, 122), .521) 32%,
      rgba(var(--velo, 107, 45, 122), .501) 36%,
      rgba(var(--velo, 107, 45, 122), .48) 40%,
      rgba(var(--velo, 107, 45, 122), .456) 44%,
      rgba(var(--velo, 107, 45, 122), .428) 48%,
      rgba(var(--velo, 107, 45, 122), .398) 52%,
      rgba(var(--velo, 107, 45, 122), .366) 56%,
      rgba(var(--velo, 107, 45, 122), .332) 60%,
      rgba(var(--velo, 107, 45, 122), .298) 64%,
      rgba(var(--velo, 107, 45, 122), .263) 68%,
      rgba(var(--velo, 107, 45, 122), .23) 72%,
      rgba(var(--velo, 107, 45, 122), .197) 76%,
      rgba(var(--velo, 107, 45, 122), .165) 80%,
      rgba(var(--velo, 107, 45, 122), .132) 84%,
      rgba(var(--velo, 107, 45, 122), .099) 88%,
      rgba(var(--velo, 107, 45, 122), .066) 92%,
      rgba(var(--velo, 107, 45, 122), .033) 96%,
      rgba(var(--velo, 107, 45, 122), 0) 100%);
}

.diapo--azul.diapo--foto .diapo-capa {
  background:
    radial-gradient(48% 60% at 62% 45%,
      rgba(var(--velo, 7, 55, 132), .62) 0%,
      rgba(var(--velo, 7, 55, 132), .615) 4%,
      rgba(var(--velo, 7, 55, 132), .611) 8%,
      rgba(var(--velo, 7, 55, 132), .608) 12%,
      rgba(var(--velo, 7, 55, 132), .604) 16%,
      rgba(var(--velo, 7, 55, 132), .601) 20%,
      rgba(var(--velo, 7, 55, 132), .597) 24%,
      rgba(var(--velo, 7, 55, 132), .593) 28%,
      rgba(var(--velo, 7, 55, 132), .589) 32%,
      rgba(var(--velo, 7, 55, 132), .584) 36%,
      rgba(var(--velo, 7, 55, 132), .578) 40%,
      rgba(var(--velo, 7, 55, 132), .572) 44%,
      rgba(var(--velo, 7, 55, 132), .564) 48%,
      rgba(var(--velo, 7, 55, 132), .554) 52%,
      rgba(var(--velo, 7, 55, 132), .537) 56%,
      rgba(var(--velo, 7, 55, 132), .512) 60%,
      rgba(var(--velo, 7, 55, 132), .48) 64%,
      rgba(var(--velo, 7, 55, 132), .443) 68%,
      rgba(var(--velo, 7, 55, 132), .402) 72%,
      rgba(var(--velo, 7, 55, 132), .357) 76%,
      rgba(var(--velo, 7, 55, 132), .31) 80%,
      rgba(var(--velo, 7, 55, 132), .262) 84%,
      rgba(var(--velo, 7, 55, 132), .209) 88%,
      rgba(var(--velo, 7, 55, 132), .143) 92%,
      rgba(var(--velo, 7, 55, 132), .07) 96%,
      rgba(var(--velo, 7, 55, 132), 0) 100%),
    linear-gradient(to bottom,
      rgba(var(--velo, 7, 55, 132), .15) 0%,
      rgba(var(--velo, 7, 55, 132), .147) 4%,
      rgba(var(--velo, 7, 55, 132), .143) 8%,
      rgba(var(--velo, 7, 55, 132), .139) 12%,
      rgba(var(--velo, 7, 55, 132), .135) 16%,
      rgba(var(--velo, 7, 55, 132), .131) 20%,
      rgba(var(--velo, 7, 55, 132), .128) 24%,
      rgba(var(--velo, 7, 55, 132), .125) 28%,
      rgba(var(--velo, 7, 55, 132), .122) 32%,
      rgba(var(--velo, 7, 55, 132), .121) 36%,
      rgba(var(--velo, 7, 55, 132), .12) 40%,
      rgba(var(--velo, 7, 55, 132), .123) 44%,
      rgba(var(--velo, 7, 55, 132), .13) 48%,
      rgba(var(--velo, 7, 55, 132), .142) 52%,
      rgba(var(--velo, 7, 55, 132), .159) 56%,
      rgba(var(--velo, 7, 55, 132), .18) 60%,
      rgba(var(--velo, 7, 55, 132), .24) 64%,
      rgba(var(--velo, 7, 55, 132), .344) 68%,
      rgba(var(--velo, 7, 55, 132), .466) 72%,
      rgba(var(--velo, 7, 55, 132), .62) 76%,
      rgba(var(--velo, 7, 55, 132), .726) 80%,
      rgba(var(--velo, 7, 55, 132), .801) 84%,
      rgba(var(--velo, 7, 55, 132), .829) 88%,
      rgba(var(--velo, 7, 55, 132), .842) 92%,
      rgba(var(--velo, 7, 55, 132), .851) 96%,
      rgba(var(--velo, 7, 55, 132), .86) 100%),
    radial-gradient(115% 70% at 100% 100%,
      rgba(var(--velo, 7, 55, 132), .5) 0%,
      rgba(var(--velo, 7, 55, 132), .49) 4%,
      rgba(var(--velo, 7, 55, 132), .482) 8%,
      rgba(var(--velo, 7, 55, 132), .473) 12%,
      rgba(var(--velo, 7, 55, 132), .465) 16%,
      rgba(var(--velo, 7, 55, 132), .456) 20%,
      rgba(var(--velo, 7, 55, 132), .447) 24%,
      rgba(var(--velo, 7, 55, 132), .437) 28%,
      rgba(var(--velo, 7, 55, 132), .426) 32%,
      rgba(var(--velo, 7, 55, 132), .414) 36%,
      rgba(var(--velo, 7, 55, 132), .4) 40%,
      rgba(var(--velo, 7, 55, 132), .382) 44%,
      rgba(var(--velo, 7, 55, 132), .358) 48%,
      rgba(var(--velo, 7, 55, 132), .33) 52%,
      rgba(var(--velo, 7, 55, 132), .299) 56%,
      rgba(var(--velo, 7, 55, 132), .266) 60%,
      rgba(var(--velo, 7, 55, 132), .233) 64%,
      rgba(var(--velo, 7, 55, 132), .201) 68%,
      rgba(var(--velo, 7, 55, 132), .171) 72%,
      rgba(var(--velo, 7, 55, 132), .144) 76%,
      rgba(var(--velo, 7, 55, 132), .118) 80%,
      rgba(var(--velo, 7, 55, 132), .094) 84%,
      rgba(var(--velo, 7, 55, 132), .071) 88%,
      rgba(var(--velo, 7, 55, 132), .047) 92%,
      rgba(var(--velo, 7, 55, 132), .024) 96%,
      rgba(var(--velo, 7, 55, 132), 0) 100%);
}
.diapo--azul.diapo--foto .diapo-tarjeta:hover .diapo-capa,
.diapo--azul.diapo--foto .diapo-tarjeta:focus-visible .diapo-capa {
  background:
    radial-gradient(48% 60% at 62% 45%,
      rgba(var(--velo, 7, 55, 132), .62) 0%,
      rgba(var(--velo, 7, 55, 132), .615) 4%,
      rgba(var(--velo, 7, 55, 132), .611) 8%,
      rgba(var(--velo, 7, 55, 132), .608) 12%,
      rgba(var(--velo, 7, 55, 132), .604) 16%,
      rgba(var(--velo, 7, 55, 132), .601) 20%,
      rgba(var(--velo, 7, 55, 132), .597) 24%,
      rgba(var(--velo, 7, 55, 132), .593) 28%,
      rgba(var(--velo, 7, 55, 132), .589) 32%,
      rgba(var(--velo, 7, 55, 132), .584) 36%,
      rgba(var(--velo, 7, 55, 132), .578) 40%,
      rgba(var(--velo, 7, 55, 132), .572) 44%,
      rgba(var(--velo, 7, 55, 132), .564) 48%,
      rgba(var(--velo, 7, 55, 132), .554) 52%,
      rgba(var(--velo, 7, 55, 132), .537) 56%,
      rgba(var(--velo, 7, 55, 132), .512) 60%,
      rgba(var(--velo, 7, 55, 132), .48) 64%,
      rgba(var(--velo, 7, 55, 132), .443) 68%,
      rgba(var(--velo, 7, 55, 132), .402) 72%,
      rgba(var(--velo, 7, 55, 132), .357) 76%,
      rgba(var(--velo, 7, 55, 132), .31) 80%,
      rgba(var(--velo, 7, 55, 132), .262) 84%,
      rgba(var(--velo, 7, 55, 132), .209) 88%,
      rgba(var(--velo, 7, 55, 132), .143) 92%,
      rgba(var(--velo, 7, 55, 132), .07) 96%,
      rgba(var(--velo, 7, 55, 132), 0) 100%),
    linear-gradient(to bottom,
      rgba(var(--velo, 7, 55, 132), .15) 0%,
      rgba(var(--velo, 7, 55, 132), .147) 4%,
      rgba(var(--velo, 7, 55, 132), .143) 8%,
      rgba(var(--velo, 7, 55, 132), .139) 12%,
      rgba(var(--velo, 7, 55, 132), .135) 16%,
      rgba(var(--velo, 7, 55, 132), .131) 20%,
      rgba(var(--velo, 7, 55, 132), .128) 24%,
      rgba(var(--velo, 7, 55, 132), .125) 28%,
      rgba(var(--velo, 7, 55, 132), .122) 32%,
      rgba(var(--velo, 7, 55, 132), .121) 36%,
      rgba(var(--velo, 7, 55, 132), .12) 40%,
      rgba(var(--velo, 7, 55, 132), .123) 44%,
      rgba(var(--velo, 7, 55, 132), .13) 48%,
      rgba(var(--velo, 7, 55, 132), .142) 52%,
      rgba(var(--velo, 7, 55, 132), .159) 56%,
      rgba(var(--velo, 7, 55, 132), .18) 60%,
      rgba(var(--velo, 7, 55, 132), .24) 64%,
      rgba(var(--velo, 7, 55, 132), .344) 68%,
      rgba(var(--velo, 7, 55, 132), .466) 72%,
      rgba(var(--velo, 7, 55, 132), .62) 76%,
      rgba(var(--velo, 7, 55, 132), .726) 80%,
      rgba(var(--velo, 7, 55, 132), .801) 84%,
      rgba(var(--velo, 7, 55, 132), .829) 88%,
      rgba(var(--velo, 7, 55, 132), .842) 92%,
      rgba(var(--velo, 7, 55, 132), .851) 96%,
      rgba(var(--velo, 7, 55, 132), .86) 100%),
    radial-gradient(115% 70% at 100% 100%,
      rgba(var(--velo, 7, 55, 132), .6) 0%,
      rgba(var(--velo, 7, 55, 132), .587) 4%,
      rgba(var(--velo, 7, 55, 132), .574) 8%,
      rgba(var(--velo, 7, 55, 132), .562) 12%,
      rgba(var(--velo, 7, 55, 132), .55) 16%,
      rgba(var(--velo, 7, 55, 132), .537) 20%,
      rgba(var(--velo, 7, 55, 132), .524) 24%,
      rgba(var(--velo, 7, 55, 132), .51) 28%,
      rgba(var(--velo, 7, 55, 132), .495) 32%,
      rgba(var(--velo, 7, 55, 132), .479) 36%,
      rgba(var(--velo, 7, 55, 132), .46) 40%,
      rgba(var(--velo, 7, 55, 132), .437) 44%,
      rgba(var(--velo, 7, 55, 132), .409) 48%,
      rgba(var(--velo, 7, 55, 132), .377) 52%,
      rgba(var(--velo, 7, 55, 132), .342) 56%,
      rgba(var(--velo, 7, 55, 132), .306) 60%,
      rgba(var(--velo, 7, 55, 132), .269) 64%,
      rgba(var(--velo, 7, 55, 132), .233) 68%,
      rgba(var(--velo, 7, 55, 132), .199) 72%,
      rgba(var(--velo, 7, 55, 132), .168) 76%,
      rgba(var(--velo, 7, 55, 132), .138) 80%,
      rgba(var(--velo, 7, 55, 132), .11) 84%,
      rgba(var(--velo, 7, 55, 132), .083) 88%,
      rgba(var(--velo, 7, 55, 132), .055) 92%,
      rgba(var(--velo, 7, 55, 132), .028) 96%,
      rgba(var(--velo, 7, 55, 132), 0) 100%);
}

.diapo--foto .diapo-capa { opacity: 1; }

.diapo--foto .diapo-capa { mix-blend-mode: multiply; }
.diapo--foto .diapo-tarjeta { isolation: isolate; }
.diapo-tarjeta:hover .diapo-panel,
.diapo-tarjeta:focus-visible .diapo-panel { transform: translateY(0); }
.carrusel-pista { touch-action: pan-y; }
.carrusel-pista--sin-animacion,
.carrusel-pista--sin-animacion .diapo,
.carrusel-pista--sin-animacion .diapo-tarjeta,
.carrusel-pista--sin-animacion .diapo-capa,
.carrusel-pista--sin-animacion .diapo-panel { transition: none !important; }
.diapo, .diapo * { -webkit-user-select: none; user-select: none; }
.diapo a, .diapo img, .diapo svg { -webkit-user-drag: none; }
.carrusel-pista--arrastrando .diapo-tarjeta { cursor: grabbing; }
.diapo-tarjeta:active { cursor: grabbing; }
.diapo-tarjeta:focus-visible { outline: 3px solid #fff; outline-offset: -5px; }

.diapo-ante { display: block; font-size: 0.75rem; font-weight: 700; color: #fff;
              letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 8px; }
.diapo-ante::before { content: ""; display: inline-block; width: 18px; height: 2px;
                      background: var(--oro-vivo); vertical-align: middle;
                      margin: -2px 10px 0 0; }
.diapo-panel .diapo-titulo { font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
                  font-weight: 600; letter-spacing: -0.01em; text-wrap: balance;
                  margin: 0; color: #fff; line-height: 1.14;
                  font-size: clamp(1.1rem, 0.75rem + 1vw, 1.5rem); }

.diapo-cuerpo { height: var(--cuerpo); margin-top: var(--borde);
                overflow-y: auto; overscroll-behavior: contain;
                scrollbar-width: thin;
                scrollbar-color: rgba(255, 255, 255, .55) transparent; }
.diapo-cuerpo p { margin: 0; color: #fff; font-size: 0.9375rem; line-height: 1.45;
                  padding-right: 6px; }
.diapo-cuerpo::-webkit-scrollbar { width: 6px; }
.diapo-cuerpo::-webkit-scrollbar-thumb { background: rgba(255,255,255,.55); border-radius: 3px; }
.diapo-cuerpo::-webkit-scrollbar-track { background: transparent; }

.diapo-pie { margin: var(--hueco) 0 0; height: var(--pie);
             display: flex; align-items: center; }
.diapo .boton, .linea .boton { position: relative; overflow: hidden;
                background: var(--oro-vivo); color: var(--tinta);
                border: 2px solid var(--oro-vivo); border-radius: var(--radio);
                font-weight: 700; font-size: 1rem; line-height: 1;
                padding: 13px 55px 13px 24px;
                display: inline-block; cursor: pointer;
                transition: padding .35s; }

.diapo .boton:hover, .linea .boton:hover,
.diapo-tarjeta:focus-visible .boton,
.linea:focus-visible .boton { padding-right: 24px; padding-left: 55px; }

.ir { position: relative; color: var(--oro-vivo); font-weight: 700;
      font-size: 1.1875rem;
      display: inline-flex; align-items: center; gap: 10px; }

.ir::before { content: ''; position: absolute;
              left: 0; right: 25px; bottom: -5px; height: 2px;
              background: currentColor;
              transform: scaleX(0); transform-origin: left;
              transition: transform .55s cubic-bezier(.85, 0, 0, 1); }
.ir:hover::before { transform: scaleX(1); }

:root { --chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a1f3d' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 4.8 16.2 12 9.5 19.2'/%3E%3C/svg%3E"); }
:root { --galon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.718 12.47a.663.663 0 0 0 0-.937l-6.75-6.75-.002-.002a.663.663 0 0 0-.937.936l.003.003 5.618 5.62H3.75a.663.663 0 0 0 0 1.324h14.9l-5.618 5.62-.003.002a.663.663 0 0 0 .937.936l.002-.002 6.75-6.75z'/%3E%3C/svg%3E"); }

.ir::after {
  content: ''; width: 24px; height: 24px; flex: 0 0 auto;
  background-image: var(--chevron), linear-gradient(90deg, #fff 50%, var(--oro-vivo) 0);
  background-repeat: no-repeat, no-repeat;
  background-position: center, 100% 0;
  background-size: 24px 24px, 200% 200%;
  transition: background-position .55s cubic-bezier(.85, 0, 0, 1),
              translate          .55s cubic-bezier(.85, 0, 0, 1);
}
.diapo .boton::before, .linea .boton::before,
.diapo .boton::after, .linea .boton::after {
  content: ''; position: absolute; top: 50%; margin-top: -12px;
  width: 24px; height: 24px;
  background: var(--tinta); background-image: none;
  -webkit-mask: var(--galon) center / contain no-repeat;
          mask: var(--galon) center / contain no-repeat;
}
.diapo .boton::after, .linea .boton::after  { right: 24px; translate: 0; }
.diapo .boton::before, .linea .boton::before { left:  24px; translate: -49px; }
.diapo .boton::after, .linea .boton::after  { transition: translate .175s ease-in-out .175s; }
.diapo .boton::before, .linea .boton::before { transition: translate .175s ease-in-out 0s; }
.diapo .boton::after, .linea .boton::after { background-image: linear-gradient(90deg, var(--azul) 50%, var(--tinta) 0); }

.tarj:hover .ir::after,
.tarj:focus-visible .ir::after {
  translate: 4px;
  background-position: center, 0 0;
  transition-delay: .6s;
}
.diapo .boton:hover::after, .linea .boton:hover::after,
.diapo-tarjeta:focus-visible .boton::after,
.linea:focus-visible .boton::after  { translate: 49px; transition-delay: 0s; }
.diapo .boton:hover::before, .linea .boton:hover::before,
.diapo-tarjeta:focus-visible .boton::before,
.linea:focus-visible .boton::before { translate: 0;    transition-delay: .175s; }
.tarj:focus-visible .ir::before,
.diapo-tarjeta:focus-visible .ir::before { transform: scaleX(1); }

@media (prefers-reduced-motion: reduce) {
  .ir::before, .ir::after, .diapo .boton::after { transition: none; }
  .tarj:hover .ir::after, .diapo-tarjeta:hover .ir::after,
  .tarj:focus-visible .ir::after, .diapo-tarjeta:focus-visible .ir::after { animation: none; }
  .diapo .boton::before, .diapo .boton::after { transition: none; }
}

.carrusel-pista:not(.carrusel-pista--activa) .diapo-tarjeta { transform: none; }
.carrusel-pista:not(.carrusel-pista--activa) .diapo-capa,
.carrusel-pista:not(.carrusel-pista--activa) .diapo-panel { opacity: 1; }
.carrusel-pista:not(.carrusel-pista--activa) { flex-wrap: wrap; justify-content: center; gap: 20px; }
.carrusel-pista:not(.carrusel-pista--activa) .diapo { margin-right: 0; }

.carrusel-mandos {
  max-width: var(--ancho); margin: 18px auto 0; padding: 0 24px;
  display: flex; align-items: center; justify-content: flex-start; gap: 8px;
}
.carrusel-boton, .carrusel-pausa {
  width: 36px; height: 36px; padding: 0; border: 0; border-radius: 5px;
  background: #eef2f7; color: var(--oro); cursor: pointer;
  display: grid; place-items: center;
  transition: background .2s ease, color .2s ease;
}
.carrusel-boton:hover, .carrusel-pausa:hover { background: var(--azul); color: var(--oro-vivo); }
.carrusel-boton svg, .carrusel-pausa svg { width: 16px; height: 16px; }
.carrusel-pausa svg { fill: currentColor; }
.carrusel-boton svg { fill: none; stroke: currentColor; stroke-width: 3;
                      stroke-linecap: round; stroke-linejoin: round; }
.carrusel-pausa .icono-seguir { display: none; }
.carrusel-pausa[aria-pressed="true"] .icono-parar  { display: none; }
.carrusel-pausa[aria-pressed="true"] .icono-seguir { display: block; }

@media (prefers-reduced-motion: reduce) {
  .carrusel-pista, .diapo, .diapo-tarjeta, .diapo-capa, .diapo-panel { transition: none; }
}

.pasos { counter-reset: paso; list-style: none; margin: 0; padding: 0;
         display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 54rem) { .pasos { grid-template-columns: repeat(3, 1fr); } }
.paso { counter-increment: paso; padding-left: 56px; position: relative; }
.paso::before {
  content: counter(paso); position: absolute; left: 0; top: 0;
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--azul); color: #fff; font-weight: 600;
  display: grid; place-items: center;
}
.paso p { margin: 0; }

.cierre { background: var(--azul); color: #fff; }
.cierre h2, .cierre a { color: #fff; }
.cierre .boton--contorno { background: transparent; color: #fff; border-color: #fff; }
.cierre .boton--contorno:hover { background: #fff; color: var(--azul); }

.pie { background: var(--tinta); color: #fff; padding: 40px 24px 24px; }
.pie-caja { max-width: var(--ancho); margin: 0 auto; }
.pie a { color: #fff; }
.pie a:hover { color: var(--oro-claro); }
.pie-legal { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center;
             font-size: 0.875rem; margin-bottom: 24px; }
.pie-legal a { text-decoration: none; display: inline-block; padding: 1px 0;
               min-height: 24px; }
.pie-raya { border: none; border-top: 1px solid rgba(255, 255, 255, 0.24); margin: 0 0 24px; }
.pie-contacto { display: flex; flex-wrap: wrap; gap: 8px 40px; font-size: 0.875rem; margin-bottom: 24px; }
.pie-redes { display: flex; align-items: center; gap: 6px; margin: -12px 0 -12px auto; }
.pie-contacto .pie-redes a { display: inline-flex; align-items: center; justify-content: center;
               width: 44px; height: 44px; border-radius: 50%; color: #fff; text-decoration: none; }
.pie-contacto .pie-redes a:hover { color: var(--oro-claro); background: rgba(255, 255, 255, .08); }
.pie-redes svg { width: 22px; height: 22px; }
.pie-contacto a { text-decoration: none; display: inline-block;
                  padding: 4px 0; min-height: 24px; }
.pie-cookies { font: inherit; font-size: 0.875rem; background: none; border: none;
               color: #fff; text-decoration: underline; cursor: pointer; padding: 0; }
.pie-cookies:hover { color: var(--oro-claro); }
.pie-derechos { margin: 0; font-size: 0.75rem; color: rgba(255, 255, 255, 0.76); }
.pie a:focus-visible, .pie button:focus-visible { outline-color: var(--oro-claro); }

.solo-lectores { position: absolute; width: 1px; height: 1px; overflow: hidden;
                 clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }


@media (max-width: 640px) {
  .seccion, .hero { padding-left: 16px; padding-right: 16px; }
}

@media (max-width: 1199px) {
  .cabecera-interior > .marca img { height: 40px; }

  .menu-boton {
    display: inline-flex; align-items: center; gap: 10px; order: 2; margin-left: auto;
    font: inherit; font-weight: 600;
    background: #fff; color: var(--azul); border: 1px solid var(--azul);
    border-radius: var(--radio); padding: 11px 16px; cursor: pointer;
  }
  .menu-icono { position: relative; width: 18px; height: 2px; background: currentColor;
                transition: background-color .2s ease; }
  .menu-icono::before, .menu-icono::after {
    content: ''; position: absolute; left: 0; width: 18px; height: 2px;
    background: currentColor; transition: transform .2s ease;
  }
  .menu-icono::before { top: -6px; }
  .menu-icono::after { top: 6px; }
  .menu-boton[aria-expanded="true"] .menu-icono { background-color: transparent; }
  .menu-boton[aria-expanded="true"] .menu-icono::before { transform: translateY(6px) rotate(45deg); }
  .menu-boton[aria-expanded="true"] .menu-icono::after { transform: translateY(-6px) rotate(-45deg); }
  .menu-lista--cerrada { display: none; }

  .franja-util { display: none; }

  .menu-lista .menu-util { display: block; border-bottom: 0; padding: 18px 0 4px; }
  .menu-util-enlaces { display: flex; flex-wrap: wrap; gap: 10px; }
  .menu-fila .menu-util-enlaces a {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px;
    border: 1px solid var(--azul); border-radius: var(--radio);
    color: var(--azul); font-size: 0.9375rem; font-weight: 600;
  }
  .menu-util-redes { display: flex; align-items: center; gap: 6px; margin-top: 14px; }
  .menu-fila .menu-util-redes a { display: inline-flex; align-items: center; justify-content: center;
                       width: 44px; height: 44px; padding: 0; color: var(--azul); }
  .menu-util-redes svg { width: 22px; height: 22px; }

  .menu-lista { width: 100%; flex-direction: column; gap: 0; }
  .menu-lista li { border-bottom: 1px solid var(--linea); }
  .menu-lista a { display: block; padding: 16px 0; border-bottom: none; }
  .menu-fila .menu-lista > li > a { border-bottom: 3px solid transparent; }

  .desplegable > summary { width: 100%; justify-content: space-between; padding: 16px 0; }
  .desplegable-panel { position: static; min-width: 0; padding: 0 0 8px 16px;
                       border: 0; border-left: 3px solid var(--oro); box-shadow: none; }
  .desplegable-panel a { padding: 12px 0; }
  .desplegable-panel .desplegable-todo { padding: 12px 0; }
  .menu-fila { border-top: none; }
  .menu-fila > .menu-lista { padding: 0; }
  .cabecera-derecha { width: 100%; flex-direction: column; align-items: stretch; gap: 12px; }
  .cabecera-contacto { padding: 12px 0; border-top: 1px solid var(--linea); }
  .acceso-campus { width: 100%; }
  .acceso-campus .boton { flex: 1 1 auto; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
  .tarjeta:hover, .via:hover,
  .tarjeta:focus-within, .via:focus-within { transform: none !important; }
}

.ventana-legal {
  width: min(48rem, 92vw); max-height: 86vh; padding: 0;
  border: 0; border-top: 3px solid var(--oro-vivo); border-radius: var(--radio);
  box-shadow: 0 2px 6px rgba(10,31,61,.30), 0 24px 56px -12px rgba(10,31,61,.45);
  display: flex; flex-direction: column; color: var(--tinta);
}
.ventana-legal::backdrop { background: rgba(10, 31, 61, .62); }
.ventana-legal-cab { display: flex; align-items: flex-start; gap: 16px;
  padding: 24px 24px 16px; border-bottom: 1px solid var(--linea); }
.ventana-legal-cab h2 { margin: 0; flex: 1 1 auto; font-size: 1.5rem; color: var(--azul-hondo); }
.ventana-legal-cerrar { flex: 0 0 auto; width: 40px; height: 40px; font-size: 1.5rem;
  line-height: 1; background: none; border: 1px solid var(--linea);
  border-radius: var(--radio); color: var(--tinta); cursor: pointer; }
.ventana-legal-cerrar:hover { background: var(--fondo-suave); border-color: var(--azul); }
.ventana-legal-cuerpo { overflow-y: auto; padding: 24px;
                        font-size: 14px; line-height: 1.5; }
.ventana-legal-cuerpo p, .ventana-legal-cuerpo li { text-align: justify; hyphens: auto; }
.ventana-legal-cuerpo p { margin: 0 0 14px; }
.ventana-legal-cuerpo h2 { font-size: 24px; }
.ventana-legal-cuerpo h3 { font-size: 16px; }
.ventana-legal-cuerpo > :first-child { margin-top: 0; }
.ventana-legal-cuerpo section { padding: 0 !important; background: none !important; }
.ventana-legal-cuerpo .contenido { max-width: none; padding: 0; margin: 0; }
.ventana-legal-pie { display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap; padding: 16px 24px;
  border-top: 1px solid var(--linea); background: var(--fondo-suave); }
@media (max-width: 640px) { .ventana-legal { width: 96vw; max-height: 92vh; } }


.capitulo { padding: clamp(48px, 7vw, 96px) 24px; }
.capitulo-caja { max-width: var(--ancho); margin: 0 auto;
                 display: grid; grid-template-columns: auto 1fr;
                 gap: clamp(24px, 5vw, 64px); align-items: start; }
.capitulo-num { font-family: "Source Serif 4", Georgia, serif;
                font-size: clamp(2.5rem, 1rem + 6vw, 6rem); line-height: 0.8;
                color: var(--oro-vivo);
                margin: 0; }
.capitulo h2 { color: #fff; margin: 0 0 16px; }
.capitulo p { color: #fff; max-width: 42rem; }
.capitulo p.capitulo-num { color: var(--oro-vivo); }

.capitulo-lista { list-style: none; margin: 24px 0 0; padding: 0;
                  display: flex; flex-wrap: wrap; gap: 8px 24px; font-weight: 500; }
.capitulo-lista li { position: relative; padding-left: 18px; text-align: left; }
.capitulo-lista li::before { content: ''; position: absolute; left: 0; top: .55em;
                             width: 8px; height: 2px; background: currentColor; opacity: .6; }
.capitulo-ir { color: #fff; font-weight: 600; display: inline-block; margin-top: 24px;
               text-decoration-color: var(--oro-vivo); text-decoration-thickness: 2px;
               text-underline-offset: 4px; }
.capitulo-ir:hover { text-decoration-color: #fff; }
@media (max-width: 700px) {
  .capitulo-caja { grid-template-columns: 1fr; gap: 8px; }
  .capitulo-num { font-size: 2.5rem; }
}

.cifras { display: grid; gap: 40px; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.cifra { border-top: 3px solid var(--oro-vivo); padding-top: 16px; }
.cifra b { display: block; font-family: "Source Serif 4", Georgia, serif; font-weight: 600;
           font-size: clamp(2.4rem, 1.4rem + 2.6vw, 3.6rem); line-height: 1;
           color: var(--azul-hondo); }
.cifra span { display: block; margin-top: 8px; color: var(--suave); font-size: 0.9375rem;
              text-align: left; }

.datos { margin: 16px 0 0; display: grid; grid-template-columns: auto 1fr; gap: 6px 16px;
         border-top: 1px solid currentColor; padding-top: 16px; font-size: 0.875rem; }
.datos dt { text-transform: uppercase; letter-spacing: .06em; font-size: 0.75rem;
            font-weight: 600; opacity: .75; align-self: center; }
.datos dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; text-align: left; }

.figura { display: block; width: 100%; height: auto; border-radius: var(--radio); }

.entra { opacity: 0; transform: translateY(18px);
         transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .3, 1); }
.entra--visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .entra { opacity: 1; transform: none; transition: none; }
}


.capitulo--compacto { padding: clamp(28px, 4vw, 52px) 24px; }
.capitulo--compacto h2 { font-size: clamp(1.25rem, 1.05rem + .9vw, 1.6rem); }
.capitulo--compacto .capitulo-num { font-size: clamp(1.75rem, 1rem + 2.4vw, 2.75rem); }
.capitulo--compacto .capitulo-caja { gap: clamp(16px, 3vw, 40px); }

.hero--figura .contenido { display: grid; align-items: center;
                           grid-template-columns: minmax(0, 1fr) minmax(0, 300px);
                           gap: clamp(24px, 5vw, 56px); }
.hero--figura .hero-texto p { max-width: 34rem; }
@media (max-width: 820px) {
  .hero--figura .contenido { grid-template-columns: 1fr; }
  .hero--figura .figura { max-width: 290px; margin-inline: auto; }
}

.datos--suelta { max-width: 30rem; }

.capitulo .datos { max-width: 42rem; }

.carrusel-pista--activa .diapo--centro:not(.montada) .p,
.carrusel-pista--activa .diapo--centro:not(.montada) .crece,
.carrusel-pista--activa .diapo--centro:not(.montada) .t {
  animation-duration: .52s; animation-fill-mode: both;
  animation-timing-function: cubic-bezier(.2, .7, .3, 1);
  animation-delay: calc(180ms + var(--i, 0) * 36ms);
  transform-box: fill-box;
}
.carrusel-pista--activa .diapo--centro:not(.montada) .p     { animation-name: pieza-llega; transform-origin: 50% 50%; }
.carrusel-pista--activa .diapo--centro:not(.montada) .crece { animation-name: pieza-crece; transform-origin: 50% 100%; }
.carrusel-pista--activa .diapo--centro:not(.montada) .t     { animation-name: pieza-traza; animation-duration: .85s;
                                                 animation-timing-function: ease;
                                                 stroke-dasharray: var(--l); stroke-dashoffset: var(--l); }
@keyframes pieza-llega { from { opacity: 0; transform: translateY(18px) scale(.94); }
                         to   { opacity: 1; transform: none; } }
@keyframes pieza-crece { from { opacity: 0; transform: scaleY(.04); }
                         to   { opacity: 1; transform: none; } }
@keyframes pieza-traza { to { stroke-dashoffset: 0; } }

.foto-ancha { margin: 0; }
.foto-ancha img { display: block; width: 100%; height: auto;
                  border-radius: var(--radio); box-shadow: var(--sombra-foto); }
.foto-ancha figcaption { margin-top: 16px; color: var(--suave); font-size: 0.9375rem;
                         text-align: left; }


mark.pendiente {
  background: #ffe08a;
  color: #4a3200;
  padding: 2px 6px;
  border: 1px dashed #b37b00;
  border-radius: 3px;
  font-weight: 600;
}
mark.pendiente::before { content: "⚠ "; }

.pie-eslogan { margin: 0 0 10px; font-size: 0.9375rem; color: rgba(255, 255, 255, 0.82); }

.lema { background: var(--azul-hondo); color: #fff; padding: clamp(44px, 6vw, 84px) 24px; }
.lema .contenido { max-width: var(--ancho); margin: 0 auto; }

.lema--marca { background: #000; color: #fff; overflow: hidden;
               padding: clamp(28px, 3.2vw, 52px) 24px; text-align: center;
               margin-bottom: 0.5cm; }

main > .lema.lema--marca { animation: none; }

.lema--marca .lema-titular {
  display: block; max-width: 20em; margin: 0 auto;
  font-family: "Roboto", "Segoe UI", system-ui, Arial, sans-serif;
  color: #fff; text-transform: uppercase; font-weight: 700;
  font-size: clamp(1.45rem, 1.05rem + 1.9vw, 2.4rem);
  letter-spacing: 0.03em; line-height: 1.12; text-align: center;
}

.lema--marca .lema-frase {
  display: block; max-width: 30em; margin: clamp(14px, 1.6vw, 20px) auto 0;
  font-family: "Roboto", "Segoe UI", system-ui, Arial, sans-serif;
  color: rgba(255, 255, 255, .92); font-weight: 400;
  font-size: clamp(1.0625rem, 0.95rem + 0.45vw, 1.35rem);
  line-height: 1.35; text-align: center;
  font-variant-caps: small-caps; letter-spacing: 0.06em;
}

.lema--marca .contenido {
  animation: lema-sube 1s cubic-bezier(.85, 0, 0, 1) 1ms both;
}
@keyframes lema-sube {
  from { opacity: 0; transform: translateY(100%); }
}
.lema--marca .lema-linea { display: block; }
.lema--marca .lema-linea:nth-child(1) {
  animation: lema-cruza-der .8s cubic-bezier(0, -.01, .01, 1) 1051ms both;
}
.lema--marca .lema-linea:nth-child(2) {
  animation: lema-cruza-izq .8s cubic-bezier(0, -.01, .01, 1) 1051ms both;
}
@keyframes lema-cruza-der { from { translate: 10%; } }
@keyframes lema-cruza-izq { from { translate: -10%; } }

.lema--marca .lema-linea {
  transition: transform .35s ease-out;
}
.lema--marca .lema-linea:nth-child(1) { transform: translateX(calc(var(--lema-x, 0) * -26px)); }
.lema--marca .lema-linea:nth-child(2) { transform: translateX(calc(var(--lema-x, 0) *  74px)); }
.lema--marca .lema-linea:only-child { transform: translateX(calc(var(--lema-x, 0) * -110px)); }

.lema--marca .lema-titular + .lema-valores { margin-top: clamp(16px, 1.8vw, 22px); }
.lema--marca .lema-valores {
  display: inline-flex; flex-wrap: wrap; justify-content: center;
  margin: clamp(16px, 1.8vw, 22px) 0 0; gap: 6px 33px; max-width: 56rem;
  font-family: "Roboto", "Segoe UI", system-ui, Arial, sans-serif;
  animation: lema-entra .8s cubic-bezier(0, -.01, .01, 1) 1051ms both;
}
@keyframes lema-entra {
  from { opacity: .01; transform: translateX(100%); }
}
.lema--marca .lema-valores span,
.lema--marca .lema-valores a {
  color: var(--oro-vivo); font-weight: 600; font-size: 0.8125rem;
  letter-spacing: 0.08em; text-transform: uppercase;
  position: relative; text-align: center;
}

.lema--marca .lema-valores span + span::before,
.lema--marca .lema-valores a + a::before {
  content: '\00b7'; color: rgba(255, 255, 255, .45);
  position: absolute; left: -19px; top: 0;
}
.lema--marca .lema-valores .inicio-renglon::before { content: none; }

@media (max-width: 560px) {
  .lema--marca .lema-valores { gap: 4px 18px; }
  .lema--marca .lema-valores span,
  .lema--marca .lema-valores a { letter-spacing: 0.08em; }
  .lema--marca .lema-valores span + span::before,
  .lema--marca .lema-valores a + a::before { content: none; }
}

@media (prefers-reduced-motion: reduce) {
  .lema--marca .contenido, .lema--marca .lema-linea,
  .lema--marca .lema-valores { animation: none; }
  .lema--marca .lema-linea { transition: none; }
  .lema--marca .lema-linea:nth-child(1),
  .lema--marca .lema-linea:nth-child(2) { transform: none; }
}
.lema p { margin: 0; color: #fff; max-width: 36rem; text-align: left;
          font-family: "Source Serif 4", Georgia, serif; font-weight: 600;
          font-size: clamp(1.45rem, 1.05rem + 2vw, 2.6rem); line-height: 1.15;
          text-wrap: balance; }

.cabecera-derecha { display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; }
.cabecera-derecha .boton { font-size: 0.8125rem; padding: 9px 14px; white-space: nowrap; }
.cabecera-contacto { color: var(--tinta); text-decoration: none; font-weight: 500;
                     padding: 8px 0; border-bottom: 2px solid transparent; }
.cabecera-contacto:hover { color: var(--azul); border-bottom-color: var(--oro); }

.menu-fila { border-top: 0; }
.menu-fila > .menu-lista { max-width: none; margin: 0; padding: 0;
                           flex-wrap: nowrap; justify-content: center; gap: 0; }
.menu-fila .menu-lista > li > .desplegable > summary,
.menu-fila .menu-lista > li > a {
  font-size: 0.9375rem; padding: 10px 8px; gap: 6px; white-space: nowrap;
}
.menu-util { display: none; }
.menu-fila .menu-lista > li:nth-child(2) { --tono: #036e77; }
.menu-fila .menu-lista > li:nth-child(3) { --tono: #9405b8; }
.menu-fila .menu-lista > li:nth-child(4) { --tono: #04409f; }
.menu-fila .menu-lista > li:nth-child(5) { --tono: #a40432; }
.menu-fila .menu-lista > li:nth-child(6) { --tono: #904804; }
.menu-fila .menu-lista > li:nth-child(7) { --tono: #047230; }
.menu-fila .menu-lista > li:nth-child(8) { --tono: #f0b429; }
.franja-util { display: none; }
.cabecera-interior > .util-acciones { display: none; }
.lema--marca .lema-valores a { padding-block: 5px; margin-block: -5px; }
:where(main) a:not([class]) { color: var(--azul); }
:where(main) a:not([class]):hover { color: var(--azul-hondo); }

.arriba {
  position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 50;
  width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--azul); color: #fff;
  box-shadow: 0 6px 16px -4px rgba(10, 31, 61, .45);
  transition: background-color .2s ease, transform .2s ease;
}
.arriba svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.2;
              stroke-linecap: round; stroke-linejoin: round; }
.arriba:hover { background: var(--azul-hondo); transform: translateY(-2px); }
.arriba:focus-visible { outline: 3px solid var(--oro-vivo); outline-offset: 3px; }
body:has(.cg-aviso) .arriba, body:has(.cabecera--menu-abierto) .arriba { display: none; }
@media print { .arriba { display: none; } }

.promo { width: min(780px, 92vw); max-height: 94vh; overflow: hidden; padding: clamp(16px, 3vh, 28px) 28px clamp(18px, 3.4vh, 30px);
         border: 0; border-top: 4px solid var(--oro-vivo); border-radius: 10px;
         background: #fff; color: var(--tinta); box-shadow: 0 30px 60px -20px rgba(10, 31, 61, .55); }
.promo::backdrop { background: rgba(10, 31, 61, .55); }
.promo-tit { margin: 0 40px clamp(10px, 2vh, 18px) 0; font-family: "Source Serif 4", Georgia, serif; font-weight: 600;
             font-size: 1.375rem; color: var(--oro); }
.promo-cerrar { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; padding: 0;
                border: 0; border-radius: 50%; background: transparent; color: var(--tinta); cursor: pointer;
                display: inline-flex; align-items: center; justify-content: center; }
.promo-cerrar svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.promo-cerrar:hover { background: var(--fondo-suave); }
.promo-fichas { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 8px 24px; }
.promo-ficha { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 8px; align-content: start; }
.promo-ficha + .promo-ficha { border-left: 2px solid var(--oro-vivo); padding-left: 24px; }
.promo-imagen { width: 100%; height: clamp(96px, 26vh, 218px); object-fit: cover; border-radius: 6px; }
.promo-tipo { margin: 0; font-size: 0.875rem; font-weight: 600; color: #555; }
.promo-titulo { margin: 0; font-family: inherit; font-size: 1.125rem; line-height: 1.3; letter-spacing: normal;
                color: var(--tinta); text-wrap: wrap; }
.promo-texto { margin: 0; font-size: 0.9375rem; line-height: 1.5; color: #444;
                display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
@media (max-height: 520px) { .promo-imagen { display: none; } }
.promo-ficha .boton { justify-self: start; align-self: end; margin-top: 4px; }
.promo-imagen--sin { height: 0; }
.promo-barra { position: fixed; left: 0; right: 0; bottom: 0; z-index: 55;
               display: flex; align-items: center; gap: 8px; padding: 10px 8px 10px 16px;
               padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
               background: #fff; border-top: 3px solid var(--oro-vivo);
               box-shadow: 0 -10px 24px -12px rgba(10, 31, 61, .4); }
.promo-barra-enlace { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column;
                      color: var(--tinta); text-decoration: none; }
.promo-barra-tipo { font-size: 0.8125rem; font-weight: 700; color: var(--oro); }
.promo-barra-titulo { font-size: 0.9375rem; font-weight: 600; line-height: 1.3; }
.promo-barra .promo-cerrar { position: static; flex: 0 0 auto; }
body:has(.promo-barra) .arriba { bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
@media (prefers-reduced-motion: no-preference) {
  .promo[open] { animation: promo-entra .25s ease-out; }
  .promo-barra { animation: promo-sube .3s ease-out; }
}
@keyframes promo-entra { from { opacity: 0; transform: translateY(12px); } }
@keyframes promo-sube { from { transform: translateY(100%); } }
@media (min-width: 1200px) {
  html { scroll-padding-top: 68px; }
  .cabecera { position: sticky; top: -74px; }
  .sub-rejilla > .sub-menu { top: 73px; }
  .cabecera-interior { flex-wrap: wrap; row-gap: 0; padding-top: 12px; padding-bottom: 0; }
  .cabecera-interior > .marca img { height: 52px; }
  .cabecera-interior > .util-acciones { display: flex; order: 2; margin-left: auto; gap: 22px; }
  .cabecera-interior > .menu-fila { order: 3; }
  .cabecera-interior .util-enlace { color: var(--tinta); font-size: 0.875rem; font-weight: 500; }
  .cabecera-interior .util-enlace:hover { color: var(--azul); border-bottom-color: var(--oro); }
  .cabecera-interior .util-enlace:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; }
  .cabecera-interior .util-contacto { color: var(--tinta); font-weight: 700; }
  .cabecera-interior .util-contacto:hover,
  .cabecera-interior .util-contacto:focus-visible { background: var(--azul); color: #fff; }
  .cabecera-interior .util-buscador { border-color: var(--oro); background: #fff; }
  .cabecera-interior .util-buscador input { color: var(--tinta); }
  .cabecera-interior .util-buscador input::placeholder { color: var(--suave); }
  .cabecera-interior .util-lupa { color: var(--oro); }
  .cabecera-interior .util-lupa:hover { color: var(--azul); }
  .cabecera-interior > .menu-fila { flex: 1 1 100%; margin-top: 10px; border-top: 1px solid var(--linea); }
  .menu-fila > .menu-lista { justify-content: space-between; }
}
@media (min-width: 1200px) and (max-width: 1439px) {
  .menu-fila .menu-lista > li > .desplegable > summary,
  .menu-fila .menu-lista > li > a { font-size: 0.875rem; }
}
.menu-fila .desplegable > summary::after { width: 6px; height: 6px; }

@media (min-width: 1200px) {
  .menu-fila .menu-item:nth-last-child(-n+2) .desplegable-panel { left: auto; right: 0; }
}

@media (min-width: 1200px) {

  .menu-fila .desplegable > summary { position: relative; z-index: 1; }

  .menu-fila .desplegable > summary::before {
    content: ''; position: absolute; z-index: -1;
    inset: -4px -6px -3px;
    border-radius: var(--radio) var(--radio) 0 0;
    background: color-mix(in srgb, var(--tono, #f0b429) 18%, #fff);
    opacity: 0; transition: opacity .14s ease;
  }
  .menu-fila .desplegable > summary:hover::before,
  .menu-fila .desplegable > summary:focus-visible::before { opacity: 1; }

  .menu-fila .desplegable[open] > summary::before {
    opacity: 1; background: color-mix(in srgb, var(--tono, #f0b429) 18%, #fff);
    box-shadow: -1px 0 0 rgba(10, 31, 61, .14),
                 1px 0 0 rgba(10, 31, 61, .14),
                 0 -1px 0 rgba(10, 31, 61, .14);
  }

  .menu-fila .desplegable > summary:hover,
  .menu-fila .desplegable > summary:focus-visible { border-bottom-color: var(--oro); }
  .menu-fila .desplegable[open] > summary  { border-bottom-color: var(--oro); }
  .menu-fila .menu-lista > li:nth-child(8) > .desplegable > summary::before {
    opacity: 1; background: color-mix(in srgb, #f0b429 28%, #fff); }
  .menu-fila .menu-lista > li:nth-child(8) > .desplegable > summary:hover::before,
  .menu-fila .menu-lista > li:nth-child(8) > .desplegable > summary:focus-visible::before,
  .menu-fila .menu-lista > li:nth-child(8) > .desplegable[open] > summary::before {
    background: color-mix(in srgb, #f0b429 45%, #fff); }
  .cabecera-interior .util-acciones a[href^="https://campusvirtual"],
  .cabecera-interior .util-area { padding: 0 14px; border-radius: var(--radio); color: #fff;
    font-weight: 700; border-bottom: 0; transition: background .2s ease; }
  .cabecera-interior .util-acciones a[href^="https://campusvirtual"] { background: #047230; }
  .cabecera-interior .util-area { background: #04409f; }
  .cabecera-interior .util-acciones a[href^="https://campusvirtual"]:hover { background: #035a26; color: #fff; }
  .cabecera-interior .util-area:hover { background: #03317a; color: #fff; }

  .menu-fila .desplegable-panel {
    border: 0;
    border-top: 3px solid var(--oro);
    max-height: calc(100vh - 11rem); overflow-y: auto;
    box-shadow: 0 0 0 1px rgba(10, 31, 61, .12),
                0 14px 28px -10px rgba(10, 31, 61, .34);
  }

  .menu-fila .desplegable-panel a { position: relative; padding-left: 14px; min-height: 40px; }
  .menu-fila .desplegable-panel a::before {
    content: ''; position: absolute; left: 0; top: 7px; bottom: 7px; width: 2px;
    background: var(--oro);
    transform: scaleX(0); transform-origin: left;
    transition: transform .12s ease;
  }
  .menu-fila .desplegable-panel a:hover::before,
  .menu-fila .desplegable-panel a:focus-visible::before { transform: scaleX(1); }
  .menu-fila .desplegable-panel a:hover { color: var(--azul); text-decoration: none; }
}

@keyframes panel-entra {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (min-width: 1200px) {
  .menu-fila .desplegable[open] > .desplegable-panel {
    animation: panel-entra .12s cubic-bezier(.2, .7, .3, 1);
  }
}

@view-transition { navigation: auto; }

::view-transition-old(root) { animation: none; }
::view-transition-new(root) { animation: pagina-entra .55s cubic-bezier(.85, 0, 0, 1) both; }

@keyframes pagina-entra { from { transform: translateX(100%); } }

@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root),
  ::view-transition-new(root) { animation: none !important; }
}

@keyframes oleada-cae    { from { transform: translateY(-100%); } }
@keyframes oleada-sube   { from { opacity: .01; transform: translateY(30px); } }

.cabecera {
  animation: oleada-cae .55s cubic-bezier(.85, 0, 0, 1) both;
}
main > :first-child {
  animation: oleada-sube .7s cubic-bezier(.85, 0, 0, 1) both;
  animation-delay: .1s;
}
.carrusel-mandos,
main > :first-child + * {
  animation: oleada-sube .6s cubic-bezier(0, -.01, .01, 1) both;
  animation-delay: .42s;
}

@media (prefers-reduced-motion: reduce) {
  .cabecera,
  .carrusel-mandos,
  main > :first-child,
  main > :first-child + * { animation: none !important; }
}

.tarjs { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 44rem) { .tarjs { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 66rem) { .tarjs { grid-template-columns: repeat(3, 1fr); } }

.seccion--cifras   { padding-bottom: 28px; }
.seccion--familias { padding-top: 0; }
.tarj--azul     { background: var(--via-publico);       }
.tarj--teal     { background: var(--via-empresa);       }
.tarj--violeta  { background: var(--via-ciudadania);    }
.tarj--bronce   { background: var(--via-oposiciones);   }
.tarj--granate  { background: #7a1230;                  }
.tarj--verde    { background: #14532d;                  }
.tarj { position: relative; display: block;
        height: 33rem; border-radius: var(--radio);
        color: #fff; overflow: hidden; text-align: left;
        text-decoration: none;
        cursor: pointer;
        transition: box-shadow .25s ease; }
.tarj:hover, .tarj:focus-visible {
  box-shadow: 0 14px 28px -12px rgba(10, 31, 61, .45); }
.tarj:focus-visible { outline: 3px solid #fff; outline-offset: -5px; }

.tarj-panel { --cuerpo: 21.25rem; --pie: 1.8rem; --hueco: 14px; --borde: 24px;
              --oculto: calc(var(--borde) + var(--cuerpo) + var(--hueco) + var(--pie));
              position: absolute; left: 0; right: 0; bottom: 0;
              padding: 0 var(--borde) var(--borde);
              transform: translateY(var(--oculto));
              transition: transform .42s cubic-bezier(.2, .7, .3, 1); }
.tarj:hover .tarj-panel,
.tarj:focus-visible .tarj-panel { transform: translateY(0); }

.tarj-rotulo { margin: 0 0 10px; font-size: 0.75rem; font-weight: 600;
               letter-spacing: 0.08em; text-transform: uppercase;
               color: var(--oro-vivo); }
.tarj h3 { margin: 0; color: #fff; line-height: 1.12;
           font-size: clamp(1.4rem, 1.15rem + 0.8vw, 1.8rem); }

.tarj-cuerpo { height: var(--cuerpo); margin-top: var(--borde);
               overflow: hidden; }
.tarj-cuerpo p { margin: 0; color: #fff; font-size: 1.0625rem; padding-right: 6px;
                 text-align: justify; hyphens: auto; }

.tarj-pie { margin: var(--hueco) 0 0; height: var(--pie);
            display: flex; justify-content: flex-end; align-items: center; }

@media (hover: none) { .tarj-panel { transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  .tarj, .tarj-panel, .ir::before, .ir::after { transition: none; } }

.util-redes { display: flex; align-items: center; gap: 2px; margin-left: 14px; }
.util-redes a { display: flex; align-items: center; justify-content: center;
                width: 32px; height: 32px; color: #fff; border-bottom: 0; }
.util-redes svg { width: 20px; height: 20px; display: block; }
.util-redes a:hover, .util-redes a:focus-visible { color: var(--oro-vivo); }
.util-redes a:focus-visible { outline: 2px solid var(--oro-vivo); outline-offset: -2px; }

.con-ventana-legal .cg-aviso { display: none; }

.franja-util { background: var(--azul-hondo); color: #fff; }
.franja-util-interior {
  max-width: var(--ancho); margin: 0 auto; padding: 0 24px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; min-height: 40px;
}
.util-correo, .util-enlace {
  font: inherit; font-size: 0.8125rem; color: #fff; text-decoration: none;
  background: none; border: 0; cursor: pointer;
  display: inline-flex; align-items: center; min-height: 40px;
  padding: 0; border-bottom: 2px solid transparent;
}
.util-acciones { display: flex; align-items: center; gap: 22px; }
.util-correo:hover, .util-enlace:hover { border-bottom-color: var(--oro-vivo); }
.util-correo:focus-visible, .util-enlace:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

.util-buscador { position: relative; display: flex; align-items: center;
                 border: 2px solid var(--oro-vivo); border-radius: var(--radio);
                 background: rgba(255, 255, 255, .14); }
.util-buscador input {
  font: inherit; font-size: 0.8125rem; color: #fff;
  background: none; border: 0; outline-offset: -3px;
  padding: 0 6px 0 12px; width: 11rem; height: 30px;
}
.util-buscador input::placeholder { color: rgba(255, 255, 255, .82); }
.util-lupa { display: grid; place-items: center; width: 32px; height: 30px;
             padding: 0; border: 0; background: none; cursor: pointer;
             color: var(--oro-vivo); }
.util-lupa svg { width: 16px; height: 16px; fill: none; stroke: currentColor;
                 stroke-width: 2.4; stroke-linecap: round; }
.util-lupa:hover { color: #fff; }

.util-contacto {
  background: var(--oro-vivo); color: var(--tinta); font-weight: 700;
  padding: 0 14px; border-radius: var(--radio); margin-right: 4px;
  transition: background .2s ease, color .2s ease;
}
.util-contacto:hover, .util-contacto:focus-visible {
  background: #fff; color: var(--azul);
}

.buscar-resultados { display: none; position: absolute; top: calc(100% + 6px);
                     right: 0; min-width: 20rem; z-index: 60;
                     list-style: none; margin: 0; padding: 6px;
                     background: var(--tinta); border: 2px solid var(--oro-vivo);
                     border-radius: var(--radio); box-shadow: 0 16px 32px -16px rgba(10,31,61,.6); }
.util-buscador.con-resultados .buscar-resultados { display: block; }
.buscar-resultados a { display: block; color: #fff; text-decoration: none;
                       padding: 9px 10px; border-radius: var(--radio); font-size: 0.875rem; }
.buscar-resultados a:hover, .buscar-resultados a:focus-visible { background: rgba(255,255,255,.16); }
.buscar-vacio { color: rgba(255,255,255,.82); padding: 9px 10px; font-size: 0.875rem; }

@media (max-width: 700px) {
  .franja-util-interior { flex-direction: column; align-items: flex-start; gap: 0;
                          padding-bottom: 8px; }
  .util-acciones { flex-wrap: wrap; gap: 6px 18px; }
}

.lineas { display: grid; gap: 32px; grid-template-columns: 1fr; }
@media (min-width: 34rem) { .lineas { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 62rem) { .lineas { grid-template-columns: repeat(3, 1fr); } }

.linea { position: relative; min-height: 300px; border-radius: var(--radio);
         overflow: hidden; color: #fff; }

.linea::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-size: cover; background-repeat: no-repeat; background-position: center;
}
.linea--teal::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 347 222' fill='none' stroke='%23ffffff' stroke-opacity='.35' stroke-width='1.5' stroke-linejoin='round' stroke-linecap='round'%3E%3Crect x='138' y='22' width='72' height='32' rx='3'/%3E%3Cpath d='M174 54v22M56 76h236M56 76v20M174 76v20M292 76v20'/%3E%3Crect x='20' y='96' width='72' height='32' rx='3'/%3E%3Crect x='138' y='96' width='72' height='32' rx='3'/%3E%3Crect x='256' y='96' width='72' height='32' rx='3'/%3E%3Cpath d='M56 128v20M56 148h118M56 148v20M174 148v20'/%3E%3Crect x='20' y='168' width='72' height='32' rx='3'/%3E%3Crect x='138' y='168' width='72' height='32' rx='3'/%3E%3C/svg%3E"); }
.linea--violeta::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 347 222' fill='none' stroke='%23ffffff' stroke-opacity='.36' stroke-width='1.5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M174 40v150M126 190h96'/%3E%3Cpath d='M78 68h192'/%3E%3Ccircle cx='174' cy='58' r='10'/%3E%3Cpath d='M78 68l-30 50h60zM270 68l-30 50h60z'/%3E%3Cpath d='M26 118h104M218 118h104'/%3E%3Cpath d='M78 68v-14M270 68v-14'/%3E%3C/svg%3E"); }
.linea--azul::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 347 222' fill='none' stroke='%23ffffff' stroke-opacity='.25' stroke-width='1.5' stroke-linejoin='round' stroke-linecap='round'%3E%3Crect x='34' y='56' width='178' height='118' rx='4'/%3E%3Cpath d='M34 60l89 66 89-66'/%3E%3Ccircle cx='272' cy='140' r='42'/%3E%3Ccircle cx='272' cy='140' r='30'/%3E%3Cpath d='M256 140l12 14 24-28'/%3E%3Cpath d='M248 56h74M248 76h50'/%3E%3C/svg%3E"); }
.linea--granate::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 347 222' fill='none' stroke='%23ffffff' stroke-opacity='.34' stroke-width='1.5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M20 20h307v182H20z'/%3E%3Cpath d='M20 202h307M94 20v182M168 20v182M242 20v182M20 80h307M20 140h307' stroke-opacity='.19'/%3E%3Cpath d='M20 168h120l46-48h161' stroke-width='9' stroke-opacity='.25'/%3E%3Crect x='44' y='38' width='84' height='60'/%3E%3Crect x='222' y='48' width='80' height='54'/%3E%3Cpath d='M152 96V58l34-24 34 24v38z'/%3E%3Cpath d='M44 118h84' stroke-width='2'/%3E%3C/svg%3E"); }
.linea--bronce::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 347 222' fill='none' stroke='%23ffffff' stroke-opacity='.29' stroke-width='1.5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M30 196h210M30 196V40'/%3E%3Crect x='52' y='140' width='32' height='56'/%3E%3Crect x='100' y='106' width='32' height='90'/%3E%3Crect x='148' y='142' width='32' height='54'/%3E%3Crect x='196' y='72' width='32' height='124'/%3E%3Cpath d='M44 118l52-40 50 24 62-62'/%3E%3Ccircle cx='288' cy='60' r='38'/%3E%3Ccircle cx='288' cy='60' r='27'/%3E%3Cpath d='M300 48a16 16 0 1 0 0 24M272 56h22M272 66h22'/%3E%3C/svg%3E"); }
.linea--verde::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 347 222' fill='none' stroke='%23ffffff' stroke-opacity='.32' stroke-width='1.5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M174 36L60 76l114 40 114-40z'/%3E%3Cpath d='M96 90v38c0 14 35 24 78 24s78-10 78-24V90'/%3E%3Cpath d='M288 76v46M288 122a7 7 0 1 0 0 14 7 7 0 1 0 0-14'/%3E%3Cpath d='M30 172c34-12 62-12 86 0 24-12 52-12 86 0'/%3E%3Cpath d='M30 172v26c34-12 62-12 86 0 24-12 52-12 86 0v-26'/%3E%3Cpath d='M116 172v26'/%3E%3C/svg%3E"); }
.linea--azul    { background: #04409f; }
.linea--teal    { background: #036e77; }
.linea--violeta { background: #9405b8; }
.linea--bronce  { background: #904804; }
.linea--granate { background: #a40432; }
.linea--verde   { background: #047230; }

.linea { display: block; text-decoration: none; cursor: pointer; }
.linea:focus-visible { outline: 3px solid var(--oro-vivo); outline-offset: -5px; }

.linea-titulo {
  position: absolute; left: 24px; right: 24px; bottom: 24px; z-index: 1;
  font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
  font-weight: 600; font-size: 1.5rem; line-height: 1.3; color: var(--oro-vivo);
  transition: opacity .3s ease;
}
.linea:hover .linea-titulo, .linea:focus-visible .linea-titulo { opacity: 0; }

.linea-rotulo {
  display: block; flex: 0 0 auto; margin: 0 0 8px;
  font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
  font-weight: 600; font-size: 1.5rem; line-height: 1.3; color: var(--oro-vivo);
}

.linea-detalle {
  position: absolute; inset: 0; z-index: 2;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 20px 24px 14px;
  background: linear-gradient(90deg,
              rgba(10, 31, 61, .94) 0%, rgba(10, 31, 61, .92) 52%,
              rgba(10, 31, 61, .55) 76%, rgba(10, 31, 61, 0) 100%);
  translate: -100% 0; opacity: 0;
  transition: translate .45s cubic-bezier(.85, 0, 0, 1),
              opacity   .25s ease;
}
.linea:hover .linea-detalle, .linea:focus-visible .linea-detalle {
  translate: 0 0; opacity: 1;
}

.linea-lista {
  display: block; margin: 0; padding: 0 0 0 1.15em;
  max-width: 84%; min-height: 0; flex: 1 1 auto;
  overflow-y: auto; overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .55) transparent;
}
.linea-lista li { color: #fff; font-size: 1rem; line-height: 1.35;
                  margin: 0 0 5px; }
.linea-lista li:last-child { margin-bottom: 0; }
.linea-lista li::marker { color: var(--oro-vivo); }
.linea-lista::-webkit-scrollbar { width: 6px; }
.linea-lista::-webkit-scrollbar-thumb { background: rgba(255,255,255,.55); border-radius: 3px; }
.linea-lista::-webkit-scrollbar-track { background: transparent; }
.linea-pie { display: flex; margin-top: 12px; flex: 0 0 auto; }

.linea .boton { padding: 8px 55px 8px 24px; }
.linea .boton:hover, .linea .boton:focus-visible { padding: 8px 24px 8px 55px; }

@media (prefers-reduced-motion: reduce) {
  .linea-detalle, .linea-titulo { transition: none; }
}



.seccion--cierre { background: var(--fondo-suave); }
.otras-familias { display: grid; gap: 12px; margin: 4px 0 28px;
                  grid-template-columns: 1fr; }
@media (min-width: 34rem) { .otras-familias { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 62rem) { .otras-familias { grid-template-columns: repeat(6, 1fr); } }
.otras-familias a[aria-current="page"] { background: var(--tinta); }
.otras-familias a {
  display: flex; align-items: center; justify-content: center; text-align: center;
  min-height: 56px; padding: 10px 14px; border-radius: var(--radio);
  background: #7a5516; color: #fff; font-weight: 600; font-size: 0.9375rem;
  line-height: 1.25; text-decoration: none;
  transition: background .2s ease;
}
.otras-familias a:hover, .otras-familias a:focus-visible { background: #5e4111; }
.seccion > .contenido > .cierre-llamada { margin: 0; max-width: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }

.seccion--sub { padding-top: clamp(28px, 3.4vw, 44px); }
.sub-rejilla { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 62rem) {
  .sub-rejilla { grid-template-columns: 317px 1fr; gap: 32px; align-items: start; }
  .sub-menu { position: sticky; top: 24px; }
}
.sub-lista { display: flex; flex-direction: column; gap: 2px; }

.sub-panel { border-right: 3px solid var(--oro-vivo); padding: 0 16px 0 1px; }
@media (max-width: 61.99rem) {
  .sub-panel { border-right: 0; border-bottom: 3px solid var(--oro-vivo);
               padding-right: 0; padding-bottom: 16px; }
}
.sub-panel-cab { display: flex; align-items: baseline; justify-content: space-between;
                 gap: 12px; margin-bottom: 12px; }
.sub-panel-tit { margin: 0; padding: 0; font-size: 1.125rem; text-align: left; }
.sub-borrar { font: inherit; font-size: 0.875rem; background: none; border: 0;
              color: var(--azul); text-decoration: underline; cursor: pointer;
              padding: 4px 0; min-height: 24px; white-space: nowrap; }
.sub-borrar:hover, .sub-borrar:focus-visible { color: var(--oro); }

.sub-casillas { display: flex; flex-direction: column; }
.sub-casilla + .sub-casilla { border-top: 1px solid var(--oro-vivo); }

.sub-casilla {
  display: flex; align-items: center; gap: 12px;
  min-height: 48px; padding: 12px 0; cursor: pointer;
  font-size: 1rem; line-height: 1.3; color: var(--tinta);
}
.sub-casilla:hover { color: var(--azul); }
.sub-casilla input {
  appearance: none; -webkit-appearance: none;
  flex: 0 0 auto; width: 24px; height: 24px; margin: 0;
  border: 2px solid var(--tinta); border-radius: 3px; background: #fff;
  cursor: pointer; transition: background .15s ease, border-color .15s ease;
}
.sub-casilla input:checked {
  background-color: var(--oro-vivo); border-color: var(--oro-vivo);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%230a1f3d' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10.5 8.2 15 16 5.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 18px 18px;
  background-position: center;
}
.sub-casilla input:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; }

.seccion--sub { padding-top: clamp(28px, 3.4vw, 44px); }
.sub-rejilla { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 62rem) {
  .sub-rejilla { grid-template-columns: 317px 1fr; gap: 32px; align-items: start; }
  .sub-menu { position: sticky; top: 24px; }
}
.sub-lista { display: flex; flex-direction: column; gap: 2px; }

.indice { display: block; }
.indice > summary { font-size: 1rem; width: 100%; justify-content: space-between; }
.indice .desplegable-panel { position: static; min-width: 0; padding: 8px 0 0; }

.sf { background: var(--tinta); color: #fff;
      transition: background-color .55s cubic-bezier(.85, 0, 0, 1); }
.sf:hover, .sf[open] { background-color: var(--azul-hondo); }
.sf-cab {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 24px;
  padding: 24px 32px; cursor: pointer; list-style: none;
  min-height: 48px;
}
.sf-cab::-webkit-details-marker { display: none; }
.sf-cab:focus-visible { outline: 3px solid var(--oro-vivo); outline-offset: -4px; }
.sf-cab > * { grid-column: 1; }
.sf-cab::after { grid-column: 2; grid-row: 1; }
.sf-cab:has(> .sf-lema)::after { grid-row: 1 / span 2; }
h3.sf-titulo { margin: 0; font-family: inherit; letter-spacing: inherit; color: inherit; }
.sf-titulo { display: block; font-size: 1.25rem; font-weight: 500; line-height: 1.25; }

.sf-datos { display: block; margin-top: 8px; font-size: 0.875rem;
            color: rgba(255, 255, 255, .72); }
.sf-datos span + span::before {
  content: '\00b7\0020'; margin: 0 5px 0 9px; color: rgba(255, 255, 255, .45);
}

.sf-cab::after {
  content: ''; flex: 0 0 auto; width: 48px; height: 48px;
  background-image: linear-gradient(var(--tinta), var(--tinta)),
                    linear-gradient(var(--tinta), var(--tinta)),
                    linear-gradient(var(--oro-vivo), var(--oro-vivo));
  background-repeat: no-repeat, no-repeat, no-repeat;
  background-size: 12px 2px, 2px 12px, 24px 24px;
  background-position: center, center, center;
  transition: background-size .2s ease;
}
.sf[open] > .sf-cab::after { background-size: 12px 2px, 2px 0, 24px 24px; }
.sf-cab:hover::after {
  background-image: linear-gradient(var(--tinta), var(--tinta)),
                    linear-gradient(var(--tinta), var(--tinta)),
                    linear-gradient(#fff, #fff);
}

.sf-cuerpo { padding: 0 32px 28px; max-width: 54rem; }
.sf-cuerpo p { margin: 0 0 12px; color: rgba(255, 255, 255, .92);
               text-align: left; hyphens: manual; }
.sf-cuerpo p:last-child { margin-bottom: 0; }

.lema-valores a { color: var(--oro-vivo); text-decoration: none;
                  font-size: 0.9375rem; }
.lema-valores a:hover, .lema-valores a:focus-visible {
  text-decoration: underline; text-decoration-color: var(--oro-vivo);
  text-decoration-thickness: 1px; text-underline-offset: 3px;
}
.lema--marca .lema-valores a::before { display: inline-block; }

@media (max-width: 560px) {
  .sf-cab { padding: 18px 20px; column-gap: 14px; }
  .sf-cuerpo { padding: 0 20px 22px; }
}


.contenido--estrecho { max-width: 43rem; }

.form { margin-top: 8px; }
.form-campo { display: flex; flex-direction: column; gap: 6px; margin: 0 0 18px; }
.form-campo label { font-weight: 600; color: var(--tinta); }
.form-obl { color: #8a6418; }

.form input, .form textarea {
  font: inherit; width: 100%; box-sizing: border-box;
  min-height: 48px; padding: 12px 14px;
  border: 1px solid var(--linea); border-radius: var(--radio);
  background: #fff; color: var(--tinta);
}
.form textarea { min-height: 150px; resize: vertical; line-height: 1.5; }
.form input:focus-visible, .form textarea:focus-visible {
  outline: 3px solid var(--oro); outline-offset: 1px; border-color: var(--azul);
}
.form input:user-invalid, .form textarea:user-invalid { border-color: #a4042f; }

.form-trampa { position: absolute; left: -9999px; width: 1px; height: 1px;
               overflow: hidden; }

.form-aviso { font-size: 0.875rem; line-height: 1.5; color: #444;
              border-left: 3px solid var(--oro); padding: 2px 0 2px 14px;
              margin: 0 0 20px; }
.form-pie { display: flex; flex-wrap: wrap; align-items: center;
            justify-content: space-between; gap: 14px; margin: 0; }
.form-obligatorios { font-size: 0.875rem; color: #444; }



@media (max-width: 1199px) {
  .cabecera-interior { flex-wrap: nowrap; }
  .cabecera-interior > .menu-fila {
    position: absolute; left: 0; right: 0; top: 100%; z-index: 70;
    background: #fff; padding: 4px 20px 22px;
    max-height: calc(100dvh - var(--cab-fondo, 80px)); overflow-y: auto; overscroll-behavior: contain;
    border-top: 1px solid var(--linea);
    box-shadow: 0 18px 32px -14px rgba(10, 31, 61, .38);
  }
  .menu-fila > .menu-lista { justify-content: stretch; align-items: stretch; }
  .menu-fila .menu-lista > li { width: 100%; text-align: left; }
  .menu-fila .menu-lista > li > a:hover, .menu-fila .menu-lista > li > a:focus-visible,
  .menu-fila .desplegable > summary:hover, .menu-fila .desplegable > summary:focus-visible {
    background: color-mix(in srgb, var(--tono, #f0b429) 18%, #fff);
    box-shadow: -20px 0 0 color-mix(in srgb, var(--tono, #f0b429) 18%, #fff), 20px 0 0 color-mix(in srgb, var(--tono, #f0b429) 18%, #fff);
  }
  .menu-fila .menu-lista > li:nth-child(8) > .desplegable > summary {
    background: color-mix(in srgb, #f0b429 28%, #fff);
    box-shadow: -20px 0 0 color-mix(in srgb, #f0b429 28%, #fff), 20px 0 0 color-mix(in srgb, #f0b429 28%, #fff);
  }
  .menu-fila .menu-util-enlaces a[href^="https://campusvirtual"] { background: #047230; border-color: #047230; color: #fff; }
  .menu-fila .menu-util-enlaces .util-area { background: #04409f; border-color: #04409f; color: #fff; }
  .menu-fila .menu-lista > li > .desplegable > summary,
  .menu-fila .menu-lista > li > a { font-size: 1rem; padding: 14px 0; justify-content: space-between; }
  .menu-fila .desplegable > summary::after { width: 8px; height: 8px; }
  .menu-fila:has(> .menu-lista--cerrada) { display: none; }
}

.form input, .form textarea, .form select { border-color: var(--suave); }

.tarj-cuerpo p, .diapo-cuerpo p, .capitulo--compacto p, .sf-cuerpo p,
.ayuda-tarjeta p { text-align: left; hyphens: manual; }
@media (max-width: 700px) {
  main p, main li, main dd, .legal p, .ventana-legal-cuerpo p, .ventana-legal-cuerpo li { text-align: left; }
}

.ayuda-rejilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
                 gap: 16px; margin: 24px 0 8px; }
.ayuda-tarjeta { background: var(--fondo-suave); border-top: 3px solid var(--oro);
                 padding: 20px 20px 18px; display: flex; flex-direction: column; gap: 8px; }
.ayuda-tarjeta h3 { margin: 0; font-size: 1.125rem; line-height: 1.3; color: var(--azul); }
.ayuda-tarjeta p { margin: 0; font-size: 0.9375rem; line-height: 1.5; color: var(--tinta); }
.ayuda-tarjeta a { margin-top: auto; align-self: flex-start; font-weight: 600; color: var(--azul);
                   text-decoration: none; border-bottom: 2px solid var(--oro); padding: 2px 0;
                   min-height: 24px; box-sizing: border-box; }
.ayuda-tarjeta a:hover, .ayuda-tarjeta a:focus-visible { color: var(--azul-hondo); border-bottom-color: var(--azul-hondo); }
.form select { font: inherit; width: 100%; box-sizing: border-box; min-height: 48px; padding: 12px 14px;
               border: 1px solid var(--suave); border-radius: var(--radio); background: #fff; color: var(--tinta); }
.form select:focus-visible { outline: 3px solid var(--oro); outline-offset: 1px; border-color: var(--azul); }
.form-consentimiento { display: flex; gap: 10px; align-items: flex-start; font-size: 0.9375rem;
                       line-height: 1.5; color: var(--tinta); margin: 0 0 20px; }
.form-consentimiento input { width: 20px; height: 20px; min-height: 0; margin: 3px 0 0;
                             flex: 0 0 auto; accent-color: var(--azul); padding: 0; }
.form-consentimiento a { color: var(--azul); }
.form-rgpd { margin: 0 0 20px; padding: 12px 16px; background: var(--fondo-suave);
             border-left: 4px solid var(--azul); border-radius: 0 6px 6px 0;
             font-size: 0.8125rem; line-height: 1.45; color: #444; }
.form-rgpd-tit { margin: 0 0 6px; font-weight: 700; color: var(--tinta); }
.form-rgpd dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 2px 12px; margin: 0; }
.form-rgpd dt { font-weight: 700; }
.form-rgpd dd { margin: 0; }
.form-rgpd a { color: var(--azul); }
@media (max-width: 30rem) {
  .form-rgpd dl { grid-template-columns: minmax(0, 1fr); }
  .form-rgpd dd { margin-bottom: 4px; }
}

.tarj { height: 300px; }
.tarj-panel { --cuerpo: 6.25rem; }
.tarj-cuerpo { overflow-y: auto; overscroll-behavior: contain;
               scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .55) transparent; }
.tarj-cuerpo::-webkit-scrollbar { width: 6px; }
.tarj-cuerpo::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, .55); border-radius: 3px; }
.tarj-cuerpo::-webkit-scrollbar-track { background: transparent; }
@media (hover: none) { .tarj-cuerpo { overscroll-behavior: auto; } }

.cabecera-interior, .franja-util-interior { max-width: var(--ancho); }
@media (min-width: 1200px) {
  .menu-fila .menu-lista > li > .desplegable > summary,
  .menu-fila .menu-lista > li > a { padding-left: 9px; padding-right: 9px; }
}
@media (min-width: 1200px) and (max-width: 1279px) {
  .menu-fila .menu-lista > li > .desplegable > summary,
  .menu-fila .menu-lista > li > a { padding-left: 6px; padding-right: 6px; }
}

.tarj-cuerpo, .linea-lista { scrollbar-width: auto; scrollbar-color: auto; }
.tarj-cuerpo::-webkit-scrollbar, .linea-lista::-webkit-scrollbar { width: 10px; }
.tarj-cuerpo::-webkit-scrollbar-track,
.linea-lista::-webkit-scrollbar-track { background: rgba(255, 255, 255, .3); border-radius: 5px; }
.tarj-cuerpo::-webkit-scrollbar-thumb,
.linea-lista::-webkit-scrollbar-thumb { background: #fff; border-radius: 5px; }
.tarj-cuerpo::-webkit-scrollbar-thumb:hover,
.linea-lista::-webkit-scrollbar-thumb:hover { background: var(--oro-vivo); }
.tarj-cuerpo p { padding-right: 16px; }
.linea-lista { padding-right: 14px; }
@supports not selector(::-webkit-scrollbar) {
  .tarj-cuerpo, .linea-lista { scrollbar-color: #fff rgba(255, 255, 255, .3); }
}

.datos--correos { max-width: 44rem; }
.datos--correos dd a { overflow-wrap: anywhere; }
@media (max-width: 720px) {
  .datos--correos { grid-template-columns: 1fr; row-gap: 2px; }
  .datos--correos dd { margin-bottom: 10px; }
}

.form input[type="file"] { padding: 8px 10px; cursor: pointer; }
.form input[type="file"]::file-selector-button {
  font: inherit; font-weight: 600; margin-right: 12px; padding: 8px 14px;
  border: 0; border-radius: var(--radio); background: var(--azul); color: #fff; cursor: pointer; }
.form input[type="file"]::file-selector-button:hover { background: var(--azul-hondo); }
.form-opcional { font-weight: 400; color: #444; }
.form-ayuda { font-size: 0.875rem; color: #444; }

.lema--centro p { margin-inline: auto; text-align: center; }

@media (min-width: 1200px) {
  .menu-fila .menu-lista > li > a {
    display: inline-flex; align-items: center; position: relative; z-index: 1;
    color: var(--tinta); font-weight: 500; border-bottom: 3px solid transparent; }
  .menu-fila .menu-lista > li > a::before {
    content: ''; position: absolute; z-index: -1; inset: -4px -6px -3px;
    border-radius: var(--radio) var(--radio) 0 0; background: rgba(240, 180, 41, .24);
    opacity: 0; transition: opacity .14s ease; }
  .menu-fila .menu-lista > li > a:hover::before,
  .menu-fila .menu-lista > li > a:focus-visible::before { opacity: 1; }
  .menu-fila .menu-lista > li > a:hover,
  .menu-fila .menu-lista > li > a:focus-visible { color: var(--azul); border-bottom-color: var(--oro); }
  .menu-fila .menu-lista > li > a:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; }
}

.pie-contacto > span:not(:has(a)) { padding: 4px 0; }

.lema--oro p { color: var(--oro-vivo); }

.form-archivo { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; position: relative; }
.form input.form-archivo-input {
  position: absolute; left: 0; top: 0; width: 1px; height: 1px; min-height: 0;
  padding: 0; border: 0; opacity: 0; overflow: hidden; clip-path: inset(50%); }
.form-campo .form-archivo-boton {
  display: inline-flex; align-items: center; min-height: 44px; padding: 8px 20px;
  border-radius: var(--radio); background: var(--azul); color: #fff; font-weight: 600;
  cursor: pointer; transition: background .2s ease; }
.form-campo .form-archivo-boton:hover { background: var(--azul-hondo); }
.form input.form-archivo-input:focus-visible + .form-archivo-boton { outline: 3px solid var(--oro); outline-offset: 2px; }
.form-archivo-nombre { font-size: 0.9375rem; color: #444; overflow-wrap: anywhere; min-width: 0; }

.dialogo-aviso {
  width: min(30rem, 92vw); padding: 24px; color: var(--tinta);
  border: 0; border-top: 3px solid var(--oro-vivo); border-radius: var(--radio);
  box-shadow: 0 2px 6px rgba(10,31,61,.30), 0 24px 56px -12px rgba(10,31,61,.45); }
.dialogo-aviso::backdrop { background: rgba(10, 31, 61, .62); }
.dialogo-aviso h2 { margin: 0 0 12px; font-size: 1.375rem; color: var(--azul-hondo); }
.dialogo-aviso p { margin: 0 0 20px; line-height: 1.5; }
.dialogo-aviso a { color: var(--azul); }
.dialogo-aviso-botones { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; }

.titulo-centro { text-align: center; }

.sf-cuerpo p, .texto-justificado p { text-align: justify; hyphens: auto; }

.novedad { display: grid; grid-template-columns: 194px minmax(0, 1fr); gap: 0 32px; align-items: start;
           margin: 20px 0 40px; padding-bottom: 28px; border-bottom: 2px solid var(--linea); }
.novedad-imagen { display: block; width: 194px; height: 191px; object-fit: cover; }
.novedad-fecha { margin: 0 0 4px; font-size: 1.1875rem; font-weight: 700; color: var(--oro); }
.novedad-tipo { margin: 0 0 6px; font-size: 0.9375rem; font-weight: 500; color: #555; }
.novedad h2 { margin: 0 0 12px; font-family: inherit; font-size: 1.25rem; line-height: 1.3;
              letter-spacing: normal; text-wrap: wrap; color: var(--tinta); }
.novedad-texto p { margin: 0 0 12px; }
.novedad-texto > :last-child { margin-bottom: 0; }
@media (max-width: 600px) {
  .novedad { grid-template-columns: 1fr; gap: 16px 0; }
  .novedad-imagen { width: 100%; height: auto; aspect-ratio: 16 / 10; }
}

.enlaces-oficiales { list-style: none; margin: 20px 0 8px; padding: 0;
                     display: grid; gap: 12px; grid-template-columns: 1fr; }
@media (min-width: 600px) { .enlaces-oficiales { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.enlaces-oficiales a { display: flex; flex-direction: column; gap: 2px; height: 100%; box-sizing: border-box;
                       padding: 14px 16px; background: var(--fondo-suave); border-top: 3px solid var(--oro);
                       text-decoration: none; text-align: left; }
.enlaces-oficiales .eo-nombre { font-weight: 700; color: var(--azul); }
.enlaces-oficiales .eo-detalle { font-size: 0.9375rem; line-height: 1.4; color: #555; }
.enlaces-oficiales a:hover .eo-nombre, .enlaces-oficiales a:focus-visible .eo-nombre { text-decoration: underline; }
.enlaces-oficiales a:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; }
.eo-filtro { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 20px 0 4px; }
.eo-filtro label { font-weight: 600; }
.eo-filtro select { font: inherit; min-height: 44px; padding: 8px 12px; border: 1px solid var(--suave);
                    border-radius: var(--radio); background: #fff; color: var(--tinta); }
.eo-filtro select:focus-visible { outline: 3px solid var(--oro); outline-offset: 1px; }
.eo-nota { flex: 1 1 100%; font-size: 0.875rem; color: #555; }
.enlaces-oficiales a, .enlaces-oficiales span { hyphens: manual; }

.novedad-acciones { display: flex; flex-wrap: wrap; gap: 14px 28px; margin-top: 4px; }
.novedad-acciones p { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin: 0; }
.novedad-nota { font-size: 0.875rem; color: #555; }

.novedad { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 0 36px; }
.novedad-imagen { width: 100%; height: auto; aspect-ratio: 16 / 10; }
@media (max-width: 600px) { .novedad { grid-template-columns: 1fr; gap: 16px 0; } }

.sf-lema { display: block; margin-top: 8px; font-size: 0.9375rem; line-height: 1.4;
           color: var(--oro-vivo); }
.sf-cuerpo ul, .sf-cuerpo ol { margin: 0 0 12px; padding-left: 1.25em; }
.sf-cuerpo li { margin: 0 0 6px; color: rgba(255, 255, 255, .92);
                text-align: justify; hyphens: auto; }
.sf-cuerpo li:last-child { margin-bottom: 0; }
.sf-cuerpo li::marker { color: var(--oro-vivo); }

.sf-lema--lista span + span::before { content: '\00b7\0020'; margin: 0 5px 0 5px; }

.novedad-lema { margin: 0 0 4px; font-size: 1.1875rem; font-weight: 700; line-height: 1.3;
                color: var(--oro); text-wrap: balance; }
.novedad-contacto { font-weight: 500; }

.sf-cuerpo .enlaces-oficiales { padding-left: 0; margin: 16px 0 4px; }
.sf-cuerpo .enlaces-oficiales li { margin: 0; color: inherit; text-align: left; hyphens: manual; }
.sf-cuerpo .enlaces-oficiales a:focus-visible { outline-color: var(--oro-vivo); }
.sf-cuerpo .eo-filtro { text-align: left; }
.sf-cuerpo .eo-nota { color: rgba(255, 255, 255, .72); }
.sf-cuerpo .eo-filtro select:focus-visible { outline-color: var(--oro-vivo); }

.eo-busca { display: flex; flex-direction: column; gap: 8px; margin: 20px 0 4px; }
.eo-busca label { font-weight: 600; }
.eo-busca-fila { display: flex; flex-wrap: wrap; gap: 8px; }
.eo-busca input { flex: 1 1 16rem; min-width: 0; font: inherit; min-height: 44px; padding: 8px 12px;
                  border: 1px solid var(--suave); border-radius: var(--radio); background: #fff; color: var(--tinta); }
.eo-busca input:focus-visible { outline: 3px solid var(--oro-vivo); outline-offset: 1px; }
.eo-busca-boton { min-height: 44px; background: var(--oro-vivo); border-color: var(--oro-vivo); color: var(--tinta); }
.eo-busca-boton:hover { background: #fff; border-color: #fff; color: var(--tinta); }
.eo-busca-boton:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.eo-res { margin: 16px 0 8px; }
.eo-res:empty { display: none; }
.sf-cuerpo .eo-res-total, .sf-cuerpo .eo-res-aviso { margin: 0 0 8px; text-align: left; hyphens: manual; }
.sf-cuerpo .eo-res-total { font-weight: 600; }
.sf-cuerpo .eo-resultados { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255, 255, 255, .18); }
.sf-cuerpo .eo-resultados li { margin: 0; padding: 10px 0; border-bottom: 1px solid rgba(255, 255, 255, .18);
                               color: inherit; text-align: left; hyphens: manual; }
.eo-resultados a { color: #fff; text-decoration: underline; text-decoration-color: rgba(240, 180, 41, .6);
                   text-underline-offset: 3px; }
.eo-resultados a:hover { text-decoration-color: var(--oro-vivo); }
.eo-resultados a:focus-visible { outline: 3px solid var(--oro-vivo); outline-offset: 2px; }
.eo-res-meta { display: block; margin-top: 4px; font-size: 0.8125rem; color: rgba(255, 255, 255, .72); }
.eo-res-plazas { display: block; margin-top: 4px; font-size: 0.9375rem; line-height: 1.45; color: rgba(255, 255, 255, .88); }

.hero-botones--seccion { margin: 20px 0 32px; }

.seccion--ancha > .contenido { max-width: 100rem; }
.seccion--ancha .sf-cuerpo { max-width: none; }
.seccion--ancha .sf-cuerpo > p, .seccion--ancha .sf-cuerpo > h3, .seccion--ancha .eo-busca { max-width: 54rem; }
.seccion--ancha .eo-res { max-width: 64rem; }
.seccion--ancha .enlaces-oficiales { grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.sf-subtitulo { margin: 20px 0 8px; font-size: 1.0625rem; font-weight: 700; line-height: 1.3; color: #fff; }

.eo-busca-filtros { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: 8px 12px; margin-top: 4px; }
.eo-campo { display: flex; flex-direction: column; gap: 4px; }
.eo-campo select { font: inherit; font-weight: 400; min-height: 44px; padding: 8px 12px; border: 1px solid var(--suave);
                   border-radius: var(--radio); background: #fff; color: var(--tinta); }
.eo-campo select:focus-visible { outline: 3px solid var(--oro-vivo); outline-offset: 1px; }

.novedad-publicado { margin: 0 0 6px; font-size: 0.875rem; color: #555; }
.novedad-plazo { margin: 0 0 6px; font-weight: 700; color: var(--tinta); }

.area-rejilla { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 62rem) { .area-rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }
.area-bloque { padding: 24px 28px 28px; background: #fff; border: 1px solid var(--linea); border-top: 3px solid var(--oro); }
.area-bloque--suave { background: var(--fondo-suave); }
.area-bloque h2 { margin: 0 0 16px; font-size: 1.5rem; }
.area-bloque p { margin: 0 0 14px; text-align: left; hyphens: manual; }
.area-error { padding: 12px 14px; border-left: 4px solid #a4042f; background: #fdeef1; color: #7a0323; font-weight: 600; }
.area-olvido { font-size: 0.9375rem; }
.area-aviso { padding: 12px 14px; border-left: 4px solid #a4042f; background: #fdeef1; color: #7a0323; font-weight: 600; }
.area-aviso--bien { border-left-color: #047230; background: #eaf6ee; color: #035a26; }
#acceso-form .form-pie { justify-content: flex-start; gap: 18px; }
.aviso-acceso { width: min(460px, 92vw); padding: 30px 28px 26px; border: 0; border-top: 4px solid var(--oro-vivo);
                border-radius: 10px; background: #fff; color: var(--tinta);
                box-shadow: 0 30px 60px -20px rgba(10, 31, 61, .55); }
.aviso-acceso::backdrop { background: rgba(10, 31, 61, .55); }
.aviso-acceso p { margin: 0 34px 20px 0; font-size: 1.0625rem; line-height: 1.5; }
.area-menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.area-menu a { display: block; padding: 12px 14px; background: var(--fondo-suave); border-left: 3px solid var(--oro);
               font-weight: 600; color: var(--azul); text-decoration: none; }
.area-menu a:hover, .area-menu a:focus-visible { text-decoration: underline; }

.sf-cuerpo .datos + p { margin-top: 16px; }

.ayuda-cuerpo { display: flex; flex-direction: column; gap: 8px; min-height: 0; }
@media (min-width: 32rem) {
  .ayuda-tarjeta { height: 17.5rem; }
  .ayuda-cuerpo { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding-right: 8px; }
}
.ayuda-cuerpo:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; }

dialog:not([open]) { display: none !important; }

.novedad-imagen { align-self: center; }
.novedad-texto h2 + p { font-size: 0.9375rem; line-height: 1.55; }
.novedad { border-bottom-color: var(--oro); }

body { -webkit-user-select: none; user-select: none; }
input, textarea, select, [contenteditable=""], [contenteditable="true"],
a[href^="mailto:"], a[href^="tel:"] { -webkit-user-select: text; user-select: text; }
img { -webkit-user-drag: none; -webkit-touch-callout: none; }

.sf-cuerpo p a:not(.boton), .sf-cuerpo li a { color: #fff; text-decoration: underline;
  text-decoration-color: var(--oro-vivo); text-underline-offset: 3px; }
.sf-cuerpo p a:not(.boton):hover, .sf-cuerpo li a:hover { text-decoration-thickness: 2px; }
.sf-cuerpo p a:not(.boton):focus-visible, .sf-cuerpo li a:focus-visible { outline: 3px solid var(--oro-vivo); outline-offset: 2px; }

[hidden] { display: none !important; }
