
body.opositores {
--crema: #fbf8f1;
--crema-honda: #f3ecdd;
--linea: #e6dcc6;
--verde: #1d3a67;
--verde-texto: #16294d;
--verde-suave: #e9eef7;
--tinta: #241f18;
--gris: #5c554a;
--sol: #f2c14e;
--cielo: #8ecae6;
margin: 0;
background: var(--crema);
color: var(--tinta);
font-family: Montserrat, ui-sans-serif, system-ui, sans-serif;
overflow-x: hidden;
}
body.opositores .opos-dentro {
width: 100%;
max-width: 1040px;
margin-inline: auto;
padding-inline: 20px;
}
body.opositores .saltar {
position: absolute;
left: -9999px;
top: 0;
z-index: 10;
padding: 12px 20px;
background: var(--verde-texto);
color: #fff;
font-weight: 700;
}
body.opositores .saltar:focus { left: 0; }
body.opositores :focus-visible {
outline: 3px solid var(--verde);
outline-offset: 3px;
}
body.opositores .tira-opos {
position: fixed;
top: 22px;
right: 22px;
z-index: 20;
display: flex;
align-items: center;
gap: 10px;
padding: 7px 15px 7px 7px;
border-radius: 999px;
background: rgb(255 255 255 / 0.94);
border: 1px solid var(--linea);
backdrop-filter: blur(8px);
box-shadow: 0 10px 30px -18px rgb(45 58 40 / 0.5);
color: var(--tinta);
max-width: calc(100vw - 44px);
}
body.opositores .tira-opos .tira-asesor-foto,
body.opositores .tira-opos .tira-asesor-inicial {
width: 38px;
height: 38px;
border-radius: 50%;
object-fit: cover;
flex-shrink: 0;
display: grid;
place-items: center;
background: var(--verde-suave);
color: var(--verde-texto);
font-size: 13px;
font-weight: 700;
}
body.opositores .tira-opos strong {
display: block;
font-size: 14px;
font-weight: 700;
line-height: 1.2;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
body.opositores .tira-opos .tira-asesor-cargo {
display: block;
margin-top: 2px;
color: var(--verde-texto);
font-size: 10.5px;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
}
body.opositores .tira-opos .tira-asesor-frase {
display: block;
margin-top: 1px;
color: var(--gris);
font-size: 11px;
}
@media (max-width: 720px) {
body.opositores .tira-opos { top: 14px; right: 14px; padding: 5px 12px 5px 5px; gap: 8px; }
body.opositores .tira-opos .tira-asesor-foto,
body.opositores .tira-opos .tira-asesor-inicial { width: 30px; height: 30px; font-size: 12px; }
body.opositores .tira-opos strong { font-size: 12.5px; }
body.opositores .tira-opos .tira-asesor-cargo,
body.opositores .tira-opos .tira-asesor-frase { display: none; }
}
body.opositores .opos-portada {
position: relative;
overflow: hidden;
padding-block: 120px 88px;
background:
radial-gradient(90% 70% at 85% 0%, rgb(242 193 78 / 0.16) 0%, transparent 60%),
radial-gradient(80% 60% at 5% 100%, rgb(124 179 66 / 0.12) 0%, transparent 55%),
var(--crema);
}
body.opositores .opos-motas {
position: absolute;
inset: 0;
overflow: hidden;
pointer-events: none;
}
body.opositores .opos-motas span {
position: absolute;
bottom: -3vh;
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--verde);
opacity: 0;
animation: opos-flota linear infinite;
}
body.opositores .opos-motas span:nth-child(1) { left: 7%;  animation-duration: 30s; animation-delay: 0s; }
body.opositores .opos-motas span:nth-child(2) { left: 22%; animation-duration: 40s; animation-delay: -12s; background: var(--sol); width: 6px; height: 6px; }
body.opositores .opos-motas span:nth-child(3) { left: 45%; animation-duration: 34s; animation-delay: -22s; background: var(--cielo); width: 5px; height: 5px; }
body.opositores .opos-motas span:nth-child(4) { left: 66%; animation-duration: 28s; animation-delay: -6s; background: var(--sol); }
body.opositores .opos-motas span:nth-child(5) { left: 82%; animation-duration: 38s; animation-delay: -28s; width: 5px; height: 5px; }
body.opositores .opos-motas span:nth-child(6) { left: 93%; animation-duration: 32s; animation-delay: -16s; background: var(--cielo); width: 6px; height: 6px; }
@keyframes opos-flota {
0%   { transform: translateY(0); opacity: 0; }
10%  { opacity: 0.5; }
85%  { opacity: 0.25; }
100% { transform: translateY(-106vh); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
body.opositores .opos-motas span { animation: none; opacity: 0.25; bottom: auto; top: 30%; }
}
body.opositores .opos-portada-dentro {
position: relative;
max-width: 760px;
}
@media (min-width: 1060px) {
body.opositores .opos-portada-dentro {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 332px);
gap: 48px;
align-items: center;
max-width: 1040px;
}
}
body.opositores .opos-arte { display: none; }
@media (min-width: 1060px) {
body.opositores .opos-arte { display: block; justify-self: end; width: 100%; max-width: 332px; }
}
body.opositores .opos-arte-fondo { display: block; width: 100%; height: auto; }
body.opositores .opos-tramo {
fill: var(--crema-honda);
stroke: var(--linea);
stroke-width: 1.5;
animation: opos-entra 0.35s ease-out backwards;
}
body.opositores .opos-tramo-corto { animation-delay: calc(0.35s + var(--i) * 0.08s); }
body.opositores .opos-tramo-largo {
fill: var(--verde-suave);
stroke: var(--verde);
stroke-width: 1;
animation-delay: calc(0.7s + var(--i) * 0.025s);
}
@keyframes opos-entra {
from { opacity: 0; transform: scale(0.8); }
to   { opacity: 1; transform: none; }
}
body.opositores .opos-arte-leyenda {
display: grid;
gap: 11px;
margin: 24px 0 0;
padding: 0;
list-style: none;
}
body.opositores .opos-arte-leyenda li {
display: flex;
align-items: center;
gap: 12px;
margin: 0;
color: var(--gris);
font-size: 13px;
}
body.opositores .opos-arte-leyenda li::before {
content: '';
flex: none;
width: 14px;
height: 14px;
border-radius: 3px;
background: var(--crema-honda);
box-shadow: inset 0 0 0 1.5px var(--linea);
}
body.opositores .opos-arte-leyenda li.opos-arte-largo { color: var(--tinta); font-weight: 600; }
body.opositores .opos-arte-leyenda li.opos-arte-largo::before {
background: var(--verde-suave);
box-shadow: inset 0 0 0 1.5px var(--verde);
}
@media (prefers-reduced-motion: reduce) {
body.opositores .opos-tramo { animation: none; }
}
body.opositores .opos-encima {
margin: 0;
font-size: 12.5px;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--verde-texto);
}
body.opositores .opos-titular {
margin: 18px 0 0;
font-size: clamp(34px, 7vw, 58px);
line-height: 1.06;
font-weight: 800;
letter-spacing: -0.025em;
}
body.opositores .opos-resalte {
display: block;
color: var(--verde-texto);
}
body.opositores .opos-entrada {
margin: 22px 0 0;
font-size: clamp(16.5px, 2.2vw, 18.5px);
line-height: 1.75;
color: var(--gris);
max-width: 58ch;
}
body.opositores .opos-botones {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 32px;
}
body.opositores .opos-boton {
display: inline-block;
text-wrap: balance;
text-align: center;
padding: 15px 28px;
border-radius: 999px;
background: var(--verde-texto);
color: #fff;
font-size: 16px;
font-weight: 700;
text-decoration: none;
border: 2px solid var(--verde-texto);
transition: transform 0.15s, box-shadow 0.15s, background-color 0.15s;
}
body.opositores .opos-boton:hover {
background: #3d5e20;
border-color: #3d5e20;
transform: translateY(-2px);
box-shadow: 0 12px 28px rgb(74 112 40 / 0.28);
}
body.opositores .opos-boton-linea {
background: transparent;
color: var(--verde-texto);
border-color: rgb(74 112 40 / 0.4);
}
body.opositores .opos-boton-linea:hover {
background: var(--verde-suave);
box-shadow: none;
}
@media (prefers-reduced-motion: reduce) {
body.opositores .opos-boton:hover { transform: none; }
}
body.opositores .opos-tira {
background: var(--verde-texto);
color: #fff;
padding-block: 26px;
}
body.opositores .opos-tira-dentro {
display: grid;
gap: 18px;
grid-template-columns: 1fr;
}
@media (min-width: 720px) {
body.opositores .opos-tira-dentro { grid-template-columns: repeat(3, 1fr); gap: 24px; }
}
body.opositores .opos-tira strong {
display: block;
font-size: 18px;
font-weight: 800;
}
body.opositores .opos-tira span {
display: block;
margin-top: 3px;
font-size: 13.5px;
color: rgb(255 255 255 / 0.82);
}
body.opositores .opos-seccion { padding-block: 90px; }
body.opositores .opos-claro { background: var(--crema-honda); }
body.opositores .opos-rotulo {
margin: 0;
font-size: 12.5px;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--verde-texto);
}
body.opositores .opos-titulo {
margin: 12px 0 0;
font-size: clamp(26px, 4vw, 36px);
line-height: 1.15;
font-weight: 800;
letter-spacing: -0.02em;
}
body.opositores .opos-parrafo {
margin: 18px 0 0;
font-size: 16.5px;
line-height: 1.8;
color: var(--gris);
}
body.opositores .opos-rejilla {
display: grid;
gap: 16px;
margin-top: 32px;
grid-template-columns: 1fr;
}
@media (min-width: 720px) {
body.opositores .opos-rejilla { grid-template-columns: 1fr 1fr; gap: 18px; }
}
body.opositores .opos-tarjeta {
padding: 26px;
border-radius: 18px;
background: #fff;
border: 1px solid var(--linea);
border-top: 3px solid var(--verde);
}
body.opositores .opos-tarjeta h3 {
margin: 0;
font-size: 18px;
font-weight: 700;
}
body.opositores .opos-tarjeta p {
margin: 10px 0 0;
font-size: 15.5px;
line-height: 1.75;
color: var(--gris);
}
body.opositores .opos-dos {
display: grid;
gap: 34px;
grid-template-columns: 1fr;
}
@media (min-width: 860px) {
body.opositores .opos-dos { grid-template-columns: 1.35fr 1fr; gap: 56px; align-items: start; }
}
body.opositores .opos-lista {
margin: 0;
padding: 26px;
list-style: none;
border-radius: 18px;
background: var(--verde-suave);
border: 1px solid rgb(124 179 66 / 0.35);
}
body.opositores .opos-lista li {
position: relative;
padding-left: 28px;
font-size: 15.5px;
line-height: 1.6;
}
body.opositores .opos-lista li + li { margin-top: 14px; }
body.opositores .opos-lista li::before {
content: '';
position: absolute;
left: 4px;
top: 0.5em;
width: 9px;
height: 9px;
border-radius: 50%;
background: var(--verde);
}
body.opositores .opos-pasos {
display: grid;
gap: 26px;
margin: 34px 0 0;
padding: 0;
list-style: none;
grid-template-columns: 1fr;
}
@media (min-width: 820px) {
body.opositores .opos-pasos { grid-template-columns: repeat(3, 1fr); gap: 30px; }
}
body.opositores .opos-pasos li {
padding: 28px 24px;
border-radius: 18px;
background: #fff;
border: 1px solid var(--linea);
}
body.opositores .opos-numero {
display: grid;
place-items: center;
width: 40px;
height: 40px;
border-radius: 50%;
background: var(--verde-texto);
color: #fff;
font-size: 17px;
font-weight: 800;
}
body.opositores .opos-pasos h3 {
margin: 16px 0 0;
font-size: 18px;
font-weight: 700;
}
body.opositores .opos-pasos p {
margin: 10px 0 0;
font-size: 15.5px;
line-height: 1.75;
color: var(--gris);
}
body.opositores .lan-dudas {
display: grid;
gap: 12px;
margin-top: 32px;
max-width: 780px;
}
body.opositores .lan-duda {
border-radius: 16px;
background: #fff;
border: 1px solid var(--linea);
overflow: hidden;
}
body.opositores .lan-duda summary {
padding: 20px 24px;
cursor: pointer;
font-size: 16.5px;
font-weight: 600;
list-style: none;
position: relative;
padding-right: 52px;
}
body.opositores .lan-duda summary::-webkit-details-marker { display: none; }
body.opositores .lan-duda summary::after {
content: '';
position: absolute;
right: 24px;
top: 50%;
width: 13px;
height: 13px;
margin-top: -6px;
background:
linear-gradient(var(--verde-texto), var(--verde-texto)) center / 100% 2px no-repeat,
linear-gradient(var(--verde-texto), var(--verde-texto)) center / 2px 100% no-repeat;
transition: transform 0.2s;
}
body.opositores .lan-duda[open] summary::after {
transform: rotate(45deg);
background: linear-gradient(var(--verde-texto), var(--verde-texto)) center / 100% 2px no-repeat;
}
body.opositores .lan-duda p {
margin: 0;
padding: 0 24px 22px;
font-size: 15.5px;
line-height: 1.8;
color: var(--gris);
}
@media (prefers-reduced-motion: reduce) {
body.opositores .lan-duda summary::after { transition: none; }
}
body.opositores .opos-contacto {
padding-block: 95px;
background: var(--verde-suave);
}
body.opositores .opos-contacto-dentro {
display: grid;
gap: 40px;
grid-template-columns: 1fr;
}
@media (min-width: 900px) {
body.opositores .opos-contacto-dentro {
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: start;
}
}
body.opositores .opos-firma {
margin: 22px 0 0;
font-size: 15px;
color: var(--gris);
}
body.opositores .opos-firma strong { color: var(--verde-texto); }
body.opositores .opos-gracias {
grid-column: 1 / -1;
text-align: center;
padding-block: 20px;
}
body.opositores .opos-gracias .opos-parrafo { margin-inline: auto; max-width: 52ch; }
body.opositores .lan-formulario {
display: grid;
gap: 16px;
padding: 30px;
border-radius: 20px;
background: #fff;
border: 1px solid var(--linea);
box-shadow: 0 18px 44px -30px rgb(45 58 40 / 0.4);
}
body.opositores .lan-error {
margin: 0;
padding: 12px 16px;
border-radius: 12px;
background: #fdecea;
border: 1px solid #f2b8b5;
color: #8c2f28;
font-size: 14.5px;
line-height: 1.6;
}
body.opositores .lan-formulario label { display: block; }
body.opositores .lan-formulario fieldset { border: 0; padding: 0; margin: 0; }
body.opositores .lan-formulario label > span,
body.opositores .lan-formulario legend {
display: block;
margin-bottom: 7px;
font-size: 14px;
font-weight: 600;
}
body.opositores .lan-formulario label > span em {
font-style: normal;
font-weight: 400;
color: var(--gris);
}
body.opositores .lan-formulario input[type="text"],
body.opositores .lan-formulario input[type="email"],
body.opositores .lan-formulario input[type="tel"],
body.opositores .lan-formulario textarea,
body.opositores .lan-formulario select {
width: 100%;
box-sizing: border-box;
padding: 13px 15px;
border-radius: 12px;
border: 1px solid var(--linea);
background: var(--crema);
color: var(--tinta);
font-family: inherit;
font-size: 16px;
}
body.opositores .lan-formulario textarea { resize: vertical; min-height: 96px; }
body.opositores .lan-ancho { grid-column: 1 / -1; }
body.opositores .lan-peticiones label {
display: flex;
align-items: flex-start;
gap: 10px;
padding: 13px 15px;
border-radius: 12px;
border: 1px solid var(--linea);
background: var(--crema);
cursor: pointer;
}
body.opositores .lan-peticiones label + label { margin-top: 8px; }
body.opositores .lan-peticiones input {
width: 18px;
height: 18px;
margin-top: 2px;
flex-shrink: 0;
accent-color: var(--verde-texto);
}
body.opositores .lan-peticiones label:has(input:checked) {
border-color: var(--verde-texto);
background: var(--verde-suave);
}
body.opositores .lan-peticiones span { font-size: 14.5px; line-height: 1.5; }
body.opositores .lan-enviar {
display: grid;
gap: 12px;
margin-top: 4px;
}
body.opositores .lan-boton {
justify-self: start;
text-wrap: balance;
text-align: center;
padding: 15px 32px;
border: 0;
border-radius: 999px;
background: var(--verde-texto);
color: #fff;
font-family: inherit;
font-size: 16px;
font-weight: 700;
cursor: pointer;
transition: background-color 0.15s;
}
body.opositores .lan-boton:hover { background: #3d5e20; }
body.opositores .lan-legal {
margin: 0;
font-size: 13px;
line-height: 1.65;
color: var(--gris);
}
body.opositores .lan-legal a { color: var(--verde-texto); }
body.opositores .opos-pie {
padding-block: 40px 52px;
background: var(--tinta);
color: rgb(255 255 255 / 0.75);
}
body.opositores .opos-pie p { margin: 0; font-size: 14px; }
body.opositores .opos-pie-legal {
margin-top: 14px !important;
font-size: 12.5px !important;
line-height: 1.75;
max-width: 78ch;
opacity: 0.85;
}
body.opositores {
--flota-fondo: var(--verde);
--flota-tinta: #fff;
--flota-fondo-hover: var(--verde-texto);
--flota-foco: var(--verde);
}
body.opositores {
--gracias-acento: var(--verde-texto);
--tes-fondo: #fff;
--tes-borde: var(--linea);
--tes-texto: var(--gris);
--tes-firma: var(--tinta);
--tes-rotulo: var(--verde-texto);
--tes-rotulo-opacidad: 1;
--tes-mas: var(--verde-texto);
}
