/* © 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;
}

/* © Fernando Martínez Marín · VEOVIRTUAL® · veovirtual.com · Hernández Gámez */

/* ---------- Fuentes ---------- */
@font-face {
	font-family: "Barlow Condensed";
	src: url("https://recursos.veovirtual.net/c/hernandezgamez/fuentes/barlow-condensed-latin-600-normal.woff2") format("woff2");
	font-weight: 600;
	font-display: swap;
}

@font-face {
	font-family: "Barlow Condensed";
	src: url("https://recursos.veovirtual.net/c/hernandezgamez/fuentes/barlow-condensed-latin-700-normal.woff2") format("woff2");
	font-weight: 700;
	font-display: swap;
}

@font-face {
	font-family: "Barlow Condensed";
	src: url("https://recursos.veovirtual.net/c/hernandezgamez/fuentes/barlow-condensed-latin-800-normal.woff2") format("woff2");
	font-weight: 800;
	font-display: swap;
}

@font-face {
	font-family: "Figtree";
	src: url("https://recursos.veovirtual.net/c/hernandezgamez/fuentes/figtree-latin-400-normal.woff2") format("woff2");
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: "Figtree";
	src: url("https://recursos.veovirtual.net/c/hernandezgamez/fuentes/figtree-latin-500-normal.woff2") format("woff2");
	font-weight: 500;
	font-display: swap;
}

@font-face {
	font-family: "Figtree";
	src: url("https://recursos.veovirtual.net/c/hernandezgamez/fuentes/figtree-latin-600-normal.woff2") format("woff2");
	font-weight: 600;
	font-display: swap;
}

@font-face {
	font-family: "Figtree";
	src: url("https://recursos.veovirtual.net/c/hernandezgamez/fuentes/figtree-latin-700-normal.woff2") format("woff2");
	font-weight: 700 900;
	font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
	--vv-ancho: 1240px;
	--vv-fondo: #ffffff;
	--vv-texto: #1d2433;
	--vv-acento: #b4432f;
	--vv-oscuro: #1f2d4d;
	--vv-claro: #f3f1ed;
	--vv-foco: #1f6feb;
	--vv-cab-fondo: #ffffff;
	--vv-cab-texto: #1f2d4d;
	--vv-pie-fondo: #24221f;
	--vv-pie-texto: rgba(255, 255, 255, .82);
	--vv-barra-fondo: rgba(21, 31, 54, .97);
	--vv-radio: 16px;
	--vv-fuente-titulos: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;
	--vv-fuente-textos: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
	--hg-azul: #1f2d4d;
	--hg-azul-2: #3a4d74;
	--hg-azul-3: #151f36;
	--hg-rojo: #b4432f;
	--hg-rojo-2: #cf7a52;
	--hg-hormigon: #f3f1ed;
	--hg-arena: #e8e1d5;
	--hg-linea: rgba(31, 45, 77, .12);
	--hg-sombra: 0 22px 46px -28px rgba(21, 31, 54, .55);
	--hg-sombra-suave: 0 12px 30px -22px rgba(21, 31, 54, .45);
	--hg-sep: clamp(64px, 9vw, 120px);
	--hg-curva: cubic-bezier(.2, .7, .2, 1);
	--hg-plano: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2240%22 height=%2240%22%3E%3Cpath d=%22M40 0H0v40%22 fill=%22none%22 stroke=%22%23ffffff%22 stroke-opacity=%22.07%22/%3E%3C/svg%3E");
	--hg-azulejo: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2256%22 height=%2256%22%3E%3Cg fill=%22none%22 stroke=%22%230b2158%22 stroke-opacity=%22.07%22%3E%3Cpath d=%22M0 .5h56M.5 0v56%22/%3E%3Cpath d=%22M28 10l18 18-18 18-18-18z%22/%3E%3C/g%3E%3C/svg%3E");
}

/* ---------- Base ---------- */
body.hg {
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

body.hg h1,
body.hg h2,
body.hg h3,
body.hg h4 {
	font-family: var(--vv-fuente-titulos);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: .005em;
	color: var(--hg-azul);
	text-wrap: balance;
}

body.hg p,
body.hg li {
	text-wrap: pretty;
}

body .hg-caja {
	width: min(var(--vv-ancho), calc(100% - 32px));
	margin-inline: auto;
}

body .vv-contenido > .wp-block-group,
body .vv-contenido > .hg-bloque {
	margin-block: 0;
}

body .hg-bloque:empty,
body .hg-bloque:has(> .hg-caja:empty),
body .hg-bloque--promos:not(:has(.vvpr-bloque)) {
	display: none;
}

body .hg-sec__titulo,
body .hg-phero__ico--azul + h1,
body .vvsd-tarjeta__titulo {
	font-family: var(--vv-fuente-titulos);
	font-weight: 700;
}

body .hg-phero__ico--azul {
	background: linear-gradient(145deg, var(--hg-azul-2), var(--hg-azul));
}

body .hg-subs--oscuras .hg-sub__ico {
	background: linear-gradient(145deg, var(--hg-rojo-2), var(--hg-rojo));
}

body .vv-contenido :where(p, li) a:not([class]) {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: var(--hg-rojo);
	text-decoration-thickness: 1.5px;
	text-underline-offset: 3px;
}

body .vv-titulo-pagina {
	font-size: clamp(2.2rem, 5vw, 3.6rem);
	text-transform: uppercase;
}

/* ---------- Botones ---------- */
body .hg-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 12px 26px;
	border-radius: 999px;
	font-family: var(--vv-fuente-textos);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: .01em;
	text-decoration: none !important;
	white-space: nowrap;
	overflow: hidden;
	isolation: isolate;
	transition: color .3s ease, box-shadow .3s ease, transform .3s var(--hg-curva);
}

body .hg-btn::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	transform: translateY(101%);
	transition: transform .35s var(--hg-curva);
}

body .hg-btn:hover::before,
body .hg-btn:focus-visible::before {
	transform: none;
}

body .hg-btn svg {
	width: 20px;
	height: 20px;
	flex: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform .3s ease;
}

body .hg-btn:hover svg {
	transform: translateX(3px);
}

body .hg-btn--rojo {
	background: var(--hg-rojo);
	color: #fff;
	box-shadow: 0 14px 28px -14px rgba(180, 67, 47, .8);
}

body .hg-btn--rojo::before {
	background: var(--hg-azul);
}

body .hg-btn--rojo:hover,
body .hg-btn--rojo:focus-visible {
	color: #fff;
}

body .hg-btn--azul {
	background: var(--hg-azul);
	color: #fff;
}

body .hg-btn--azul::before {
	background: var(--hg-rojo);
}

body .hg-btn--azul:hover,
body .hg-btn--azul:focus-visible {
	color: #fff;
}

body .hg-btn--linea {
	background: transparent;
	color: var(--hg-azul);
	box-shadow: inset 0 0 0 2px var(--hg-azul);
}

body .hg-btn--linea::before {
	background: var(--hg-azul);
}

body .hg-btn--linea:hover,
body .hg-btn--linea:focus-visible {
	color: #fff;
}

body .hg-btn--blanco {
	background: transparent;
	color: #fff;
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .7);
}

body .hg-btn--blanco::before {
	background: #fff;
}

body .hg-btn--blanco:hover,
body .hg-btn--blanco:focus-visible {
	color: var(--hg-azul);
}

body .hg-botones {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
}

/* ---------- Cabeceras de sección ---------- */
body .hg-cab {
	max-width: 780px;
	margin: 0 auto clamp(30px, 4vw, 52px);
	text-align: center;
}

body .hg-cab--izq {
	margin-left: 0;
	text-align: left;
}

body .hg-cab__ante {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--hg-rojo);
}

body .hg-cab__ante::after {
	content: "";
	width: 46px;
	height: 8px;
	background:
		linear-gradient(var(--hg-rojo) 0 0) 0 0 / 8px 8px no-repeat,
		linear-gradient(var(--hg-azul) 0 0) 19px 0 / 8px 8px no-repeat,
		linear-gradient(var(--hg-rojo) 0 0) 38px 0 / 8px 8px no-repeat;
}

body .hg-cab--izq .hg-cab__ante {
	align-items: flex-start;
}

body .hg-cab__titulo {
	margin: 0;
	font-size: clamp(2.2rem, 4.6vw, 3.6rem);
	text-transform: uppercase;
}

body .hg-cab__titulo em {
	font-style: normal;
	color: var(--hg-rojo);
}

body .hg-cab__texto {
	margin: 16px 0 0;
	font-size: 1.08rem;
	color: #3d4659;
}

body .hg-cab--blanca .hg-cab__titulo,
body .hg-cab--blanca .hg-cab__texto {
	color: #fff;
}

body .hg-cab--blanca .hg-cab__ante {
	color: #e3b3a5;
}

/* ---------- Cabecera ---------- */
body.hg .vv-cabecera {
	border-bottom: 1px solid var(--hg-linea);
}

body.hg .vv-cabecera__caja {
	align-items: flex-end;
	padding-top: 12px;
	padding-bottom: 12px;
}

body.hg .vv-cabecera__logo {
	height: 104px;
}

html.vv-scroll body.hg .vv-cabecera__logo {
	height: 70px;
}

body.hg .vv-nav {
	padding-bottom: 6px;
}

body.hg .vv-nav__lista {
	gap: 2px;
}

body.hg .vv-nav__item {
	position: relative;
}

body.hg .vv-nav__enlace {
	position: relative;
	padding: 8px 11px;
	font-size: .92rem;
	font-weight: 700;
	letter-spacing: .01em;
	color: var(--hg-azul);
}

body.hg .vv-nav__enlace::after {
	content: "";
	position: absolute;
	left: 11px;
	right: 11px;
	bottom: 2px;
	height: 3px;
	border-radius: 3px;
	background: var(--hg-rojo);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .3s var(--hg-curva);
}

body.hg .vv-nav__enlace:hover::after,
body.hg .vv-nav__item.is-actual .vv-nav__enlace::after,
body.hg .vv-nav__item.is-abierto .vv-nav__enlace::after {
	transform: scaleX(1);
}

body.hg .vv-nav__ico svg {
	width: 19px;
	height: 19px;
	color: var(--hg-rojo);
}

body.hg .vv-nav__item--destacado .vv-nav__enlace {
	margin-left: 8px;
	padding: 10px 20px;
	border-radius: 999px;
	background: var(--hg-rojo);
	color: #fff;
	box-shadow: 0 12px 24px -14px rgba(180, 67, 47, .9);
	transition: background-color .3s ease;
}

body.hg .vv-nav__item--destacado .vv-nav__enlace::after {
	display: none;
}

body.hg .vv-nav__item--destacado .vv-nav__ico svg {
	color: #fff;
}

body.hg .vv-nav__item--destacado .vv-nav__enlace:hover,
body.hg .vv-nav__item--destacado .vv-nav__enlace:focus-visible {
	background: var(--hg-azul);
	color: #fff;
}

body.hg .hg-nav__flecha {
	width: 14px;
	height: 14px;
	margin-left: -2px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.4;
	transition: transform .3s ease;
}

body.hg .vv-nav__item.is-abierto .hg-nav__flecha {
	transform: rotate(180deg);
}

body.hg .vv-cabecera__menu {
	border-color: rgba(31, 45, 77, .3);
	color: var(--hg-azul);
}

@media only screen and (max-width: 1240px) {
	body.hg .vv-nav__enlace {
		padding: 8px 8px;
		font-size: .86rem;
	}

	body.hg .vv-nav__ico {
		display: none;
	}
}

@media only screen and (max-width: 1100px) {
	body.hg .vv-cabecera__caja {
		align-items: center;
	}

	body.hg .vv-cabecera__logo,
	html.vv-scroll body.hg .vv-cabecera__logo {
		height: 76px;
	}

	body.hg .vv-cabecera__menu {
		background: var(--hg-azul);
		border-color: var(--hg-azul);
		color: #fff;
	}
}

@media only screen and (max-width: 767px) {
	body.hg .vv-cabecera__logo,
	html.vv-scroll body.hg .vv-cabecera__logo {
		height: 64px;
	}

	body.hg .vv-cabecera__caja {
		padding: 8px 16px;
	}

	body.hg .vv-cabecera__menu {
		border-radius: 14px;
	}
}

/* ---------- Megamenú ---------- */
body .hg-mega {
	position: absolute;
	top: calc(100% + 14px);
	left: 50%;
	z-index: 30;
	width: min(980px, calc(100vw - 40px));
	padding: 26px;
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 40px 80px -30px rgba(21, 31, 54, .45), 0 0 0 1px var(--hg-linea);
	opacity: 0;
	visibility: hidden;
	translate: -46% 10px;
	transition: opacity .25s ease, translate .3s var(--hg-curva), visibility 0s .3s;
}

body .hg-mega::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -18px;
	height: 18px;
}

body .vv-nav__item.is-abierto .hg-mega {
	opacity: 1;
	visibility: visible;
	translate: -46% 0;
	transition: opacity .25s ease, translate .3s var(--hg-curva), visibility 0s;
}

body .hg-mega__rejilla {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) 1.1fr;
	gap: 8px;
}

body .hg-mega__lista {
	display: contents;
}

body .hg-mega__item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 14px;
	border-radius: 14px;
	color: var(--hg-azul) !important;
	text-decoration: none !important;
	transition: background-color .25s ease;
}

body .hg-mega__item:hover,
body .hg-mega__item:focus-visible {
	background: var(--hg-hormigon);
}

body .hg-mega__ico {
	display: grid;
	place-items: center;
	flex: none;
	width: 46px;
	height: 46px;
	border-radius: 12px;
	background: rgba(180, 67, 47, .1);
	color: var(--hg-rojo);
	transition: background-color .25s ease, color .25s ease, transform .3s var(--hg-curva);
}

body .hg-mega__item:hover .hg-mega__ico {
	background: var(--hg-rojo);
	color: #fff;
	transform: rotate(-6deg);
}

body .hg-mega__ico svg {
	width: 26px;
	height: 26px;
}

body .hg-mega__txt {
	display: grid;
	gap: 3px;
}

body .hg-mega__titulo {
	font-weight: 700;
	font-size: .98rem;
	line-height: 1.2;
}

body .hg-mega__desc {
	font-size: .84rem;
	line-height: 1.4;
	color: #56607a;
}

body .hg-mega__fotos {
	position: relative;
	grid-column: 4;
	grid-row: 1 / span 3;
	min-height: 100%;
	overflow: hidden;
	border-radius: 16px;
	background: var(--hg-azul);
}

body .hg-mega__foto {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	opacity: 0;
	transition: opacity .35s ease;
}

body .hg-mega__foto.is-activa {
	opacity: 1;
}

body .hg-mega__foto img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.06);
	transition: transform 1.2s var(--hg-curva);
}

body .hg-mega__foto.is-activa img {
	transform: scale(1);
}

body .hg-mega__foto::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(21, 31, 54, 0) 45%, rgba(21, 31, 54, .88));
}

body .hg-mega__foto b {
	position: relative;
	z-index: 1;
	padding: 20px;
	color: #fff;
	font-family: var(--vv-fuente-titulos);
	font-size: 1.45rem;
	line-height: 1.05;
	text-transform: uppercase;
}

body .hg-mega__banner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	height: 100%;
	box-sizing: border-box;
	padding: 14px 16px 14px 18px;
	border-radius: 14px;
	background: linear-gradient(90deg, rgba(21, 31, 54, .96) 30%, rgba(21, 31, 54, .55)), url("https://recursos.veovirtual.net/c/hernandezgamez/fotos/servicios-transporte-materiales-linares.webp") center / cover var(--hg-azul);
	color: #fff !important;
	text-decoration: none !important;
	transition: box-shadow .25s ease;
}

body .hg-mega__banner:hover,
body .hg-mega__banner:focus-visible {
	box-shadow: inset 0 0 0 2px var(--hg-rojo);
}

body .hg-mega__banner-txt {
	display: grid;
	gap: 3px;
}

body .hg-mega__banner strong {
	font-family: var(--vv-fuente-titulos);
	font-size: 1.2rem;
	line-height: 1;
	text-transform: uppercase;
}

body .hg-mega__banner-txt span {
	font-size: .82rem;
	line-height: 1.3;
	opacity: .9;
}

body .hg-mega__banner-ir {
	display: grid;
	place-items: center;
	flex: none;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--hg-rojo);
	transition: transform .3s var(--hg-curva);
}

body .hg-mega__banner:hover .hg-mega__banner-ir,
body .hg-mega__banner:focus-visible .hg-mega__banner-ir {
	transform: translateX(3px);
}

body .hg-mega__banner-ir svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: #fff;
	stroke-width: 2.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* ---------- Menú móvil ---------- */
body.hg .vv-menu-movil__panel {
	background:
		radial-gradient(120% 60% at 100% 0, rgba(180, 67, 47, .28), transparent 60%),
		var(--hg-plano),
		var(--hg-azul-3);
}

body.hg .vv-menu-movil__panel::after {
	content: "";
	position: absolute;
	right: -60px;
	bottom: 40px;
	width: 300px;
	height: 300px;
	background: url("https://recursos.veovirtual.net/c/hernandezgamez/casa-marca.svg") center / contain no-repeat;
	opacity: .06;
	pointer-events: none;
}

body.hg .vv-menu-movil__logo {
	height: 64px;
}

body.hg .vv-menu-movil__enlace {
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

body.hg .vv-menu-movil__ico svg {
	width: 20px;
	height: 20px;
	color: #dc9c86;
}

body.hg .hg-sub-movil {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .35s var(--hg-curva);
}

body.hg .hg-sub-movil > ul {
	overflow: hidden;
	margin: 0;
	padding: 0 0 0 34px;
	list-style: none;
}

body.hg .vv-menu-movil__item.is-abierto .hg-sub-movil {
	grid-template-rows: 1fr;
}

body.hg .hg-sub-movil a {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	color: rgba(255, 255, 255, .86);
	font-size: .86rem;
	text-decoration: none;
}

body.hg .hg-sub-movil svg {
	width: 18px;
	height: 18px;
	color: #dc9c86;
}

body.hg .hg-sub-boton {
	margin-left: auto;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .08);
	color: #fff;
	cursor: pointer;
}

body.hg .hg-sub-boton svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.4;
	transition: transform .3s ease;
}

body.hg .vv-menu-movil__item.is-abierto .hg-sub-boton svg {
	transform: rotate(180deg);
}

body.hg .vv-menu-movil__item--con-sub {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	border-bottom: 1px solid rgba(255, 255, 255, .1);
}

body.hg .vv-menu-movil__item--con-sub > .vv-menu-movil__enlace {
	flex: 1;
	border-bottom: 0;
}

body.hg .vv-menu-movil__item--con-sub > .hg-sub-movil {
	flex: 0 0 100%;
}

/* ---------- Hero de portada ---------- */
body .hg-hero {
	position: relative;
	overflow: clip;
	padding: clamp(40px, 6vw, 84px) 0 clamp(120px, 12vw, 170px);
	background:
		radial-gradient(80% 90% at 85% 15%, rgba(58, 77, 116, .9), transparent 60%),
		radial-gradient(60% 70% at 0% 100%, rgba(180, 67, 47, .28), transparent 60%),
		var(--hg-azul-3);
	color: #fff;
	isolation: isolate;
}

body .hg-hero__plano {
	position: absolute;
	inset: -40px;
	z-index: -1;
	background: var(--hg-plano);
	animation: hg-plano 40s linear infinite;
}

body .hg-hero__plano::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(70% 70% at 70% 40%, transparent 30%, var(--hg-azul-3) 85%);
}

@keyframes hg-plano {
	to {
		background-position: 40px 40px;
	}
}

body .hg-hero__caja {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(28px, 4vw, 64px);
}

body .hg-hero__ante {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	padding: 7px 14px 7px 8px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18);
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

body .hg-hero__ante b {
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--hg-rojo);
	letter-spacing: .04em;
}

body .hg-hero__titulo {
	margin: 0;
	font-size: clamp(3rem, 7.4vw, 6.2rem);
	line-height: .92;
	text-transform: uppercase;
	color: #fff !important;
}

body .hg-hero__rota {
	position: relative;
	display: inline-grid;
	vertical-align: top;
}

body .hg-hero__palabra {
	grid-area: 1 / 1;
	background: linear-gradient(90deg, #d98a66, var(--hg-rojo) 55%, #dca06f);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	opacity: 0;
	transform: translateY(40%) rotateX(-70deg);
	transform-origin: 50% 100%;
	transition: opacity .5s ease, transform .6s var(--hg-curva);
	white-space: nowrap;
}

body .hg-hero__palabra.is-activa {
	opacity: 1;
	transform: none;
}

body .hg-hero__palabra.is-sale {
	opacity: 0;
	transform: translateY(-40%) rotateX(70deg);
}

body .hg-hero__texto {
	max-width: 560px;
	margin: 22px 0 30px;
	font-size: clamp(1.05rem, 1.5vw, 1.2rem);
	color: rgba(255, 255, 255, .86);
}

body .hg-hero__cifras {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 32px;
	margin: 36px 0 0;
	padding: 0;
	list-style: none;
}

body .hg-hero__cifras li {
	display: grid;
	gap: 2px;
}

body .hg-hero__cifras strong {
	font-family: var(--vv-fuente-titulos);
	font-size: 2.6rem;
	line-height: 1;
	color: #fff;
}

body .hg-hero__cifras span {
	font-size: .86rem;
	color: rgba(255, 255, 255, .72);
}

body .hg-hero__pausa {
	position: absolute;
	right: 16px;
	bottom: 100px;
	z-index: 5;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
	color: #fff;
	cursor: pointer;
}

body .hg-hero__pausa svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.4;
	stroke-linecap: round;
}

/* Composición del hero */
body .hg-hero__compo {
	position: relative;
	height: clamp(420px, 44vw, 560px);
	perspective: 1200px;
}

body .hg-hero__foto {
	position: absolute;
	margin: 0;
	overflow: hidden;
	border-radius: 22px;
	background: #2d3b5c;
	box-shadow: 0 40px 70px -30px rgba(0, 0, 0, .7);
	will-change: transform;
}

body .hg-hero__foto img {
	display: block;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
}

body .hg-hero__foto--1 {
	top: 6%;
	right: 4%;
	width: 62%;
	height: 64%;
	z-index: 2;
	animation: hg-flota 9s ease-in-out infinite;
}

body .hg-hero__foto--2 {
	left: 0;
	bottom: 4%;
	width: 50%;
	height: 50%;
	z-index: 3;
	border: 6px solid #fff;
	animation: hg-flota 11s ease-in-out -3s infinite;
}

body .hg-hero__foto--3 {
	right: 0;
	bottom: 0;
	width: 40%;
	height: 38%;
	z-index: 1;
	animation: hg-flota 10s ease-in-out -6s infinite;
}

@keyframes hg-flota {
	0%,
	100% {
		transform: translateY(0) rotate(0);
	}

	50% {
		transform: translateY(-12px) rotate(.6deg);
	}
}

body .hg-hero__chip {
	position: absolute;
	z-index: 4;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 16px 10px 10px;
	border-radius: 16px;
	background: #fff;
	color: var(--hg-azul);
	box-shadow: 0 22px 40px -18px rgba(0, 0, 0, .55);
	font-size: .88rem;
	font-weight: 700;
	line-height: 1.15;
	animation: hg-flota 7s ease-in-out infinite;
}

body .hg-hero__chip i {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: var(--hg-rojo);
	color: #fff;
	font-style: normal;
}

body .hg-hero__chip i svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

body .hg-hero__chip small {
	display: block;
	font-size: .74rem;
	font-weight: 600;
	color: #5a6480;
}

body .hg-hero__chip--1 {
	top: 0;
	left: 6%;
	animation-delay: -2s;
}

body .hg-hero__chip--2 {
	right: -2%;
	top: 58%;
	animation-delay: -4s;
}

body .hg-hero__gancho {
	position: absolute;
	top: -120px;
	left: 47%;
	z-index: 5;
	display: flex;
	flex-direction: column;
	align-items: center;
	transform-origin: 50% 0;
	animation: hg-gancho 6s ease-in-out infinite;
}

body .hg-hero__gancho::before {
	content: "";
	width: 2px;
	height: 150px;
	background: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, .7));
}

body .hg-hero__gancho svg {
	display: none;
}

/* Bloque de hormigón colgado de la grúa */
body .hg-hero__sello {
	position: relative;
	display: grid;
	place-items: center;
	width: 140px;
	height: 78px;
	margin-top: 96px;
	border-radius: 3px;
	background-color: #aeb0b1;
	background-image:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='80'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .1  0 0 0 0 .1  0 0 0 0 .1  0 0 0 .9 -.3'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"),
		radial-gradient(circle at 18% 32%, rgba(0, 0, 0, .35) 0 1.6px, transparent 2.2px),
		radial-gradient(circle at 74% 64%, rgba(0, 0, 0, .3) 0 1.3px, transparent 2px),
		radial-gradient(circle at 46% 80%, rgba(0, 0, 0, .28) 0 1.1px, transparent 1.8px),
		linear-gradient(180deg, #c4c5c4 0, #a9abac 55%, #919394 100%);
	background-size: 140px 80px, 37px 29px, 53px 41px, 23px 31px, 100% 100%;
	box-shadow:
		inset 0 0 0 1px rgba(0, 0, 0, .28),
		inset 0 4px 0 rgba(255, 255, 255, .35),
		inset 4px 0 0 rgba(255, 255, 255, .12),
		inset -5px 0 0 rgba(0, 0, 0, .12),
		inset 0 -8px 0 rgba(0, 0, 0, .22),
		0 22px 34px -16px rgba(0, 0, 0, .75);
	color: #1c2230;
	text-align: center;
	font-family: var(--vv-fuente-titulos);
	font-weight: 700;
	line-height: .95;
	text-transform: uppercase;
}

body .hg-hero__sello::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 100%;
	width: 100%;
	aspect-ratio: 140 / 96;
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 96'><path d='M70 61 13 96M70 61l57 35' stroke='%232a2f36' stroke-width='2.6' fill='none' stroke-linecap='round'/><path d='M70 24v10a13 13 0 1 1-13 13' stroke='%231c2230' stroke-width='10' fill='none' stroke-linecap='round'/><path d='M70 24v10a13 13 0 1 1-13 13' stroke='%23ffc533' stroke-width='6' fill='none' stroke-linecap='round'/><path d='M58 44l10-8' stroke='%231c2230' stroke-width='2' stroke-linecap='round'/><rect x='55' y='1' width='30' height='25' rx='5' fill='%23ffc533' stroke='%231c2230' stroke-width='2'/><path d='M60 1l-4 6M68 1l-8 12M76 1 63 21M84 3 70 26M85 15l-7 11' stroke='%231c2230' stroke-width='2.4' opacity='.85'/><circle cx='70' cy='13.5' r='4.2' fill='%23ffffff' stroke='%231c2230' stroke-width='2'/></svg>") center bottom / 100% 100% no-repeat;
}

body .hg-hero__sello small {
	display: block;
	color: var(--hg-rojo);
	font-size: .78rem;
	letter-spacing: .2em;
}

body .hg-hero__sello strong {
	display: block;
	font-size: 2.1rem;
	letter-spacing: .04em;
}

@keyframes hg-gancho {
	0%,
	100% {
		transform: rotate(3deg);
	}

	50% {
		transform: rotate(-3deg);
	}
}

body .hg-hero__azulejos {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

body .hg-hero__azulejos span {
	position: absolute;
	width: var(--t, 38px);
	height: var(--t, 38px);
	border-radius: 6px;
	background: var(--c, rgba(255, 255, 255, .12));
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18);
	animation: hg-azulejo var(--d, 12s) ease-in-out var(--r, 0s) infinite;
}

@keyframes hg-azulejo {
	0%,
	100% {
		transform: translateY(0) rotate(0);
	}

	50% {
		transform: translateY(-22px) rotate(45deg);
	}
}

body .hg-hero__ola {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 70px;
	background: #fff;
	clip-path: polygon(0 100%, 0 60%, 30% 85%, 62% 30%, 100% 70%, 100% 100%);
	z-index: 2;
}

@media only screen and (max-width: 959px) {
	body .hg-hero {
		padding-top: 34px;
	}

	body .hg-hero__caja {
		grid-template-columns: 1fr;
	}

	body .hg-hero__compo {
		height: min(118vw, 520px);
		margin-top: 10px;
	}

	body .hg-hero__gancho {
		left: auto;
		right: 8%;
		top: -60px;
	}

	body .hg-hero__gancho::before {
		height: 80px;
	}

	body .hg-hero__sello {
		width: 112px;
		height: 62px;
		margin-top: 77px;
	}

	body .hg-hero__sello small {
		font-size: .68rem;
	}

	body .hg-hero__sello strong {
		font-size: 1.7rem;
	}
}

@media only screen and (max-width: 767px) {
	body .hg-hero__titulo {
		font-size: clamp(2.6rem, 12.5vw, 3.6rem);
	}

	body .hg-hero__rota {
		display: grid;
	}

	body .hg-hero__botones .hg-btn {
		flex: 1 1 100%;
	}

	body .hg-hero__cifras {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 10px;
	}

	body .hg-hero__cifras strong {
		font-size: 2.1rem;
	}

	body .hg-hero__foto--1 {
		width: 74%;
		height: 56%;
		right: 0;
	}

	body .hg-hero__foto--2 {
		width: 58%;
		height: 46%;
		bottom: 6%;
	}

	body .hg-hero__foto--3 {
		width: 44%;
		height: 32%;
	}

	body .hg-hero__chip {
		font-size: .8rem;
	}

	body .hg-hero__chip--1 {
		left: 0;
		top: 2%;
	}

	body .hg-hero__chip--2 {
		right: 0;
		top: auto;
		bottom: 37%;
	}

	body .hg-hero__pausa {
		bottom: 82px;
	}
}

/* ---------- Llamadas a la acción ---------- */
body .hg-ctas {
	position: relative;
	z-index: 5;
	margin-top: calc(-1 * clamp(80px, 9vw, 120px));
	padding: 0;
}

body .hg-ctas .vvsd-llamar {
	gap: 16px;
}

body .hg-ctas .vvsd-cta {
	min-height: 92px;
	padding: 18px 22px;
	box-shadow: var(--hg-sombra);
}

body .hg-ctas .vvsd-cta__eti {
	font-family: var(--vv-fuente-titulos);
	font-size: 1.35rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .01em;
}

@media only screen and (max-width: 767px) {
	body .hg-ctas .vvsd-llamar {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	body .hg-ctas .vvsd-cta {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
		min-height: 0;
		padding: 14px;
	}

	body .hg-ctas .vvsd-cta__eti {
		font-size: 1.12rem;
	}

	body .hg-ctas .vvsd-cta__dato {
		font-size: .8rem;
	}
}

/* ---------- Bloques ---------- */
body .hg-bloque {
	position: relative;
	padding-block: var(--hg-sep);
}

body .hg-bloque--hormigon {
	background: var(--hg-hormigon) var(--hg-azulejo);
}

body .hg-bloque--azul {
	background:
		radial-gradient(60% 80% at 100% 0, rgba(58, 77, 116, .8), transparent 70%),
		var(--hg-plano),
		var(--hg-azul-3);
	color: rgba(255, 255, 255, .88);
}

body .hg-bloque--pegado {
	padding-top: clamp(40px, 5vw, 70px);
}

/* ---------- Tarjetas de productos ---------- */
body .hg-secs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(18px, 2vw, 28px);
	margin: 0;
	padding: 0;
	list-style: none;
}

body .hg-sec {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	border-radius: 22px;
	background: #fff;
	box-shadow: var(--hg-sombra-suave), 0 0 0 1px var(--hg-linea);
	color: var(--hg-azul) !important;
	text-decoration: none !important;
	transition: transform .4s var(--hg-curva), box-shadow .4s ease;
}

body .hg-sec:hover,
body .hg-sec:focus-visible {
	transform: translateY(-8px);
	box-shadow: var(--hg-sombra), 0 0 0 1px rgba(180, 67, 47, .35);
}

body .hg-sec__foto {
	position: relative;
	height: clamp(170px, 15vw, 210px);
	overflow: hidden;
	border-radius: 22px 22px 0 0;
	background: var(--hg-arena);
}

body .hg-sec__foto img {
	display: block;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	transition: transform .8s var(--hg-curva);
}

body .hg-sec:hover .hg-sec__foto img {
	transform: scale(1.08) rotate(.6deg);
}

body .hg-sec__foto::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 55%, rgba(21, 31, 54, .45));
}

body .hg-sec__ico {
	position: absolute;
	top: clamp(124px, 12.6vw, 166px);
	right: 18px;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 84px;
	height: 84px;
	border-radius: 24px;
	background: linear-gradient(145deg, var(--hg-rojo-2), var(--hg-rojo));
	box-shadow: 0 18px 30px -12px rgba(180, 67, 47, .75), inset 0 0 0 4px rgba(255, 255, 255, .25);
	transform: rotate(-8deg);
	transition: transform .5s var(--hg-curva);
}

body .hg-sec:hover .hg-sec__ico {
	transform: rotate(0) translateY(-10px) scale(1.06);
}

body .hg-sec__ico svg {
	width: 58px;
	height: 58px;
}

body .hg-sec__cuerpo {
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
	padding: 26px 22px 22px;
}

body .hg-sec__titulo {
	margin: 0;
	padding-right: 64px;
	font-size: 1.6rem;
	line-height: 1;
	text-transform: uppercase;
}

body .hg-sec__texto {
	margin: 0;
	font-size: .94rem;
	line-height: 1.5;
	color: #4a546b;
}

body .hg-sec__mas {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding-top: 8px;
	font-size: .9rem;
	font-weight: 700;
	color: var(--hg-rojo);
}

body .hg-sec__mas svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.2;
	transition: transform .3s ease;
}

body .hg-sec:hover .hg-sec__mas svg {
	transform: translateX(5px);
}

body .hg-sec--servicio .hg-sec__ico {
	background: linear-gradient(145deg, var(--hg-azul-2), var(--hg-azul));
	box-shadow: 0 18px 30px -12px rgba(31, 45, 77, .75), inset 0 0 0 4px rgba(255, 255, 255, .2);
}

@media only screen and (max-width: 1100px) {
	body .hg-secs {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media only screen and (max-width: 767px) {
	body .hg-secs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	body .hg-sec {
		border-radius: 16px;
	}

	body .hg-sec__foto {
		height: 118px;
		border-radius: 16px 16px 0 0;
	}

	body .hg-sec__ico {
		top: 82px;
		right: 10px;
		width: 56px;
		height: 56px;
		border-radius: 16px;
	}

	body .hg-sec__ico svg {
		width: 38px;
		height: 38px;
	}

	body .hg-sec__cuerpo {
		padding: 18px 12px 14px;
		gap: 6px;
	}

	body .hg-sec__titulo {
		padding-right: 36px;
		font-size: 1.18rem;
	}

	body .hg-sec__texto {
		display: none;
	}

	body .hg-sec__mas {
		font-size: .8rem;
	}
}

/* ---------- Mitad foto / mitad texto ---------- */
body .hg-mitad {
	display: grid;
	grid-template-columns: minmax(0, .42fr) minmax(0, .58fr);
	align-items: center;
	gap: clamp(30px, 5vw, 80px);
}

body .hg-mitad--inversa {
	grid-template-columns: minmax(0, .58fr) minmax(0, .42fr);
}

body .hg-mitad--inversa .hg-mitad__fotos {
	order: 2;
}

body .hg-mitad__fotos {
	position: relative;
	height: clamp(440px, 46vw, 620px);
}

body .hg-mitad__foto {
	position: absolute;
	margin: 0;
	overflow: hidden;
	border-radius: 22px;
	box-shadow: var(--hg-sombra);
}

body .hg-mitad__foto img {
	display: block;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	transform: scale(1.12);
	will-change: transform;
}

body .hg-mitad__foto--a {
	inset: 0 18% 14% 0;
	clip-path: polygon(0 0, 100% 0, 100% 86%, 82% 100%, 0 100%);
	border-radius: 22px 22px 0 22px;
}

body .hg-mitad__foto--b {
	right: 0;
	bottom: 0;
	width: 54%;
	height: 42%;
	border: 6px solid #fff;
}

body .hg-mitad__sello {
	position: absolute;
	left: -14px;
	bottom: 8%;
	z-index: 3;
	padding: 16px 20px;
	border-radius: 18px;
	background: var(--hg-azul);
	color: #fff;
	box-shadow: var(--hg-sombra);
	font-family: var(--vv-fuente-titulos);
	text-transform: uppercase;
	line-height: 1;
}

body .hg-mitad__sello strong {
	display: block;
	font-size: 3rem;
	color: #dc9c86;
}

body .hg-mitad__texto > p {
	margin: 0 0 16px;
	font-size: 1.06rem;
}

body .hg-lista {
	display: grid;
	gap: 12px;
	margin: 22px 0 30px;
	padding: 0;
	list-style: none;
}

body .hg-lista li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	line-height: 1.45;
}

body .hg-lista li::before {
	content: "";
	flex: none;
	width: 24px;
	height: 24px;
	margin-top: 1px;
	border-radius: 7px;
	background: var(--hg-rojo) url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23fff%22 stroke-width=%223%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M6 12.5l4 4 8-9%22/%3E%3C/svg%3E") center / 16px no-repeat;
}

body .hg-lista--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media only screen and (max-width: 959px) {
	body .hg-mitad,
	body .hg-mitad--inversa {
		grid-template-columns: 1fr;
	}

	body .hg-mitad--inversa .hg-mitad__fotos {
		order: 0;
	}

	body .hg-mitad__fotos {
		height: min(100vw, 520px);
	}
}

@media only screen and (max-width: 560px) {
	body .hg-lista--2 {
		grid-template-columns: 1fr;
	}
}

/* ---------- Servicios en Linares ---------- */
body .hg-servicios {
	overflow: hidden;
}

body .hg-servicios__rejilla {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 16px;
	margin: 0 0 30px;
	padding: 0;
	list-style: none;
}

body .hg-servicio {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	height: 100%;
	padding: 56px 18px 22px;
	border-radius: 20px;
	background: rgba(255, 255, 255, .06);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14);
	transition: background-color .3s ease, transform .4s var(--hg-curva);
}

body .hg-servicio:hover {
	background: rgba(255, 255, 255, .1);
	transform: translateY(-6px);
}

body .hg-servicio__ico {
	position: absolute;
	top: -26px;
	left: 18px;
	display: grid;
	place-items: center;
	width: 66px;
	height: 66px;
	border-radius: 20px;
	background: linear-gradient(145deg, var(--hg-rojo-2), var(--hg-rojo));
	box-shadow: 0 16px 28px -12px rgba(0, 0, 0, .7);
	transform: rotate(-6deg);
	transition: transform .4s var(--hg-curva);
}

body .hg-servicio:hover .hg-servicio__ico {
	transform: rotate(0) scale(1.06);
}

body .hg-servicio__ico svg {
	width: 44px;
	height: 44px;
}

body .hg-servicio h3 {
	margin: 0;
	font-size: 1.4rem;
	text-transform: uppercase;
	color: #fff;
}

body .hg-servicio p {
	margin: 0;
	font-size: .92rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, .78);
}

body .hg-servicios__pie {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px;
	text-align: center;
}

body .hg-carretera {
	position: relative;
	height: 150px;
	margin: 20px 0 46px;
}

body .hg-carretera::before {
	content: "";
	position: absolute;
	left: -50vw;
	right: -50vw;
	bottom: 18px;
	height: 26px;
	background:
		repeating-linear-gradient(90deg, #ffd04d 0 46px, transparent 46px 92px) 0 50% / 100% 3px no-repeat,
		#16264f;
	box-shadow: 0 -2px 0 rgba(255, 255, 255, .08);
}

body .hg-camion {
	position: absolute;
	left: 0;
	bottom: 30px;
	width: clamp(240px, 26vw, 340px);
	will-change: transform;
	transform: translateX(var(--hg-x, 0px));
}

body .hg-camion svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

body .hg-camion .hg-rueda {
	transform-box: fill-box;
	transform-origin: center;
	transform: rotate(var(--hg-giro, 0deg));
}

@media only screen and (max-width: 1100px) {
	body .hg-servicios__rejilla {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		row-gap: 44px;
	}
}

@media only screen and (max-width: 767px) {
	body .hg-servicios__rejilla {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 40px 12px;
	}

	body .hg-servicio {
		padding: 44px 14px 16px;
	}

	body .hg-servicio__ico {
		width: 54px;
		height: 54px;
		border-radius: 16px;
		left: 14px;
	}

	body .hg-servicio__ico svg {
		width: 36px;
		height: 36px;
	}

	body .hg-servicio h3 {
		font-size: 1.15rem;
	}

	body .hg-servicio p {
		font-size: .84rem;
	}

	body .hg-carretera {
		height: 120px;
	}

	body .hg-camion {
		width: 230px;
	}
}

/* ---------- Cifras ---------- */
body .hg-cifras {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body .hg-cifras li {
	padding: 22px;
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--hg-sombra-suave), 0 0 0 1px var(--hg-linea);
}

body .hg-cifras strong {
	display: block;
	font-family: var(--vv-fuente-titulos);
	font-size: clamp(2.4rem, 4vw, 3.4rem);
	line-height: 1;
	color: var(--hg-rojo);
}

body .hg-cifras span {
	font-weight: 600;
	color: var(--hg-azul);
}

@media only screen and (max-width: 767px) {
	body .hg-cifras {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	body .hg-cifras li {
		padding: 16px;
	}
}

/* ---------- Tiendas ---------- */
body .hg-tiendas .vvsd-tarjeta {
	border-radius: 22px;
}

body .hg-tiendas .vvsd-tarjeta__titulo {
	font-size: 2.2rem;
	text-transform: uppercase;
}

body .hg-tiendas .vvsd-tarjeta__marca {
	font-family: var(--vv-fuente-textos);
}

/* ---------- Novedades ---------- */
body .hg-novedades .hg-botones {
	justify-content: center;
	margin-top: 30px;
}

/* ---------- Llamada final ---------- */
body .hg-final {
	position: relative;
	overflow: hidden;
	padding-block: clamp(60px, 8vw, 100px);
	background:
		linear-gradient(115deg, #efede8 0%, #e4e0d8 55%, var(--hg-azul) 55.2%, var(--hg-azul-3) 100%);
	color: var(--hg-azul);
}

body .hg-final::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--hg-plano);
	opacity: .8;
}

body .hg-final__caja {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	align-items: center;
	gap: 30px;
}

body .hg-final h2 {
	margin: 0 0 12px;
	font-size: clamp(2.2rem, 4.4vw, 3.6rem);
	text-transform: uppercase;
	color: var(--hg-azul);
}

body .hg-final p {
	margin: 0;
	font-size: 1.1rem;
	color: #33415c;
}

body .hg-final .hg-botones {
	justify-content: flex-end;
}

@media only screen and (max-width: 959px) {
	body .hg-final {
		background: linear-gradient(160deg, #f1efea, #e2ded6);
	}

	body .hg-final::before {
		opacity: 0;
	}

	body .hg-final .hg-btn--blanco {
		color: var(--hg-azul);
		box-shadow: inset 0 0 0 2px var(--hg-azul);
	}

	body .hg-final .hg-btn--blanco::before {
		background: var(--hg-azul);
	}

	body .hg-final .hg-btn--blanco:hover,
	body .hg-final .hg-btn--blanco:focus-visible {
		color: #fff;
	}

	body .hg-final__caja {
		grid-template-columns: 1fr;
		text-align: center;
	}

	body .hg-final .hg-botones {
		justify-content: center;
	}
}

/* ---------- Cabecera de página interior ---------- */
body .hg-phero {
	position: relative;
	overflow: hidden;
	min-height: clamp(380px, 40vw, 500px);
	display: flex;
	align-items: center;
	background: var(--hg-azul-3);
	color: #fff;
	isolation: isolate;
}

body .hg-phero__foto {
	position: absolute;
	inset: 0 0 0 42%;
	z-index: -1;
	margin: 0;
	clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%);
}

body .hg-phero__foto img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	transform: scale(1.08);
	will-change: transform;
}

body .hg-phero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -2;
	background: var(--hg-plano), radial-gradient(70% 90% at 0 100%, rgba(180, 67, 47, .35), transparent 70%);
}

body .hg-phero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 40px;
	background: #fff;
	clip-path: polygon(0 100%, 0 40%, 50% 100%, 100% 0, 100% 100%);
}

body .hg-phero__caja {
	position: relative;
	padding-block: clamp(46px, 6vw, 80px) clamp(70px, 8vw, 100px);
}

body .hg-phero__texto {
	max-width: 46%;
}

body .hg-migas {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
	font-size: .84rem;
}

body .hg-migas li + li::before {
	content: "/";
	margin-right: 6px;
	opacity: .5;
}

body .hg-migas a {
	color: rgba(255, 255, 255, .85) !important;
	text-decoration: none !important;
}

body .hg-migas a:hover {
	text-decoration: underline !important;
}

body .hg-phero__ico {
	display: grid;
	place-items: center;
	width: 78px;
	height: 78px;
	margin-bottom: 18px;
	border-radius: 22px;
	background: linear-gradient(145deg, var(--hg-rojo-2), var(--hg-rojo));
	box-shadow: 0 18px 30px -12px rgba(0, 0, 0, .6);
	transform: rotate(-8deg);
}

body .hg-phero__ico svg {
	width: 54px;
	height: 54px;
}

body .hg-phero h1 {
	margin: 0;
	font-size: clamp(2.4rem, 5.4vw, 4.4rem);
	text-transform: uppercase;
	color: #fff !important;
}

body .hg-phero__intro {
	margin: 18px 0 26px;
	font-size: 1.12rem;
	color: rgba(255, 255, 255, .88);
}

@media only screen and (max-width: 959px) {
	body .hg-phero {
		flex-direction: column;
		align-items: stretch;
		min-height: 0;
	}

	body .hg-phero__foto {
		position: relative;
		inset: auto;
		order: 2;
		height: 300px;
		clip-path: polygon(0 16%, 100% 0, 100% 100%, 0 100%);
		margin-top: -40px;
	}

	body .hg-phero__texto {
		max-width: none;
	}

	body .hg-phero__caja {
		padding-bottom: 20px;
	}
}

@media only screen and (max-width: 767px) {
	body .hg-phero__botones .hg-btn {
		flex: 1 1 100%;
	}

	body .hg-phero__foto {
		height: 240px;
	}
}

/* ---------- Subcategorías ---------- */
body .hg-subs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(18px, 2vw, 26px);
	margin: 0;
	padding: 0;
	list-style: none;
}

body .hg-sub {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	height: 100%;
	padding: 52px 24px 24px;
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--hg-sombra-suave), 0 0 0 1px var(--hg-linea);
	transition: transform .4s var(--hg-curva), box-shadow .4s ease;
}

body .hg-sub:hover {
	transform: translateY(-6px);
	box-shadow: var(--hg-sombra), 0 0 0 1px rgba(180, 67, 47, .3);
}

body .hg-sub__ico {
	position: absolute;
	top: -28px;
	left: 22px;
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 18px;
	background: var(--hg-azul);
	color: #fff;
	box-shadow: 0 16px 26px -12px rgba(31, 45, 77, .7);
	transform: rotate(-6deg);
	transition: transform .4s var(--hg-curva), background-color .3s ease;
}

body .hg-sub:hover .hg-sub__ico {
	transform: rotate(0) scale(1.06);
	background: var(--hg-rojo);
}

body .hg-sub__ico svg {
	width: 34px;
	height: 34px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
}

body .hg-sub h3 {
	margin: 0;
	font-size: 1.5rem;
	text-transform: uppercase;
}

body .hg-sub p {
	margin: 0;
	font-size: .96rem;
	color: #4a546b;
}

body .hg-sub ul {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 6px 0 0;
	padding: 0;
	list-style: none;
}

body .hg-sub ul li {
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--hg-hormigon);
	font-size: .82rem;
	font-weight: 600;
	color: var(--hg-azul);
}

body .hg-subs--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media only screen and (max-width: 959px) {
	body .hg-subs,
	body .hg-subs--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 46px;
	}
}

@media only screen and (max-width: 560px) {
	body .hg-subs,
	body .hg-subs--4 {
		gap: 40px 12px;
	}

	body .hg-sub {
		padding: 42px 14px 16px;
	}

	body .hg-sub__ico {
		left: 14px;
		width: 52px;
		height: 52px;
	}

	body .hg-sub h3 {
		font-size: 1.2rem;
	}

	body .hg-sub p {
		font-size: .86rem;
	}
}

/* ---------- Otras secciones ---------- */
body .hg-otras {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body .hg-otras a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 8px 18px 8px 10px;
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 0 0 1px var(--hg-linea);
	color: var(--hg-azul) !important;
	font-weight: 700;
	text-decoration: none !important;
	transition: background-color .25s ease, color .25s ease;
}

body .hg-otras a:hover,
body .hg-otras a:focus-visible {
	background: var(--hg-azul);
	color: #fff !important;
}

body .hg-otras i {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba(180, 67, 47, .12);
	color: var(--hg-rojo);
}

body .hg-otras a:hover i {
	background: var(--hg-rojo);
	color: #fff;
}

body .hg-otras svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* ---------- Contacto y formularios ---------- */
body .hg-contacto {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
	gap: clamp(26px, 4vw, 56px);
	align-items: start;
}

body .hg-formulario {
	padding: clamp(22px, 3vw, 40px);
	border-radius: 24px;
	background: #fff;
	box-shadow: var(--hg-sombra), 0 0 0 1px var(--hg-linea);
}

body .hg-formulario h2 {
	margin: 0 0 8px;
	font-size: clamp(2rem, 3.4vw, 2.8rem);
	text-transform: uppercase;
}

body .hg-formulario > p {
	margin: 0 0 22px;
	color: #4a546b;
}

body.hg .vvf-form input:not([type="checkbox"]):not([type="radio"]),
body.hg .vvf-form select,
body.hg .vvf-form textarea {
	min-height: 52px;
	border-radius: 12px;
	border: 1.5px solid rgba(31, 45, 77, .2);
	background: #fbfaf8;
	font: inherit;
}

body.hg .vvf-form input:focus,
body.hg .vvf-form select:focus,
body.hg .vvf-form textarea:focus {
	border-color: var(--hg-azul);
	background: #fff;
}

body.hg .vvf-form__boton {
	min-height: 54px;
	padding: 12px 30px;
	border: 0;
	border-radius: 999px;
	background: var(--hg-rojo);
	color: #fff;
	font: 700 1.02rem/1 var(--vv-fuente-textos);
	cursor: pointer;
	transition: background-color .3s ease;
}

body.hg .vvf-form__boton:hover,
body.hg .vvf-form__boton:focus-visible {
	background: var(--hg-azul);
	color: #fff;
}

body.hg .vvf-form input[type="file"] {
	padding: 9px 10px;
	cursor: pointer;
}

body.hg .vvf-form input[type="file"]::file-selector-button {
	margin-right: 14px;
	padding: 9px 18px;
	border: 0;
	border-radius: 999px;
	background: var(--hg-azul);
	color: #fff;
	font: 700 .92rem/1 var(--vv-fuente-textos);
	cursor: pointer;
	transition: background-color .3s ease;
}

body.hg .vvf-form input[type="file"]:hover::file-selector-button {
	background: var(--hg-rojo);
}

/* Sin ofertas publicadas: aviso con icono, no una línea suelta */
body.hg .vvpr-vacio {
	position: relative;
	max-width: 720px;
	margin: 0 auto;
	padding: 30px 32px 30px 104px;
	border: 1px solid rgba(31, 45, 77, .1);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 18px 40px -22px rgba(31, 45, 77, .35);
	color: var(--hg-azul);
	font-size: 1.08rem;
	font-weight: 600;
	line-height: 1.5;
}

body.hg .vvpr-vacio::before {
	content: "";
	position: absolute;
	left: 28px;
	top: 50%;
	width: 56px;
	height: 56px;
	margin-top: -28px;
	border-radius: 16px;
	background: linear-gradient(135deg, var(--hg-rojo-2), var(--hg-rojo));
	box-shadow: 0 10px 22px -8px rgba(180, 67, 47, .6);
}

body.hg .vvpr-vacio::after {
	content: "";
	position: absolute;
	left: 42px;
	top: 50%;
	width: 28px;
	height: 28px;
	margin-top: -14px;
	background: #fff;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.4 13.4 20.6a2 2 0 0 1-2.8 0L3 13V3h10l7.6 7.6a2 2 0 0 1 0 2.8z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.4 13.4 20.6a2 2 0 0 1-2.8 0L3 13V3h10l7.6 7.6a2 2 0 0 1 0 2.8z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

@media (max-width: 600px) {
	body.hg .vvpr-vacio {
		padding: 92px 22px 26px;
		text-align: center;
	}
	body.hg .vvpr-vacio::before {
		left: 50%;
		top: 24px;
		margin: 0 0 0 -28px;
	}
	body.hg .vvpr-vacio::after {
		left: 50%;
		top: 38px;
		margin: 0 0 0 -14px;
	}
}

body .hg-contacto__lado {
	display: grid;
	gap: 18px;
}

body .hg-contacto__lado .vvsd-rejilla {
	grid-template-columns: 1fr;
}

@media only screen and (max-width: 959px) {
	body .hg-contacto {
		grid-template-columns: 1fr;
	}
}

/* ---------- Textos y páginas sencillas ---------- */
body .hg-texto {
	max-width: 820px;
	margin-inline: auto;
	font-size: 1.06rem;
}

body .hg-texto h2 {
	margin: 1.6em 0 .5em;
	font-size: clamp(1.8rem, 3vw, 2.4rem);
	text-transform: uppercase;
}

body .hg-nota {
	padding: 18px 22px;
	border-radius: 16px;
	background: var(--hg-hormigon);
	border-left: 0;
}

/* ---------- Tour 360 ---------- */
body .hg-tour {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 24px;
	padding: clamp(22px, 3vw, 34px);
	border-radius: 24px;
	background: linear-gradient(120deg, var(--hg-azul), var(--hg-azul-2));
	color: #fff;
	box-shadow: var(--hg-sombra);
}

body .hg-tour__ico {
	display: grid;
	place-items: center;
	width: 92px;
	height: 92px;
	border-radius: 50%;
	background: var(--hg-rojo);
	font-family: var(--vv-fuente-titulos);
	font-size: 1.7rem;
	font-weight: 700;
	animation: hg-giro 14s linear infinite;
	box-shadow: 0 0 0 10px rgba(255, 255, 255, .08);
}

@keyframes hg-giro {
	to {
		rotate: 360deg;
	}
}

body .hg-tour h3 {
	margin: 0 0 6px;
	font-size: 1.9rem;
	text-transform: uppercase;
	color: #fff;
}

body .hg-tour p {
	margin: 0;
	color: rgba(255, 255, 255, .85);
}

@media only screen and (max-width: 767px) {
	body .hg-tour {
		grid-template-columns: 1fr;
		text-align: center;
		justify-items: center;
	}
}

/* ---------- Módulos ---------- */
body.hg .vvpr-bloque__titulo,
body.hg .vvmc__titulo {
	text-transform: uppercase;
	font-size: clamp(2rem, 4vw, 3rem);
}

body.hg .vvpr-tarjeta__titulo,
body.hg .vvsd-tarjeta__titulo {
	font-family: var(--vv-fuente-titulos);
	font-size: 1.5rem;
	text-transform: uppercase;
}

body.hg .vvpr-precio__ahora {
	font-family: var(--vv-fuente-titulos);
	font-size: 1.9rem;
}

body.hg .vvpr-carrusel {
	height: clamp(460px, 60vh, 600px);
	background:
		radial-gradient(60% 80% at 0 100%, rgba(180, 67, 47, .35), transparent 70%),
		var(--hg-azul-3);
}

body.hg .vvpr-diapo__foto::before {
	background: var(--hg-azul-3);
}

body.hg .vvpr-diapo__titulo {
	text-transform: uppercase;
	font-size: clamp(2.2rem, 4.4vw, 3.8rem);
}

body.hg .vvmc-enlace {
	border-radius: 18px;
}

body.hg .vvf-cabecera {
	background:
		radial-gradient(70% 90% at 100% 0, rgba(58, 77, 116, .8), transparent 70%),
		var(--hg-plano),
		var(--hg-azul-3);
	color: #fff;
}

body.hg .vvf-cabecera__titulo {
	text-transform: uppercase;
	color: #fff;
}

/* ---------- Pie ---------- */
body.hg .vv-pie {
	position: relative;
	background:
		radial-gradient(55% 45% at 100% 0, rgba(180, 67, 47, .06), transparent 70%),
		var(--hg-plano),
		var(--vv-pie-fondo);
}

body.hg .vv-pie::before,
body.hg .vvay::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	height: clamp(64px, 7.6vw, 108px);
	background: url("https://recursos.veovirtual.net/c/hernandezgamez/cabecera-edificios.png") repeat-x left bottom / auto 100%;
	filter: saturate(.55);
	opacity: .55;
	pointer-events: none;
}

body.hg .vvay,
body.hg:not(:has(.vvay)) .vv-pie {
	margin-top: clamp(64px, 7.6vw, 108px);
}

body.hg:has(.vvay) .vv-pie::before {
	display: none;
}

body.hg .vvay,
body.hg .vv-pie {
	z-index: 1;
}

body.hg .hg-final + .vvay,
body.hg:not(:has(.vvay)):has(.vv-contenido > .hg-final:last-child) .vv-pie {
	margin-top: 0;
}

body.hg .hg-final:has(+ .vvay),
body.hg:not(:has(.vvay)) .vv-contenido > .hg-final:last-child {
	padding-bottom: calc(clamp(64px, 7.6vw, 108px) + clamp(28px, 3.4vw, 44px));
}

body.hg .vv-pie__caja {
	grid-template-columns: 1.1fr .8fr 1.4fr;
}

body.hg .vv-pie__logo {
	width: 210px;
	height: auto;
}

body.hg .vv-pie__titulo {
	margin: 0 0 18px;
	font-size: 1.5rem;
	text-transform: uppercase;
	color: #fff;
}

body.hg .vv-pie__nav {
	display: grid;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.hg .vv-pie__nav a {
	display: inline-flex;
	min-height: 32px;
	align-items: center;
	text-decoration: none;
}

body.hg .vv-pie__nav a:hover {
	color: #fff;
	text-decoration: underline;
	text-decoration-color: var(--hg-rojo-2);
}

body.hg .vv-pie__dato--direccion,
body.hg .vv-pie__dato--tel,
body.hg .vv-pie__dato--email {
	display: none;
}

body.hg .vv-pie__dato--horario {
	display: block;
	margin: 0;
}

body.hg .vv-pie__dato--horario > .vv-pie__ico {
	display: none;
}

body.hg .vvsd-pie {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

body.hg .vvsd-pie__nombre {
	color: #fff;
	font-family: var(--vv-fuente-titulos);
	font-size: 1.25rem;
	text-transform: uppercase;
}

body.hg .vvsd-pie__dato .vv-pie__ico {
	color: #dc9c86;
}

body.hg .vvsd-pagos__titulo {
	color: #fff;
}

body.hg .vv-pie__legal {
	background: rgba(0, 0, 0, .25);
	font-size: .88rem;
}

@media only screen and (max-width: 959px) {
	body.hg .vv-pie__caja {
		grid-template-columns: 1fr 1fr;
		text-align: left;
	}

	body.hg .vv-pie__col--marca {
		grid-column: 1 / -1;
		text-align: center;
	}

	body.hg .vv-pie__col--contacto {
		grid-column: 1 / -1;
	}

	body.hg .vv-pie__dato {
		justify-content: flex-start;
	}
}

@media only screen and (max-width: 767px) {
	body.hg .vv-pie__caja {
		grid-template-columns: 1fr;
		text-align: center;
	}

	body.hg .vvsd-pie {
		grid-template-columns: 1fr;
		justify-items: center;
	}

	body.hg .vvsd-pie__dato {
		justify-content: center;
	}

	body.hg .vvsd-pagos__lista {
		justify-content: center;
	}

	body.hg .vv-pie__nav {
		justify-items: center;
	}
}

/* ---------- Barra móvil ---------- */
@media only screen and (max-width: 767px) {
	body.hg .vv-barra__caja {
		padding: 4px 4px;
	}

	body.hg .vv-barra__grupo,
	body.hg .vv-barra__botones {
		width: 100%;
		justify-content: space-around;
	}

	body.hg .vv-barra__btn {
		flex: 1 1 0;
		flex-direction: column;
		gap: 3px;
		width: auto;
		height: 56px;
		border-radius: 12px;
	}

	body.hg .vv-barra__txt {
		position: static;
		width: auto;
		height: auto;
		overflow: visible;
		clip: auto;
		font-size: .66rem;
		font-weight: 700;
		letter-spacing: .02em;
	}

	body.hg .vv-barra__ico svg {
		width: 22px;
		height: 22px;
	}

	body.hg .vv-barra__btn--acc {
		flex: 0 0 38px;
		width: 38px;
		height: 38px;
		margin-right: 2px;
		align-self: center;
		border-radius: 50%;
		background: transparent;
		box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22);
		color: rgba(255, 255, 255, .7);
		opacity: .85;
	}

	body.hg .vv-barra__btn--acc .vv-barra__txt {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	body.hg .vv-barra__btn--acc .vv-barra__ico svg {
		width: 18px;
		height: 18px;
	}

	body.hg .vv-barra__btn--productos {
		flex: 1.25 1 0;
		height: 62px;
		margin-top: -14px;
		border-radius: 16px;
		background: linear-gradient(160deg, var(--hg-rojo-2), var(--hg-rojo));
		box-shadow: 0 10px 22px -10px rgba(180, 67, 47, .9), 0 0 0 3px var(--hg-azul-3);
		color: #fff;
	}

	body.hg .vv-barra__btn--productos .vv-barra__ico svg {
		width: 24px;
		height: 24px;
	}

	body.hg .vv-acc-flota {
		display: none;
	}
}

@media only screen and (max-width: 389px) {
	body.hg .vv-barra__txt {
		font-size: .6rem;
		letter-spacing: 0;
	}

	body.hg .vv-barra__btn--productos {
		flex: 1.1 1 0;
	}
}

@media only screen and (min-width: 768px) {
	body.hg .vv-barra {
		display: none;
	}
}

/* ---------- Animaciones de entrada ---------- */
html.hg-js body .hg-rev {
	opacity: 0;
	transform: translateY(34px);
	transition: opacity .8s ease, transform .9s var(--hg-curva);
	transition-delay: calc(var(--i, 0) * 90ms);
}

html.hg-js body .hg-rev.is-visto {
	opacity: 1;
	transform: none;
}

html.vv-a11y-quieto body *,
html.vv-a11y-quieto body *::before,
html.vv-a11y-quieto body *::after,
html.hg-quieto body .hg-hero *,
html.hg-quieto body .hg-hero *::before,
html.hg-quieto body .hg-hero *::after {
	animation-play-state: paused !important;
}

@media (prefers-reduced-motion: reduce) {
	html.hg-js body .hg-rev {
		opacity: 1;
		transform: none;
		transition: none;
	}

	body .hg-hero *,
	body .hg-hero__plano,
	body .hg-tour__ico {
		animation: none !important;
	}

	body .hg-hero__palabra {
		transition: none;
	}
}

/* Móvil estrecho: subtarjetas a una columna para que el texto respire */
@media only screen and (max-width: 479px) {
	body .hg-subs,
	body .hg-subs--4 {
		grid-template-columns: minmax(0, 1fr);
		gap: 44px;
	}

	body .hg-sub {
		padding: 44px 20px 20px;
	}

	body .hg-sub__ico {
		left: 20px;
	}
}

/* Botones de cada tienda: sin cortar «Cómo llegar» */
body.hg .vvsd-botones .vvsd-btn {
	white-space: nowrap;
}

@media only screen and (max-width: 420px) {
	body.hg .vvsd-botones .vvsd-btn {
		padding-inline: 14px;
		font-size: .94rem;
	}
}

/* Megamenú: sin viñetas */
body .hg-mega__lista,
body .hg-mega__lista > li {
	list-style: none;
	margin: 0;
	padding-left: 0;
}

body .hg-mega__lista > li::marker {
	content: none;
}

/* Menú móvil: teléfono del pie legible */
body.hg .vv-menu-movil__pie > a[href^="tel:"] {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #fff;
	font: 700 1.35rem/1 var(--vv-fuente-titulos);
	letter-spacing: .02em;
	text-decoration: none;
}

body.hg .vv-menu-movil__pie > a[href^="tel:"]::before {
	content: "";
	width: 38px;
	height: 38px;
	border-radius: 12px;
	background: var(--hg-rojo) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") center / 20px no-repeat;
}

body.hg .vv-menu-movil__pie > a[href^="tel:"]:hover,
body.hg .vv-menu-movil__pie > a[href^="tel:"]:focus-visible {
	color: var(--hg-rojo-2);
}

body.hg .vv-menu-movil__redes a {
	color: #fff;
}

/* ---------- Grupo BdB en el pie ---------- */
body .hg-bdb {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 18px;
	color: var(--vv-pie-texto);
	font-size: .82rem;
	text-decoration: none;
}

body .hg-bdb img {
	display: block;
	width: 112px;
	height: auto;
	border-radius: 4px;
}

body .hg-bdb:hover span,
body .hg-bdb:focus-visible span {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---------- Subvenciones y ayudas ---------- */
body.hg .vvay {
	position: relative;
	background:
		radial-gradient(55% 60% at 100% 0, rgba(180, 67, 47, .06), transparent 70%),
		var(--vv-pie-fondo);
	border-bottom: 1px solid rgba(255, 255, 255, .07);
}

body.hg .vvay__texto {
	color: rgba(255, 255, 255, .78);
}

/* ---------- Enlaces extra en pie y menú móvil ---------- */
body.hg .vvsd-enlace-pie a svg,
body.hg .vvsd-enlace-movil a svg {
	display: none;
}

/* ---------- Ferretería: sección anexa ---------- */
body .hg-sec--anexo .hg-sec__ico {
	background: linear-gradient(145deg, #ffe07a, #ffc928);
	box-shadow: 0 18px 30px -12px rgba(201, 150, 0, .7), inset 0 0 0 4px rgba(255, 255, 255, .35);
}

body .hg-sec--anexo .hg-sec__ico svg [stroke] {
	stroke: var(--hg-azul);
}

body .hg-sec--anexo .hg-sec__ico svg [fill="#fff"] {
	fill: var(--hg-azul);
}

body .hg-sec--anexo .hg-sec__ico svg [fill="#ffd04d"] {
	fill: var(--hg-rojo);
}

body .hg-otras__anexo i {
	background: #ffd04d;
	color: var(--hg-azul);
}

body .hg-otras__anexo a:hover i,
body .hg-otras__anexo a:focus-visible i {
	background: #ffd04d;
	color: var(--hg-azul);
}

body .hg-mega__item--anexo .hg-mega__ico {
	background: #ffd04d;
	color: var(--hg-azul);
}

body .hg-mega__item--anexo:hover .hg-mega__ico,
body .hg-mega__item--anexo:focus-visible .hg-mega__ico {
	background: #ffc928;
	color: var(--hg-azul);
}

body.hg .hg-sub-movil .hg-movil-anexo svg {
	padding: 3px;
	border-radius: 8px;
	background: #ffd04d;
	color: var(--hg-azul);
}

body .vvsd-elegir__op--anexo svg {
	padding: 4px;
	border-radius: 9px;
	background: #ffd04d;
	color: var(--hg-azul) !important;
}

/* ---------- Textos legales ---------- */
body .hg-phero--legal {
	min-height: clamp(260px, 26vw, 340px);
}

body .hg-legal {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	align-items: start;
	gap: clamp(28px, 4vw, 64px);
}

body .hg-legal__lado {
	position: sticky;
	top: 120px;
	display: grid;
	gap: 22px;
}

body .hg-legal__menu,
body .hg-legal__indice {
	padding: 20px;
	border-radius: 18px;
	background: var(--hg-hormigon);
}

body .hg-legal__menu-t {
	margin: 0 0 10px;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--hg-rojo);
}

body .hg-legal__menu ul,
body .hg-legal__indice ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 2px;
}

body .hg-legal__menu a,
body .hg-legal__indice a {
	display: block;
	padding: 7px 10px;
	border-radius: 10px;
	color: var(--hg-azul);
	text-decoration: none;
	line-height: 1.3;
	transition: background-color .2s ease;
}

body .hg-legal__menu a {
	font-weight: 600;
}

body .hg-legal__indice a {
	font-size: .92rem;
	color: #45516b;
}

body .hg-legal__menu a:hover,
body .hg-legal__indice a:hover,
body .hg-legal__menu a:focus-visible,
body .hg-legal__indice a:focus-visible {
	background: #fff;
}

body .hg-legal__menu a[aria-current="page"] {
	background: var(--hg-azul);
	color: #fff;
}

body .hg-legal__texto {
	max-width: 820px;
	color: #33415c;
	line-height: 1.7;
}

body .hg-legal .vvlg__titulo {
	display: none;
}

body .hg-legal .vvlg h2 {
	scroll-margin-top: 130px;
	margin: 34px 0 14px;
	padding-top: 26px;
	border-top: 1px solid var(--hg-linea);
	font-size: clamp(1.4rem, 2.2vw, 1.8rem);
	text-transform: uppercase;
	color: var(--hg-azul);
}

body .hg-legal .vvlg > h2:first-of-type {
	margin-top: 10px;
}

body .hg-legal .vvlg p,
body .hg-legal .vvlg ul,
body .hg-legal .vvlg ol {
	margin: 0 0 12px;
}

body .hg-legal .vvlg ul,
body .hg-legal .vvlg ol {
	padding-left: 1.2em;
}

body .hg-legal .vvlg h3 {
	margin: 20px 0 8px;
	font-size: 1.05rem;
	color: var(--hg-azul);
}

body .hg-legal .vvlg a:not(.hg-btn) {
	color: var(--hg-rojo);
	text-underline-offset: 3px;
}

body .hg-legal .vvlg-gestor {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 0 22px;
	border: 0;
	border-radius: 999px;
	background: var(--hg-rojo);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

body .hg-legal .vvlg-gestor:hover,
body .hg-legal .vvlg-gestor:focus-visible {
	background: var(--hg-azul);
}

body .hg-legal .vvlg__fecha {
	font-size: .9rem;
	color: #6b7489;
}

body .hg-legal__parte {
	scroll-margin-top: 130px;
	padding-bottom: 26px;
	margin-bottom: 26px;
	border-bottom: 1px solid var(--hg-linea);
}

body .hg-legal__parte:last-of-type {
	border-bottom: 0;
}

body .hg-legal__parte h2 {
	margin: 0 0 14px;
	font-size: clamp(1.5rem, 2.4vw, 1.9rem);
	text-transform: uppercase;
	color: var(--hg-azul);
}

body .hg-legal__parte p,
body .hg-legal__parte ul {
	margin: 0 0 12px;
}

body .hg-legal__parte ul {
	padding-left: 1.2em;
}

body .hg-legal__parte a:not(.hg-btn) {
	color: var(--hg-rojo);
	text-underline-offset: 3px;
}

body .hg-legal__datos {
	list-style: none;
	padding: 18px 20px !important;
	border-left: 4px solid var(--hg-rojo);
	border-radius: 0 14px 14px 0;
	background: var(--hg-hormigon);
}

body .hg-legal__datos li + li {
	margin-top: 4px;
}

body .hg-legal__datos a {
	color: inherit !important;
}

body .hg-legal__fecha {
	font-size: .9rem;
	color: #6b7489;
}

body .hg-legal .vv-cookies-lista__titulo {
	margin: 22px 0 6px;
	font-size: 1.05rem;
	color: var(--hg-azul);
}

body .hg-legal .vv-cookies-lista__tabla {
	overflow-x: auto;
	margin: 10px 0 18px;
	border: 1px solid var(--hg-linea);
	border-radius: 14px;
}

body .hg-legal .vv-cookies-lista table {
	width: 100%;
	border-collapse: collapse;
	font-size: .9rem;
}

body .hg-legal .vv-cookies-lista th,
body .hg-legal .vv-cookies-lista td {
	padding: 10px 12px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--hg-linea);
}

body .hg-legal .vv-cookies-lista th {
	background: var(--hg-hormigon);
	color: var(--hg-azul);
	font-weight: 700;
}

body .hg-legal .vv-cookies-lista tr:last-child td {
	border-bottom: 0;
}

@media only screen and (max-width: 959px) {
	body .hg-legal {
		grid-template-columns: 1fr;
	}

	body .hg-legal__lado {
		position: static;
	}

	body .hg-legal__indice {
		display: none;
	}

	body .hg-legal__menu ul {
		display: flex;
		flex-wrap: wrap;
		gap: 6px;
	}

	body .hg-legal__menu a {
		background: #fff;
	}

	body .hg-legal .vv-cookies-lista thead {
		display: none;
	}

	body .hg-legal .vv-cookies-lista tr {
		display: block;
		padding: 10px 12px;
		border-bottom: 1px solid var(--hg-linea);
	}

	body .hg-legal .vv-cookies-lista tr:last-child {
		border-bottom: 0;
	}

	body .hg-legal .vv-cookies-lista td {
		display: grid;
		grid-template-columns: 88px minmax(0, 1fr);
		gap: 8px;
		padding: 3px 0;
		border: 0;
	}

	body .hg-legal .vv-cookies-lista td::before {
		content: attr(data-l);
		font-weight: 700;
		color: var(--hg-azul);
	}
}

/* Peso máximo 700 en textos (las condensadas a 800 juntan los trazos) */
body.hg b,
body.hg strong,
body.hg .vvsd-pie__nombre,
body.hg .vv-tel--principal {
	font-weight: 700;
}
