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

/* Base */
:root {
--vv-ancho:1240px;
--vv-fondo:#ffffff;
--vv-texto:#222222;
--vv-acento:#555555;
--vv-oscuro:#111111;
--vv-claro:#ffffff;
--vv-foco:#1a73e8;
--vv-arriba-alto:80px;
--vv-barra-alto:0px;
--vv-cab-fondo:#ffffff;
--vv-cab-texto:#111111;
--vv-pie-fondo:#111111;
--vv-pie-texto:rgba(255,255,255,.7);
--vv-barra-fondo:rgba(17,17,17,.96);
--vv-radio:14px;
--vv-fuente-titulos:Georgia,serif;
--vv-fuente-textos:system-ui,-apple-system,"Segoe UI",sans-serif;
}
html {
scroll-padding-top:calc(var(--vv-arriba-alto) + 12px);
-webkit-text-size-adjust:100%;
}
body.vv {
margin:0;
background:var(--vv-fondo);
color:var(--vv-texto);
font-family:var(--vv-fuente-textos);
overflow-x:clip;
}
body.vv *,
body.vv *::before,
body.vv *::after {
box-sizing:border-box;
}
body .vv-contenido img,
body .vv-pie img {
max-width:100%;
height:auto;
}
body.vv :focus-visible {
outline:3px solid var(--vv-foco);
outline-offset:3px;
}
@media (prefers-reduced-motion:no-preference) {
html {
scroll-behavior:smooth;
}
}
body .vv-oculto {
position:absolute !important;
width:1px;
height:1px;
padding:0;
margin:-1px;
overflow:hidden;
clip:rect(0,0,0,0);
white-space:nowrap;
border:0;
}
body .vv-saltar {
position:fixed;
top:10px;
left:10px;
z-index:100000;
padding:12px 18px;
border:0;
border-radius:8px;
background:var(--vv-oscuro);
color:var(--vv-claro);
font:600 15px/1.2 var(--vv-fuente-textos);
text-decoration:none;
cursor:pointer;
transform:translateY(-200%);
}
body .vv-saltar:focus,
body .vv-saltar:focus-visible {
transform:none;
}
body .vv-saltar--acc {
left:auto;
right:10px;
}
body .vv-contenido {
display:block;
outline:none;
}
body .vv-contenido:focus {
outline:none;
}

/* Cabecera */
body .vv-arriba {
position:fixed;
top:0;
left:0;
right:0;
z-index:9000;
}
body.admin-bar .vv-arriba {
top:32px;
}
body .vv-arriba-espacio {
height:var(--vv-arriba-alto);
}
body .vv-cabecera {
background:var(--vv-cab-fondo);
color:var(--vv-cab-texto);
transition:box-shadow .3s ease,background-color .3s ease;
}
html.vv-scroll body .vv-cabecera {
box-shadow:0 6px 24px rgba(0,0,0,.08);
}
body .vv-cabecera__caja {
display:flex;
align-items:center;
justify-content:space-between;
gap:24px;
max-width:var(--vv-ancho);
margin:0 auto;
padding:14px 3%;
}
body .vv-cabecera__marca {
display:flex;
align-items:center;
flex-shrink:0;
color:inherit;
text-decoration:none;
}
body .vv-cabecera__logo {
display:block;
width:auto;
height:60px;
transition:height .3s ease;
}
html.vv-scroll body .vv-cabecera__logo {
height:50px;
}
body .vv-cabecera__logo--texto {
font:600 1.4rem/1 var(--vv-fuente-titulos);
}
body .vv-nav__lista {
display:flex;
align-items:center;
gap:6px;
margin:0;
padding:0;
list-style:none;
}
body .vv-nav__item {
margin:0;
}
body .vv-nav__enlace {
display:inline-flex;
align-items:center;
gap:7px;
min-height:44px;
padding:8px 12px;
color:inherit;
text-decoration:none;
}
body .vv-nav__ico {
display:inline-flex;
}
body .vv-nav__ico svg,
body .vv-menu-movil__ico svg,
body .vv-barra__ico svg {
display:block;
width:18px;
height:18px;
}
body .vv-cabecera__menu {
display:none;
align-items:center;
gap:10px;
min-height:44px;
padding:8px 18px;
border:1px solid currentColor;
border-radius:999px;
background:transparent;
color:inherit;
font:600 14px/1 var(--vv-fuente-textos);
cursor:pointer;
}
body .vv-cabecera__hamb {
position:relative;
display:block;
width:22px;
height:14px;
}
body .vv-cabecera__hamb::before,
body .vv-cabecera__hamb::after,
body .vv-cabecera__hamb span {
content:"";
position:absolute;
left:0;
right:0;
height:2px;
border-radius:2px;
background:currentColor;
}
body .vv-cabecera__hamb::before {
top:0;
}
body .vv-cabecera__hamb span {
top:6px;
}
body .vv-cabecera__hamb::after {
bottom:0;
}
@media only screen and (max-width:1100px) {
body .vv-nav {
display:none;
}
body .vv-cabecera__menu {
display:inline-flex;
}
}
@media only screen and (max-width:767px) {
body.admin-bar .vv-arriba {
top:0;
}
body .vv-cabecera__caja {
padding:10px 5%;
}
body .vv-cabecera__logo,
html.vv-scroll body .vv-cabecera__logo {
height:44px;
}
body .vv-cabecera__menu {
padding:0;
width:48px;
height:48px;
justify-content:center;
border:0;
}
body .vv-cabecera__menu-txt {
position:absolute;
width:1px;
height:1px;
overflow:hidden;
clip:rect(0,0,0,0);
}
}

/* Menú móvil */
body .vv-menu-movil {
position:fixed;
inset:0;
z-index:10050;
}
body .vv-menu-movil[hidden] {
display:none;
}
body .vv-menu-movil__fondo {
position:absolute;
inset:0;
background:rgba(0,0,0,.55);
opacity:0;
transition:opacity .3s ease;
}
body .vv-menu-movil__panel {
position:absolute;
top:0;
right:0;
bottom:0;
display:flex;
flex-direction:column;
width:min(88vw,400px);
overflow-y:auto;
overscroll-behavior:contain;
background:var(--vv-oscuro);
color:var(--vv-claro);
transform:translateX(100%);
transition:transform .35s cubic-bezier(.32,.72,.35,1);
}
body .vv-menu-movil.is-abierto .vv-menu-movil__fondo {
opacity:1;
}
body .vv-menu-movil.is-abierto .vv-menu-movil__panel {
transform:none;
}
body .vv-menu-movil__cab {
display:flex;
align-items:center;
justify-content:space-between;
gap:16px;
padding:22px 24px;
}
body .vv-menu-movil__logo {
display:block;
width:auto;
height:52px;
}
body .vv-menu-movil__cerrar {
display:flex;
align-items:center;
justify-content:center;
width:44px;
height:44px;
padding:0;
border:1px solid rgba(255,255,255,.25);
border-radius:50%;
background:transparent;
color:inherit;
font-size:26px;
line-height:1;
cursor:pointer;
}
body .vv-menu-movil__lista {
margin:0;
padding:8px 24px;
list-style:none;
}
body .vv-menu-movil__enlace {
display:flex;
align-items:center;
gap:14px;
min-height:52px;
padding:12px 0;
border-bottom:1px solid rgba(255,255,255,.1);
color:inherit;
text-decoration:none;
}
body .vv-menu-movil__pie {
margin-top:auto;
padding:24px;
}
html.vv-menu-abierto,
html.vv-menu-abierto body {
overflow:hidden;
}

/* Barra inferior */
body .vv-barra {
position:fixed;
left:0;
right:0;
bottom:0;
z-index:8900;
padding-bottom:env(safe-area-inset-bottom);
background:var(--vv-barra-fondo);
color:var(--vv-claro);
}
body .vv-barra__caja {
display:flex;
align-items:center;
max-width:var(--vv-ancho);
margin:0 auto;
padding:8px 3%;
}
body .vv-barra__grupo {
display:flex;
align-items:center;
gap:12px;
flex:1 1 auto;
min-width:0;
}
body .vv-barra__grupo:last-child {
justify-content:flex-end;
}
body .vv-barra__botones {
display:flex;
align-items:center;
gap:8px;
}
body .vv-barra__btn {
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
min-height:40px;
padding:8px 14px;
border-radius:999px;
color:inherit;
text-decoration:none;
white-space:nowrap;
}
body .vv-barra__etiqueta-movil {
display:none;
}
body .vv-barra__separador {
flex:0 0 1px;
align-self:stretch;
margin:4px 20px;
background:rgba(255,255,255,.2);
}
@media only screen and (max-width:767px) {
body .vv-barra__caja {
padding:6px 3%;
}
body .vv-barra__etiqueta {
display:none;
}
body .vv-barra__etiqueta-movil {
display:block;
}
body .vv-barra__txt {
position:absolute;
width:1px;
height:1px;
overflow:hidden;
clip:rect(0,0,0,0);
white-space:nowrap;
}
body .vv-barra__btn {
width:44px;
height:44px;
min-height:44px;
padding:0;
}
body .vv-barra__separador {
margin:4px 8px;
}
body .vv-barra__grupo {
gap:6px;
}
body .vv-barra__botones {
gap:4px;
}
}

/* Pie */
body .vv-pie {
padding-bottom:var(--vv-barra-alto);
background:var(--vv-pie-fondo);
color:var(--vv-pie-texto);
}
body .vv-pie__caja {
display:grid;
grid-template-columns:repeat(3,minmax(0,1fr));
gap:48px;
max-width:var(--vv-ancho);
margin:0 auto;
padding:72px 3% 56px;
}
body .vv-pie a {
color:inherit;
}
body .vv-pie__legal-caja {
display:flex;
flex-wrap:wrap;
align-items:center;
justify-content:space-between;
gap:10px 24px;
max-width:var(--vv-ancho);
margin:0 auto;
padding:20px 3%;
}
body .vv-pie__legales {
display:flex;
flex-wrap:wrap;
gap:6px 18px;
margin:0;
padding:0;
list-style:none;
}
body .vv-pie__boton {
padding:0;
border:0;
background:none;
color:inherit;
font:inherit;
text-decoration:underline;
text-underline-offset:3px;
cursor:pointer;
}
body .vv-pie__dato {
display:flex;
align-items:flex-start;
gap:12px;
margin:0 0 14px;
line-height:1.5;
}
body .vv-pie__ico {
flex:none;
width:1.2em;
height:1.2em;
margin-top:.15em;
}
body .vv-pie__dato a {
overflow-wrap:anywhere;
}
body .vv-horario--compacto,
body .vv-pie .vv-pie__dato .vv-horario--compacto {
display:flex;
flex-direction:column;
align-items:flex-start;
gap:2px;
text-align:left;
}
:where(.vv-contenido,.vv-pie) a {
color:inherit;
text-decoration-color:var(--vv-acento,currentColor);
text-underline-offset:3px;
}
body .vv-pie__copy,
body .vv-pie__credito {
margin:0;
}
@media only screen and (max-width:959px) {
body .vv-pie__caja {
grid-template-columns:1fr;
gap:40px;
padding:56px 6% 40px;
text-align:center;
}
body .vv-pie__dato {
justify-content:center;
}
body .vv-pie__legal-caja {
flex-direction:column;
text-align:center;
}
body .vv-pie__legales {
justify-content:center;
}
}

/* Mapa */
body .vv-mapa {
position:relative;
width:100%;
height:var(--vv-mapa-alto,460px);
overflow:hidden;
border-radius:var(--vv-radio);
background:#e9e6e1;
}
body .vv-mapa iframe {
display:block;
width:100%;
height:100%;
border:0;
}
body .vv-mapa iframe[data-vv-src] {
visibility:hidden;
}
body .vv-mapa__aviso {
position:absolute;
inset:0;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:6px;
padding:24px;
text-align:center;
}
body .vv-mapa.is-cargado .vv-mapa__aviso {
display:none;
}
body .vv-mapa__botones {
display:flex;
flex-wrap:wrap;
align-items:center;
justify-content:center;
gap:10px 18px;
}
body .vv-mapa__btn {
min-height:44px;
padding:10px 22px;
border:0;
border-radius:999px;
background:var(--vv-oscuro);
color:var(--vv-claro);
font:600 14px/1.2 var(--vv-fuente-textos);
cursor:pointer;
}

/* Cookies */
body .vv-cookies {
position:fixed;
left:0;
right:0;
bottom:var(--vv-barra-alto);
z-index:9500;
padding:18px 3%;
background:#ffffff;
color:#222222;
box-shadow:0 -10px 40px rgba(0,0,0,.18);
visibility:hidden;
transform:translateY(calc(100% + var(--vv-barra-alto, 0px) + 40px));
transition:transform .35s ease,visibility 0s linear .35s;
}
body .vv-cookies.is-visible {
visibility:visible;
transform:none;
transition:transform .35s ease,visibility 0s linear 0s;
}
body .vv-cookies__caja {
display:flex;
flex-wrap:wrap;
align-items:center;
gap:14px 28px;
max-width:var(--vv-ancho);
margin:0 auto;
}
body .vv-cookies__texto {
flex:1 1 420px;
margin:0;
font-size:14px;
line-height:1.55;
}
body .vv-cookies__titulo {
display:block;
margin-bottom:2px;
font-size:15px;
font-weight:700;
}
body .vv-cookies__botones {
display:flex;
flex-wrap:wrap;
gap:10px;
}
body .vv-cookies__btn {
min-width:150px;
min-height:44px;
padding:10px 20px;
border:2px solid var(--vv-oscuro);
border-radius:999px;
background:var(--vv-oscuro);
color:var(--vv-claro);
font:700 14px/1.2 var(--vv-fuente-textos);
cursor:pointer;
}
body .vv-dialogo {
position:fixed;
inset:0;
z-index:10100;
display:flex;
align-items:center;
justify-content:center;
padding:16px;
}
body .vv-dialogo[hidden] {
display:none;
}
body .vv-dialogo__fondo {
position:absolute;
inset:0;
background:rgba(0,0,0,.55);
}
body .vv-dialogo__caja {
position:relative;
width:min(620px,100%);
max-height:calc(100dvh - 32px);
overflow-y:auto;
padding:28px;
border-radius:var(--vv-radio);
background:#ffffff;
color:#222222;
}
body .vv-dialogo__titulo {
margin:0 0 8px;
font-size:22px;
}
body .vv-dialogo__cerrar {
position:absolute;
top:14px;
right:14px;
width:44px;
height:44px;
border:0;
border-radius:50%;
background:#f1f1f1;
font-size:24px;
cursor:pointer;
}
body .vv-cat {
padding:14px 0;
border-top:1px solid #e6e6e6;
}
body .vv-cat__cab {
display:flex;
align-items:center;
justify-content:space-between;
gap:16px;
}
body .vv-cat__nombre {
font-weight:700;
}
body .vv-cat__texto {
margin:6px 0 0;
font-size:14px;
line-height:1.5;
}
body .vv-interruptor {
position:relative;
flex-shrink:0;
width:52px;
height:30px;
}
body .vv-interruptor input {
position:absolute;
inset:0;
width:100%;
height:100%;
margin:0;
opacity:0;
cursor:pointer;
}
body .vv-interruptor span {
position:absolute;
inset:0;
border-radius:30px;
background:#bdbdbd;
transition:background-color .2s ease;
pointer-events:none;
}
body .vv-interruptor span::after {
content:"";
position:absolute;
top:3px;
left:3px;
width:24px;
height:24px;
border-radius:50%;
background:#ffffff;
transition:transform .2s ease;
}
body .vv-interruptor input:checked + span {
background:var(--vv-oscuro);
}
body .vv-interruptor input:checked + span::after {
transform:translateX(22px);
}
body .vv-interruptor input:disabled + span {
opacity:.6;
}
body .vv-interruptor input:focus-visible + span {
outline:3px solid var(--vv-foco);
outline-offset:3px;
}
body .vv-dialogo__botones {
display:flex;
flex-wrap:wrap;
gap:10px;
margin-top:18px;
}
body .vv-cookies-lista__tabla {
overflow-x:auto;
}
body .vv-cookies-lista table {
width:100%;
border-collapse:collapse;
font-size:14px;
}
body .vv-cookies-lista th,
body .vv-cookies-lista td {
padding:8px 10px;
border-bottom:1px solid rgba(0,0,0,.12);
text-align:left;
vertical-align:top;
}
@media only screen and (max-width:767px) {
body .vv-cookies__btn {
flex:1 1 100%;
}
body .vv-cookies-lista thead {
display:none;
}
body .vv-cookies-lista tr,
body .vv-cookies-lista td {
display:block;
}
body .vv-cookies-lista tr {
padding:8px 0;
border-bottom:1px solid rgba(0,0,0,.12);
}
body .vv-cookies-lista td {
border:0;
padding:3px 0;
}
body .vv-cookies-lista td::before {
content:attr(data-l) ": ";
font-weight:700;
}
}

/* 404 y título de página */
body .vv-404 {
padding:120px 6%;
text-align:center;
}
body .vv-404__caja {
max-width:640px;
margin:0 auto;
}
body .vv-titulo-pagina {
max-width:var(--vv-ancho);
margin:0 auto;
padding:56px 3% 8px;
}
