/* © Fernando Martínez Marín · VEOVIRTUAL® · veovirtual.com */

/* Opciones de accesibilidad */
body .vv-acc-flota {
--vv-acc-borde:clamp(14px,2vw,28px);
position:fixed;
right:12px;
bottom:calc(var(--vv-barra-alto,0px) + 14px + var(--vv-acc-cookies,0px) + var(--vv-leer-alto,0px));
z-index:99990;
display:inline-flex;
align-items:center;
justify-content:center;
gap:0;
box-sizing:border-box;
height:50px;
min-width:50px;
margin:0;
padding:0 10px;
border:3px solid #ffffff;
border-radius:999px;
background-color:var(--vv-oscuro);
color:#ffffff;
font-family:var(--vv-fuente-textos);
font-size:15px;
font-weight:800;
line-height:1;
box-shadow:0 14px 28px -12px rgba(0,0,0,.55);
cursor:pointer;
transition:gap .35s ease,background-color .2s ease;
}
body .vv-acc-flota .vv-acc-ico {
flex:none;
width:28px;
height:28px;
}
body .vv-acc-flota__txt {
max-width:0;
overflow:hidden;
white-space:nowrap;
transition:max-width .4s ease;
}
body .vv-acc-flota:hover,
body .vv-acc-flota:focus-visible,
html.vv-acc-abierto body .vv-acc-flota {
gap:8px;
background-color:var(--vv-acento);
}
body .vv-acc-flota:hover .vv-acc-flota__txt,
body .vv-acc-flota:focus-visible .vv-acc-flota__txt,
html.vv-acc-abierto body .vv-acc-flota__txt {
max-width:140px;
}
body .vv-acc-flota:focus-visible,
body .vv-acc-panel button:focus-visible,
body .vv-acc-panel a:focus-visible {
outline:3px solid var(--vv-foco);
outline-offset:3px;
}
body .vv-acc-panel {
position:fixed;
right:12px;
left:12px;
bottom:calc(var(--vv-barra-alto,0px) + 74px + var(--vv-acc-cookies,0px) + var(--vv-leer-alto,0px));
z-index:100001;
box-sizing:border-box;
width:auto;
max-height:calc(100vh - var(--vv-barra-alto,0px) - 100px - var(--vv-acc-cookies,0px) - var(--vv-leer-alto,0px));
overflow-y:auto;
padding:16px;
border:1px solid color-mix(in srgb,var(--vv-oscuro) 25%,#ffffff);
border-radius:20px;
background-color:#ffffff;
color:var(--vv-texto);
font-family:var(--vv-fuente-textos);
text-align:left;
box-shadow:0 30px 60px -20px rgba(0,0,0,.45);
}
body .vv-acc-panel[hidden] {
display:none !important;
}
body .vv-acc-panel *,
body .vv-acc-panel *::before,
body .vv-acc-panel *::after {
box-sizing:border-box;
}
body .vv-acc-panel__cab {
display:flex;
align-items:center;
justify-content:space-between;
gap:12px;
margin-bottom:16px;
}
body.vv .vv-acc-panel__t {
display:flex;
align-items:center;
gap:10px;
margin:0;
color:var(--vv-texto);
font-family:var(--vv-fuente-textos);
font-size:20px;
font-weight:800;
line-height:1.2;
letter-spacing:normal;
text-transform:none;
}
body .vv-acc-panel__t .vv-acc-ico {
width:24px;
height:24px;
}
body .vv-acc-panel__cerrar {
display:inline-flex;
align-items:center;
justify-content:center;
width:44px;
height:44px;
margin:0;
padding:0;
border:0;
border-radius:50%;
background-color:transparent;
color:var(--vv-texto);
cursor:pointer;
}
body .vv-acc-panel__cerrar:hover {
background-color:color-mix(in srgb,var(--vv-acento) 12%,#ffffff);
}
body .vv-acc-panel__cerrar .vv-acc-ico {
width:24px;
height:24px;
}
body.vv .vv-acc-panel__sub {
margin:0 0 8px;
color:color-mix(in srgb,var(--vv-texto) 80%,#ffffff);
font-size:15px;
font-weight:600;
line-height:1.3;
}
body .vv-acc-panel__tam {
display:grid;
grid-template-columns:repeat(3,1fr);
gap:8px;
margin-bottom:10px;
}
body .vv-acc-panel__opciones {
display:grid;
grid-template-columns:repeat(2,1fr);
gap:8px;
margin-bottom:10px;
}
body .vv-acc-panel__tam button,
body .vv-acc-panel__opciones button,
body .vv-acc-panel__ancho {
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:6px;
min-height:48px;
margin:0;
padding:10px 8px;
border:2px solid color-mix(in srgb,var(--vv-oscuro) 22%,#ffffff);
border-radius:12px;
background-color:#ffffff;
color:var(--vv-texto);
font-family:var(--vv-fuente-textos);
font-size:15px;
font-weight:700;
line-height:1.25;
letter-spacing:normal;
text-align:center;
text-transform:none;
cursor:pointer;
transition:background-color .2s ease,border-color .2s ease;
}
body .vv-acc-panel__tam button {
font-size:20px;
font-weight:800;
}
body .vv-acc-panel__opciones button {
min-height:78px;
}
body .vv-acc-panel__opciones .vv-acc-ico,
body .vv-acc-panel__ancho .vv-acc-ico {
width:24px;
height:24px;
}
body .vv-acc-panel__ancho {
flex-direction:row;
width:100%;
min-height:52px;
margin-bottom:8px;
font-size:16px;
font-weight:800;
}
body .vv-acc-panel__ancho[hidden] {
display:none;
}
body .vv-acc-panel__estado:not(:empty) {
padding:2px 8px;
border-radius:999px;
background-color:var(--vv-oscuro);
color:#ffffff;
font-size:13px;
}
body .vv-acc-panel__tam button:hover,
body .vv-acc-panel__opciones button:hover,
body .vv-acc-panel__ancho:hover {
border-color:var(--vv-acento);
background-color:color-mix(in srgb,var(--vv-acento) 6%,#ffffff);
}
body .vv-acc-panel button[aria-pressed="true"] {
border-color:var(--vv-oscuro);
background-color:color-mix(in srgb,var(--vv-acento) 12%,#ffffff);
box-shadow:inset 0 0 0 1px var(--vv-oscuro);
}
body .vv-acc-panel__reset {
display:block;
min-height:44px;
margin:0 auto;
padding:6px 12px;
border:0;
background-color:transparent;
color:var(--vv-acento);
font-family:var(--vv-fuente-textos);
font-size:15px;
font-weight:700;
text-decoration:underline;
text-underline-offset:3px;
cursor:pointer;
}
body.vv .vv-acc-panel__decl {
display:flex;
align-items:center;
justify-content:center;
min-height:44px;
margin:0 auto;
color:var(--vv-texto);
font-family:var(--vv-fuente-textos);
font-size:14px;
font-weight:400;
text-decoration:underline;
text-underline-offset:3px;
}
body.vv .vv-acc-panel__decl:hover {
color:var(--vv-acento);
}
@media only screen and (min-width:768px) {
body .vv-acc-flota {
right:auto;
left:var(--vv-acc-borde);
bottom:calc(var(--vv-acc-borde) + 3px + var(--vv-acc-cookies,0px));
height:56px;
min-width:56px;
padding:0 13px;
}
body .vv-acc-panel {
right:auto;
left:clamp(14px,2vw,28px);
bottom:calc(clamp(14px,2vw,28px) + 76px + var(--vv-acc-cookies,0px));
width:min(360px,calc(100vw - 28px));
max-height:calc(100vh - 120px - var(--vv-acc-cookies,0px));
padding:20px;
}
body .vv-acc-panel__opciones button {
min-height:86px;
}
}
@media (prefers-reduced-motion:reduce) {
body .vv-acc-flota,
body .vv-acc-flota__txt {
transition:none;
}
}
@media print {
body .vv-acc-flota,
body .vv-acc-panel,
body .vv-acc-barra {
display:none !important;
}
}

/* Sello de accesibilidad */
body .vv-sello-acc {
display:flex;
flex-wrap:wrap;
align-items:center;
gap:10px 16px;
margin-top:24px;
}
body .vv-sello-acc__logo {
display:block;
flex:none;
line-height:0;
border-radius:2px;
transition:transform .3s ease,box-shadow .3s ease;
}
body.vv .vv-sello-acc__logo img {
display:block;
width:132px;
max-width:none;
height:auto;
}
body .vv-sello-acc__logo:hover,
body .vv-sello-acc__logo:focus-visible {
box-shadow:0 0 0 3px rgba(255,255,255,.35);
transform:translateY(-2px);
}
body.vv .vv-pie .vv-sello-acc__decl {
color:inherit;
font-size:14px;
font-weight:700;
text-decoration:underline;
text-underline-offset:3px;
}

/* Subrayar enlaces */
html.vv-a11y-subrayar body.vv a,
html.vv-a11y-subrayar body.vv a * {
text-decoration:underline !important;
text-decoration-thickness:2px !important;
text-underline-offset:3px !important;
}

/* Letra más legible */
html.vv-a11y-legible body.vv,
html.vv-a11y-legible body.vv *:not(svg):not(svg *) {
font-family:Verdana,Tahoma,"Segoe UI",Arial,sans-serif !important;
font-style:normal !important;
letter-spacing:.02em !important;
word-spacing:.08em !important;
}
html.vv-a11y-legible body.vv p,
html.vv-a11y-legible body.vv li {
line-height:1.7 !important;
}

/* Detener animaciones */
html.vv-a11y-quieto body.vv *,
html.vv-a11y-quieto body.vv *::before,
html.vv-a11y-quieto body.vv *::after {
animation:none !important;
transition:none !important;
scroll-behavior:auto !important;
}

/* Alto contraste */
html.vv-a11y-contraste body.vv,
html.vv-a11y-contraste body.vv *:not(svg):not(svg *):not(img):not(video):not(picture) {
background-color:#000000 !important;
background-image:none !important;
color:#ffffff !important;
border-color:#ffffff !important;
text-shadow:none !important;
box-shadow:none !important;
}
html.vv-a11y-contraste body.vv *::before,
html.vv-a11y-contraste body.vv *::after {
background-image:none !important;
box-shadow:none !important;
}
html.vv-a11y-contraste body.vv a,
html.vv-a11y-contraste body.vv a *:not(svg):not(svg *) {
color:#ffe14d !important;
}
html.vv-a11y-contraste body.vv button,
html.vv-a11y-contraste body.vv .vv-boton,
html.vv-a11y-contraste body.vv input,
html.vv-a11y-contraste body.vv select,
html.vv-a11y-contraste body.vv textarea {
border:2px solid #ffffff !important;
}
html.vv-a11y-contraste body.vv .vv-acc-panel button[aria-pressed="true"],
html.vv-a11y-contraste body.vv .vv-acc-panel button[aria-pressed="true"] *:not(svg):not(svg *),
html.vv-a11y-contraste body.vv .vv-leer-barra button[aria-pressed="true"],
html.vv-a11y-contraste body.vv .vv-leer-btn.is-leyendo {
background-color:#ffe14d !important;
color:#000000 !important;
}
html.vv-a11y-contraste body.vv .vv-leer-actual {
outline-color:#ffe14d !important;
}
html.vv-a11y-contraste body.vv :focus-visible {
outline:3px solid #ffe14d !important;
outline-offset:3px !important;
}
html.vv-a11y-contraste body.vv img {
opacity:1 !important;
filter:none !important;
}

/* Barra de la versión accesible */
body .vv-acc-barra {
display:none;
}
html.vv-accesible body .vv-acc-barra {
display:block;
position:relative;
z-index:5;
border-bottom:3px solid #ffbf00;
background-color:#000000;
color:#ffffff;
}
html.vv-accesible body .vv-acc-barra__caja {
display:flex;
flex-wrap:wrap;
align-items:center;
justify-content:space-between;
gap:10px 24px;
width:min(1400px,calc(100% - 40px));
margin:0 auto;
padding:12px 0;
}
html.vv-accesible body.vv .vv-acc-barra__t {
margin:0;
color:#ffbf00 !important;
font-weight:800;
}
html.vv-accesible body .vv-acc-barra__salir {
min-height:44px;
padding:6px 14px;
border:2px solid #ffffff;
border-radius:10px;
background-color:#000000;
color:#ffffff !important;
font-family:var(--vv-fuente-textos);
font-weight:800;
text-decoration:underline;
cursor:pointer;
}
html.vv-accesible body .vv-acc-barra__salir:hover {
background-color:#ffffff;
color:#000000 !important;
}
@media only screen and (max-width:767px) {
html.vv-accesible body .vv-acc-barra__caja {
flex-direction:column;
align-items:stretch;
}
}

/* Opciones de accesibilidad en la versión accesible */
html.vv-accesible body .vv-acc-flota {
gap:8px;
border-color:#ffbf00;
background-color:#000000;
color:#ffffff;
font-size:16px !important;
}
html.vv-accesible body .vv-acc-flota__txt {
max-width:140px;
}
html.vv-accesible body .vv-acc-panel {
border:3px solid #000000;
color:#000000;
}
html.vv-accesible body.vv .vv-acc-panel__t,
html.vv-accesible body.vv .vv-acc-panel__sub,
html.vv-accesible body .vv-acc-panel__cerrar,
html.vv-accesible body .vv-acc-panel__tam button,
html.vv-accesible body .vv-acc-panel__opciones button,
html.vv-accesible body .vv-acc-panel__ancho,
html.vv-accesible body .vv-acc-panel__reset,
html.vv-accesible body.vv .vv-acc-panel__decl {
color:#000000 !important;
}
html.vv-accesible body .vv-acc-panel__tam button,
html.vv-accesible body .vv-acc-panel__opciones button,
html.vv-accesible body .vv-acc-panel__ancho {
border-color:#000000;
}
html.vv-accesible body .vv-acc-panel button[aria-pressed="true"] {
background-color:#000000;
color:#ffffff !important;
box-shadow:0 0 0 3px #ffbf00;
}
html.vv-accesible body .vv-acc-panel button[aria-pressed="true"] * {
color:#ffffff !important;
}
html.vv-accesible body .vv-acc-panel__estado:not(:empty),
html.vv-accesible body .vv-acc-panel button[aria-pressed="true"] .vv-acc-panel__estado {
background-color:#ffbf00;
color:#000000 !important;
}
html.vv-accesible body .vv-acc-panel button {
text-align:center !important;
line-height:1.25 !important;
}
html.vv-accesible body .vv-acc-panel__tam button {
font-size:20px !important;
}
html.vv-accesible body .vv-acc-panel__opciones button {
font-size:15px !important;
}
html.vv-accesible body .vv-acc-panel__ancho,
html.vv-accesible body .vv-acc-panel__reset {
font-size:16px !important;
}
html.vv-accesible body .vv-acc-panel__estado {
font-size:13px !important;
}
html.vv-accesible body.vv .vv-sello-acc__logo {
outline:2px solid #ffffff;
outline-offset:2px;
}

/* Versión accesible alineada */
html.vv-accesible body.vv .vv-contenido h1,
html.vv-accesible body.vv .vv-contenido h2,
html.vv-accesible body.vv .vv-contenido h3,
html.vv-accesible body.vv .vv-contenido h4,
html.vv-accesible body.vv .vv-contenido header,
html.vv-accesible body.vv .vvf-cabecera__caja,
html.vv-accesible body.vv .vvf-tarjeta__texto,
html.vv-accesible body.vv .vveq-persona,
html.vv-accesible body.vv .vveq-cab {
text-align:left !important;
}
html.vv-accesible body.vv .vv-contenido header,
html.vv-accesible body.vv .vv-contenido [class*="__cab"],
html.vv-accesible body.vv .vv-contenido [class*="__caja"] {
margin-left:0 !important;
margin-right:auto !important;
}
html.vv-accesible body.vv .vv-contenido [class*="botones"],
html.vv-accesible body.vv .vv-contenido .wp-block-buttons {
justify-content:flex-start !important;
}
html.vv-accesible body.vv .vvf-tarjeta__meta,
html.vv-accesible body.vv .vvf-tarjeta__mas,
html.vv-accesible body.vv .vveq-enlaces,
html.vv-accesible body.vv .vveq-texto,
html.vv-accesible body.vv .vveq-persona {
align-items:flex-start !important;
justify-content:flex-start !important;
}
html.vv-accesible body.vv .vvr-carrusel__pista {
gap:24px !important;
transform:none !important;
grid-auto-flow:row !important;
grid-template-columns:repeat(auto-fill,minmax(260px,1fr)) !important;
grid-auto-columns:auto !important;
overflow:visible !important;
}
html.vv-accesible body.vv .vvr-carrusel__item.is-clon,
html.vv-accesible body.vv .vvr-carrusel__flecha,
html.vv-accesible body.vv .vvr-carrusel__puntos {
display:none !important;
}
html.vv-accesible body.vv .vv-pie__legales {
display:flex !important;
flex-wrap:wrap;
align-items:center !important;
gap:4px 18px !important;
}
html.vv-accesible body.vv .vv-pie__legales li {
display:flex;
align-items:center;
margin:0 !important;
}
html.vv-accesible body.vv .vv-pie__legales a,
html.vv-accesible body.vv .vv-pie__boton {
display:inline-flex !important;
align-items:center;
min-height:44px;
margin:0 !important;
padding:0 !important;
border:0 !important;
background:none !important;
font:inherit !important;
font-size:max(1rem,16px) !important;
line-height:1.2 !important;
vertical-align:middle;
text-decoration:underline !important;
text-underline-offset:3px;
cursor:pointer;
}
html.vv-accesible body.vv .vv-pie__legal-caja {
align-items:center !important;
}
html.vv-accesible body.vv .vv-pie__copy,
html.vv-accesible body.vv .vv-pie__credito {
display:flex;
align-items:center;
gap:.35em;
min-height:44px;
margin:0 !important;
opacity:1 !important;
}
html.vv-accesible body.vv [hidden] {
display:none !important;
}
@media only screen and (max-width:767px) {
html.vv-accesible body.vv .vvf-rejilla {
grid-template-columns:1fr !important;
}
}
