/**
 * GVM Grupo Gevemac · componentes del sistema visual.
 * Tokens (colores, fuentes, tamaños) en theme.json → variables --wp--preset--*.
 * Curva única de movimiento: cubic-bezier(.2,.7,.2,1). Con "reducir movimiento" todo queda quieto.
 */

:root {
	--gvm-primario: var(--wp--preset--color--primario, #00338f);
	--gvm-secundario: var(--wp--preset--color--secundario, #ff7000);
	--gvm-acento: var(--wp--preset--color--acento, #00215c);
	--gvm-texto: var(--wp--preset--color--texto, #1d2021);
	--gvm-gris-1: var(--wp--preset--color--gris-1, #6c6f70);
	--gvm-gris-2: var(--wp--preset--color--gris-2, #8d8f8d);
	--gvm-gris-4: var(--wp--preset--color--gris-4, #b6b8b4);
	--gvm-gris-5: var(--wp--preset--color--gris-5, #d1d1cd);
	--gvm-fondo: var(--wp--preset--color--fondo, #f5f5f3);
	--gvm-tinte: var(--wp--preset--color--tinte, #eaf0fa);
	--gvm-naranja-claro: var(--wp--preset--color--naranja-claro, #ffb07a);
	--gvm-condensada: var(--wp--preset--font-family--barlow-semi-condensed, 'Barlow Semi Condensed', sans-serif);
	--gvm-curva: cubic-bezier(0.2, 0.7, 0.2, 1);
	--gvm-radio: 4px;
	--gvm-espacio: clamp(56px, 7vw, 96px);
	--gvm-sombra: 0 16px 32px -18px rgba(0, 33, 92, 0.45);
	--gvm-rayas: repeating-linear-gradient(135deg, #deded9 0 1px, transparent 1px 12px), #f1f1ee;

	/* Íconos (máscaras SVG) */
	--gvm-i-flecha: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--gvm-i-camion: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h11v10H3zM14 10h4l3 3v3h-7'/%3E%3Ccircle cx='7' cy='18' r='1.6'/%3E%3Ccircle cx='17' cy='18' r='1.6'/%3E%3C/svg%3E");
	--gvm-i-telefono: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 005 5L15 13l5 2v4a2 2 0 01-2 2A16 16 0 013 6a2 2 0 012-2z'/%3E%3C/svg%3E");
	--gvm-i-menu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E");
	--gvm-i-caja: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8l9-5 9 5v8l-9 5-9-5zM3 8l9 5 9-5M12 13v8'/%3E%3C/svg%3E");
	--gvm-i-engranaje: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 3v3M12 18v3M3 12h3M18 12h3M5.6 5.6l2.1 2.1M16.3 16.3l2.1 2.1M18.4 5.6l-2.1 2.1M7.7 16.3l-2.1 2.1'/%3E%3C/svg%3E");
	--gvm-i-montana: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20l6-10 4 6 3-4 5 8z'/%3E%3C/svg%3E");
	--gvm-i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.2 7-11a7 7 0 10-14 0c0 4.8 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
	--gvm-i-usuario: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c0-4 3.6-6 8-6s8 2 8 6'/%3E%3C/svg%3E");
}

/* ---------- Base ---------- */

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.wp-site-blocks > * {
	margin-block-start: 0;
}

/* Contenedores del tema: el espaciado lo dan gap/padding, no los márgenes automáticos de WordPress. */
[class*="gvm-"]:is(.wp-block-group) > *,
.gvm-main--secciones > .wp-block-post-content > * {
	margin-block: 0;
}

.gvm-wrap {
	box-sizing: border-box;
	width: 100%;
	max-width: 1360px;
	margin-inline: auto;
	padding-inline: clamp(16px, 3vw, 40px);
}

.gvm-main {
	min-height: 40vh;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--gvm-secundario);
	outline-offset: 2px;
}

.gvm-svg {
	flex: none;
	display: block;
}

.gvm-label,
.gvm-eyebrow,
.is-style-etiqueta {
	font-family: var(--gvm-condensada);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gvm-gris-1);
	line-height: 1.3;
}

.gvm-eyebrow,
p.is-style-etiqueta {
	display: flex;
	align-items: center;
	gap: 10px;
	letter-spacing: 0.14em;
	color: var(--gvm-primario);
	margin: 0;
}

.gvm-eyebrow::before,
p.is-style-etiqueta::before {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	background: var(--gvm-secundario);
}

.gvm-etiqueta-clara,
p.is-style-etiqueta.gvm-etiqueta-clara {
	color: var(--gvm-naranja-claro);
}

.gvm-texto-gris {
	color: var(--gvm-gris-1);
}

.gvm-placeholder-txt {
	font-family: var(--gvm-condensada);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--gvm-gris-1);
	margin: 0;
}

/* ---------- Botones ---------- */

.wp-block-button .wp-block-button__link,
.gvm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	box-sizing: border-box;
	text-decoration: none;
	transition: transform 0.2s var(--gvm-curva), box-shadow 0.2s, background-color 0.2s, color 0.2s;
}

.wp-block-button .wp-block-button__link:hover,
.gvm-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 22px -12px rgba(0, 33, 92, 0.6);
}

.gvm-btn {
	padding: 0 22px;
	border: 2px solid transparent;
	border-radius: var(--gvm-radio);
	font-weight: 700;
	font-size: 16px;
	line-height: 1.2;
	font-family: inherit;
	cursor: pointer;
}

.gvm-btn--primario {
	background: var(--gvm-primario);
	color: #fff;
}

.gvm-btn--primario:hover {
	background: var(--gvm-acento);
	color: #fff;
}

.wp-block-button.is-style-naranja .wp-block-button__link,
.gvm-btn--naranja {
	background: var(--gvm-secundario);
	color: var(--gvm-acento);
}

.wp-block-button.is-style-naranja .wp-block-button__link:hover,
.gvm-btn--naranja:hover {
	background: #ff8526;
	color: var(--gvm-acento);
}

.wp-block-button.is-style-contorno .wp-block-button__link,
.gvm-btn--contorno {
	background: transparent;
	border: 2px solid var(--gvm-primario);
	color: var(--gvm-primario);
}

.wp-block-button.is-style-contorno .wp-block-button__link:hover,
.gvm-btn--contorno:hover {
	background: var(--gvm-tinte);
	color: var(--gvm-acento);
}

.gvm-btn--fondo-blanco {
	background: #fff;
}

.wp-block-button.is-style-contorno-blanco .wp-block-button__link {
	background: transparent;
	border: 2px solid #fff;
	color: #fff;
}

.wp-block-button.is-style-contorno-blanco .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
}

.gvm-btn--bloque {
	width: 100%;
}

.gvm-btn--grande {
	min-height: 58px;
	font-size: 18px;
	font-weight: 800;
}

.gvm-boton-flecha .wp-block-button__link::after,
p.is-style-enlace-flecha a::after {
	content: "";
	width: 20px;
	height: 20px;
	flex: none;
	background: currentColor;
	-webkit-mask: var(--gvm-i-flecha) center / contain no-repeat;
	mask: var(--gvm-i-flecha) center / contain no-repeat;
	transition: transform 0.25s var(--gvm-curva);
}

.gvm-boton-flecha .wp-block-button__link:hover::after,
p.is-style-enlace-flecha a:hover::after {
	transform: translateX(4px);
}

p.is-style-enlace-flecha {
	margin: 0;
}

p.is-style-enlace-flecha a,
.gvm-link-flecha {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	font-size: 16px;
	font-weight: 700;
	color: var(--gvm-primario);
	text-decoration: none;
}

p.is-style-enlace-flecha a::after {
	width: 18px;
	height: 18px;
}

.gvm-link-flecha .gvm-svg {
	transition: transform 0.25s var(--gvm-curva);
}

.gvm-link-flecha:hover .gvm-svg {
	transform: translateX(4px);
}

/* ---------- Campos ---------- */

.gvm-campo {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 14px;
	font-weight: 600;
	color: var(--gvm-texto);
}

.gvm-campo input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.gvm-campo select,
.gvm-campo textarea,
.gvm-filtros__precio input,
.gvm-barra__orden select {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 0 12px;
	border: 1px solid var(--gvm-gris-2);
	border-radius: var(--gvm-radio);
	background: #fff;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.4;
	font-family: inherit;
	color: var(--gvm-texto);
}

.gvm-campo textarea {
	padding: 12px 14px;
	min-height: 120px;
	resize: vertical;
}

.gvm-campo input:disabled,
.gvm-campo select:disabled {
	background: var(--gvm-fondo);
}

.gvm-campo--archivo input[type="file"] {
	padding: 12px;
	border: 1px dashed var(--gvm-gris-2);
	border-radius: var(--gvm-radio);
	font: inherit;
	font-weight: 400;
}

.gvm-ayuda {
	margin: 0;
	font-size: 14px;
	color: var(--gvm-gris-1);
}

.gvm-trampa {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Selector de cantidad − n + */
.gvm-qty,
.quantity.gvm-qty {
	display: inline-flex;
	align-items: center;
	flex: none;
	height: 48px;
	border: 1px solid var(--gvm-gris-2);
	border-radius: var(--gvm-radio);
	background: #fff;
}

.gvm-qty__btn {
	width: 40px;
	height: 100%;
	border: 0;
	background: transparent;
	font-weight: 600;
	font-size: 20px;
	line-height: 1;
	font-family: inherit;
	color: var(--gvm-texto);
	cursor: pointer;
}

.gvm-qty__btn:hover {
	color: var(--gvm-primario);
}

.gvm-qty input,
.gvm-qty .qty {
	width: 40px;
	min-width: 0;
	height: 100%;
	padding: 0;
	border: 0 !important;
	background: transparent;
	text-align: center;
	font-weight: 700;
	font-size: 16px;
	line-height: 1;
	font-family: inherit;
	color: var(--gvm-texto);
	-moz-appearance: textfield;
	box-shadow: none !important;
}

.gvm-qty input::-webkit-outer-spin-button,
.gvm-qty input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* ---------- Encabezado ---------- */

.gvm-header {
	position: relative;
	z-index: 50;
	background: #fff;
	color: var(--gvm-texto);
}

.gvm-topbar {
	background: var(--gvm-primario);
	color: #fff;
}

.gvm-topbar__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 32px;
	min-height: 38px;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.gvm-topbar p {
	margin: 0;
	font-size: 13px;
	line-height: 1.3;
}

.gvm-topbar a {
	color: #fff;
	text-decoration: none;
}

.gvm-topbar a:hover {
	text-decoration: underline;
}

.gvm-topbar__envio {
	display: flex;
	align-items: center;
	gap: 8px;
}

.gvm-topbar__envio::before {
	content: "";
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: var(--gvm-i-camion) center / contain no-repeat;
	mask: var(--gvm-i-camion) center / contain no-repeat;
}

.gvm-topbar__iva {
	margin-left: auto !important;
}

.gvm-header__main {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 40px;
	min-height: 88px;
}

.gvm-header__logo {
	flex: none;
	margin: 0;
	line-height: 0;
}

.gvm-header__logo img {
	width: auto !important;
	height: 42px !important;
}

.gvm-search {
	position: relative;
	flex: 1 1 420px;
	max-width: 640px;
	display: flex;
	align-items: stretch;
	height: 52px;
	border: 2px solid var(--gvm-primario);
	border-radius: var(--gvm-radio);
	background: #fff;
	box-sizing: border-box;
	transition: box-shadow 0.2s;
}

.gvm-search:focus-within {
	box-shadow: 0 0 0 4px rgba(0, 51, 143, 0.16);
}

.gvm-search__cat {
	flex: none;
	max-width: 210px;
	padding: 0 14px;
	border: 0;
	border-right: 1px solid var(--gvm-gris-5);
	border-radius: 2px 0 0 2px;
	background: var(--gvm-fondo);
	font-weight: 600;
	font-size: 14px;
	font-family: inherit;
	color: var(--gvm-texto);
}

.gvm-search__input {
	flex: 1;
	min-width: 0;
	padding: 0 16px;
	border: 0;
	background: transparent;
	font-weight: 400;
	font-size: 16px;
	font-family: inherit;
	color: var(--gvm-texto);
	outline: none;
}

.gvm-search__btn {
	flex: none;
	width: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: var(--gvm-secundario);
	color: var(--gvm-acento);
	cursor: pointer;
}

.gvm-acciones {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 8px;
}

.gvm-acciones__link {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 48px;
	padding: 0 12px;
	font-size: 14px;
	font-weight: 600;
	color: var(--gvm-texto);
	text-decoration: none;
	transition: color 0.2s;
}

.gvm-acciones__link:hover {
	color: var(--gvm-primario);
}

.gvm-acciones__link::after,
.gvm-menu__lista > li > a::after {
	content: "";
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: 8px;
	height: 2px;
	background: var(--gvm-secundario);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s var(--gvm-curva);
}

.gvm-acciones__link:hover::after,
.gvm-menu__lista > li > a:hover::after {
	transform: scaleX(1);
}

.gvm-acciones__carro {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 0 16px;
	border-radius: var(--gvm-radio);
	background: var(--gvm-primario);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s, transform 0.2s var(--gvm-curva);
}

.gvm-acciones__carro:hover {
	background: var(--gvm-acento);
	color: #fff;
	transform: translateY(-1px);
}

.gvm-badge-num {
	box-sizing: border-box;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 11px;
	background: var(--gvm-secundario);
	color: var(--gvm-acento);
	font-size: 12px;
	font-weight: 800;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.gvm-badge-num[hidden] {
	display: none;
}

.gvm-badge-num.is-pop {
	animation: gvm-pop 0.5s cubic-bezier(0.3, 1.6, 0.5, 1);
}

.gvm-header__nav {
	border-top: 1px solid var(--gvm-gris-5);
	border-bottom: 1px solid var(--gvm-gris-5);
}

.gvm-header__nav-inner {
	display: flex;
	align-items: stretch;
	gap: 0 16px;
	min-height: 52px;
}

/* Menú del encabezado (Apariencia → Menús) */
.gvm-menu {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	align-items: stretch;
}

.gvm-menu__barra {
	display: none;
}

.gvm-menu__lineas {
	position: relative;
	display: flex;
	align-items: stretch;
	margin-right: 16px;
	background: var(--gvm-fondo);
	border-left: 1px solid var(--gvm-gris-5);
	border-right: 1px solid var(--gvm-gris-5);
}

.gvm-menu__lineas-link {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 0 4px 0 20px;
	font-size: 15px;
	font-weight: 700;
	color: var(--gvm-primario);
	text-decoration: none;
	white-space: nowrap;
}

.gvm-menu__lineas-link::before {
	content: "";
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: var(--gvm-i-menu) center / contain no-repeat;
	mask: var(--gvm-i-menu) center / contain no-repeat;
}

.gvm-menu__lineas-btn {
	display: flex;
	align-items: center;
	padding: 0 14px 0 6px;
	border: 0;
	background: transparent;
	color: var(--gvm-primario);
	cursor: pointer;
}

.gvm-menu__lineas-btn .gvm-svg,
.gvm-menu__toggle .gvm-svg {
	rotate: 90deg;
	transition: rotate 0.25s var(--gvm-curva);
}

.gvm-menu__lineas:hover .gvm-menu__lineas-btn .gvm-svg,
.gvm-menu__lineas.is-abierto .gvm-menu__lineas-btn .gvm-svg,
.gvm-menu__toggle[aria-expanded="true"] .gvm-svg {
	rotate: -90deg;
}

.gvm-menu__panel {
	position: absolute;
	top: 100%;
	left: -1px;
	z-index: 60;
	box-sizing: border-box;
	width: min(640px, calc(100vw - 32px));
	padding: 8px 12px 12px;
	border: 1px solid var(--gvm-gris-5);
	border-radius: 0 0 var(--gvm-radio) var(--gvm-radio);
	background: #fff;
	box-shadow: var(--gvm-sombra);
	visibility: hidden;
	opacity: 0;
	translate: 0 6px;
	transition: opacity 0.2s, translate 0.25s var(--gvm-curva), visibility 0.2s;
}

.gvm-menu__lineas:hover .gvm-menu__panel,
.gvm-menu__lineas:focus-within .gvm-menu__panel,
.gvm-menu__lineas.is-abierto .gvm-menu__panel {
	visibility: visible;
	opacity: 1;
	translate: 0 0;
}

.gvm-menu__ver-todo {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	margin-bottom: 8px;
	padding: 0 8px;
	border-bottom: 1px solid var(--gvm-gris-5);
	font-size: 15px;
	font-weight: 700;
	color: var(--gvm-primario);
	text-decoration: none;
}

.gvm-menu__lineas-lista {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2px 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gvm-linea-item a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px;
	border-radius: var(--gvm-radio);
	color: var(--gvm-texto);
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s;
}

.gvm-linea-item a:hover {
	background: var(--gvm-tinte);
	color: var(--gvm-primario);
}

.gvm-linea-item__foto {
	flex: none;
	width: 40px;
	height: 40px;
	overflow: hidden;
	border: 1px solid var(--gvm-gris-5);
	border-radius: var(--gvm-radio);
	background: var(--gvm-rayas);
}

.gvm-linea-item__foto img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gvm-linea-item__texto {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.gvm-linea-item__num {
	font-family: var(--gvm-condensada);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	color: var(--gvm-gris-1);
}

.gvm-linea-item__nombre {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.25;
}

.gvm-menu__principal {
	display: flex;
	align-items: stretch;
	min-width: 0;
}

.gvm-menu__lista {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gvm-menu__lista > li {
	position: relative;
	display: flex;
}

.gvm-menu__lista a {
	position: relative;
	display: flex;
	align-items: center;
	padding: 0 14px;
	min-height: 52px;
	font-size: 15px;
	font-weight: 600;
	color: var(--gvm-texto);
	text-decoration: none;
	transition: color 0.2s;
}

.gvm-menu__lista a:hover,
.gvm-menu__lista .current-menu-item > a {
	color: var(--gvm-primario);
}

.gvm-menu__ofertas > a::before {
	content: "";
	width: 8px;
	height: 8px;
	margin-right: 8px;
	background: var(--gvm-secundario);
}

.gvm-menu__lista .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 60;
	min-width: 240px;
	margin: 0;
	padding: 8px 0;
	list-style: none;
	border: 1px solid var(--gvm-gris-5);
	border-radius: 0 0 var(--gvm-radio) var(--gvm-radio);
	background: #fff;
	box-shadow: var(--gvm-sombra);
	visibility: hidden;
	opacity: 0;
	transition: opacity 0.2s, visibility 0.2s;
}

.gvm-menu__lista li:hover > .sub-menu,
.gvm-menu__lista li:focus-within > .sub-menu {
	visibility: visible;
	opacity: 1;
}

.gvm-menu__lista .sub-menu a {
	min-height: 40px;
	padding: 8px 20px;
}

.gvm-menu__lista .sub-menu a:hover {
	background: var(--gvm-tinte);
}

/* Celular y tablet: dos botones (Menú | Líneas) que despliegan su lista hacia abajo */
@media (max-width: 899px) {
	.gvm-header__nav-inner {
		display: block;
		min-height: 0;
		padding-inline: 0;
	}
	.gvm-menu {
		display: block;
	}
	.gvm-menu__barra {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}
	.gvm-menu__toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		min-height: 52px;
		border: 0;
		background: #fff;
		font-family: inherit;
		font-size: 16px;
		font-weight: 700;
		color: var(--gvm-texto);
		cursor: pointer;
	}
	.gvm-menu__toggle--menu {
		border-right: 1px solid var(--gvm-gris-5);
	}
	.gvm-menu__toggle--menu::before {
		content: "";
		width: 22px;
		height: 22px;
		background: currentColor;
		-webkit-mask: var(--gvm-i-menu) center / contain no-repeat;
		mask: var(--gvm-i-menu) center / contain no-repeat;
	}
	.gvm-menu__toggle--lineas {
		background: var(--gvm-fondo);
		color: var(--gvm-primario);
	}
	.gvm-menu__toggle[aria-expanded="true"] {
		color: var(--gvm-primario);
		box-shadow: inset 0 -3px 0 var(--gvm-secundario);
	}
	.gvm-menu__lineas {
		display: block;
		margin: 0;
		border: 0;
		background: none;
	}
	.gvm-menu__lineas-link,
	.gvm-menu__lineas-btn {
		display: none;
	}
	.gvm-menu__panel,
	.gvm-menu__principal {
		display: none;
	}
	.gvm-menu__panel.is-abierto,
	.gvm-menu__principal.is-abierto {
		display: block;
		animation: gvm-desplegar 0.25s var(--gvm-curva);
	}
	.gvm-menu__panel {
		position: static;
		width: auto;
		padding: 12px 16px 16px;
		border: 0;
		border-top: 1px solid var(--gvm-gris-5);
		border-radius: 0;
		background: var(--gvm-fondo);
		box-shadow: none;
		visibility: visible;
		opacity: 1;
		translate: none;
		transition: none;
	}
	/* Las líneas en celular: tarjetas con foto, distintas del menú de texto */
	.gvm-menu__lineas-lista {
		gap: 8px;
	}
	.gvm-linea-item a {
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
		height: 100%;
		box-sizing: border-box;
		padding: 8px 8px 12px;
		border: 1px solid var(--gvm-gris-5);
		background: #fff;
	}
	.gvm-linea-item__foto {
		width: 100%;
		height: auto;
		aspect-ratio: 16 / 10;
	}
	.gvm-menu__ver-todo {
		justify-content: center;
		min-height: 48px;
		margin-bottom: 12px;
		border: 2px solid var(--gvm-primario);
		border-radius: var(--gvm-radio);
		background: #fff;
	}
	.gvm-menu__principal {
		padding: 4px 16px 12px;
		border-top: 1px solid var(--gvm-gris-5);
	}
	.gvm-menu__lista {
		flex-direction: column;
		gap: 0;
	}
	.gvm-menu__lista > li {
		flex-direction: column;
		border-bottom: 1px solid var(--gvm-gris-5);
	}
	.gvm-menu__lista > li:last-child {
		border-bottom: 0;
	}
	.gvm-menu__lista a {
		padding: 0;
		font-size: 17px;
	}
	.gvm-menu__lista > li > a::after {
		display: none;
	}
	.gvm-menu__lista .sub-menu {
		position: static;
		min-width: 0;
		padding: 0 0 8px 16px;
		border: 0;
		box-shadow: none;
		visibility: visible;
		opacity: 1;
	}
	.gvm-menu__lista .sub-menu a {
		min-height: 44px;
		padding: 0;
		font-size: 15px;
	}
}

@keyframes gvm-desplegar {
	from {
		opacity: 0;
		translate: 0 -8px;
	}
	to {
		opacity: 1;
		translate: 0 0;
	}
}

.gvm-header__ayuda {
	margin: 0 0 0 auto !important;
	display: flex;
	align-items: center;
}

.gvm-header__ayuda a {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--gvm-gris-1);
	text-decoration: none;
	white-space: nowrap;
}

.gvm-header__ayuda a:hover {
	color: var(--gvm-primario);
}

.gvm-header__ayuda a::before {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: var(--gvm-i-telefono) center / contain no-repeat;
	mask: var(--gvm-i-telefono) center / contain no-repeat;
}

@media (max-width: 1180px) {
	.gvm-header__ayuda {
		display: none;
	}
}

@media (max-width: 1023px) {
	.gvm-header__main {
		gap: 12px 16px;
		padding-block: 12px;
		min-height: 0;
	}
	.gvm-search {
		order: 3;
		flex: 1 1 100%;
		max-width: none;
	}
}

@media (max-width: 599px) {
	.gvm-topbar__inner {
		flex-wrap: nowrap;
		justify-content: center;
		gap: 0;
		height: 34px;
		min-height: 34px;
		overflow: hidden;
	}
	.gvm-topbar p {
		font-size: 12px;
		white-space: nowrap;
	}
	.gvm-topbar__envio::before,
	.gvm-topbar__wsp {
		display: none !important;
	}
	.gvm-topbar__iva {
		margin-left: 0 !important;
	}
	.gvm-topbar__iva::before {
		content: "·";
		margin: 0 6px;
	}
	.gvm-header__main {
		padding: 8px 4px 12px 16px;
		gap: 8px 0;
	}
	.gvm-header__logo {
		flex: 1;
	}
	.gvm-header__logo img {
		height: 30px !important;
	}
	.gvm-search {
		margin: 4px 12px 0 0;
		height: 48px;
	}
	.gvm-search__cat {
		display: none;
	}
	.gvm-acciones {
		gap: 0;
	}
	.gvm-acciones__txt,
	.gvm-acciones__link::after {
		display: none;
	}
	.gvm-acciones__link {
		padding: 0 10px;
	}
	.gvm-acciones__carro {
		padding: 0 10px;
		background: transparent;
		color: var(--gvm-primario);
	}
	.gvm-acciones__carro:hover {
		background: transparent;
		color: var(--gvm-acento);
	}
	.gvm-acciones__carro .gvm-badge-num {
		position: absolute;
		top: 4px;
		right: 0;
		min-width: 20px;
		height: 20px;
		font-size: 11px;
		padding: 0 5px;
	}
}

/* ---------- Portada (hero) y retícula ---------- */

.gvm-reticula {
	background-color: var(--gvm-primario);
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
	background-size: 56px 56px;
	animation: gvm-reticula-mover 60s linear infinite;
	color: #fff;
}

.gvm-reticula--oscura {
	background-color: var(--gvm-acento);
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
}

.gvm-hero__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 48px 64px;
	padding-top: clamp(40px, 6vw, 72px);
}

.gvm-hero__copy {
	flex: 1 1 560px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.gvm-hero p.is-style-etiqueta {
	color: #fff;
	font-size: 14px;
}

.gvm-hero p.is-style-etiqueta::before {
	width: 10px;
	height: 10px;
}

.gvm-hero__titulo {
	margin: 0;
	color: #fff;
	text-wrap: balance;
}

.gvm-hero__titulo mark {
	background: transparent;
}

.gvm-hero__bajada {
	margin: 0;
	max-width: 540px;
	font-size: 19px;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.88);
}

.gvm-hero .wp-block-buttons {
	gap: 12px;
}

.gvm-hero .gvm-buscador-tecnico {
	flex: 0 1 460px;
	min-width: min(300px, 100%);
	margin-bottom: 56px;
}

.gvm-hero__cifras {
	border-top: 1px solid rgba(255, 255, 255, 0.25);
}

.gvm-cifras {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
}

.gvm-cifra {
	display: flex;
	align-items: baseline;
	gap: 14px;
	padding: 24px 0;
}

.gvm-cifra p {
	margin: 0;
}

.gvm-cifra__num {
	font-size: 36px;
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.1;
}

.gvm-cifra__txt {
	font-size: 15px;
	color: rgba(255, 255, 255, 0.85);
}

@media (max-width: 599px) {
	.gvm-hero__copy {
		gap: 20px;
	}
	.gvm-hero__bajada {
		font-size: 17px;
	}
	.gvm-hero .wp-block-buttons {
		flex-direction: column;
		align-items: stretch;
	}
	.gvm-hero .gvm-buscador-tecnico {
		margin-bottom: 32px;
	}
	.gvm-cifras {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.gvm-cifra {
		flex-direction: column;
		gap: 0;
		padding: 16px 0;
	}
	.gvm-cifra__num {
		font-size: 30px;
	}
}

/* Buscador técnico */
.gvm-buscador-tecnico {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: 28px;
	border-radius: var(--gvm-radio);
	background: #fff;
	color: var(--gvm-texto);
}

.gvm-buscador-tecnico__cabeza {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.gvm-buscador-tecnico__titulo {
	font-size: 26px;
	font-weight: 800;
	line-height: 1.1;
}

.gvm-tabs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-bottom: 1px solid var(--gvm-gris-5);
}

.gvm-tabs__tab {
	min-height: 44px;
	margin-bottom: -1px;
	border: 0;
	border-bottom: 3px solid transparent;
	background: transparent;
	font-weight: 600;
	font-size: 15px;
	font-family: inherit;
	color: var(--gvm-gris-1);
	cursor: pointer;
}

.gvm-tabs__tab[aria-selected="true"] {
	border-bottom-color: var(--gvm-secundario);
	color: var(--gvm-primario);
	font-weight: 700;
}

.gvm-tabs__panel {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.gvm-tabs__panel[hidden] {
	display: none;
}

.gvm-buscador-tecnico__pie {
	margin: 0;
	font-size: 14px;
	color: var(--gvm-gris-1);
}

.gvm-buscador-tecnico__pie a {
	font-weight: 700;
}

/* ---------- Secciones ---------- */

.gvm-seccion {
	padding-top: var(--gvm-espacio);
}

.gvm-seccion + .gvm-seccion--gris,
.gvm-seccion + .gvm-fabricacion,
.gvm-seccion--marcas + .gvm-fabricacion {
	margin-top: var(--gvm-espacio);
}

.gvm-seccion--gris {
	padding-block: clamp(56px, 6vw, 80px);
	background: var(--gvm-fondo);
	border-top: 1px solid var(--gvm-gris-5);
	border-bottom: 1px solid var(--gvm-gris-5);
}

.gvm-seccion-cabeza {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 32px;
	margin-bottom: 40px !important;
}

.gvm-seccion-cabeza__textos {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.gvm-seccion-cabeza__titulo,
h2.gvm-seccion-cabeza__titulo {
	margin: 0;
	font-size: var(--wp--preset--font-size--h2);
	line-height: 1.08;
}

/* Líneas */
.gvm-lineas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr));
	gap: 24px;
}

.gvm-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--gvm-gris-5);
	border-radius: var(--gvm-radio);
	background: #fff;
	color: var(--gvm-texto);
	text-decoration: none;
	transition: transform 0.35s var(--gvm-curva), box-shadow 0.35s var(--gvm-curva), border-color 0.2s;
}

.gvm-tile:hover {
	transform: translateY(-4px);
	box-shadow: var(--gvm-sombra);
	border-color: var(--gvm-primario);
	color: var(--gvm-texto);
}

.gvm-tile__media {
	position: relative;
	display: flex;
	align-items: flex-end;
	height: 210px;
	padding: 14px 16px;
	box-sizing: border-box;
	background: var(--gvm-rayas);
}

.gvm-tile__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gvm-tile__body {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 24px 24px;
}

.gvm-tile__texto {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.gvm-tile__num {
	font-family: var(--gvm-condensada);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.1em;
	color: var(--gvm-gris-1);
}

.gvm-tile__nombre {
	font-size: 22px;
	font-weight: 700;
	line-height: 1.15;
}

.gvm-tile__flecha {
	color: var(--gvm-primario);
}

.gvm-tile__flecha .gvm-svg {
	transition: transform 0.25s var(--gvm-curva);
}

.gvm-tile:hover .gvm-tile__flecha .gvm-svg {
	transform: translateX(4px);
}

.gvm-tile__barra {
	height: 4px;
	margin-top: auto;
	background-color: var(--gvm-gris-5);
	background-image: linear-gradient(var(--gvm-secundario), var(--gvm-secundario));
	background-repeat: no-repeat;
	background-size: 0% 100%;
	transition: background-size 0.45s var(--gvm-curva);
}

.gvm-tile:hover .gvm-tile__barra {
	background-size: 100% 100%;
}

.gvm-tile--final {
	justify-content: space-between;
	gap: 32px;
	min-height: 280px;
	padding: 32px;
	border: 0;
	background: var(--gvm-primario);
	color: #fff;
}

.gvm-tile--final:hover {
	color: #fff;
}

.gvm-tile--final .gvm-label {
	color: var(--gvm-naranja-claro);
	letter-spacing: 0.14em;
	font-size: 14px;
}

.gvm-tile--final__titulo {
	font-size: 32px;
	font-weight: 800;
	line-height: 1.08;
}

.gvm-tile--final__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 16px;
	font-weight: 700;
}

@media (max-width: 599px) {
	.gvm-lineas {
		grid-template-columns: 1fr;
		gap: 0;
		border-top: 1px solid var(--gvm-gris-5);
	}
	.gvm-tile {
		flex-direction: row;
		align-items: center;
		gap: 14px;
		min-height: 76px;
		border: 0;
		border-bottom: 1px solid var(--gvm-gris-5);
		border-radius: 0;
	}
	.gvm-tile:hover {
		transform: none;
		box-shadow: none;
	}
	.gvm-tile__media {
		flex: none;
		width: 56px;
		height: 56px;
		padding: 0;
		border: 1px solid var(--gvm-gris-5);
		border-radius: var(--gvm-radio);
		overflow: hidden;
	}
	.gvm-tile__media .gvm-placeholder-txt,
	.gvm-tile__barra {
		display: none;
	}
	.gvm-tile__body {
		flex: 1;
		padding: 0;
	}
	.gvm-tile__nombre {
		font-size: 18px;
	}
	.gvm-tile--final {
		margin-top: 16px;
		min-height: 0;
		padding: 20px;
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		border-radius: var(--gvm-radio);
	}
	.gvm-tile--final__titulo {
		font-size: 22px;
	}
}

/* Tarjetas con borde (estilo de grupo) y sectores */
.wp-block-group.is-style-tarjeta {
	box-sizing: border-box;
	padding: 32px;
	border: 1px solid var(--gvm-gris-5);
	border-radius: var(--gvm-radio);
	background: #fff;
	transition: transform 0.35s var(--gvm-curva), box-shadow 0.35s var(--gvm-curva), border-color 0.2s;
}

.gvm-sectores {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr));
	gap: 24px;
}

.gvm-sector {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.gvm-sector:hover {
	transform: translateY(-4px);
	box-shadow: var(--gvm-sombra);
	border-color: var(--gvm-primario);
}

.gvm-sector h3 {
	margin: 0;
}

.gvm-sector p {
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
}

.gvm-sector__link {
	margin-top: auto !important;
}

.gvm-icono {
	position: relative;
	flex: none;
	width: 52px;
	height: 52px;
	border-radius: var(--gvm-radio);
	background: var(--gvm-primario);
	color: #fff;
}

.gvm-icono::after {
	content: "";
	position: absolute;
	inset: 12px;
	background: currentColor;
	-webkit-mask: var(--gvm-i) center / contain no-repeat;
	mask: var(--gvm-i) center / contain no-repeat;
}

.gvm-icono--borde {
	width: 48px;
	height: 48px;
	box-sizing: border-box;
	border: 1px solid var(--gvm-gris-5);
	background: transparent;
	color: var(--gvm-primario);
}

.gvm-icono--borde::after {
	inset: 11px;
}

.gvm-icono--caja { --gvm-i: var(--gvm-i-caja); }
.gvm-icono--engranaje { --gvm-i: var(--gvm-i-engranaje); }
.gvm-icono--montana { --gvm-i: var(--gvm-i-montana); }
.gvm-icono--camion { --gvm-i: var(--gvm-i-camion); }
.gvm-icono--pin { --gvm-i: var(--gvm-i-pin); }
.gvm-icono--usuario { --gvm-i: var(--gvm-i-usuario); }
.gvm-icono--telefono { --gvm-i: var(--gvm-i-telefono); }

/* ---------- Tarjeta de producto ---------- */

.gvm-productos {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.gvm-productos .gvm-seccion-cabeza__titulo {
	font-size: clamp(28px, 2rem + 0.6vw, 36px);
}

.gvm-grid-productos {
	--gvm-columnas: 4;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(max(240px, calc((100% - (var(--gvm-columnas) - 1) * 24px) / var(--gvm-columnas))), 1fr));
	gap: 24px;
}

@media (max-width: 559px) {
	.gvm-grid-productos {
		grid-template-columns: 1fr;
	}

	/* 2 columnas en celular: tarjeta compacta del diseño (sin SKU, stock ni cantidad). */
	.gvm-grid-productos.gvm-grid--m2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}
	.gvm-grid--m2 .gvm-card:hover {
		transform: none;
		box-shadow: none;
	}
	.gvm-grid--m2 .gvm-card__body {
		gap: 6px;
		padding: 12px;
	}
	.gvm-grid--m2 .gvm-card__meta,
	.gvm-grid--m2 .gvm-volumen-aviso,
	.gvm-grid--m2 .gvm-agregar .gvm-qty {
		display: none;
	}
	.gvm-grid--m2 .gvm-badge {
		top: 8px;
		left: 8px;
		padding: 3px 7px;
		font-size: 11px;
	}
	.gvm-grid--m2 .gvm-card__title {
		font-size: 15px;
		line-height: 1.25;
	}
	.gvm-grid--m2 .gvm-card__spec {
		font-size: 13px;
		line-height: 1.4;
	}
	.gvm-grid--m2 .gvm-card__spec span {
		display: inline;
	}
	.gvm-grid--m2 .gvm-card__spec span + span::before {
		content: " · ";
	}
	.gvm-grid--m2 .gvm-precio {
		margin-top: 2px;
		gap: 0 6px;
	}
	.gvm-grid--m2 .gvm-precio__monto {
		font-size: 21px;
	}
	.gvm-grid--m2 .gvm-precio__sufijo {
		font-size: 12px;
	}
	.gvm-grid--m2 .gvm-precio__unidad {
		display: none;
	}
	.gvm-grid--m2 .gvm-agregar {
		padding-top: 6px;
	}
	.gvm-grid--m2 .gvm-agregar .gvm-btn,
	.gvm-grid--m2 .gvm-card__ver {
		min-height: 44px;
		padding: 0 8px;
		font-size: 14px;
	}
}

.gvm-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--gvm-gris-5);
	border-radius: var(--gvm-radio);
	background: #fff;
	transition: transform 0.35s var(--gvm-curva), box-shadow 0.35s var(--gvm-curva), border-color 0.2s;
}

.gvm-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--gvm-sombra);
	border-color: var(--gvm-primario);
}

.gvm-card__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	background: var(--gvm-rayas);
	overflow: hidden;
}

.gvm-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gvm-badge {
	position: absolute;
	top: 14px;
	left: 14px;
	padding: 4px 10px;
	border: 1px solid var(--gvm-gris-5);
	border-radius: 2px;
	background: #fff;
	font-family: var(--gvm-condensada);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--gvm-primario);
}

.gvm-card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 20px;
}

.gvm-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.gvm-card__meta .gvm-label {
	font-size: 12px;
	letter-spacing: 0.1em;
}

.gvm-stock {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	font-weight: 600;
	color: var(--gvm-primario);
}

.gvm-stock--outofstock {
	color: #a8321d;
}

.gvm-stock--onbackorder {
	color: var(--gvm-gris-1);
}

.gvm-card__title {
	margin: 0;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0;
}

.gvm-card__title a {
	color: var(--gvm-texto);
	text-decoration: none;
}

.gvm-card__title a:hover {
	color: var(--gvm-primario);
}

.gvm-card__spec span {
	display: block;
}

.gvm-card__spec {
	margin: 0;
	font-size: 14px;
	line-height: 1.45;
	color: var(--gvm-gris-1);
}

.gvm-precio {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 8px;
	margin-top: 4px;
}

.gvm-precio__monto {
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.1;
	color: var(--gvm-primario);
}

.gvm-precio__sufijo {
	font-size: 13px;
	color: var(--gvm-gris-1);
}

.gvm-volumen-aviso {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 10px 12px;
	border-radius: 2px;
	background: var(--gvm-tinte);
	font-size: 13px;
	font-weight: 600;
	color: var(--gvm-acento);
}

.gvm-volumen-aviso::before {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	background: var(--gvm-secundario);
}

.gvm-agregar {
	display: flex;
	gap: 8px;
	margin-top: auto;
	padding-top: 8px;
}

.gvm-agregar .gvm-btn {
	flex: 1;
	min-height: 48px;
	padding: 0 12px;
	font-size: 15px;
}

.gvm-agregar.is-cargando .gvm-btn {
	opacity: 0.7;
	pointer-events: none;
}

.gvm-card__ver {
	margin-top: auto;
	min-height: 48px;
}

/* Vista en lista */
.gvm-grid-productos.is-lista {
	grid-template-columns: 1fr;
}

.gvm-grid-productos.is-lista .gvm-card {
	flex-direction: row;
}

.gvm-grid-productos.is-lista .gvm-card__media {
	flex: none;
	width: clamp(120px, 22%, 220px);
}

.gvm-grid-productos.is-lista .gvm-card__body {
	display: grid;
	grid-template-columns: 1fr auto;
	align-content: center;
	column-gap: 24px;
}

.gvm-grid-productos.is-lista .gvm-card__body > * {
	grid-column: 1;
}

.gvm-grid-productos.is-lista .gvm-precio,
.gvm-grid-productos.is-lista .gvm-agregar,
.gvm-grid-productos.is-lista .gvm-card__ver {
	grid-column: 2;
	justify-self: end;
}

.gvm-grid-productos.is-lista .gvm-precio {
	grid-row: 1 / span 2;
	align-self: end;
}

.gvm-grid-productos.is-lista .gvm-agregar,
.gvm-grid-productos.is-lista .gvm-card__ver {
	grid-row: 3 / span 2;
	min-width: 260px;
}

@media (max-width: 699px) {
	.gvm-grid-productos.is-lista .gvm-card__body {
		display: flex;
	}
}

/* Paginación */
.gvm-paginacion ul.page-numbers,
.gvm-paginacion.wp-block-query-pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 32px 0 8px;
	list-style: none;
}

.gvm-paginacion a.page-numbers,
.gvm-paginacion span.page-numbers {
	box-sizing: border-box;
	min-width: 48px;
	height: 48px;
	padding: 0 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--gvm-gris-5);
	border-radius: var(--gvm-radio);
	font-weight: 600;
	text-decoration: none;
	color: var(--gvm-primario);
}

.gvm-paginacion span.page-numbers.current {
	border-color: var(--gvm-primario);
	background: var(--gvm-primario);
	color: #fff;
	font-weight: 700;
}

.gvm-paginacion span.page-numbers.dots {
	border: 0;
}

.gvm-paginacion li {
	margin: 0;
}

.gvm-paginacion a.page-numbers:hover {
	border-color: var(--gvm-primario);
	background: var(--gvm-tinte);
}

@media (max-width: 559px) {
	.gvm-paginacion ul.page-numbers,
	.gvm-paginacion.wp-block-query-pagination {
		gap: 6px;
		padding-top: 24px;
	}
	.gvm-paginacion a.page-numbers,
	.gvm-paginacion span.page-numbers {
		min-width: 44px;
		height: 44px;
	}
}

.gvm-sin-resultados,
.gvm-vacio {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 48px 24px;
	border: 1px dashed var(--gvm-gris-4);
	border-radius: var(--gvm-radio);
	text-align: center;
}

.gvm-sin-resultados p,
.gvm-vacio p {
	margin: 0;
	max-width: 560px;
}

.gvm-vacio .gvm-btn {
	margin-top: 12px;
}

/* ---------- Marcas ---------- */

.gvm-marcas--banda {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px 48px;
	padding: 36px 0;
	border-top: 1px solid var(--gvm-gris-5);
	border-bottom: 1px solid var(--gvm-gris-5);
}

.gvm-marcas__titulo {
	flex: none;
	letter-spacing: 0.14em;
}

.gvm-marcas__lista {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gvm-marcas--banda .gvm-marcas__lista {
	flex: 1 1 560px;
	justify-content: space-between;
}

.gvm-marcas__item a {
	display: flex;
	align-items: center;
	font-size: 26px;
	font-weight: 800;
	letter-spacing: 0.01em;
	color: var(--gvm-gris-2);
	text-decoration: none;
	transition: color 0.25s, opacity 0.25s;
}

.gvm-marcas__item.is-principal a,
.gvm-marcas__item a:hover {
	color: var(--gvm-primario);
}

.gvm-marcas__logo {
	display: block;
	max-height: 40px;
	width: auto;
	filter: grayscale(1);
	opacity: 0.7;
	transition: filter 0.25s, opacity 0.25s;
}

.gvm-marcas__item a:hover .gvm-marcas__logo {
	filter: none;
	opacity: 1;
}

.gvm-marcas--grilla .gvm-marcas__lista {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 16px;
}

.gvm-marcas--grilla .gvm-marcas__item a {
	justify-content: center;
	min-height: 120px;
	padding: 24px;
	border: 1px solid var(--gvm-gris-5);
	border-radius: var(--gvm-radio);
	font-size: 22px;
	color: var(--gvm-texto);
}

.gvm-marcas--grilla .gvm-marcas__item a:hover {
	border-color: var(--gvm-primario);
	box-shadow: var(--gvm-sombra);
}

.gvm-marcas--grilla .gvm-marcas__logo {
	max-height: 64px;
}

/* ---------- Fabricación a medida ---------- */

.gvm-fabricacion__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 48px 80px;
	padding-block: clamp(56px, 7vw, 88px);
}

.gvm-fabricacion__texto {
	flex: 1 1 440px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.gvm-fabricacion__titulo {
	margin: 0;
	color: #fff;
	font-size: clamp(32px, 2rem + 1.4vw, 46px);
	line-height: 1.05;
	text-wrap: balance;
}

.gvm-fabricacion__bajada {
	margin: 0;
	max-width: 480px;
	font-size: 18px;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.88);
}

.gvm-fabricacion .wp-block-buttons {
	gap: 12px;
}

.gvm-procesos {
	flex: 1 1 440px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
	gap: 0 32px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: gvm-proceso;
}

.gvm-procesos li {
	display: flex;
	align-items: baseline;
	gap: 14px;
	padding: 18px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.25);
	font-size: 18px;
	font-weight: 600;
	counter-increment: gvm-proceso;
	transition: translate 0.3s var(--gvm-curva);
}

.gvm-procesos li::before {
	content: counter(gvm-proceso, decimal-leading-zero);
	font-family: var(--gvm-condensada);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--gvm-secundario);
}

.gvm-procesos li:hover {
	translate: 6px 0;
}

/* ---------- Cobertura ---------- */

.gvm-cobertura {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 48px 80px;
	padding-bottom: var(--gvm-espacio);
}

.gvm-cobertura__texto {
	flex: 1 1 480px;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.gvm-beneficios {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
	gap: 28px 32px;
}

.gvm-beneficio {
	display: flex;
	gap: 16px;
}

.gvm-beneficio__texto {
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
	color: var(--gvm-gris-1);
}

.gvm-beneficio__texto strong {
	display: inline-block;
	margin-bottom: 4px;
	font-size: 18px;
	font-weight: 700;
	color: var(--gvm-texto);
}

.gvm-mapa {
	position: relative;
	flex: 1 1 380px;
	min-height: 440px;
	display: flex;
	align-items: flex-end;
	padding: 18px 20px;
	box-sizing: border-box;
	overflow: hidden;
	border: 1px solid var(--gvm-gris-5);
	border-radius: var(--gvm-radio);
	background: var(--gvm-rayas);
}

.gvm-mapa .wp-block-image,
.gvm-mapa img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
}

/* ---------- Llamados ---------- */

.gvm-cta-final {
	background: var(--gvm-tinte);
}

.gvm-cta-final__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px 48px;
	padding-block: 56px;
}

.gvm-cta-final__texto {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.gvm-cta-final__titulo {
	margin: 0;
	font-size: clamp(28px, 1.6rem + 1vw, 36px);
	line-height: 1.1;
	color: var(--gvm-acento);
}

.gvm-cta-final p {
	margin: 0;
}

.gvm-cta-final .wp-block-buttons {
	gap: 12px;
}

/* Padding (no margin): el contenedor <main> anula los márgenes de sus hijos directos. */
.gvm-cta-volumen {
	padding-block: clamp(48px, 6vw, 72px) var(--gvm-espacio);
}

.gvm-cta-volumen__caja {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px 48px;
	padding: clamp(28px, 4vw, 40px) clamp(24px, 4vw, 48px);
	border-radius: var(--gvm-radio);
	background: var(--gvm-primario);
	color: #fff;
}

.gvm-cta-volumen__texto {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 640px;
}

.gvm-cta-volumen__titulo {
	margin: 0;
	color: #fff;
	font-size: clamp(24px, 1.4rem + 0.8vw, 32px);
	line-height: 1.1;
}

.gvm-cta-volumen p {
	margin: 0;
	font-size: 17px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.88);
}

/* ---------- Cabecera de páginas y tienda ---------- */

.gvm-cabecera {
	background: var(--gvm-fondo);
	border-bottom: 1px solid var(--gvm-gris-5);
}

.gvm-cabecera__inner {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding-block: 24px 40px;
}

.gvm-cabecera--simple > .gvm-wrap {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-block: 40px;
}

.gvm-ruta,
.woocommerce-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--gvm-gris-1);
}

.gvm-ruta a,
.woocommerce-breadcrumb a {
	font-weight: 600;
	text-decoration: none;
}

.gvm-cabecera__fila {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 40px;
}

.gvm-cabecera__texto {
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-width: 680px;
}

.gvm-cabecera__titulo,
h1.gvm-cabecera__titulo {
	margin: 0;
	font-size: clamp(34px, 1.6rem + 2vw, 52px);
	line-height: 1.02;
	letter-spacing: -0.015em;
}

.gvm-cabecera__desc,
.gvm-cabecera__desc p {
	margin: 0;
	font-size: 17px;
	line-height: 1.55;
	color: var(--gvm-gris-1);
}

.gvm-cabecera--pedido .gvm-cabecera__fila {
	align-items: center;
	padding-block: 32px;
}

.gvm-cabecera--pedido .gvm-cabecera__titulo {
	font-size: clamp(32px, 1.6rem + 1.4vw, 44px);
}

.gvm-pagina {
	padding-block: 48px var(--gvm-espacio);
}

.gvm-404 {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	padding-block: var(--gvm-espacio);
}

.gvm-404 h1,
.gvm-404 p {
	margin: 0;
}

.gvm-blog {
	padding-block: 48px var(--gvm-espacio);
}

/* ---------- Tienda: filtros y resultados ---------- */

.gvm-tienda {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 40px;
	padding-top: 40px;
}

.gvm-filtros {
	flex: 0 0 280px;
	max-width: 100%;
}

.gvm-tienda__resultados {
	flex: 1 1 640px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.gvm-filtros__panel {
	border: 1px solid var(--gvm-gris-5);
	border-radius: var(--gvm-radio);
}

.gvm-filtros__cabeza {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 20px;
	background: var(--gvm-fondo);
	border-radius: var(--gvm-radio) var(--gvm-radio) 0 0;
	cursor: pointer;
	list-style: none;
}

.gvm-filtros__panel[open] .gvm-filtros__cabeza {
	border-bottom: 1px solid var(--gvm-gris-5);
}

.gvm-filtros__cabeza::-webkit-details-marker {
	display: none;
}

.gvm-filtros__titulo {
	font-size: 18px;
	font-weight: 800;
}

.gvm-filtros__limpiar {
	font-size: 14px;
	font-weight: 600;
}

.gvm-filtros__grupo {
	margin: 0;
	padding: 20px;
	border: 0;
	border-bottom: 1px solid var(--gvm-gris-5);
}

.gvm-filtros__grupo legend {
	float: left;
	width: 100%;
	margin-bottom: 12px;
	padding: 0;
	font-weight: 700;
}

.gvm-filtros__opciones {
	clear: both;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.gvm-filtros__grupo--chips .gvm-filtros__opciones {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 8px;
}

.gvm-check {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 36px;
	font-size: 15px;
	cursor: pointer;
}

.gvm-check input {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--gvm-primario);
}

.gvm-check input:checked + span {
	font-weight: 700;
}

.gvm-chip {
	position: relative;
	min-height: 0;
}

.gvm-chip input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.gvm-chip span {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 14px;
	border: 1px solid var(--gvm-gris-2);
	border-radius: var(--gvm-radio);
	background: #fff;
	font-size: 14px;
	font-weight: 600;
}

.gvm-chip input:checked + span {
	padding: 0 13px;
	border: 2px solid var(--gvm-primario);
	background: var(--gvm-tinte);
	color: var(--gvm-acento);
	font-weight: 700;
}

.gvm-chip input:focus-visible + span {
	outline: 2px solid var(--gvm-secundario);
	outline-offset: 2px;
}

.gvm-filtros__precio {
	clear: both;
	display: flex;
	align-items: flex-end;
	gap: 8px;
}

.gvm-filtros__precio label {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 13px;
	color: var(--gvm-gris-1);
}

.gvm-filtros__precio input {
	min-height: 44px;
	font-size: 15px;
}

.gvm-filtros__precio > span {
	padding-bottom: 12px;
}

.gvm-filtros__grupo--extra {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.gvm-filtros__acciones {
	padding: 20px;
}

.gvm-barra {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--gvm-gris-5);
}

.gvm-barra__info {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.gvm-barra__total {
	margin-right: 8px;
	font-size: 15px;
	color: var(--gvm-gris-1);
}

.gvm-chip-activo {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 36px;
	padding: 0 12px;
	border-radius: 2px;
	background: var(--gvm-tinte);
	font-size: 14px;
	font-weight: 600;
	color: var(--gvm-acento);
	text-decoration: none;
}

.gvm-chip-activo:hover {
	background: #dce6f7;
	color: var(--gvm-acento);
}

.gvm-barra__controles {
	display: flex;
	align-items: center;
	gap: 12px;
}

.gvm-barra__orden {
	display: flex;
	align-items: center;
	gap: 12px;
}

.gvm-barra__orden label {
	font-size: 14px;
	color: var(--gvm-gris-1);
	white-space: nowrap;
}

.gvm-barra__orden select {
	width: auto;
	min-height: 44px;
	font-size: 15px;
	font-weight: 600;
}

.gvm-vista {
	display: flex;
	overflow: hidden;
	border: 1px solid var(--gvm-gris-2);
	border-radius: var(--gvm-radio);
}

.gvm-vista__btn {
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: #fff;
	color: var(--gvm-texto);
	cursor: pointer;
}

.gvm-vista__btn.is-activo {
	background: var(--gvm-primario);
	color: #fff;
}

@media (max-width: 899px) {
	.gvm-filtros {
		flex: 1 1 100%;
	}
	.gvm-tienda {
		gap: 24px;
	}
}

@media (max-width: 599px) {
	.gvm-barra__orden label,
	.gvm-vista {
		display: none;
	}
}

/* ---------- Ficha de producto ---------- */

.gvm-producto-ruta {
	padding-top: 24px;
}

.gvm-producto {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	align-items: start;
	gap: 48px 64px;
	padding-top: 32px;
}

@media (max-width: 899px) {
	.gvm-producto {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}

.gvm-producto__galeria .woocommerce-product-gallery {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
}

.gvm-producto__galeria .woocommerce-product-gallery__wrapper,
.gvm-producto__galeria .flex-viewport {
	border: 1px solid var(--gvm-gris-5);
	border-radius: var(--gvm-radio);
	overflow: hidden;
	background: var(--gvm-rayas);
}

.gvm-producto__galeria .flex-control-thumbs {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin: 16px 0 0 !important;
	padding: 0;
}

.gvm-producto__galeria .flex-control-thumbs li {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

.gvm-producto__galeria .flex-control-thumbs img {
	border: 1px solid var(--gvm-gris-5);
	border-radius: var(--gvm-radio);
	opacity: 1 !important;
}

.gvm-producto__galeria .flex-control-thumbs img.flex-active {
	border: 2px solid var(--gvm-primario);
}

.gvm-producto__info {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.gvm-producto-cabecera {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
}

.gvm-producto-cabecera .gvm-stock {
	font-size: 14px;
	font-weight: 700;
}

.gvm-producto__titulo,
h1.gvm-producto__titulo {
	margin: -12px 0 0 !important;
	font-size: clamp(30px, 1.4rem + 1.6vw, 44px);
	line-height: 1.05;
	letter-spacing: -0.015em;
	text-wrap: balance;
}

.gvm-producto-bajada {
	margin-top: -8px !important;
}

.gvm-producto-bajada p {
	margin: 0;
	font-size: 17px;
	line-height: 1.55;
	color: var(--gvm-gris-1);
}

.gvm-ficha {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--gvm-gris-5);
	border-radius: var(--gvm-radio);
	background: var(--gvm-gris-5);
}

.gvm-ficha__item {
	padding: 14px 18px;
	background: #fff;
}

.gvm-ficha__item:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}

.gvm-ficha dt {
	font-size: 12px;
	letter-spacing: 0.1em;
}

.gvm-ficha dd {
	margin: 4px 0 0;
	font-size: 16px;
	font-weight: 700;
}

.gvm-producto-precio {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.gvm-precio--grande {
	margin: 0;
	gap: 4px 10px;
}

.gvm-precio--grande .gvm-precio__monto {
	font-size: 44px;
	letter-spacing: -0.015em;
}

.gvm-precio--grande .gvm-precio__sufijo {
	font-size: 15px;
}

.gvm-precio__antes {
	margin: -8px 0 0;
	font-size: 14px;
	color: var(--gvm-gris-1);
}

.gvm-tabla {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}

.gvm-tabla caption {
	padding-bottom: 8px;
	text-align: left;
	font-weight: 700;
}

.gvm-tabla th,
.gvm-tabla td {
	padding: 12px 16px;
	border: 1px solid var(--gvm-gris-5);
	text-align: left;
}

.gvm-tabla thead tr {
	background: var(--gvm-fondo);
}

.gvm-tabla thead th {
	padding-block: 10px;
	font-weight: 600;
	color: var(--gvm-gris-1);
}

.gvm-tabla--volumen th:last-child,
.gvm-tabla--volumen td:last-child {
	text-align: right;
}

.gvm-tabla--volumen td:last-child {
	font-weight: 700;
}

.gvm-tabla--volumen tr.is-activo {
	background: var(--gvm-tinte);
	color: var(--gvm-acento);
}

.gvm-tabla--volumen tr.is-activo td {
	font-weight: 700;
}

.gvm-tabla--volumen tr.is-activo td:last-child {
	font-weight: 800;
}

.gvm-tabla--volumen tr.is-activo td:first-child::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-right: 10px;
	background: var(--gvm-secundario);
}

.gvm-tabla--specs {
	font-size: 16px;
}

.gvm-tabla--specs caption {
	padding-bottom: 12px;
}

.gvm-tabla--specs th,
.gvm-tabla--specs td {
	padding: 14px 18px;
}

.gvm-tabla--specs th {
	width: 44%;
	font-weight: 600;
	color: var(--gvm-gris-1);
}

.gvm-tabla--specs td {
	font-weight: 700;
}

.gvm-tabla--specs tr:nth-child(odd) {
	background: var(--gvm-fondo);
}

/* Formulario "Agregar al carrito" de WooCommerce */
.gvm-producto__comprar form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 !important;
}

.gvm-producto__comprar .quantity.gvm-qty {
	height: 56px;
	margin: 0 !important;
}

.gvm-producto__comprar .gvm-qty__btn {
	width: 48px;
	font-size: 22px;
}

.gvm-producto__comprar .gvm-qty .qty {
	width: 48px;
	font-size: 18px;
}

.gvm-producto__comprar .single_add_to_cart_button {
	flex: 1 1 220px;
	min-height: 56px;
	margin: 0 !important;
	border-radius: var(--gvm-radio) !important;
	background: var(--gvm-primario) !important;
	color: #fff !important;
	font-size: 17px !important;
	font-weight: 700 !important;
}

.gvm-producto__comprar .single_add_to_cart_button:hover {
	background: var(--gvm-acento) !important;
}

.gvm-producto__comprar .variations {
	width: 100%;
	margin-bottom: 8px;
}

.gvm-producto-acciones {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: -12px !important;
}

.gvm-producto-acciones > form,
.gvm-producto-acciones > a {
	flex: 1 1 200px;
	display: flex;
}

.gvm-producto-acciones .gvm-btn {
	flex: 1;
}

.gvm-despacho {
	margin: 0;
	padding: 0;
	list-style: none;
	border: 1px solid var(--gvm-gris-5);
	border-radius: var(--gvm-radio);
}

.gvm-despacho li {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 20px;
	font-size: 15px;
	line-height: 1.4;
}

.gvm-despacho li + li {
	border-top: 1px solid var(--gvm-gris-5);
}

.gvm-despacho .gvm-svg {
	color: var(--gvm-primario);
}

/* Pestañas de la ficha */
.gvm-producto__detalle {
	padding-top: clamp(48px, 6vw, 80px);
}

.gvm-producto__detalle .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0 8px;
	margin: 0 !important;
	padding: 0 !important;
	border-bottom: 1px solid var(--gvm-gris-5);
	list-style: none;
	overflow: visible;
}

.gvm-producto__detalle .woocommerce-tabs ul.tabs::before,
.gvm-producto__detalle .woocommerce-tabs ul.tabs li::before,
.gvm-producto__detalle .woocommerce-tabs ul.tabs li::after {
	display: none !important;
}

.gvm-producto__detalle .woocommerce-tabs ul.tabs li {
	margin: 0 0 -1px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
}

.gvm-producto__detalle .woocommerce-tabs ul.tabs li a {
	display: flex;
	align-items: center;
	min-height: 56px;
	padding: 0 24px !important;
	border-bottom: 4px solid transparent;
	font-size: 17px;
	font-weight: 600;
	color: var(--gvm-gris-1) !important;
	text-decoration: none;
}

.gvm-producto__detalle .woocommerce-tabs ul.tabs li.active a {
	border-bottom-color: var(--gvm-secundario);
	color: var(--gvm-primario) !important;
	font-weight: 800;
}

.gvm-producto__detalle .woocommerce-Tabs-panel {
	padding-top: 48px;
}

.gvm-descripcion {
	display: flex;
	flex-wrap: wrap;
	gap: 48px 80px;
}

.gvm-descripcion__texto {
	flex: 1 1 480px;
	max-width: 680px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	font-size: 17px;
	line-height: 1.65;
}

.gvm-descripcion__texto > * {
	margin: 0;
}

.gvm-descripcion__texto h2 {
	font-size: 30px;
}

.gvm-descripcion .gvm-tabla--specs {
	flex: 1 1 420px;
	align-self: flex-start;
	width: auto;
}

.gvm-relacionados {
	padding-bottom: var(--gvm-espacio);
}

.gvm-relacionados .gvm-seccion-cabeza {
	margin-bottom: 32px !important;
}

/* ---------- Carrito y checkout (bloques de WooCommerce) ---------- */

.gvm-pedido__contenido {
	padding-block: 40px var(--gvm-espacio);
}

.gvm-pasos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 15px;
	font-weight: 700;
}

.gvm-pasos__paso {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--gvm-gris-1);
}

.gvm-pasos__num {
	box-sizing: border-box;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 2px solid var(--gvm-gris-2);
	border-radius: 2px;
}

.gvm-pasos__paso.is-hecho,
.gvm-pasos__paso.is-actual {
	color: var(--gvm-primario);
}

.gvm-pasos__paso.is-hecho .gvm-pasos__num {
	border: 0;
	background: var(--gvm-primario);
	color: #fff;
}

.gvm-pasos__paso.is-actual .gvm-pasos__num {
	border: 0;
	background: var(--gvm-secundario);
	color: var(--gvm-acento);
}

.gvm-pasos__sep {
	width: 32px;
	height: 2px;
	background: var(--gvm-gris-4);
}

.gvm-pedido .wc-block-components-sidebar-layout {
	gap: 40px;
}

.gvm-pedido .wc-block-components-main {
	padding-right: 0 !important;
}

.gvm-pedido .wc-block-components-sidebar .wp-block-woocommerce-cart-totals-block,
.gvm-pedido .wc-block-components-sidebar .wp-block-woocommerce-checkout-order-summary-block {
	overflow: hidden;
	border: 1px solid var(--gvm-gris-5) !important;
	border-radius: var(--gvm-radio);
}

.gvm-pedido .wc-block-cart__totals-title,
.gvm-pedido .wc-block-components-checkout-order-summary__title {
	display: block !important;
	margin: 0 !important;
	padding: 20px 24px !important;
	background: var(--gvm-primario);
	color: #fff !important;
	font-size: 22px !important;
	font-weight: 800 !important;
	text-transform: none !important;
}

.gvm-pedido .wc-block-components-checkout-order-summary__title-text {
	color: #fff;
	font-size: 22px;
	font-weight: 800;
}

.gvm-pedido .wc-block-components-totals-wrapper,
.gvm-pedido .wc-block-components-order-summary {
	padding-inline: 24px !important;
}

.gvm-pedido .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-size: 18px;
	font-weight: 800;
}

.gvm-pedido .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 34px;
	font-weight: 800;
	color: var(--gvm-primario);
	letter-spacing: -0.01em;
}

.gvm-pedido .wc-block-components-totals-discount .wc-block-components-totals-item__value,
.gvm-pedido .wc-block-components-totals-fees .wc-block-components-totals-item__value {
	color: var(--gvm-primario);
}

.gvm-pedido .wc-block-cart__submit-button,
.gvm-pedido .wc-block-components-checkout-place-order-button {
	min-height: 58px;
	border: 0 !important;
	border-radius: var(--gvm-radio) !important;
	background: var(--gvm-secundario) !important;
	color: var(--gvm-acento) !important;
	font-size: 18px !important;
	font-weight: 800 !important;
}

.gvm-pedido .wc-block-cart__submit-button:hover,
.gvm-pedido .wc-block-components-checkout-place-order-button:hover {
	background: #ff8526 !important;
}

.gvm-pedido .wc-block-components-text-input input,
.gvm-pedido .wc-blocks-components-select .wc-blocks-components-select__select,
.gvm-pedido .wc-block-components-combobox .components-combobox-control__input {
	border: 1px solid var(--gvm-gris-2) !important;
	border-radius: var(--gvm-radio) !important;
	font-family: inherit !important;
}

.gvm-pedido .wc-block-components-text-input.is-active input,
.gvm-pedido .wc-block-components-text-input input:focus {
	border-color: var(--gvm-primario) !important;
	box-shadow: 0 0 0 1px var(--gvm-primario);
}

.gvm-pedido .wc-block-components-radio-control__option,
.gvm-pedido .wc-block-components-radio-control-accordion-option {
	border: 1px solid var(--gvm-gris-2);
	border-radius: var(--gvm-radio);
	margin-bottom: 12px;
	box-shadow: none !important;
}

.gvm-pedido .wc-block-components-radio-control__option-checked,
.gvm-pedido .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.gvm-pedido .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option-checked {
	border: 2px solid var(--gvm-primario) !important;
	background: var(--gvm-tinte);
}

.gvm-pedido .wc-block-components-radio-control__input:checked {
	border-color: var(--gvm-primario);
}

.gvm-pedido .wc-block-components-radio-control__input:checked::before {
	background: var(--gvm-primario);
}

.gvm-pedido .wc-block-components-title,
.gvm-pedido .wc-block-components-checkout-step__title {
	font-size: 24px !important;
	font-weight: 800 !important;
}

.gvm-pedido .wc-block-cart-items {
	border-bottom: 1px solid var(--gvm-gris-5);
}

.gvm-pedido .wc-block-cart-items th {
	border-bottom: 2px solid var(--gvm-texto) !important;
	font-size: 14px;
	font-weight: 700;
	text-transform: none;
}

.gvm-pedido .wc-block-components-product-name {
	font-size: 18px;
	font-weight: 700;
	color: var(--gvm-texto);
	text-decoration: none;
}

.gvm-pedido .wc-block-cart-item__total .wc-block-components-product-price__value {
	font-size: 20px;
	font-weight: 800;
	color: var(--gvm-primario);
}

.gvm-pedido .wc-block-components-quantity-selector {
	border: 1px solid var(--gvm-gris-2) !important;
	border-radius: var(--gvm-radio) !important;
	height: 48px;
}

.gvm-pedido .wc-block-components-quantity-selector::after {
	display: none !important;
}

/* ---------- Formularios ---------- */

.gvm-form {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.gvm-form__grilla {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
	gap: 16px;
}

.gvm-form .gvm-campo input:not([type="file"]),
.gvm-form .gvm-campo select {
	min-height: 52px;
	padding: 0 14px;
}

.gvm-form > .gvm-btn {
	align-self: flex-start;
}

.gvm-alerta {
	padding: 16px 20px;
	border-left: 4px solid var(--gvm-primario);
	border-radius: var(--gvm-radio);
	background: var(--gvm-tinte);
	color: var(--gvm-acento);
}

.gvm-alerta--error {
	border-left-color: #b3261e;
	background: #fdecea;
	color: #5f1410;
}

/* Plazo requerido: número + unidad (horas, días o semanas) */
.gvm-plazo {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 8px;
}

/* Página Contacto */
.gvm-contacto {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 40px 64px;
	padding-bottom: var(--gvm-espacio);
}

.gvm-contacto__info {
	flex: 1 1 340px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.gvm-contacto__info > * {
	margin: 0;
}

.gvm-contacto__form {
	flex: 1.5 1 520px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.gvm-contacto__form h3 {
	margin: 0;
}

.gvm-datos {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 28px;
	margin-top: 8px;
}

.gvm-datos__lista {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gvm-datos__item {
	display: flex;
	align-items: center;
	gap: 16px;
}

.gvm-datos__icono {
	flex: none;
	box-sizing: border-box;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--gvm-gris-5);
	border-radius: var(--gvm-radio);
	color: var(--gvm-primario);
}

.gvm-datos__texto {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.gvm-datos__texto a,
.gvm-datos__valor {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--gvm-texto);
	text-decoration: none;
	overflow-wrap: anywhere;
}

.gvm-datos__texto a:hover {
	color: var(--gvm-primario);
	text-decoration: underline;
}

.gvm-solicitud {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 48px 64px;
	padding-bottom: var(--gvm-espacio);
}

.gvm-solicitud__pasos {
	flex: 1 1 360px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.gvm-solicitud__form {
	flex: 1.4 1 520px;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.gvm-solicitud__form h3 {
	margin: 0;
}

.gvm-pasos-lista {
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
	counter-reset: gvm-paso;
}

.gvm-pasos-lista li {
	position: relative;
	padding: 18px 0 18px 56px;
	border-top: 1px solid var(--gvm-gris-5);
	font-size: 16px;
	line-height: 1.5;
	color: var(--gvm-gris-1);
	counter-increment: gvm-paso;
}

.gvm-pasos-lista li strong {
	color: var(--gvm-texto);
	font-size: 18px;
}

.gvm-pasos-lista li::before {
	content: counter(gvm-paso, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 18px;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 2px;
	background: var(--gvm-tinte);
	font-family: var(--gvm-condensada);
	font-weight: 700;
	color: var(--gvm-primario);
}

.gvm-fabricacion--portada .gvm-fabricacion__titulo {
	font-size: var(--wp--preset--font-size--h1);
}

/* Avisos de WooCommerce */
.woocommerce-message,
.woocommerce-info,
.wc-block-components-notice-banner {
	border-radius: var(--gvm-radio);
}

/* ---------- Pie de página ---------- */

.gvm-footer {
	background: var(--gvm-primario);
	color: #fff;
}

.gvm-footer a {
	color: #fff;
	text-decoration: none;
}

.gvm-footer a:hover {
	color: #fff;
	text-decoration: underline;
}

.gvm-footer__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
	gap: 48px 40px;
	padding-block: 72px 48px;
}

.gvm-footer__marca {
	display: flex;
	flex-direction: column;
	gap: 20px;
	max-width: 300px;
}

.gvm-footer__logo,
.gvm-footer__logo img {
	margin: 0;
	height: 88px;
	width: auto;
	max-width: 100%;
	object-fit: contain;
	object-position: left;
}

.gvm-footer__texto {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.8);
}

.gvm-redes.wp-block-social-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
}

/* Cada red: cuadro de 44 px con el ícono centrado; al pasar el cursor se invierte a blanco. */
.gvm-redes .wp-social-link {
	box-sizing: border-box;
	width: 44px;
	height: 44px;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: var(--gvm-radio) !important;
	background: transparent !important;
	color: #fff !important;
	transition: background-color 0.2s, border-color 0.2s, color 0.2s, transform 0.2s var(--gvm-curva);
}

.gvm-redes .wp-social-link a,
.gvm-redes .wp-social-link .wp-block-social-link-anchor {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 0 !important;
	color: inherit !important;
	line-height: 0;
}

.gvm-redes .wp-social-link svg {
	display: block;
	width: 22px;
	height: 22px;
	margin: 0;
	fill: currentColor;
}

.gvm-redes .wp-social-link:hover,
.gvm-redes .wp-social-link:focus-within {
	border-color: #fff;
	background: #fff !important;
	color: var(--gvm-primario) !important;
	transform: translateY(-2px);
}

.gvm-redes .wp-social-link .wp-block-social-link-label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

.gvm-redes .gvm-redes__wsp {
	border-color: var(--gvm-secundario);
	background: var(--gvm-secundario) !important;
	color: var(--gvm-acento) !important;
}

.gvm-redes .gvm-redes__wsp:hover,
.gvm-redes .gvm-redes__wsp:focus-within {
	border-color: #ff8526;
	background: #ff8526 !important;
	color: var(--gvm-acento) !important;
}

.gvm-footer__col {
	display: flex;
	flex-direction: column;
}

.gvm-footer__titulo,
h2.gvm-footer__titulo {
	margin: 0 0 16px !important;
	font-family: var(--gvm-condensada);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--gvm-naranja-claro);
}

.gvm-footer__lista {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 15px;
}

.gvm-footer__contacto p {
	margin: 0 0 14px !important;
	font-size: 15px;
	line-height: 1.4;
}

.gvm-footer__contacto strong {
	font-weight: 700;
}

.gvm-footer__direccion {
	color: rgba(255, 255, 255, 0.8);
}

.gvm-footer__legal {
	border-top: 1px solid rgba(255, 255, 255, 0.25);
}

.gvm-footer__legal-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 32px;
	padding-block: 20px;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.8);
}

.gvm-footer__legal-inner p {
	margin: 0;
	font-size: 13px;
}

.gvm-footer__links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
}

.gvm-footer p.is-style-etiqueta {
	color: #fff;
	font-size: 12px;
	letter-spacing: 0.1em;
}

.gvm-footer p.is-style-etiqueta::before {
	display: none;
}

/* ---------- Aviso flotante (agregar al carrito) ---------- */

.gvm-toast {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 9999;
	display: flex;
	align-items: center;
	gap: 16px;
	max-width: calc(100vw - 40px);
	padding: 14px 18px;
	border-radius: var(--gvm-radio);
	background: var(--gvm-acento);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	box-shadow: 0 16px 40px -16px rgba(0, 0, 0, 0.5);
	translate: 0 16px;
	opacity: 0;
	transition: translate 0.3s var(--gvm-curva), opacity 0.3s;
}

.gvm-toast.is-visible {
	translate: 0 0;
	opacity: 1;
}

.gvm-toast a {
	color: var(--gvm-naranja-claro);
	font-weight: 700;
	white-space: nowrap;
}

.gvm-toast--error {
	background: #5f1410;
}

/* ---------- Editor ---------- */

.gvm-aviso-editor {
	margin: 0;
	padding: 16px;
	border: 1px dashed var(--gvm-gris-2);
	border-radius: var(--gvm-radio);
	background: var(--gvm-fondo);
	font-size: 14px;
	color: var(--gvm-gris-1);
}

/* ---------- Movimiento ---------- */

@keyframes gvm-reticula-mover {
	to {
		background-position: 56px 56px, 56px 56px;
	}
}

@keyframes gvm-subir {
	from {
		opacity: 0;
		translate: 0 18px;
	}
	to {
		opacity: 1;
		translate: 0 0;
	}
}

@keyframes gvm-revelar {
	from {
		opacity: 0;
		translate: 0 28px;
	}
	to {
		opacity: 1;
		translate: 0 0;
	}
}

@keyframes gvm-pop {
	from {
		transform: scale(0.4);
	}
	to {
		transform: scale(1);
	}
}

.gvm-entrada {
	animation: gvm-subir 0.8s var(--gvm-curva) both;
}

.gvm-hero__copy > :nth-child(1) { animation-delay: 0.05s; }
.gvm-hero__copy > :nth-child(2) { animation-delay: 0.15s; }
.gvm-hero__copy > :nth-child(3) { animation-delay: 0.25s; }
.gvm-hero__copy > :nth-child(4) { animation-delay: 0.35s; }

.gvm-entrada-tarjeta {
	animation: gvm-subir 0.9s var(--gvm-curva) 0.3s both;
}

.gvm-cifra {
	animation: gvm-subir 0.8s var(--gvm-curva) 0.5s both;
}

@supports (animation-timeline: view()) {
	.gvm-card,
	.gvm-tile,
	.gvm-sector,
	.gvm-seccion-cabeza {
		animation: gvm-revelar linear both;
		animation-timeline: view();
		animation-range: entry 10% entry 90%;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation: none !important;
		transition: none !important;
		scroll-behavior: auto !important;
	}
}
