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

/* ---------- Barra superior ---------- */
.vv-barra-sup {
font-size:.85rem;
background-color:var(--vv-barra-sup-fondo, var(--vv-claro, #f4f5f6));
color:var(--vv-barra-sup-texto, var(--vv-texto, #222222));
}
.vv-barra-sup__caja {
display:flex;
flex-wrap:wrap;
align-items:center;
justify-content:space-between;
gap:8px 16px;
width:min(var(--vv-ancho, 1240px), calc(100% - 32px));
margin:0 auto;
padding:6px 0;
}
.vv-barra-sup__grupo {
display:flex;
flex-wrap:wrap;
align-items:center;
gap:8px;
margin:0;
padding:0;
list-style:none;
}
.vv-barra-sup__enlace {
display:inline-flex;
align-items:center;
gap:6px;
color:inherit;
text-decoration:none;
}
.vv-barra-sup__ico .vv-ico-svg {
width:1.1em;
height:1.1em;
}
.vv-barra-sup__redes {
display:flex;
gap:6px;
}

/* ---------- Submenús ---------- */
.vv-nav__item--padre {
position:relative;
display:flex;
align-items:center;
}
.vv-nav__abrir,
.vv-menu-movil__abrir {
display:inline-grid;
place-items:center;
width:28px;
height:28px;
margin:0;
padding:0;
border:0;
background:none;
color:inherit;
cursor:pointer;
}
.vv-nav__abrir::before,
.vv-menu-movil__abrir::before {
content:"";
width:7px;
height:7px;
border-right:2px solid currentColor;
border-bottom:2px solid currentColor;
transform:translateY(-2px) rotate(45deg);
transition:transform .2s ease;
}
.vv-nav__abrir[aria-expanded="true"]::before,
.vv-menu-movil__abrir[aria-expanded="true"]::before {
transform:translateY(2px) rotate(-135deg);
}
.vv-nav__sub {
position:absolute;
top:100%;
left:50%;
z-index:50;
min-width:240px;
padding:10px;
border-radius:var(--vv-radio, 12px);
background-color:var(--vv-fondo, #ffffff);
box-shadow:0 16px 40px rgba(0,0,0,.12);
opacity:0;
visibility:hidden;
transform:translate(-50%, 8px);
transition:opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
}
.vv-nav__item--padre:hover > .vv-nav__sub,
.vv-nav__item--padre:focus-within > .vv-nav__sub,
.vv-nav__abrir[aria-expanded="true"] + .vv-nav__sub {
opacity:1;
visibility:visible;
transform:translate(-50%, 0);
transition:opacity .2s ease, transform .2s ease, visibility 0s;
}
.vv-nav__abrir[aria-expanded="false"].is-cerrado + .vv-nav__sub {
opacity:0;
visibility:hidden;
}
.vv-nav__sub-lista,
.vv-menu-movil__sub-lista {
margin:0;
padding:0;
list-style:none;
}
.vv-nav__sub-enlace {
display:flex;
align-items:center;
gap:10px;
padding:10px 12px;
border-radius:calc(var(--vv-radio, 12px) - 4px);
color:var(--vv-texto, #222222);
text-decoration:none;
white-space:nowrap;
}
.vv-nav__sub-enlace:hover,
.vv-nav__sub-enlace:focus-visible {
background-color:var(--vv-claro, #f4f5f6);
}
.vv-nav__sub--mega {
width:min(960px, calc(100vw - 32px));
padding:16px;
}
.vv-nav__sub--mega .vv-nav__sub-lista {
display:grid;
grid-template-columns:repeat(var(--vv-mega-cols, 4), minmax(0, 1fr));
gap:12px;
}
.vv-nav__sub--mega .vv-nav__sub-enlace {
flex-direction:column;
align-items:flex-start;
white-space:normal;
}
.vv-nav__foto {
display:block;
width:100%;
aspect-ratio:4 / 3;
overflow:hidden;
border-radius:calc(var(--vv-radio, 12px) - 4px);
background-color:var(--vv-claro, #f4f5f6);
}
.vv-nav__foto img {
display:block;
width:100%;
height:100%;
object-fit:cover;
}
.vv-nav__desc {
font-size:.85em;
opacity:.75;
}
.vv-menu-movil__item--padre {
display:flex;
flex-wrap:wrap;
align-items:center;
}
.vv-menu-movil__item--padre > .vv-menu-movil__enlace {
flex:1;
}
.vv-menu-movil__sub {
display:none;
flex-basis:100%;
padding-left:16px;
}
.vv-menu-movil__abrir[aria-expanded="true"] + .vv-menu-movil__sub {
display:block;
}
.vv-menu-movil__foto,
.vv-menu-movil__desc {
display:none;
}
.vv-menu-movil__sub-enlace {
display:flex;
align-items:center;
gap:10px;
padding:10px 0;
color:inherit;
text-decoration:none;
}

/* ---------- Migas de las páginas ---------- */
.vv-migas-pagina__lista {
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:6px;
width:min(var(--vv-ancho, 1240px), calc(100% - 32px));
margin:0 auto;
padding:14px 0;
list-style:none;
font-size:.85rem;
}
.vv-migas-pagina__item + .vv-migas-pagina__item::before {
content:"›";
margin-right:6px;
opacity:.6;
}
.vv-migas-pagina a {
color:inherit;
}

/* ---------- Pie por columnas ---------- */
.vv-pie--columnas .vv-pie__caja {
display:grid;
grid-template-columns:repeat(var(--vv-pie-cols, 4), minmax(0, 1fr));
gap:32px;
}
.vv-pie__bloque {
margin:0 0 14px;
}
.vv-pie__bloque--separador {
border:0;
border-top:1px solid currentColor;
opacity:.2;
}
.vv-pie__tel-botones {
display:inline-flex;
gap:8px;
margin-left:10px;
vertical-align:middle;
}
.vv-pie__ico-btn {
display:inline-grid;
place-items:center;
width:34px;
height:34px;
border-radius:50%;
color:inherit;
}
.vv-pie__ico-btn .vv-ico-svg {
width:18px;
height:18px;
}
.vv-pie__arriba {
display:inline-grid;
place-items:center;
width:36px;
height:36px;
color:inherit;
}
.vv-pie__arriba::before {
content:"";
width:9px;
height:9px;
border-top:2px solid currentColor;
border-left:2px solid currentColor;
transform:translateY(2px) rotate(45deg);
}
@media (max-width: 1024px) {
.vv-pie--columnas .vv-pie__caja {
grid-template-columns:repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 640px) {
.vv-pie--columnas .vv-pie__caja {
grid-template-columns:1fr;
}
.vv-nav__sub--mega .vv-nav__sub-lista {
grid-template-columns:1fr;
}
}

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce) {
.vv-nav__sub,
.vv-nav__abrir::before,
.vv-menu-movil__abrir::before {
transition:none;
}
}

/* ---------- Vídeo ---------- */
.vv-video {
max-width:900px;
margin:32px auto 0;
}
.vv-video video {
display:block;
width:100%;
height:auto;
aspect-ratio:16/9;
object-fit:cover;
border-radius:var(--vv-radio, 14px);
background-color:#000000;
}
.vv-video figcaption {
margin:10px 0 0;
font-size:.85rem;
text-align:center;
opacity:.75;
}

/* ---------- Listado de búsqueda y archivos ---------- */
.vv-listado__caja {
width:min(860px, calc(100% - 32px));
margin:0 auto;
padding:clamp(32px, 5vw, 64px) 0;
}
.vv-listado__titulo {
margin:0 0 20px;
font-size:clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem);
line-height:1.15;
}
.vv-listado__buscar {
display:flex;
gap:8px;
margin:0 0 28px;
}
.vv-listado__buscar input {
flex:1;
min-width:0;
min-height:46px;
padding:10px 14px;
border:1px solid rgba(0,0,0,.18);
border-radius:var(--vv-radio, 8px);
font:inherit;
}
.vv-listado__buscar button {
min-height:46px;
padding:0 20px;
border:0;
border-radius:var(--vv-radio, 8px);
background-color:var(--vv-acento, #3d7f8f);
color:#ffffff;
font:inherit;
font-weight:700;
cursor:pointer;
}
.vv-listado__lista {
margin:0;
padding:0;
list-style:none;
}
.vv-listado__item {
margin:0;
border-top:1px solid rgba(0,0,0,.1);
}
.vv-listado__enlace {
display:flex;
flex-direction:column;
gap:6px;
padding:18px 0;
color:inherit;
text-decoration:none;
}
.vv-listado__nombre {
font-size:1.1rem;
font-weight:700;
line-height:1.3;
}
.vv-listado__enlace:hover .vv-listado__nombre {
color:var(--vv-acento, #3d7f8f);
}
.vv-listado__resumen {
font-size:.95rem;
line-height:1.6;
opacity:.8;
}
.vv-listado__paginas {
display:flex;
flex-wrap:wrap;
gap:6px;
margin:24px 0 0;
}
.vv-listado__paginas .page-numbers {
display:inline-flex;
align-items:center;
justify-content:center;
min-width:42px;
min-height:42px;
padding:0 12px;
border:1px solid rgba(0,0,0,.14);
border-radius:var(--vv-radio, 8px);
color:inherit;
text-decoration:none;
}
.vv-listado__paginas .current {
background-color:var(--vv-oscuro, #1f2a2e);
border-color:var(--vv-oscuro, #1f2a2e);
color:#ffffff;
}
