/* Peusso Vibed — front styles.
   Brand colors arrive as CSS vars from pv_brand_css_vars():
   --pv-primario, --pv-secundario, --pv-acento. */

/* URW Geometric — tipografía institucional Peusso (manual de marca). */
@font-face{ font-family:'URW Geometric'; src:url('../fonts/URWGeometricRegular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face{ font-family:'URW Geometric'; src:url('../fonts/URWGeometricMedium.woff2') format('woff2'); font-weight:500; font-style:normal; font-display:swap; }
@font-face{ font-family:'URW Geometric'; src:url('../fonts/URWGeometricSemiBold.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap; }
@font-face{ font-family:'URW Geometric'; src:url('../fonts/URWGeometricBold.woff2') format('woff2'); font-weight:700; font-style:normal; font-display:swap; }
@font-face{ font-family:'URW Geometric'; src:url('../fonts/URWGeometricBlack.woff2') format('woff2'); font-weight:800; font-style:normal; font-display:swap; }

/* Design tokens — system for Design. Breakpoints: 1024 / 860 / 767 (max-width). */
:root {
	/* Color */
	--pv-primario: #DD0031;
	--pv-primario-hover: #b80029;
	--pv-secundario: #001F5F;
	--pv-acento: #0A1F8F;
	--pv-texto: #24303f;
	--pv-gris: #6b7280;
	--pv-gris-claro: #9a9a9a;
	--pv-borde: #e5e7eb;
	--pv-borde-fuerte: #d8d8d8;
	--pv-fondo: #f5f6f8;
	--pv-negro: #000000;
	--pv-blanco: #ffffff;
	--pv-exito: #31bc52;
	--pv-error: #ce1616;
	--pv-hot: #ea6307;

	/* Typography */
	--pv-font: 'URW Geometric', 'DM Sans', 'Helvetica Neue', Arial, sans-serif;
	--pv-display: 'URW Geometric', 'DM Sans', sans-serif;
	--pv-fs-xs: 13px;
	--pv-fs-sm: 15px;
	--pv-fs-md: 17px;
	--pv-fs-lg: 20px;
	--pv-fs-xl: 26px;
	--pv-fs-2xl: 34px;
	--pv-fs-3xl: 42px;
	--pv-fs-4xl: 52px;
	--pv-fw-regular: 400;
	--pv-fw-medium: 500;
	--pv-fw-semibold: 600;
	--pv-fw-bold: 700;
	--pv-lh-tight: 1.1;
	--pv-lh-base: 1.4;
	--pv-lh-loose: 1.6;

	/* Spacing (base 4px) */
	--pv-space-1: 4px;
	--pv-space-2: 8px;
	--pv-space-3: 12px;
	--pv-space-4: 16px;
	--pv-space-5: 20px;
	--pv-space-6: 24px;
	--pv-space-8: 32px;
	--pv-space-10: 40px;
	--pv-space-12: 48px;
	--pv-space-16: 64px;
	--pv-space-20: 80px;

	/* Radius */
	--pv-radius-sm: 6px;
	--pv-radius-md: 12px;
	--pv-radius-lg: 16px;
	--pv-radius-pill: 50px;

	/* Shadows */
	--pv-shadow-card: 0 2px 14px rgba(0, 0, 0, .08);
	--pv-shadow-hover: 0 0 10px 0 rgba(0, 0, 0, .15);
	--pv-shadow-panel: 0 4px 8px rgba(0, 0, 0, .15);
	--pv-shadow-modal: 2px 8px 23px 3px rgba(0, 0, 0, .2);

	/* Layout */
	--pv-container: 1560px;
	--pv-gutter: 28px;
}

.pv-body{ font-family: var(--pv-font); color: var(--pv-texto); }
.pv-body .pv-content{ min-height: 60vh; }
.pv-body .pv-center{ text-align: center; }

/* =========================================================================
 * Peusso chrome: top bar, header, nav, home sections, footer.
 * Brand: URW Geometric + azul 2757 / azul 2746 / rojo 199 (manual de marca).
 * ====================================================================== */

/* Buttons */
.pv-body .pv-btn{ display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 30px; border-radius: 100px; font-family: var(--pv-font); font-weight: var(--pv-fw-semibold); font-size: var(--pv-fs-md); line-height: 1; text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease; }
.pv-body .pv-btn .pv-ico{ width: 20px; height: 20px; }
.pv-body .pv-btn-primario{ background: var(--pv-primario); color: #fff; }
.pv-body .pv-btn-primario:hover{ background: var(--pv-primario-hover); color: #fff; }
.pv-body .pv-btn-azul{ background: var(--pv-secundario); color: #fff; }
.pv-body .pv-btn-azul:hover{ filter: brightness(1.2); color: #fff; }
.pv-body .pv-btn-acento{ background: #fff; color: var(--pv-secundario); }
.pv-body .pv-btn-acento:hover{ background: var(--pv-secundario); color: #fff; }
.pv-body .pv-btn-ghost{ background: transparent; color: #fff; border-color: rgba(255,255,255,.45); }
.pv-body .pv-btn-ghost:hover{ background: #fff; color: var(--pv-secundario); }
.pv-body .pv-btn-sm{ padding: 11px 22px; font-size: var(--pv-fs-sm); white-space: nowrap; }
.pv-body .pv-btn-sm .pv-ico{ width: 18px; height: 18px; }
.pv-body .pv-btn-lg{ padding: 13px 34px; font-size: var(--pv-fs-md); letter-spacing: .01em; }
.pv-body .pv-btn-lg .pv-ico{ width: 22px; height: 22px; }
/* Hero CTA: same pill, less alto, con flecha al final. */
.pv-body .pv-btn-hero{ padding-top: 10px; padding-bottom: 10px; }
.pv-body .pv-btn-hero .pv-ico{ margin-right: -4px; transition: transform .2s ease; }
.pv-body .pv-btn-hero:hover .pv-ico{ transform: translateX(3px); }

/* Icons (Lucide outline + brand glyphs) */
.pv-body svg.pv-ico{ width: 20px; height: 20px; min-width: 0; flex: 0 0 auto; display: inline-block; vertical-align: middle; }
.pv-body svg.pv-ico-brand{ fill: currentColor; stroke: none; }
/* Astra y varios plugins estilan button/svg globalmente: los componentes del
   theme fijan su propio tamaño, radio y padding para no heredarlos. */
.pv-body .pv-hero-arrow svg.pv-ico{ width: 22px; height: 22px; }
.pv-body .pv-car-btn svg.pv-ico{ width: 20px; height: 20px; }
.pv-body .pv-icon svg.pv-ico{ width: 24px; height: 24px; }
.pv-body .pv-beneficios-list svg.pv-ico{ width: 38px; height: 38px; }
.pv-body .pv-trust-iso, .pv-body .pv-marquee-track img{ max-width: none; }

/* Top bar: benefit claims + WhatsApp + branches */
.pv-body .pv-topbar{ background: var(--pv-secundario); font-size: var(--pv-fs-xs); color: #fff; }
.pv-body .pv-topbar-inner{ max-width: var(--pv-container); margin: 0 auto; padding: 9px var(--pv-gutter); display: flex; align-items: center; justify-content: center; gap: var(--pv-space-6); }
/* Rotating claim: all messages stacked, only .on visible (ticker in vibed JS). */
.pv-body .pv-topbar-claims{ position: relative; flex: 1 1 auto; min-width: 0; height: 20px; }
.pv-body .pv-ticker-msg{ position: absolute; inset: 0; margin: 0; display: flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap; overflow: hidden; line-height: 20px; opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .4s ease, transform .4s ease, visibility .4s; }
.pv-body .pv-ticker-msg.on{ opacity: 1; visibility: visible; transform: none; }
.pv-body .pv-ticker-msg span{ overflow: hidden; text-overflow: ellipsis; }
.pv-body .pv-topbar .pv-ico{ width: 17px; height: 17px; color: #fff; flex: 0 0 auto; }
@media (prefers-reduced-motion: reduce){
	.pv-body .pv-ticker-msg{ transition: none; transform: none; }
}

/* Chrome sticky: la franja de claims, el header y la navbar viajan juntos y
   quedan fijos arriba. Al bajar (.is-stuck, lo pone el JS) la franja de claims
   se pliega y el header se achica, así el bloque fijo ocupa poco viewport. */
/* Astra pone `overflow-x: hidden` en el body y eso lo convierte en contenedor
   de scroll: cualquier `position: sticky` queda anclado a algo que no
   scrollea y no se pega nunca (es el mismo motivo por el que la columna de la
   ficha de producto necesitaba este arreglo, más abajo). `clip` recorta igual
   pero no crea contenedor de scroll. */
body.pv-body{ overflow-x: clip; }
/* Los saltos a anclas no deben quedar tapados por el bloque fijo. */
html{ scroll-padding-top: 120px; }
.pv-body .pv-chrome{ position: sticky; top: 0; z-index: 200; background: #fff; transition: box-shadow .25s ease; }
.pv-body .pv-chrome.is-stuck{ box-shadow: 0 4px 18px rgba(0,31,95,.10); }
.pv-body .pv-chrome .pv-topbar{ overflow: hidden; max-height: 90px; transition: max-height .3s ease, opacity .25s ease; }
.pv-body .pv-chrome.is-stuck .pv-topbar{ max-height: 0; opacity: 0; }
.pv-body .pv-chrome.is-stuck .pv-header-inner{ padding-top: 10px; padding-bottom: 10px; }
.pv-body .pv-chrome .pv-header-inner{ transition: padding .25s ease; }
/* La barra de admin de WP es fixed en escritorio: el sticky arranca debajo. */
.admin-bar .pv-chrome{ top: 32px; }
@media screen and (max-width: 782px){
	.admin-bar .pv-chrome{ top: 46px; }
}
@media (prefers-reduced-motion: reduce){
	.pv-body .pv-chrome, .pv-body .pv-chrome .pv-topbar, .pv-body .pv-chrome .pv-header-inner{ transition: none; }
}

/* Header */
.pv-body .pv-header{ background: #fff; }
.pv-body .pv-header-inner{ max-width: var(--pv-container); margin: 0 auto; padding: 16px var(--pv-gutter); display: flex; align-items: center; gap: var(--pv-space-8); }
.pv-body .pv-brand{ display: inline-flex; align-items: center; flex: 1 1 0; min-width: 0; }
.pv-body .pv-brand img.pv-logo, .pv-body .pv-brand img.custom-logo{ height: 46px; width: auto; max-width: none; display: block; }
.pv-body .pv-burger{ display: none; background: none; border: 0; cursor: pointer; padding: 6px 4px; }
.pv-body .pv-burger span{ display: block; width: 22px; height: 2px; background: var(--pv-secundario); margin: 5px 0; border-radius: 2px; }

/* Search */
.pv-body .pv-header .pv-search{ flex: 0 1 720px; display: flex; align-items: stretch; border: 1px solid var(--pv-borde-fuerte); border-radius: var(--pv-radius-sm); background: #fff; overflow: hidden; max-width: 720px; }
.pv-body .pv-header .pv-search input[type="search"]{ flex: 1 1 auto; border: 0; outline: none; background: transparent; padding: 11px 16px; font-family: inherit; font-size: var(--pv-fs-sm); color: var(--pv-texto); min-width: 0; }
.pv-body .pv-header .pv-search input[type="search"]::placeholder{ color: var(--pv-gris-claro); }
.pv-body .pv-search-cat{ display: flex; align-items: center; border-left: 1px solid var(--pv-borde); }
.pv-body .pv-search-cat select{ border: 0; outline: none; box-shadow: none; background: transparent; font-family: inherit; font-size: var(--pv-fs-sm); color: var(--pv-gris); height: auto; padding: 0 12px; margin: 0; min-width: 150px; max-width: 200px; cursor: pointer; }
.pv-body .pv-search-go{ flex: 0 0 52px; width: 52px; min-width: 52px; height: auto; border: 0; border-radius: 0; padding: 0; margin: 0; box-shadow: none; background: var(--pv-primario); color: #fff; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.pv-body .pv-search-go:hover{ background: var(--pv-primario-hover); }
.pv-body .pv-search-go .pv-ico{ width: 20px; height: 20px; }

/* Header icons */
.pv-body .pv-icons{ display: flex; align-items: center; justify-content: flex-end; gap: var(--pv-space-6); flex: 1 1 0; min-width: 0; }
.pv-body .pv-icon{ background: none; border: 0; border-radius: 0; box-shadow: none; cursor: pointer; color: var(--pv-secundario); padding: 0; margin: 0; position: relative; text-decoration: none; display: inline-flex; align-items: center; gap: 9px; }
.pv-body .pv-icon:hover{ color: var(--pv-primario); }
.pv-body .pv-icon .pv-ico{ width: 24px; height: 24px; }
.pv-body .pv-icon-txt{ display: flex; flex-direction: column; line-height: 1.25; }
.pv-body .pv-icon-txt b{ font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); }
.pv-body .pv-icon-txt i{ font-style: normal; font-size: var(--pv-fs-xs); color: var(--pv-gris); }
.pv-body .pv-cart-count{ position: absolute; top: -6px; left: 14px; background: var(--pv-primario); color: #fff; font-size: 10px; font-weight: var(--pv-fw-bold); min-width: 18px; height: 18px; line-height: 18px; border-radius: 999px; text-align: center; padding: 0 4px; }

/* Nav bar */
.pv-body .pv-navbar{ background: #fff; border-bottom: 1px solid var(--pv-borde); border-top: 1px solid var(--pv-borde); position: relative; z-index: 190; }
.pv-body .pv-navbar-inner{ max-width: var(--pv-container); margin: 0 auto; padding: 0 var(--pv-gutter); display: flex; align-items: center; gap: var(--pv-space-8); }
.pv-body .pv-cats-menu{ position: relative; padding: 8px 0; }
.pv-body .pv-cats-btn{ display: inline-flex; align-items: center; gap: 10px; background: var(--pv-secundario); color: #fff; border: 0; box-shadow: none; border-radius: var(--pv-radius-sm); padding: 11px 20px; font-family: inherit; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }
.pv-body .pv-cats-btn .pv-ico{ width: 18px; height: 18px; }
.pv-body .pv-cats-btn:hover{ filter: brightness(1.2); }
.pv-body .pv-cats-panel{ display: none; position: absolute; top: 100%; left: 0; width: min(920px, 82vw); background: #fff; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-md); box-shadow: var(--pv-shadow-panel); padding: var(--pv-space-8); gap: var(--pv-space-8); grid-template-columns: 1fr 1fr 260px; z-index: 260; }
.pv-body .pv-cats-menu:hover .pv-cats-panel, .pv-body .pv-cats-menu:focus-within .pv-cats-panel, .pv-body .pv-cats-menu.on .pv-cats-panel{ display: grid; animation: pv-fade .18s ease; }
@keyframes pv-fade{ from{ opacity: 0; transform: translateY(-4px); } to{ opacity: 1; transform: none; } }
.pv-body .pv-cats-col-title{ display: block; font-size: var(--pv-fs-md); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); text-decoration: none; margin-bottom: var(--pv-space-3); }
.pv-body .pv-cats-col ul{ list-style: none; margin: 0 0 var(--pv-space-3); padding: 0; display: flex; flex-direction: column; gap: 7px; }
.pv-body .pv-cats-col a{ color: #4b5563; text-decoration: none; font-size: var(--pv-fs-sm); }
.pv-body .pv-cats-col a:hover, .pv-body .pv-cats-col-title:hover{ color: var(--pv-primario); }
.pv-body .pv-cats-col-more{ font-weight: var(--pv-fw-semibold); font-size: var(--pv-fs-sm); color: var(--pv-secundario); text-decoration: none; }
.pv-body .pv-cats-promo{ background: linear-gradient(135deg, var(--pv-secundario), var(--pv-acento)); color: #fff; border-radius: var(--pv-radius-md); padding: var(--pv-space-6); display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.pv-body .pv-cats-promo-kicker{ margin: 0; font-size: var(--pv-fs-xs); text-transform: uppercase; letter-spacing: .08em; opacity: .8; }
.pv-body .pv-cats-promo-title{ margin: 0; font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-bold); line-height: 1.2; }
.pv-body .pv-cats-promo-text{ margin: 0 0 var(--pv-space-2); font-size: var(--pv-fs-sm); opacity: .9; }

.pv-body .pv-nav{ flex: 1 1 auto; min-width: 0; }
.pv-body .pv-nav-top{ display: flex; align-items: center; gap: var(--pv-space-8); list-style: none; margin: 0; padding: 0; }
/* Subrayado de hover pegado al texto (feedback de diseño): el padding queda
   como área de click y la línea se dibuja con ::after a pocos px de la letra. */
.pv-body .pv-nav-item > a{ position: relative; display: inline-block; padding: 18px 0; color: var(--pv-texto); text-decoration: none; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); letter-spacing: .04em; text-transform: uppercase; }
.pv-body .pv-nav-item > a::after{ content: ""; position: absolute; left: 0; right: 0; bottom: 21px; height: 2px; border-radius: 2px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.pv-body .pv-nav-item > a:hover{ color: var(--pv-secundario); }
.pv-body .pv-nav-item > a:hover::after, .pv-body .pv-nav-item > a:focus-visible::after{ transform: scaleX(1); }
.pv-body .pv-nav-item.is-ofertas > a{ color: var(--pv-primario); font-weight: var(--pv-fw-bold); }
.pv-body .pv-nav-item.is-ofertas > a:hover{ color: var(--pv-primario); }
.pv-body .pv-m-menu li.is-ofertas > a{ color: var(--pv-primario); font-weight: var(--pv-fw-bold); text-transform: uppercase; }
@media (prefers-reduced-motion: reduce){ .pv-body .pv-nav-item > a::after{ transition: none; } }

/* Sections */
.pv-body .pv-section{ max-width: var(--pv-container); margin: 0 auto; padding: var(--pv-space-12) var(--pv-gutter); box-sizing: border-box; }
.pv-body .pv-sec-head{ display: flex; align-items: center; justify-content: space-between; gap: var(--pv-space-6); margin-bottom: var(--pv-space-6); flex-wrap: wrap; }
.pv-body .pv-sec-title{ font-family: var(--pv-display); font-size: var(--pv-fs-2xl); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); margin: 0; line-height: var(--pv-lh-tight); }
.pv-body .pv-sec-link{ color: var(--pv-secundario); font-size: var(--pv-fs-md); font-weight: var(--pv-fw-semibold); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.pv-body .pv-sec-link:hover{ color: var(--pv-primario); }

/* Hero carousel */
.pv-body .pv-hero{ position: relative; max-width: var(--pv-container); margin: var(--pv-space-8) auto 0; padding: 0 var(--pv-gutter); box-sizing: border-box; }
.pv-body .pv-hero-track{ position: relative; border-radius: var(--pv-radius-lg); overflow: hidden; aspect-ratio: 1320 / 440; min-height: 320px; background: var(--pv-secundario); }
.pv-body .pv-hero-slide{ position: absolute; inset: 0; opacity: 0; transition: opacity .6s ease; display: flex; align-items: center; pointer-events: none; }
.pv-body .pv-hero-slide.on{ opacity: 1; z-index: 1; pointer-events: auto; }
.pv-body .pv-hero-bg{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Ken Burns: la foto de la slide activa se acerca despacio durante los 6 s
   que dura el turno. El paneo va hacia abajo para no comerse la parte de
   arriba de la foto, que es donde suele estar el artefacto. */
@keyframes pv-kenburns{ from{ transform: scale(1.04); } to{ transform: scale(1.12) translate3d(-1%, 1%, 0); } }
.pv-body .pv-hero-slide.on .pv-hero-bg{ animation: pv-kenburns 7s ease-out forwards; }
@media (prefers-reduced-motion: reduce){ .pv-body .pv-hero-slide.on .pv-hero-bg{ animation: none; } }
.pv-body .pv-hero-slide::after{ content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,31,95,.97) 0%, rgba(0,31,95,.96) 30%, rgba(0,31,95,.55) 46%, rgba(0,31,95,0) 64%); }
.pv-body .pv-hero-inner{ position: relative; z-index: 2; color: #fff; padding: 0 clamp(24px, 5vw, 72px); max-width: 660px; }
.pv-body .pv-hero-kicker{ margin: 0 0 14px; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); letter-spacing: .12em; text-transform: uppercase; color: #fff; opacity: .85; }
.pv-body .pv-hero-kicker::before{ content: ""; display: inline-block; width: 28px; height: 2px; background: var(--pv-primario); vertical-align: middle; margin-right: 10px; }
.pv-body .pv-hero-title{ font-family: var(--pv-display); font-size: clamp(34px, 4.2vw, 58px); font-weight: var(--pv-fw-bold); line-height: 1.05; margin: 0 0 14px; color: #fff; }
.pv-body .pv-hero-sub{ font-size: var(--pv-fs-lg); line-height: 1.5; margin: 0 0 var(--pv-space-8); color: rgba(255,255,255,.92); max-width: 40ch; }
.pv-body .pv-hero-slide.is-pieza::after{ content: none; }
.pv-body .pv-hero-arrow{ position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 44px; height: 44px; min-width: 44px; padding: 0; margin: 0; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: var(--pv-secundario); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; box-shadow: var(--pv-shadow-card); }
.pv-body .pv-hero-arrow:hover{ background: #fff; }
.pv-body .pv-hero-arrow svg{ width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pv-body .pv-hero-arrow.pv-prev{ left: calc(var(--pv-gutter) + 16px); }
.pv-body .pv-hero-arrow.pv-next{ right: calc(var(--pv-gutter) + 16px); }
.pv-body .pv-hero-dots{ position: absolute; bottom: 22px; left: 0; right: 0; z-index: 3; display: flex; justify-content: center; gap: 8px; }
.pv-body .pv-hero-dots button{ width: 9px; height: 9px; padding: 0; border-radius: 50%; border: 0; background: rgba(255,255,255,.5); cursor: pointer; }
.pv-body .pv-hero-dots button.on{ background: #fff; width: 26px; border-radius: 999px; }

/* Category cards */
/* Categorías: mosaico bento. Cada tile lleva la foto de producto de fondo y
   el texto arriba a la izquierda, sobre la zona clara de la imagen. */
/* Los tiles van sólo con título y llamada (sin bajada), así que las filas
   bajan de 280 a 210px y el mosaico queda más compacto. */
.pv-body .pv-bento{ display: grid; grid-template-columns: 1.05fr 1.35fr; grid-template-rows: 280px 280px; gap: var(--pv-space-4); }
.pv-body .pv-bento-tile{ --pv-bento-velo: rgba(223,234,248,.96); position: relative; display: block; overflow: hidden; border-radius: var(--pv-radius-lg); background: #dbe7f7; text-decoration: none; isolation: isolate; }
.pv-body .pv-bento-tile img{ --pv-bento-zoom: 1; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(var(--pv-bento-zoom)); transition: transform .5s ease; }
.pv-body .pv-bento-tile:hover img{ transform: scale(calc(var(--pv-bento-zoom) * 1.04)); }
/* Velo azul de izquierda a derecha, con la misma estructura que las slides
   del hero (.pv-hero-slide::after): unifica los tres tiles, que traen
   paredes de distinto color, y asienta la zona donde va el texto. Queda
   claro para que el título y la llamada sigan en azul, no en blanco. */
.pv-body .pv-bento-tile::before{ content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgba(120,170,230,.33) 0%, rgba(160,195,240,.18) 42%, rgba(160,195,240,0) 68%); }
.pv-body .pv-bento-body{ position: relative; z-index: 2; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 10px; padding: var(--pv-space-6) var(--pv-space-8); color: var(--pv-secundario); }
.pv-body .pv-bento-title{ font-family: var(--pv-display); font-size: var(--pv-fs-2xl); font-weight: 800; line-height: 1.2; text-transform: uppercase; letter-spacing: .02em; color: var(--pv-secundario); }
/* La llamada no es una píldora sino texto con flecha, igual que el
   .pv-trust-link del footer: la foto se ve entera y el tile ya es el link.
   Va en el azul acento (más vivo que el navy del título) en vez del rojo. */
.pv-body .pv-bento-cta{ margin-top: 6px; color: var(--pv-acento); font-size: var(--pv-fs-md); font-weight: var(--pv-fw-semibold); transition: color .2s ease; }
.pv-body .pv-bento-cta span{ display: inline-block; transition: transform .2s ease; }
.pv-body .pv-bento-tile:hover .pv-bento-cta{ color: var(--pv-secundario); }
.pv-body .pv-bento-tile:hover .pv-bento-cta span{ transform: translateX(4px); }
/* Cada foto trae el producto a la derecha y deja libre la pared lisa de la
   izquierda, donde va el texto: el velo de arriba refuerza esa lectura. */
.pv-body .pv-bento-a{ grid-column: 1; grid-row: 1 / span 2; }
.pv-body .pv-bento-a .pv-bento-title{ font-size: var(--pv-fs-3xl); }
/* La foto ya viene recortada a la proporción del tile con las luminarias a la
   derecha, así que el encuadre va centrado. */
.pv-body .pv-bento-a img{ object-position: center; }
.pv-body .pv-bento-b{ grid-column: 2; grid-row: 1; }
/* La térmica viene recortada a lo justo de alto: anclada a la derecha entra
   entera en cualquier ancho y la izquierda queda libre para el texto. */
.pv-body .pv-bento-b img{ object-position: right center; }
.pv-body .pv-bento-c{ grid-column: 2; grid-row: 2; }
/* Con los tiles en 210px el recorte al 62% dejaba los apliques pegados al
   borde de arriba: al 54% la ventana queda centrada en el producto y su luz. */
.pv-body .pv-bento-c img{ object-position: center 54%; }

/* Product tabs */
.pv-body .pv-tabs{ display: flex; align-items: center; gap: var(--pv-space-6); flex-wrap: wrap; }
.pv-body .pv-tab{ background: none; border: 0; border-bottom: 2px solid transparent; border-radius: 0; padding: 6px 2px; margin: 0; box-shadow: none; font-family: inherit; font-size: var(--pv-fs-md); font-weight: var(--pv-fw-medium); color: var(--pv-gris); cursor: pointer; }
.pv-body .pv-tab:hover{ color: var(--pv-secundario); }
.pv-body .pv-tab.on{ color: var(--pv-primario); border-bottom-color: var(--pv-primario); font-weight: var(--pv-fw-semibold); }
.pv-body .pv-tab-panel{ display: none; }
.pv-body .pv-tab-panel.on{ display: block; }

/* Product carousel + cards */
.pv-body .pv-carousel{ position: relative; min-width: 0; max-width: 100%; }
.pv-body .pv-car-view{ overflow: hidden; padding: 6px 0 10px; min-width: 0; width: 100%; }
.pv-body .pv-car-track{ display: flex; gap: var(--pv-space-5); transition: transform .5s ease; will-change: transform; }
.pv-body .pv-slide{ flex: 0 0 auto; min-width: 0; box-sizing: border-box; }
.pv-body .pv-car-btn{ position: absolute; top: 40%; transform: translateY(-50%); background: #fff; border: 1px solid var(--pv-borde-fuerte); border-radius: 50%; width: 36px; height: 36px; color: var(--pv-secundario); cursor: pointer; z-index: 2; display: inline-flex; align-items: center; justify-content: center; }
.pv-body .pv-car-btn svg{ width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pv-body .pv-car-btn:hover{ border-color: var(--pv-secundario); }
.pv-body .pv-car-btn[disabled]{ opacity: .35; cursor: default; }
.pv-body .pv-car-btn{ width: 40px; height: 40px; box-shadow: var(--pv-shadow-card); }
.pv-body .pv-car-btn.pv-prev{ left: -18px; }
.pv-body .pv-car-btn.pv-next{ right: -18px; }

.pv-body .pv-card{ position: relative; background: #fff; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-md); overflow: hidden; height: 100%; display: flex; flex-direction: column; transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease; }
.pv-body .pv-card:hover{ box-shadow: var(--pv-shadow-card); transform: translateY(-3px); border-color: var(--pv-borde-fuerte); }
.pv-body .pv-card-media{ position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; background: #fff; padding: var(--pv-space-4); box-sizing: border-box; }
/* Dentro de un `ul.products` (tienda, relacionados) WooCommerce manda
   `object-fit: cover !important` y `height: auto` sobre la foto, que deforma
   y estira la tarjeta. Esta regla lleva una clase más para ganarle. */
.pv-body .pv-card .pv-card-media img.pv-card-img{ width: 100% !important; height: 100% !important; object-fit: contain !important; display: block; transition: transform .35s ease; }
.pv-body .pv-card:hover .pv-card-media img.pv-card-img{ transform: scale(1.04); }
.pv-body .pv-card .pv-card-media img.pv-card-img-hover{ position: absolute; inset: var(--pv-space-4); width: auto !important; height: auto !important; max-width: calc(100% - 32px); max-height: calc(100% - 32px); margin: auto; object-fit: contain !important; opacity: 0; transition: opacity .3s ease; }
.pv-body .pv-card-media:hover img.pv-card-img-hover{ opacity: 1; }
.pv-body .pv-off{ position: absolute; top: 10px; left: 10px; z-index: 2; background: var(--pv-primario); color: #fff; font-size: var(--pv-fs-xs); font-weight: var(--pv-fw-semibold); padding: 4px 9px; border-radius: var(--pv-radius-sm); line-height: 1.2; pointer-events: none; }
.pv-body .pv-badge-stock{ position: absolute; top: 10px; right: 10px; z-index: 2; background: var(--pv-gris); color: #fff; font-size: var(--pv-fs-xs); padding: 4px 9px; border-radius: var(--pv-radius-sm); line-height: 1.2; }
.pv-body span.onsale{ display: none !important; }
.pv-body .pv-card-body{ padding: var(--pv-space-4); text-align: left; border-top: 1px solid var(--pv-borde); display: flex; flex-direction: column; gap: 8px; flex: 1 1 auto; }
.pv-body .pv-card-title{ font-size: var(--pv-fs-md); font-weight: var(--pv-fw-medium); color: var(--pv-texto); margin: 0; min-height: 46px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.35; }
.pv-body .pv-card-title a{ color: inherit; text-decoration: none; }
.pv-body .pv-card-title a:hover{ color: var(--pv-secundario); }
.pv-body .pv-card-price{ font-size: var(--pv-fs-xl); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); line-height: 1.25; margin-top: auto; }
.pv-body .pv-card-price .woocommerce-Price-amount{ font-weight: var(--pv-fw-bold); color: inherit; }
.pv-body .pv-card-price del{ color: var(--pv-gris); opacity: 1; font-weight: var(--pv-fw-regular); font-size: var(--pv-fs-sm); margin-right: 6px; }
.pv-body .pv-card-price del .woocommerce-Price-amount{ font-weight: var(--pv-fw-regular); }
.pv-body .pv-card-price ins{ text-decoration: none; font-weight: var(--pv-fw-bold); }
.pv-body .pv-card-price .precio-sin-iva{ display: block; margin-top: 5px; font-size: 13px; font-weight: var(--pv-fw-regular); color: var(--pv-gris); line-height: 1.3; }
.pv-body .pv-card-price .config-cuotas{ display: block; margin-top: 6px; font-size: var(--pv-fs-xs); font-weight: var(--pv-fw-medium); color: var(--pv-acento); }
/* Cuotas sin interes: chip verde bajo el precio. */
/* Píldora de cuotas: celeste de marca (el verde no pertenecía a la paleta). */
.pv-body .pv-cuotas{ display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; margin: 2px 0 0; padding: 5px 10px; border-radius: 100px; background: linear-gradient(120deg, #dbe9fb 0%, #cfe3fa 100%); color: var(--pv-secundario); font-size: var(--pv-fs-xs); font-weight: var(--pv-fw-semibold); line-height: 1.2; }
.pv-body .pv-cuotas .pv-ico{ width: 15px; height: 15px; flex: 0 0 auto; }
.pv-body .pv-cuotas .woocommerce-Price-amount{ color: inherit; font-weight: var(--pv-fw-bold); }

/* Benefit strip (below the product carousel, as agreed) */
/* Franja de beneficios: una card por item, debajo del slider del home. */
.pv-body .pv-beneficios{ background: #fff; margin-top: var(--pv-space-10); }
.pv-body .pv-beneficios-list{ max-width: var(--pv-container); margin: 0 auto; padding: var(--pv-space-8) var(--pv-gutter); display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--pv-space-4); list-style: none; }
.pv-body .pv-beneficios-list li{ display: flex; align-items: center; gap: var(--pv-space-4); background: var(--pv-fondo); border: 1px solid transparent; border-radius: var(--pv-radius-md); padding: var(--pv-space-5); transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease; }
.pv-body .pv-beneficios-list li:hover{ box-shadow: var(--pv-shadow-card); transform: translateY(-2px); border-color: var(--pv-borde); }
.pv-body .pv-beneficios-list .pv-ico{ width: 38px; height: 38px; color: var(--pv-secundario); stroke-width: 1.4; }
.pv-body .pv-beneficios-list div{ display: flex; flex-direction: column; }
.pv-body .pv-beneficios-list b{ font-size: var(--pv-fs-md); font-weight: var(--pv-fw-semibold); color: var(--pv-secundario); }
.pv-body .pv-beneficios-list span{ font-size: var(--pv-fs-sm); color: var(--pv-gris); }

/* Bloque "¿Tenés un proyecto?": mismo tratamiento que las slides del hero.
   La foto va a sangre en toda la caja y un velo azul la cubre entero a la
   izquierda y se abre hacia la derecha, con el texto en blanco encima. */
.pv-body .pv-pro-box{ position: relative; display: flex; align-items: center; min-height: 440px; border-radius: var(--pv-radius-lg); overflow: hidden; background: var(--pv-secundario); color: #fff; }
.pv-body .pv-pro-img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
/* El velo se corre respecto del hero porque el contenido ocupa dos columnas
   y llega mas a la derecha: asi el peor punto del texto queda en 6,7:1 y la
   foto sigue limpia en el ultimo tercio. */
.pv-body .pv-pro-box::after{ content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgba(0,31,95,.97) 0%, rgba(0,31,95,.96) 50%, rgba(0,31,95,.82) 64%, rgba(0,31,95,.35) 74%, rgba(0,31,95,0) 88%); }
/* Dos columnas: la copia con el boton a la izquierda y los motivos a la derecha. */
.pv-body .pv-pro-body{ position: relative; z-index: 2; width: 100%; box-sizing: border-box; padding: var(--pv-space-12) clamp(24px, 5vw, 72px); max-width: 1012px; display: grid; grid-template-columns: 1.15fr .85fr; gap: var(--pv-space-12); align-items: center; }
.pv-body .pv-pro-copy{ display: flex; flex-direction: column; align-items: flex-start; }
/* La volanta lleva la raya roja de las slides. */
.pv-body .pv-pro-kicker{ margin: 0 0 14px; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); letter-spacing: .12em; text-transform: uppercase; color: #fff; opacity: .85; }
.pv-body .pv-pro-kicker::before{ content: ""; display: inline-block; width: 28px; height: 2px; background: var(--pv-primario); vertical-align: middle; margin-right: 10px; }
.pv-body .pv-pro-title{ font-family: var(--pv-display); font-size: clamp(30px, 2.8vw, 42px); font-weight: var(--pv-fw-bold); margin: 0 0 12px; line-height: 1.05; color: #fff; }
.pv-body .pv-pro-text{ margin: 0 0 var(--pv-space-8); font-size: var(--pv-fs-md); line-height: 1.55; color: rgba(255,255,255,.88); max-width: 42ch; }
/* Los motivos: grilla 2x2, cada uno con el icono en una ficha translucida. */
.pv-body .pv-pro-list{ list-style: none; margin: 0; padding: 0; width: 100%; display: grid; grid-template-columns: 1fr; gap: var(--pv-space-5); }
.pv-body .pv-pro-list li{ display: flex; align-items: flex-start; gap: 14px; }
.pv-body .pv-pro-list li > span:last-child{ display: flex; flex-direction: column; gap: 3px; }
.pv-body .pv-pro-list b{ font-size: var(--pv-fs-md); font-weight: var(--pv-fw-semibold); color: #fff; line-height: 1.3; }
.pv-body .pv-pro-list span span{ font-size: var(--pv-fs-sm); line-height: 1.45; color: rgba(255,255,255,.68); }
.pv-body .pv-pro-ico{ flex: 0 0 auto; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); }
.pv-body .pv-pro-ico .pv-ico{ width: 20px; height: 20px; color: #fff; }

/* Brands: franja a ancho completo, sin bordes y bien lenta. */
.pv-body .pv-marcas{ padding: var(--pv-space-12) 0; }
.pv-body .pv-marcas-title{ margin: 0 0 var(--pv-space-8); text-align: center; font-family: var(--pv-display); font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-semibold); color: var(--pv-secundario); }
.pv-body .pv-marcas-strip{ overflow: hidden; padding: var(--pv-space-4) 0; background: #fff; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%); }
.pv-body .pv-marquee-track{ display: flex; gap: clamp(48px, 6vw, 96px); align-items: center; width: max-content; animation: pv-marquee 110s linear infinite; }
.pv-body .pv-marquee-track img{ height: 38px; width: auto; opacity: .95; transition: opacity .25s ease, transform .25s ease; }
.pv-body .pv-marquee-track img:hover{ opacity: 1; transform: scale(1.04); }
@keyframes pv-marquee { to { transform: translateX(-50%); } }

/* Blog cards */
.pv-body .pv-notas-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--pv-space-6); }
.pv-body .pv-nota{ display: grid; grid-template-columns: 130px 1fr; gap: var(--pv-space-4); align-items: stretch; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-md); overflow: hidden; text-decoration: none; background: #fff; transition: box-shadow .25s ease, transform .25s ease; }
.pv-body .pv-nota:hover{ box-shadow: var(--pv-shadow-card); transform: translateY(-3px); }
.pv-body .pv-nota-media{ display: block; }
.pv-body .pv-nota-media img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.pv-body .pv-nota-body{ display: flex; flex-direction: column; gap: 6px; padding: var(--pv-space-4) var(--pv-space-4) var(--pv-space-4) 0; }
.pv-body .pv-nota-title{ font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-semibold); color: var(--pv-secundario); line-height: 1.25; }
.pv-body .pv-nota-text{ font-size: var(--pv-fs-md); color: var(--pv-gris); line-height: 1.45; }
.pv-body .pv-nota-cta{ margin-top: auto; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); color: var(--pv-primario); }

/* Drawers + overlays */
/* WhatsApp flotante: en todas las páginas, debajo del overlay de los drawers. */
.pv-body .pv-wa-float{ position: fixed; right: 22px; bottom: 22px; z-index: 150; display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 58px; border-radius: 50%; background: var(--pv-secundario); color: #fff; text-decoration: none; box-shadow: 0 6px 20px rgba(0,0,0,.22); transition: background .2s ease, transform .2s ease, box-shadow .2s ease; }
.pv-body .pv-wa-float:hover{ filter: brightness(1.2); color: #fff; transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0,0,0,.26); }
.pv-body .pv-wa-float .pv-ico{ width: 30px; height: 30px; flex: 0 0 auto; }
.pv-body .pv-wa-float-txt{ position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.pv-body .pv-overlay{ display: none; position: fixed; inset: 0; background: rgba(0,31,95,.55); z-index: 300; }
.pv-body .pv-overlay.on{ display: block; }
.pv-body .pv-drawer{ position: fixed; top: 0; bottom: 0; width: min(360px, 88vw); background: #fff; z-index: 301; padding: 56px 24px 24px; overflow: auto; transition: transform .25s ease; }
.pv-body .pv-drawer-menu{ left: 0; transform: translateX(-105%); }
.pv-body .pv-drawer-cart{ right: 0; transform: translateX(105%); }
.pv-body .pv-drawer.on{ transform: none; }
.pv-body .pv-close{ position: absolute; top: 12px; right: 14px; background: none; border: 0; font-size: 26px; cursor: pointer; line-height: 1; color: var(--pv-secundario); }
.pv-body .pv-m-menu, .pv-body .pv-m-menu ul{ list-style: none; margin: 0; padding: 0; }
.pv-body .pv-m-menu > li{ border-bottom: 1px solid var(--pv-borde); padding: 12px 0; }
.pv-body .pv-m-menu a{ color: var(--pv-secundario); text-decoration: none; font-weight: var(--pv-fw-semibold); }
.pv-body .pv-m-account, .pv-body .pv-m-wa{ display: inline-block; margin: 18px 14px 0 0; font-weight: var(--pv-fw-bold); color: var(--pv-secundario); text-decoration: none; }
.pv-body .pv-search-overlay{ display: none; position: fixed; top: 0; left: 0; right: 0; background: #fff; z-index: 301; padding: 60px 20px 30px; }
.pv-body .pv-search-overlay.on{ display: block; }

/* Branches modal */
.pv-body .pv-modal{ display: none; position: fixed; inset: 0; z-index: 320; align-items: center; justify-content: center; padding: 20px; }
.pv-body .pv-modal.on{ display: flex; }
.pv-body .pv-modal-box{ position: relative; background: #fff; border-radius: var(--pv-radius-lg); padding: var(--pv-space-8); width: 620px; max-width: 94vw; max-height: 88vh; overflow: auto; box-shadow: var(--pv-shadow-modal); }
.pv-body .pv-modal-title{ font-family: var(--pv-display); font-size: var(--pv-fs-xl); color: var(--pv-secundario); margin: 0 0 6px; }
.pv-body .pv-modal-sub{ margin: 0 0 var(--pv-space-6); font-size: var(--pv-fs-sm); color: var(--pv-gris); }
.pv-body .pv-suc-list{ list-style: none; margin: 0 0 var(--pv-space-5); padding: 0; display: flex; flex-direction: column; gap: var(--pv-space-4); }
.pv-body .pv-suc-list li{ display: flex; gap: var(--pv-space-3); border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-md); padding: var(--pv-space-4); }
.pv-body .pv-suc-list svg{ width: 22px; height: 22px; flex: 0 0 auto; fill: none; stroke: var(--pv-primario); stroke-width: 1.6; }
.pv-body .pv-suc-list div{ display: flex; flex-direction: column; gap: 2px; }
.pv-body .pv-suc-list b{ font-size: var(--pv-fs-md); color: var(--pv-secundario); }
.pv-body .pv-suc-list span{ font-size: var(--pv-fs-sm); color: var(--pv-texto); }
.pv-body .pv-suc-list i{ font-style: normal; font-size: var(--pv-fs-xs); color: var(--pv-gris); }
.pv-body .pv-modal-note{ margin: 0; font-size: var(--pv-fs-xs); color: var(--pv-gris); }

/* Footer */
/* El footer toma el azul de la franja que tenia encima (secundario oscurecido). */
.pv-body .pv-footer{ background: var(--pv-secundario); background-image: linear-gradient(rgba(0,0,0,.18), rgba(0,0,0,.18)); color: #fff; font-family: var(--pv-font); }
/* Trayectoria + video institucional: franja clara, para despegarla del footer. */
.pv-body .pv-footer-trust{ background: var(--pv-fondo); background-image: none; border-top: 1px solid var(--pv-borde); border-bottom: 1px solid var(--pv-borde); }
.pv-body .pv-footer-trust-inner{ max-width: var(--pv-container); margin: 0 auto; padding: var(--pv-space-12) var(--pv-gutter); display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: var(--pv-space-10); }
.pv-body .pv-trust-kicker{ font-family: var(--pv-display); font-size: clamp(26px, 2.6vw, 36px); font-weight: var(--pv-fw-bold); margin: 0 0 14px; color: var(--pv-secundario); line-height: 1.1; }
.pv-body .pv-trust-text{ margin: 0 0 var(--pv-space-6); font-size: var(--pv-fs-md); line-height: 1.55; color: var(--pv-gris); max-width: 56ch; }
.pv-body .pv-trust-link{ color: var(--pv-secundario); font-size: var(--pv-fs-md); font-weight: var(--pv-fw-semibold); text-decoration: none; }
.pv-body .pv-trust-link:hover{ color: var(--pv-primario); }
.pv-body .pv-trust-iso{ height: 52px; width: auto; flex: 0 0 auto; background: #fff; border-radius: 4px; padding: 5px; box-sizing: border-box; }
.pv-body .pv-trust-video{ position: relative; border-radius: var(--pv-radius-lg); overflow: hidden; background: var(--pv-secundario); aspect-ratio: 16 / 9; box-shadow: var(--pv-shadow-card); }
.pv-body .pv-trust-video video{ width: 100%; height: 100%; object-fit: cover; display: block; }
.pv-body .pv-footer-main{ max-width: var(--pv-container); margin: 0 auto; padding: var(--pv-space-12) var(--pv-gutter) var(--pv-space-8); display: grid; grid-template-columns: 1.7fr 1fr 1.2fr 1.4fr; gap: var(--pv-space-8); }
.pv-body .pv-f-col h3{ font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-bold); text-transform: uppercase; letter-spacing: .06em; margin: 0 0 var(--pv-space-4); color: #fff; }
.pv-body .pv-f-col ul{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.pv-body .pv-f-col a, .pv-body .pv-f-col span{ color: rgba(255,255,255,.8); text-decoration: none; font-size: var(--pv-fs-sm); }
.pv-body .pv-f-col a:hover{ color: #fff; }
.pv-body .pv-f-brand img.pv-logo, .pv-body .pv-f-brand img.custom-logo{ height: 34px; width: auto; margin-bottom: var(--pv-space-4); }
.pv-body .pv-f-about{ font-size: var(--pv-fs-sm); color: rgba(255,255,255,.75); margin: 0 0 var(--pv-space-5); max-width: 38ch; }
.pv-body .pv-f-contact li{ display: flex; align-items: flex-start; gap: 10px; }
.pv-body .pv-f-contact li{ line-height: 1.45; }
/* Los horarios son la linea mas larga: que se parta en dos renglones parejos. */
.pv-body .pv-f-contact li span{ text-wrap: balance; }
.pv-body .pv-f-contact svg{ width: 18px; height: 18px; flex: 0 0 auto; margin-top: 3px; fill: none; stroke: currentColor; stroke-width: 1.6; color: rgba(255,255,255,.8); }
.pv-body .pv-f-contact svg.pv-ico-brand{ fill: currentColor; stroke: none; width: 17px; height: 17px; }
.pv-body .pv-f-contact .pv-btn{ margin-top: var(--pv-space-5); }
.pv-body .pv-social-row{ display: flex; gap: 10px; flex-wrap: wrap; }
.pv-body a.pv-soc{ border: 1px solid rgba(255,255,255,.35); border-radius: 50%; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; color: #fff; text-decoration: none; }
.pv-body a.pv-soc svg.pv-ico{ width: 16px; height: 16px; fill: currentColor; stroke: none; }
.pv-body a.pv-soc i{ font-size: 15px; color: #fff; }
.pv-body a.pv-soc:hover{ background: #fff; border-color: #fff; }
.pv-body a.pv-soc:hover{ color: var(--pv-secundario); }
.pv-body a.pv-soc:hover i{ color: var(--pv-secundario); }
.pv-body .pv-footer-pay{ max-width: var(--pv-container); margin: 0 auto; padding: var(--pv-space-6) var(--pv-gutter); display: flex; align-items: center; gap: var(--pv-space-10); flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,.14); }
.pv-body .pv-pay-group h4{ margin: 0 0 10px; font-size: var(--pv-fs-xs); text-transform: uppercase; letter-spacing: .08em; color: rgba(255,255,255,.6); font-weight: var(--pv-fw-semibold); }
.pv-body .pv-pay-group ul{ list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.pv-body .pv-pay-group li{ background: #fff; border-radius: 5px; display: inline-flex; align-items: center; justify-content: center; min-height: 34px; }
/* Chip de tamaño fijo con el logo centrado: los logotipos de marca tienen
   proporciones muy distintas (Visa es un wordmark ancho, Mastercard dos
   círculos), así que cada uno lleva su tope de alto para que pesen igual. */
.pv-body .pv-pay-card{ width: 58px; height: 34px; }
.pv-body .pv-pay-card img{ display: block; width: auto; height: auto; max-width: 44px; max-height: 24px; }
.pv-body .pv-pay-visa img{ max-width: 44px; max-height: 16px; }
.pv-body .pv-pay-mastercard img{ max-height: 26px; }
.pv-body .pv-pay-americanexpress img{ max-height: 24px; }
.pv-body .pv-pay-mercadopago img{ max-height: 26px; }
.pv-body .pv-pay-text{ padding: 7px 12px; font-size: var(--pv-fs-xs); color: var(--pv-secundario); font-weight: var(--pv-fw-semibold); }
.pv-body .pv-pay-seals{ margin-left: auto; display: flex; align-items: center; gap: var(--pv-space-3); }
.pv-body .pv-afip img{ height: 52px; width: auto; display: block; background: #fff; border-radius: 4px; }
.pv-body .pv-footer-bottom{ border-top: 1px solid rgba(255,255,255,.14); }
.pv-body .pv-footer-bottom{ max-width: var(--pv-container); margin: 0 auto; padding: var(--pv-space-4) var(--pv-gutter) var(--pv-space-6); display: flex; align-items: center; gap: var(--pv-space-6); justify-content: space-between; flex-wrap: wrap; }
.pv-body .pv-copy{ font-size: var(--pv-fs-xs); color: rgba(255,255,255,.7); margin: 0; }
.pv-body .pv-legal{ list-style: none; margin: 0; padding: 0; display: flex; gap: var(--pv-space-5); flex-wrap: wrap; }
.pv-body .pv-legal a{ font-size: var(--pv-fs-xs); color: rgba(255,255,255,.7); text-decoration: none; }
.pv-body .pv-legal a:hover{ color: #fff; }

/* Chrome responsive */
@media (max-width: 1200px){
	.pv-body .pv-pro-box::after{ background: linear-gradient(90deg, rgba(0,31,95,.97) 0%, rgba(0,31,95,.96) 58%, rgba(0,31,95,.80) 72%, rgba(0,31,95,.30) 82%, rgba(0,31,95,0) 94%); }
	.pv-body .pv-pro-body{ gap: var(--pv-space-8); }
	.pv-body .pv-footer-main{ grid-template-columns: 1.4fr 1fr 1.2fr 1.3fr; }
	.pv-body .pv-f-brand{ grid-column: 1 / -1; }
}
@media (max-width: 1024px){
	.pv-body .pv-section{ padding: var(--pv-space-10) var(--pv-gutter); }
	.pv-body .pv-icon-txt{ display: none; }
	.pv-body .pv-cart-count{ left: 16px; }
	.pv-body .pv-notas-grid{ grid-template-columns: 1fr 1fr; }
	.pv-body .pv-beneficios-list{ grid-template-columns: 1fr; }
	.pv-body .pv-bento-tile::before{ content: ""; position: absolute; left: 0; right: 0; top: 0; height: 72%; z-index: 1; background: linear-gradient(180deg, var(--pv-bento-velo) 0%, var(--pv-bento-velo) 34%, transparent 100%); }
	.pv-body .pv-bento{ grid-template-columns: 1fr; grid-template-rows: repeat(3, 180px); }
	.pv-body .pv-bento-a, .pv-body .pv-bento-b, .pv-body .pv-bento-c{ grid-column: 1; }
	.pv-body .pv-bento-a{ grid-row: 1; }
	.pv-body .pv-bento-b{ grid-row: 2; }
	.pv-body .pv-bento-c{ grid-row: 3; }
	.pv-body .pv-cats-panel{ grid-template-columns: 1fr 1fr; }
	.pv-body .pv-cats-promo{ grid-column: 1 / -1; }
}
@media (max-width: 860px){
	.pv-body .pv-wa-float{ right: 16px; bottom: 16px; width: 54px; height: 54px; }
	.pv-body .pv-burger{ display: block; }
	.pv-body .pv-brand img.pv-logo, .pv-body .pv-brand img.custom-logo{ height: 38px; }
	.pv-body .pv-navbar{ display: none; }
	.pv-body .pv-brand, .pv-body .pv-icons{ flex: 0 0 auto; }
	.pv-body .pv-icons{ min-width: 0; }
	.pv-body .pv-header-inner{ flex-wrap: wrap; gap: var(--pv-space-4); padding: 12px var(--pv-gutter); }
	.pv-body .pv-header .pv-search{ order: 3; flex: 1 0 100%; max-width: none; }
	.pv-body .pv-search-cat{ display: none; }
	.pv-body .pv-icons{ margin-left: auto; }
	.pv-body .pv-hero{ padding: 0 var(--pv-space-4); margin-top: var(--pv-space-4); }
	.pv-body .pv-hero-track{ aspect-ratio: auto; height: 420px; }
	.pv-body .pv-hero-slide::after{ background: linear-gradient(180deg, rgba(0,31,95,.40) 0%, rgba(0,31,95,.88) 70%); }
	.pv-body .pv-hero-inner{ padding: 0 24px; }
	.pv-body .pv-hero-arrow{ display: none; }
	.pv-body .pv-section{ padding: var(--pv-space-8) var(--pv-space-4); }
	.pv-body .pv-sec-head{ gap: var(--pv-space-3); }
	.pv-body .pv-sec-title{ font-size: var(--pv-fs-xl); }
	.pv-body .pv-notas-grid{ grid-template-columns: 1fr; }
	.pv-body .pv-beneficios-list{ grid-template-columns: 1fr; gap: var(--pv-space-4); }
	/* Apilado: la foto pasa a ser una franja arriba y los motivos a una columna. */
	/* Apilado: el velo pasa a ser vertical, como en las slides del hero. */
	.pv-body .pv-pro-box{ min-height: 0; }
	.pv-body .pv-pro-box::after{ background: linear-gradient(180deg, rgba(0,31,95,.55) 0%, rgba(0,31,95,.92) 55%); }
	.pv-body .pv-pro-body{ max-width: none; grid-template-columns: 1fr; gap: var(--pv-space-8); padding: var(--pv-space-16) var(--pv-space-6) var(--pv-space-10); }
	.pv-body .pv-pro-list{ gap: var(--pv-space-4); }
	.pv-body .pv-footer-main{ grid-template-columns: 1fr 1fr; }
	.pv-body .pv-footer-trust-inner{ grid-template-columns: 1fr; gap: var(--pv-space-8); }
	.pv-body .pv-car-btn{ display: none; }
}
@media (max-width: 560px){
	/* Claim rotativo: hasta dos líneas, alto fijo para que la franja no salte. */
	.pv-body .pv-topbar-claims{ height: 34px; }
	.pv-body .pv-ticker-msg span{ text-align: center; }
	.pv-body .pv-ticker-msg{ white-space: normal; line-height: 1.3; }
	.pv-body .pv-ticker-msg span{ overflow: visible; }
	.pv-body .pv-footer-main{ grid-template-columns: 1fr; }
	.pv-body .pv-tabs{ gap: var(--pv-space-4); }
}

/* Páginas de ayuda (template-info-sv.php): cabecera, menú lateral, contenido
   y cierre con canales de atención. Mismo contenedor y tipografía que el home. */
.pv-body .pv-info{ background: #fff; }
.pv-body .pv-info-hero{ background: var(--pv-fondo); border-bottom: 1px solid var(--pv-borde); }
.pv-body .pv-info-hero-inner{ max-width: var(--pv-container); margin: 0 auto; padding: var(--pv-space-8) var(--pv-gutter) var(--pv-space-10); }
.pv-body .pv-info-crumbs{ display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 var(--pv-space-3); font-size: var(--pv-fs-xs); color: var(--pv-gris); }
.pv-body .pv-info-crumbs a{ color: var(--pv-secundario); text-decoration: none; }
.pv-body .pv-info-crumbs a:hover{ color: var(--pv-primario); }
.pv-body .pv-info-title{ font-family: var(--pv-display); font-size: clamp(30px, 3.6vw, 44px); font-weight: var(--pv-fw-bold); line-height: var(--pv-lh-tight); color: var(--pv-secundario); margin: 0; }
.pv-body .pv-info-intro{ margin: 12px 0 0; max-width: 64ch; font-size: var(--pv-fs-md); color: var(--pv-gris); }
.pv-body .pv-info-wrap{ max-width: var(--pv-container); margin: 0 auto; padding: var(--pv-space-10) var(--pv-gutter) var(--pv-space-16); display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: var(--pv-space-12); align-items: start; }
.pv-body .pv-info-wrap.is-ancha{ display: block; }
.pv-body .pv-info-nav{ position: sticky; top: 24px; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-lg); padding: var(--pv-space-4); }
.pv-body .pv-info-nav-title{ margin: 0 0 8px; padding: 0 12px; font-size: var(--pv-fs-xs); font-weight: var(--pv-fw-bold); letter-spacing: .08em; text-transform: uppercase; color: var(--pv-gris); }
.pv-body .pv-info-nav ul{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.pv-body .pv-info-nav li{ margin: 0; }
.pv-body .pv-info-nav a{ display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--pv-radius-md); font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-medium); color: var(--pv-texto); text-decoration: none; transition: background .2s ease, color .2s ease; }
.pv-body .pv-info-nav a svg{ width: 18px; height: 18px; flex: 0 0 auto; color: var(--pv-gris); }
.pv-body .pv-info-nav a:hover{ background: var(--pv-fondo); color: var(--pv-secundario); }
.pv-body .pv-info-nav a.is-on{ background: var(--pv-secundario); color: #fff; }
.pv-body .pv-info-nav a.is-on svg{ color: #fff; }

/* Contenido: texto legible, títulos de la marca, listas con viñeta propia. */
.pv-body .pv-info-body{ min-width: 0; max-width: 800px; font-size: var(--pv-fs-md); line-height: var(--pv-lh-loose); color: var(--pv-texto); }
.pv-body .pv-info-wrap.is-ancha .pv-info-body{ max-width: none; }
.pv-body .pv-info-body > :first-child{ margin-top: 0; }
.pv-body .pv-info-body h2{ font-family: var(--pv-display); font-size: var(--pv-fs-xl); font-weight: var(--pv-fw-bold); line-height: 1.2; color: var(--pv-secundario); margin: var(--pv-space-10) 0 var(--pv-space-3); }
.pv-body .pv-info-body h3{ font-family: var(--pv-display); font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-bold); line-height: 1.25; color: var(--pv-secundario); margin: var(--pv-space-6) 0 var(--pv-space-2); }
.pv-body .pv-info-body p{ margin: 0 0 var(--pv-space-4); }
.pv-body .pv-info-body a{ color: var(--pv-primario); font-weight: var(--pv-fw-medium); text-decoration: underline; text-underline-offset: 3px; }
.pv-body .pv-info-body a:hover{ color: var(--pv-primario-hover); }
.pv-body .pv-info-body a.pv-btn{ text-decoration: none; }
.pv-body .pv-info-body a.pv-btn-primario{ color: #fff; }
.pv-body .pv-info-body a.pv-btn-linea{ color: var(--pv-secundario); }
.pv-body .pv-info-body a.pv-btn-linea:hover{ color: #fff; }
.pv-body .pv-info-body ul{ list-style: none; margin: 0 0 var(--pv-space-5); padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pv-body .pv-info-body ul > li{ position: relative; margin: 0; padding-left: 22px; }
.pv-body .pv-info-body ul > li::before{ content: ""; position: absolute; left: 4px; top: .7em; width: 7px; height: 7px; border-radius: 50%; background: var(--pv-primario); }
.pv-body .pv-info-body strong{ color: var(--pv-secundario); font-weight: var(--pv-fw-bold); }
.pv-body .pv-info-lead{ font-size: var(--pv-fs-lg); line-height: 1.5; color: var(--pv-texto); }
.pv-body .pv-info-nota{ margin-top: var(--pv-space-8) !important; padding: var(--pv-space-4) var(--pv-space-5); border-left: 3px solid var(--pv-secundario); background: var(--pv-fondo); border-radius: 0 var(--pv-radius-md) var(--pv-radius-md) 0; font-size: var(--pv-fs-sm); color: var(--pv-gris); }
.pv-body .pv-info-destacado{ display: flex; align-items: center; gap: 14px; padding: var(--pv-space-4) var(--pv-space-5); border-radius: var(--pv-radius-md); background: var(--pv-secundario); color: #fff; }
.pv-body .pv-info-destacado strong{ color: #fff; }
.pv-body .pv-info-destacado svg{ width: 28px; height: 28px; flex: 0 0 auto; }
.pv-body .pv-info-card{ background: #fff; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-lg); padding: var(--pv-space-6); }
.pv-body .pv-info-body .pv-info-cols{ display: grid; grid-template-columns: 1fr 1fr; gap: var(--pv-space-6); }
.pv-body .pv-info-cols > div{ padding: var(--pv-space-5); border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-lg); }
.pv-body .pv-info-cols h3{ margin-top: 0; }
.pv-body .pv-info-cols ul{ margin: 0; }

/* Cómo comprar: pasos numerados. */
.pv-body .pv-info-steps{ list-style: none; counter-reset: pv-paso; margin: var(--pv-space-8) 0; padding: 0; display: flex; flex-direction: column; gap: var(--pv-space-4); }
.pv-body .pv-info-steps > li{ counter-increment: pv-paso; position: relative; margin: 0; padding: var(--pv-space-5) var(--pv-space-6) var(--pv-space-5) 84px; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-lg); }
.pv-body .pv-info-steps > li::before{ content: counter(pv-paso); position: absolute; left: var(--pv-space-6); top: var(--pv-space-5); width: 40px; height: 40px; border-radius: 50%; background: var(--pv-secundario); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--pv-display); font-weight: var(--pv-fw-bold); font-size: var(--pv-fs-md); }
.pv-body .pv-info-steps h2{ margin: 6px 0 6px; font-size: var(--pv-fs-lg); }
.pv-body .pv-info-steps p:last-child, .pv-body .pv-info-steps ul:last-child{ margin-bottom: 0; }

/* Preguntas frecuentes en acordeón. */
.pv-body .pv-info-faq{ display: flex; flex-direction: column; gap: var(--pv-space-3); margin: 0 0 var(--pv-space-6); }
.pv-body .pv-info-faq details{ border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-md); background: #fff; transition: border-color .2s ease; }
.pv-body .pv-info-faq details[open]{ border-color: var(--pv-secundario); }
.pv-body .pv-info-faq summary{ list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; font-weight: var(--pv-fw-semibold); color: var(--pv-secundario); }
.pv-body .pv-info-faq summary::-webkit-details-marker{ display: none; }
.pv-body .pv-info-faq summary::after{ content: "+"; flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; background: var(--pv-fondo); display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: var(--pv-fw-regular); line-height: 1; transition: transform .2s ease; }
.pv-body .pv-info-faq details[open] summary::after{ transform: rotate(45deg); }
.pv-body .pv-info-faq details p{ margin: 0; padding: 0 20px 18px; color: var(--pv-texto); }

/* Formas de envío / medios de pago: beneficios y logos. */
.pv-body .pv-info-body .pv-info-beneficios{ display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--pv-space-3); margin: 0 0 var(--pv-space-6); }
.pv-body .pv-info-body .pv-info-beneficios li{ display: flex; align-items: center; gap: 12px; padding: var(--pv-space-4); border-radius: var(--pv-radius-md); background: var(--pv-fondo); font-weight: var(--pv-fw-semibold); color: var(--pv-secundario); line-height: 1.3; }
.pv-body .pv-info-body .pv-info-beneficios li::before{ display: none; }
.pv-body .pv-info-beneficios svg{ width: 28px; height: 28px; flex: 0 0 auto; color: var(--pv-primario); }
.pv-body .pv-info-body .pv-info-pagos{ flex-direction: row; flex-wrap: wrap; gap: var(--pv-space-3); margin: var(--pv-space-2) 0 var(--pv-space-4); }
.pv-body .pv-info-body .pv-info-pagos li{ padding: 10px 16px; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-md); display: flex; align-items: center; }
.pv-body .pv-info-body .pv-info-pagos li::before{ display: none; }
.pv-body .pv-info-pagos img{ display: block; height: 26px; width: auto; }

/* Cierre: canales de atención. */
.pv-body .pv-info-help{ padding: 0 var(--pv-gutter) var(--pv-space-16); }
.pv-body .pv-info-help-inner{ max-width: var(--pv-container); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: var(--pv-space-6); flex-wrap: wrap; padding: var(--pv-space-8) var(--pv-space-10); border-radius: var(--pv-radius-lg); background: var(--pv-secundario); color: #fff; }
.pv-body .pv-info-help h2{ margin: 0 0 6px; font-family: var(--pv-display); font-size: var(--pv-fs-xl); font-weight: var(--pv-fw-bold); color: #fff; }
.pv-body .pv-info-help p{ margin: 0; color: rgba(255,255,255,.8); }
.pv-body .pv-info-help-btns{ display: flex; flex-wrap: wrap; gap: var(--pv-space-3); }
.pv-body .pv-btn-blanco{ background: #fff; color: var(--pv-secundario); border-color: #fff; }
.pv-body .pv-btn-blanco:hover{ background: transparent; color: #fff; }
.pv-body .pv-info-help .pv-btn svg, .pv-body .pv-ct-alt .pv-btn svg{ width: 20px; height: 20px; }

/* Formularios (WPForms) dentro de las páginas de ayuda. */
.pv-body .pv-info-form .wpforms-container{ margin: 0 !important; }
.pv-body .pv-info-form .wpforms-field{ padding: 0 0 var(--pv-space-4) !important; }
.pv-body .pv-info-form .wpforms-field-label, .pv-body .pv-info-form .wpforms-field-sublabel{ font-size: var(--pv-fs-sm) !important; font-weight: var(--pv-fw-semibold) !important; color: var(--pv-secundario) !important; margin: 0 0 6px !important; }
.pv-body .pv-info-form .wpforms-required-label{ color: var(--pv-primario) !important; }
.pv-body .pv-info-form input[type="text"], .pv-body .pv-info-form input[type="email"], .pv-body .pv-info-form input[type="tel"], .pv-body .pv-info-form input[type="number"], .pv-body .pv-info-form select, .pv-body .pv-info-form textarea{ width: 100% !important; max-width: none !important; height: 48px; padding: 0 14px !important; border: 1px solid var(--pv-borde-fuerte) !important; border-radius: 10px !important; background: #fff !important; font-family: var(--pv-font) !important; font-size: var(--pv-fs-sm) !important; color: var(--pv-texto) !important; box-shadow: none !important; }
.pv-body .pv-info-form select{ -webkit-appearance: none; appearance: none; padding-right: 40px !important; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23001F5F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center / 18px !important; cursor: pointer; }
.pv-body .pv-info-form textarea{ height: 120px !important; padding: 12px 14px !important; }
.pv-body .pv-info-form input:focus, .pv-body .pv-info-form select:focus, .pv-body .pv-info-form textarea:focus{ border-color: var(--pv-secundario) !important; outline: 2px solid rgba(0,31,95,.12); }
.pv-body .pv-info-form button[type="submit"]{ display: inline-flex !important; align-items: center; justify-content: center; height: auto !important; padding: 14px 34px !important; border: 0 !important; border-radius: 100px !important; background: var(--pv-primario) !important; color: #fff !important; font-family: var(--pv-font) !important; font-size: var(--pv-fs-md) !important; font-weight: var(--pv-fw-semibold) !important; cursor: pointer; transition: background .2s ease; }
.pv-body .pv-info-form button[type="submit"]:hover{ background: var(--pv-primario-hover) !important; }
.pv-body .pv-info-form .wpforms-error{ color: var(--pv-error) !important; font-size: var(--pv-fs-xs) !important; }

/* Contacto. */
.pv-body .pv-info-body .pv-ct-canales{ list-style: none; margin: 0 0 var(--pv-space-8); padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--pv-space-4); }
.pv-body .pv-info-body .pv-ct-canales > li{ margin: 0; padding: 0; }
.pv-body .pv-info-body .pv-ct-canales > li::before{ display: none; }
.pv-body .pv-info-body .pv-ct-canales a{ height: 100%; display: flex; align-items: flex-start; gap: 16px; padding: var(--pv-space-5); border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-lg); color: var(--pv-texto); font-weight: var(--pv-fw-regular); text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease; }
.pv-body .pv-info-body .pv-ct-canales a:hover{ border-color: var(--pv-secundario); box-shadow: var(--pv-shadow-card); color: var(--pv-texto); }
.pv-body .pv-ct-ico{ flex: 0 0 auto; width: 48px; height: 48px; border-radius: 50%; background: var(--pv-fondo); color: var(--pv-secundario); display: flex; align-items: center; justify-content: center; }
.pv-body .pv-ct-ico svg{ width: 24px; height: 24px; }
.pv-body .pv-ct-txt{ display: flex; flex-direction: column; gap: 2px; min-width: 0; line-height: 1.35; }
.pv-body .pv-ct-txt b{ font-size: var(--pv-fs-xs); text-transform: uppercase; letter-spacing: .06em; color: var(--pv-gris); }
.pv-body .pv-ct-txt span{ font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); overflow-wrap: anywhere; }
.pv-body .pv-ct-txt i{ font-style: normal; font-size: var(--pv-fs-xs); color: var(--pv-gris); }
.pv-body .pv-ct-grid{ display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: var(--pv-space-8); align-items: start; }
.pv-body .pv-ct-grid h2{ margin-top: 0; }
.pv-body .pv-ct-form{ padding: var(--pv-space-8); }
.pv-body .pv-ct-sub{ color: var(--pv-gris); font-size: var(--pv-fs-sm); }
.pv-body .pv-ct-alt{ display: flex; flex-wrap: wrap; gap: var(--pv-space-3); margin-top: var(--pv-space-4); }
.pv-body .pv-info-body .pv-ct-sucs ul{ display: grid; grid-template-columns: 1fr; gap: var(--pv-space-3); margin: 0; }
.pv-body .pv-info-body .pv-ct-sucs ul > li.pv-info-card{ padding: var(--pv-space-5); display: flex; flex-direction: column; gap: 6px; font-size: var(--pv-fs-sm); line-height: 1.4; }
.pv-body .pv-info-body .pv-ct-sucs ul > li::before{ display: none; }
.pv-body .pv-ct-suc-name{ font-family: var(--pv-display); font-size: var(--pv-fs-md); color: var(--pv-secundario); margin-bottom: 2px; }
.pv-body .pv-ct-sucs li > span{ display: flex; align-items: flex-start; gap: 8px; color: var(--pv-texto); }
.pv-body .pv-ct-sucs li > span svg{ width: 17px; height: 17px; flex: 0 0 auto; margin-top: 1px; color: var(--pv-primario); }
.pv-body .pv-info-body .pv-ct-sucs li > span a{ color: var(--pv-texto); text-decoration: none; font-weight: var(--pv-fw-medium); }
.pv-body .pv-info-body a.pv-ct-suc-map{ align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-weight: var(--pv-fw-semibold); text-decoration: none; }
.pv-body .pv-ct-suc-map svg{ width: 16px; height: 16px; }
.pv-body .pv-ct-mapa{ margin-top: var(--pv-space-8); border-radius: var(--pv-radius-lg); overflow: hidden; border: 1px solid var(--pv-borde); }
.pv-body .pv-ct-mapa iframe{ display: block; width: 100%; height: 380px; border: 0; }
.pv-body .pv-arr{ margin: var(--pv-space-6) 0 var(--pv-space-8); }
.pv-body .pv-arr h2{ margin-top: 0; }

/* Mi cuenta: el link a la política de privacidad salía en blanco. */
.pv-body .woocommerce-privacy-policy-text a, .pv-body .woocommerce-privacy-policy-link{ color: var(--pv-primario) !important; text-decoration: underline; }

@media (max-width: 1024px){
	.pv-body .pv-info-wrap{ grid-template-columns: 1fr; gap: var(--pv-space-6); padding-top: var(--pv-space-6); }
	/* El menú de ayuda pasa a una fila de chips con scroll horizontal. */
	.pv-body .pv-info-nav{ position: static; border: 0; padding: 0; margin: 0 calc(var(--pv-gutter) * -1); }
	.pv-body .pv-info-nav-title{ display: none; }
	.pv-body .pv-info-nav ul{ flex-direction: row; gap: 8px; overflow-x: auto; padding: 0 var(--pv-gutter) 4px; scrollbar-width: none; }
	.pv-body .pv-info-nav ul::-webkit-scrollbar{ display: none; }
	.pv-body .pv-info-nav a{ white-space: nowrap; padding: 8px 14px; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-pill); }
	.pv-body .pv-info-nav a.is-on{ border-color: var(--pv-secundario); }
	.pv-body .pv-info-nav a svg{ display: none; }
	.pv-body .pv-ct-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 640px){
	.pv-body .pv-info-hero-inner{ padding: var(--pv-space-6) var(--pv-gutter) var(--pv-space-6); }
	.pv-body .pv-info-wrap{ padding: var(--pv-space-5) var(--pv-gutter) var(--pv-space-10); }
	.pv-body .pv-info-body{ font-size: var(--pv-fs-sm); }
	.pv-body .pv-info-body h2{ font-size: var(--pv-fs-lg); margin-top: var(--pv-space-8); }
	.pv-body .pv-info-lead{ font-size: var(--pv-fs-md); }
	.pv-body .pv-info-body .pv-info-cols{ grid-template-columns: 1fr; gap: var(--pv-space-3); }
	.pv-body .pv-info-steps > li{ padding: var(--pv-space-4) var(--pv-space-4) var(--pv-space-4) 64px; }
	.pv-body .pv-info-steps > li::before{ left: var(--pv-space-4); top: var(--pv-space-4); width: 34px; height: 34px; font-size: var(--pv-fs-sm); }
	.pv-body .pv-info-help{ padding-bottom: var(--pv-space-10); }
	.pv-body .pv-info-help-inner{ padding: var(--pv-space-6) var(--pv-space-5); }
	.pv-body .pv-info-help-btns, .pv-body .pv-info-help-btns .pv-btn, .pv-body .pv-ct-alt .pv-btn{ width: 100%; }
	.pv-body .pv-ct-form{ padding: var(--pv-space-5); }
	.pv-body .pv-ct-mapa iframe{ height: 280px; }
}
/* Galería de producto (Gallery Slider): legacy-theme dibuja un chevron blanco
   sobre el cuadrado gris del plugin y no se veía. Se usan los mismos botones redondos
   que los carruseles del home, con el chevron dibujado por máscara. */
.pv-body .wcgs-carousel .wcgs-spswiper-arrow{ width: 40px !important; height: 40px !important; top: 50% !important; bottom: auto !important; margin-top: -20px !important; transform: none !important; border-radius: 50% !important; background: #fff !important; border: 1px solid var(--pv-borde-fuerte); box-shadow: var(--pv-shadow-card); color: var(--pv-secundario) !important; opacity: 1; display: flex !important; align-items: center; justify-content: center; transition: border-color .2s ease, color .2s ease; }
.pv-body .wcgs-carousel .wcgs-spswiper-button-prev{ left: 12px !important; }
.pv-body .wcgs-carousel .wcgs-spswiper-button-next{ right: 12px !important; }
.pv-body #wpgs-gallery .wcgs-carousel .wcgs-spswiper-arrow.wcgs-spswiper-button-prev::before,
.pv-body #wpgs-gallery .wcgs-carousel .wcgs-spswiper-arrow.wcgs-spswiper-button-next::before,
.pv-body .wcgs-carousel .wcgs-spswiper-arrow::before{ content: "" !important; font-family: inherit !important; display: block !important; position: static !important; width: 20px !important; height: 20px !important; margin: 0 !important; background-image: none !important; background-color: var(--pv-secundario) !important; -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.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%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.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") center/contain no-repeat;  inset: auto !important; }
.pv-body #wpgs-gallery .wcgs-carousel .wcgs-spswiper-arrow.wcgs-spswiper-button-prev::before,
.pv-body .wcgs-carousel .wcgs-spswiper-button-prev::before{ transform: rotate(180deg); }
.pv-body .wcgs-carousel .wcgs-spswiper-arrow::after{ display: none !important; }
.pv-body .wcgs-carousel .wcgs-spswiper-arrow:hover{ border-color: var(--pv-secundario); color: var(--pv-primario) !important; }
.pv-body #wpgs-gallery .wcgs-carousel .wcgs-spswiper-arrow:hover::before{ background-color: var(--pv-primario) !important; }
.pv-body .wcgs-carousel .wcgs-spswiper-arrow.wcgs-spswiper-button-disabled{ opacity: .35; }
/* Con una sola foto no hay nada que pasar: sin flechas. */
.pv-body .wcgs-carousel:has(.wcgs-spswiper-button-prev.wcgs-spswiper-button-disabled):has(.wcgs-spswiper-button-next.wcgs-spswiper-button-disabled) .wcgs-spswiper-arrow{ display: none !important; }

/* Tienda / categorías: mismo contenedor, tipografía y tarjetas que el home. */
.pv-body .pv-shop{ background: #fff; }
.pv-body .pv-shop-inner{ max-width: var(--pv-container); margin: 0 auto; padding: var(--pv-space-6) var(--pv-gutter) var(--pv-space-16); }
.pv-body .pv-shop .woocommerce-breadcrumb{ margin: 0 0 var(--pv-space-3); font-size: var(--pv-fs-xs); color: var(--pv-gris); }
.pv-body .pv-shop .woocommerce-breadcrumb a{ color: var(--pv-secundario); text-decoration: none; }
.pv-body .pv-shop .woocommerce-breadcrumb a:hover{ color: var(--pv-primario); }
.pv-body .pv-shop-head{ margin: 0 0 var(--pv-space-5); }
.pv-body .pv-shop-title{ font-family: var(--pv-display); font-size: clamp(28px, 3.2vw, 40px); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); line-height: var(--pv-lh-tight); margin: 0; }
.pv-body .pv-shop-head .term-description,
.pv-body .pv-shop-head .page-description{ margin: 10px 0 0; max-width: 72ch; color: var(--pv-gris); font-size: var(--pv-fs-sm); }
.pv-body .pv-shop-head .term-description p{ margin: 0; }
/* Subcategorías: chips para saltar sin abrir el menú. */
.pv-body .pv-shop-chips{ display: flex; flex-wrap: wrap; gap: var(--pv-space-2); margin: 0 0 var(--pv-space-6); }
.pv-body .pv-chip{ display: inline-flex; align-items: center; padding: 8px 16px; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-pill); background: #fff; color: var(--pv-secundario); font-size: 14px; font-weight: var(--pv-fw-medium); line-height: 1.2; text-decoration: none; white-space: nowrap; transition: border-color .2s ease, background .2s ease, color .2s ease; }
.pv-body .pv-chip:hover{ border-color: var(--pv-secundario); color: var(--pv-secundario); }
.pv-body .pv-chip.is-on{ background: var(--pv-secundario); border-color: var(--pv-secundario); color: #fff; }
.pv-body .pv-shop-layout{ display: block; }
.pv-body .pv-shop.has-filters .pv-shop-layout{ display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: var(--pv-space-8); align-items: start; }
.pv-body .pv-shop-filters h2{ font-family: var(--pv-display); font-size: var(--pv-fs-md); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); margin: 0 0 14px; }
.pv-body .pv-shop-toolbar{ display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: var(--pv-space-5); flex-wrap: wrap; }
.pv-body .pv-shop-toolbar .woocommerce-result-count{ margin: 0; font-size: 14px; color: var(--pv-gris); }
.pv-body .pv-shop-toolbar .woocommerce-ordering{ margin: 0; }
.pv-body .pv-shop-toolbar .woocommerce-ordering select{ height: 42px; padding: 0 36px 0 14px; border: 1px solid var(--pv-borde); border-radius: 10px; background-color: #fff; font-family: var(--pv-font); font-size: 14px; color: var(--pv-texto); cursor: pointer; }
.pv-body .pv-shop-grid,
.pv-body .pv-shop ul.products{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--pv-space-5); margin: 0; padding: 0; list-style: none; float: none; width: 100%; }
.pv-body .pv-shop.has-filters ul.products{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pv-body .pv-shop ul.products::before,
.pv-body .pv-shop ul.products::after{ display: none !important; content: none !important; }
.pv-body .pv-shop ul.products li.product{ width: auto !important; float: none !important; margin: 0 !important; padding: 0; list-style: none; }
.pv-body .pv-shop .pv-hot{ top: 12px; right: 10px; }
.pv-body .pv-shop .woocommerce-message{ display: none; }
.pv-body .pv-shop .woocommerce-info{ background: var(--pv-fondo); border: 0; border-radius: var(--pv-radius-md); color: var(--pv-texto); }
body.pv-body .pv-shop nav.woocommerce-pagination{ display: flex; justify-content: center; text-align: center; margin: var(--pv-space-10) 0 var(--pv-space-8); }
body.pv-body .pv-shop nav.woocommerce-pagination ul.page-numbers{ border: 0; margin: 0; padding: 0; }
body.pv-body .pv-shop nav.woocommerce-pagination ul.page-numbers li{ border: 0; margin: 0 2px; padding: 0; overflow: visible; }
body.pv-body .pv-shop nav.woocommerce-pagination ul.page-numbers li a, body.pv-body .pv-shop nav.woocommerce-pagination ul.page-numbers li span{ border: 0; background: transparent; color: var(--pv-texto); width: 2.5em; height: 2.5em; line-height: 2.5em; padding: 0; min-width: 0; text-align: center; display: block; border-radius: 50%; font-weight: var(--pv-fw-medium); }
body.pv-body .pv-shop nav.woocommerce-pagination ul.page-numbers li a:hover{ background: var(--pv-fondo); color: var(--pv-secundario); }
body.pv-body .pv-shop nav.woocommerce-pagination ul.page-numbers li span.current{ background: var(--pv-secundario); color: #fff; font-weight: var(--pv-fw-bold); }
@media (max-width: 1200px){
	.pv-body .pv-shop ul.products{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.pv-body .pv-shop.has-filters ul.products{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px){
	.pv-body .pv-shop.has-filters .pv-shop-layout{ grid-template-columns: 1fr; }
	.pv-body .pv-shop-grid,
	.pv-body .pv-shop ul.products,
	.pv-body .pv-shop.has-filters ul.products{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pv-space-3); }
	/* Los chips pasan a una fila deslizable para no empujar la grilla. */
	.pv-body .pv-shop-chips{ flex-wrap: nowrap; overflow-x: auto; margin-left: calc(-1 * var(--pv-gutter)); margin-right: calc(-1 * var(--pv-gutter)); padding: 0 var(--pv-gutter) 4px; scrollbar-width: none; }
	.pv-body .pv-shop-chips::-webkit-scrollbar{ display: none; }
}

/* Side cart — Elementor Pro Menu Cart parity */
.pv-body .pv-overlay{ background: rgba(0,0,0,.25); }
.pv-body .pv-drawer-cart{
	width: 350px; max-width: 100%;
	padding: 0;
	font-family: var(--pv-font); font-size: 14px;
	display: flex; flex-direction: column;
	overflow: hidden;
	box-shadow: 0 0 20px rgba(0,0,0,.2);
}
.pv-body .pv-mc-head{
	display: flex; align-items: center; justify-content: space-between;
	padding: 18px 30px 12px; flex-shrink: 0;
	border-bottom: 1px solid var(--pv-borde);
}
.pv-body .pv-mc-title{
	margin: 0; font-family: var(--pv-font); font-size: 18px; font-weight: 700;
	color: #000; line-height: 1.2;
}
.pv-body .pv-drawer-cart .pv-mc-close{
	position: static; top: auto; right: auto;
	font-size: 22px; color: #69727d; padding: 0 0 0 12px; line-height: 1;
}
.pv-body .pv-drawer-cart .pv-mc-close:hover{ color: #000; }
.pv-body .pv-mini-cart{
	flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column;
	padding: 12px 30px 24px; overflow: hidden;
}
.pv-body .pv-mc-list{
	list-style: none; margin: 0; padding: 0;
	flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch;
	max-height: calc(100vh - 280px);
}
.pv-body .pv-drawer-cart .pv-mc-item::before,
.pv-body .pv-drawer-cart .pv-mc-item::after,
.pv-body .pv-drawer-cart li.woocommerce-mini-cart-item::before,
.pv-body .pv-drawer-cart li.woocommerce-mini-cart-item::after,
.pv-body .pv-drawer-cart ul.product_list_widget li::before,
.pv-body .pv-drawer-cart ul.product_list_widget li::after{
	content: none !important;
	display: none !important;
	clear: none !important;
}
.pv-body .pv-drawer-cart .pv-mc-item,
.pv-body .pv-drawer-cart li.woocommerce-mini-cart-item,
.pv-body .pv-drawer-cart ul.product_list_widget li{
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: flex-start !important;
	gap: 14px !important;
	position: relative !important;
	padding: 16px 28px 16px 0 !important;
	margin: 0 !important;
	border-bottom: 1px solid var(--pv-borde) !important;
	list-style: none !important;
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	overflow: visible !important;
	zoom: normal !important;
}
.pv-body .pv-drawer-cart .pv-mc-item:last-child,
.pv-body .pv-drawer-cart li.woocommerce-mini-cart-item:last-child{ border-bottom: 0 !important; }
.pv-body .pv-drawer-cart .pv-mc-thumb{
	flex: 0 0 80px !important;
	width: 80px !important;
	height: 80px !important;
	max-width: 80px !important;
	order: 1 !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	border-radius: 0;
	background: #f4f4f4;
}
.pv-body .pv-drawer-cart .pv-mc-thumb a{
	display: block !important; float: none !important; margin: 0 !important;
	width: 80px !important; height: 80px !important; overflow: hidden !important;
}
.pv-body .pv-drawer-cart .pv-mc-thumb img,
.pv-body .pv-drawer-cart .pv-mc-item img,
.pv-body .pv-drawer-cart li.woocommerce-mini-cart-item img,
.pv-body .pv-drawer-cart ul.product_list_widget li img,
.pv-body .pv-drawer-cart ul.product_list_widget li a img,
.pv-body .pv-drawer-cart img.pv-mc-img,
.pv-body .pv-drawer-cart img.wvs-archive-product-image{
	float: none !important;
	display: block !important;
	width: 80px !important;
	max-width: 80px !important;
	min-width: 80px !important;
	height: 80px !important;
	max-height: 80px !important;
	margin: 0 !important;
	padding: 0 !important;
	position: static !important;
	inset: auto !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	bottom: auto !important;
	transform: none !important;
	-webkit-transform: none !important;
	translate: none !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
	vertical-align: middle !important;
	box-shadow: none !important;
}
.pv-body .pv-drawer-cart .pv-mc-body{
	flex: 1 1 auto !important;
	order: 2 !important;
	min-width: 0 !important;
	max-width: 100% !important;
	padding: 0 4px 0 0 !important;
	float: none !important;
	width: auto !important;
}
.pv-body .pv-drawer-cart .pv-mc-name{
	margin: 0 0 6px !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	line-height: 1.15 !important;
	color: #000 !important;
}
.pv-body .pv-drawer-cart .pv-mc-name a{
	color: #000 !important; text-decoration: none !important; font-weight: 400 !important;
}
.pv-body .pv-drawer-cart .pv-mc-name a:hover{ color: #727272 !important; }
.pv-body .pv-drawer-cart .pv-mc-price{
	margin: 0 0 10px !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	color: #000 !important;
	line-height: 1.2 !important;
}
.pv-body .pv-drawer-cart .pv-mc-price del{ font-weight: 400 !important; opacity: .55; margin-right: 4px; }
.pv-body .pv-drawer-cart .pv-mc-price .amount{ font-weight: 700 !important; color: #000 !important; }
.pv-body .pv-drawer-cart .pv-mc-item .variation{
	display: grid; grid-template-columns: max-content auto; gap: 0 6px;
	font-size: 14px; color: #000; margin: 0 0 6px;
}
.pv-body .pv-drawer-cart .pv-mc-item .variation p{ margin: 0; }
.pv-body .pv-drawer-cart .pv-mc-qty{
	display: inline-flex !important; align-items: stretch; border: 1px solid #d5d8dc;
	border-radius: 8px; overflow: hidden; height: 36px; background: #fff; width: auto;
}
.pv-body .pv-drawer-cart .pv-mc-qty-btn{
	width: 36px; border: 0; background: #f7f7f7; color: #000;
	font-size: 18px; line-height: 1; cursor: pointer; padding: 0;
}
.pv-body .pv-drawer-cart .pv-mc-qty-btn:hover{ background: #ebebeb; }
.pv-body .pv-drawer-cart .pv-mc-qty-input{
	width: 40px; border: 0; border-left: 1px solid #d5d8dc; border-right: 1px solid #d5d8dc;
	text-align: center; font-family: var(--pv-font); font-size: 14px; font-weight: 500;
	color: #000; -moz-appearance: textfield; appearance: textfield; background: #fff;
}
.pv-body .pv-drawer-cart .pv-mc-qty-input::-webkit-outer-spin-button,
.pv-body .pv-drawer-cart .pv-mc-qty-input::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }
.pv-body .pv-drawer-cart .pv-mc-remove{
	position: absolute !important; top: 14px !important; right: 0 !important; left: auto !important;
	width: 22px !important; height: 22px !important;
	display: inline-flex !important; align-items: center; justify-content: center;
	text-decoration: none !important; color: #8b8b8b !important; line-height: 1;
	border: 0 !important; background: transparent !important; padding: 0 !important;
	float: none !important; z-index: 2;
}
.pv-body .pv-drawer-cart .pv-mc-remove:hover{ color: #000 !important; transform: scale(1.1); }
.pv-body .pv-drawer-cart .pv-mc-remove svg{ display: block; }
.pv-body .pv-mc-footer{ flex-shrink: 0; padding-top: 8px; margin-top: auto; }
.pv-body .pv-mc-subtotal{
	display: flex; justify-content: space-between; align-items: baseline;
	margin: 0 0 16px; padding: 16px 0 0;
	border-top: 1px solid var(--pv-borde);
	font-family: var(--pv-font); font-size: 18px; font-weight: 700; color: #000;
}
.pv-body .pv-mc-subtotal .amount{ font-weight: 700; }
.pv-body .pv-mc-buttons{
	display: grid; grid-template-columns: 1fr; gap: 10px;
	margin: 0; padding: 0;
}
.pv-body .pv-mc-btn{
	display: block !important; width: 100%; box-sizing: border-box;
	text-align: center; text-decoration: none !important;
	font-family: var(--pv-font) !important; font-size: 16px !important; font-weight: 700 !important;
	line-height: 1.2 !important; padding: 14px 18px !important;
	border-radius: 50px !important; border-style: solid !important; border-width: 1px !important;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.pv-body a.pv-mc-btn-view{
	background: #fff !important; color: #000 !important; border-color: #000 !important;
}
.pv-body a.pv-mc-btn-view:hover{
	background: #000 !important; color: #fff !important;
}
.pv-body a.pv-mc-btn-checkout{
	background: var(--pv-primario) !important; color: #fff !important; border-color: var(--pv-primario) !important;
}
.pv-body a.pv-mc-btn-checkout:hover{
	background: #000 !important; border-color: #000 !important; color: #fff !important;
}
.pv-body .pv-mc-empty{
	text-align: center; color: #000; padding: 40px 8px 24px;
	display: flex; flex-direction: column; align-items: center; gap: 12px;
}
.pv-body .pv-mc-empty-icon{ color: #000; opacity: .85; display: block; width: 95%; }
.pv-body .pv-mc-empty-icon svg{ display: block; margin: 0 auto; }
.pv-body .pv-mc-empty p{ margin: 0; font-size: 16px; }
.pv-body .pv-drawer-cart .wfspb_bar_in_mini_cart,
.pv-body .pv-drawer-cart .woocommerce-free-shipping-bar-order,
.pv-body .pv-drawer-cart .woocommerce-free-shipping-bar-message,
.pv-body .pv-mini-cart .wfspb_bar_in_mini_cart,
.pv-body .pv-mini-cart .woocommerce-free-shipping-bar-order{
	display: none !important;
}
.pv-body .pv-mini-cart.pv-mc-loading{ opacity: .55; pointer-events: none; }
.pv-body .pv-cart-count:empty,
.pv-body .pv-cart-count[data-count="0"]{ display: none; }

/* Fallback if stale Elementor mini-cart HTML is injected via WC fragments */
.pv-body .pv-drawer-cart .elementor-menu-cart__products{
	list-style: none; margin: 0; padding: 0; max-height: calc(100vh - 280px); overflow-y: auto;
}
.pv-body .pv-drawer-cart .elementor-menu-cart__product{
	display: grid !important; grid-template-columns: 72px 1fr !important;
	gap: 0 14px; position: relative; padding: 14px 28px 14px 0 !important;
	border-bottom: 1px solid var(--pv-borde); align-items: start;
}
.pv-body .pv-drawer-cart .elementor-menu-cart__product-image{
	width: 72px !important; grid-row: 1 / span 3;
}
.pv-body .pv-drawer-cart .elementor-menu-cart__product-image img{
	width: 72px !important; max-width: 72px !important; height: auto !important; display: block;
}
.pv-body .pv-drawer-cart .elementor-menu-cart__product-name,
.pv-body .pv-drawer-cart .elementor-menu-cart__product-price{
	grid-column: 2; padding-left: 0 !important; font-family: var(--pv-font);
}
.pv-body .pv-drawer-cart .elementor-menu-cart__product-name a{
	color: #000 !important; font-size: 15px; font-weight: 400; text-decoration: none; line-height: 1.15;
}
.pv-body .pv-drawer-cart .elementor-menu-cart__product-price{
	color: #000 !important; font-size: 16px; font-weight: 700; margin-top: 6px;
}
.pv-body .pv-drawer-cart .elementor-menu-cart__product-remove{
	position: absolute; top: 12px; right: 0; border: 0 !important;
}
.pv-body .pv-drawer-cart .elementor-menu-cart__subtotal{
	display: flex !important; justify-content: space-between; align-items: baseline;
	margin: 16px 0; padding-top: 16px; border-top: 1px solid var(--pv-borde);
	font-family: var(--pv-font); font-size: 18px; font-weight: 700; color: #000; text-align: left !important;
}
.pv-body .pv-drawer-cart .elementor-menu-cart__footer-buttons{
	display: grid !important; grid-template-columns: 1fr !important; gap: 10px;
}
.pv-body .pv-drawer-cart .elementor-menu-cart__footer-buttons .elementor-button{
	display: block !important; width: 100%; text-align: center;
	font-family: var(--pv-font) !important; font-size: 16px !important; font-weight: 700 !important;
	padding: 14px 18px !important; border-radius: 50px !important; border: 1px solid #000 !important;
	line-height: 1.2 !important; text-decoration: none !important;
}
.pv-body .pv-drawer-cart .elementor-button--view-cart{
	background: #fff !important; color: #000 !important;
}
.pv-body .pv-drawer-cart .elementor-button--checkout{
	background: var(--pv-primario) !important; color: #fff !important; border-color: var(--pv-primario) !important;
}
.pv-body .pv-drawer-cart .ast-mini-cart-empty{ display: none !important; }

/* -------------------------------------------------------------------------
 * Ficha de producto — manual de marca (URW Geometric, azul 2757 / azul 2746
 * / rojo 199), mismo sistema de tokens que el home.
 * Estructura de la ficha de referencia: a la izquierda galería, acordeones
 * (descripción / ficha técnica) y valoraciones; a la derecha sólo el bloque
 * de compra. Relacionados a todo el ancho debajo.
 * ----------------------------------------------------------------------- */
/* Astra pone `overflow-x: hidden` en el body, y eso convierte al body en
   contenedor de scroll: el `position: sticky` del resumen queda anclado a
   algo que no scrollea y no se pega nunca. `clip` recorta igual pero no
   crea contenedor de scroll. Los navegadores que no lo entienden se quedan
   con `hidden` y simplemente no tienen la columna fija. */
body.pv-body.single-product{ overflow-x: clip; }
.pv-body.single-product main.site-main{ padding: 0; }
.pv-body.single-product .woocommerce-notices-wrapper{ max-width: var(--pv-container); margin: 0 auto; padding: 0 var(--pv-gutter); box-sizing: border-box; }

.pv-body .pv-single-top{
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	align-items: start;
	max-width: var(--pv-container);
	margin: 0 auto;
	padding: var(--pv-space-10) var(--pv-gutter) var(--pv-space-12);
	box-sizing: border-box;
}
/* El filete divisorio va en la columna izquierda, no en el resumen: como el
   resumen queda pegajoso, si lo llevara él la línea se movería con el
   scroll en vez de acompañar toda la ficha. */
.pv-body .pv-single-main{ min-width: 0; padding-right: var(--pv-space-12); border-right: 1px solid var(--pv-borde); }

/* Galería. El slider (WooCommerce Gallery Slider) sale flotado: con los
   acordeones debajo hay que desflotarlo y además cerrar el contexto, o el
   texto de la descripción se le acomoda al costado. */
.pv-body .pv-single-gallery{ min-width: 0; display: flow-root; }
.pv-body.single-product .pv-single-gallery .woocommerce-product-gallery,
.pv-body.single-product .pv-single-gallery .wcgs-woocommerce-product-gallery{ float: none !important; width: 100% !important; max-width: none !important; margin: 0; position: relative; }
.pv-body.single-product .pv-single-gallery .woocommerce-product-gallery > .advanced-woo-labels{ position: absolute; inset: 0 auto auto 0; width: 100%; z-index: 9; pointer-events: none; }
.pv-body .pv-single-gallery .wcgs-carousel,
.pv-body .pv-single-gallery .wpgs-image{ background: #fff; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-lg); overflow: hidden; }
.pv-body .pv-single-gallery .wcgs-slider-image{ display: flex; align-items: center; justify-content: center; padding: var(--pv-space-6); box-sizing: border-box; }
.pv-body .pv-single-gallery .wcgs-slider-image img{ width: 100%; height: auto; object-fit: contain; }
.pv-body .pv-single-gallery .gallery-navigation-carousel-wrapper{ margin-top: var(--pv-space-3); }
.pv-body .pv-single-gallery .wcgs-thumb img,
.pv-body .pv-single-gallery .thumbnail_image img{ border-radius: var(--pv-radius-md); background: var(--pv-fondo); border: 1px solid var(--pv-borde); box-sizing: border-box; }
.pv-body .pv-single-gallery .spswiper-slide-thumb-active img{ border-color: var(--pv-secundario); }

/* Resumen: sólo el bloque de compra, en el orden del manual. */
/* El bloque de compra acompaña el scroll, como en la referencia. El `top`
   deja pasar el header, que es pegajoso y mide 78px. */
.pv-body .pv-single-summary{ min-width: 0; padding-left: var(--pv-space-12); display: flex; flex-direction: column; align-items: stretch; position: sticky; top: 94px; align-self: start; }
.pv-body .pv-single-summary > *{ order: 50; }
.pv-body .pv-single-summary .woocommerce-breadcrumb{ order: 1; }
.pv-body .pv-single-summary h1.product_title{ order: 2; }
.pv-body .pv-single-summary p.price{ order: 3; }
.pv-body .pv-single-summary .precio-sin-iva{ order: 4; }
.pv-body .pv-single-summary .pv-cuotas{ order: 5; }
.pv-body .pv-single-summary .woocommerce-product-details__short-description{ order: 6; }
.pv-body .pv-single-summary table.variations,
.pv-body .pv-single-summary .woocommerce-variation-price{ order: 8; }
.pv-body .pv-single-summary form.cart{ order: 9; }
.pv-body .pv-single-summary ul.pv-single-trust{ order: 60; }
.pv-body .pv-single-summary > p:empty{ display: none; }
.pv-body .pv-single-summary .single-product-category{ display: none; }
/* La disponibilidad no va en la ficha (acuerdo de revisión). */
.pv-body .pv-single-summary .ast-stock-detail,
.pv-body .pv-single-summary p.stock.in-stock{ display: none !important; }

.pv-body .pv-single-summary .woocommerce-breadcrumb{ font-family: var(--pv-font); font-size: var(--pv-fs-xs); font-weight: var(--pv-fw-regular); color: var(--pv-gris); margin: 0 0 var(--pv-space-4); line-height: var(--pv-lh-base); }
.pv-body .pv-single-summary .woocommerce-breadcrumb a{ color: var(--pv-secundario); font-weight: var(--pv-fw-medium); text-decoration: none; }
.pv-body .pv-single-summary .woocommerce-breadcrumb a:hover{ color: var(--pv-primario); }

body.pv-body .pv-single-summary h1.product_title{ font-family: var(--pv-display); font-size: var(--pv-fs-2xl); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); line-height: var(--pv-lh-tight); margin: 0 0 var(--pv-space-4); overflow-wrap: anywhere; }

.pv-body .pv-single-summary p.price{ font-family: var(--pv-display); font-size: var(--pv-fs-3xl); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); line-height: 1.1; margin: 0 0 var(--pv-space-2); display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--pv-space-3); }
.pv-body .pv-single-summary p.price .woocommerce-Price-amount{ color: inherit; font-weight: inherit; }
.pv-body .pv-single-summary p.price del{ color: var(--pv-gris); opacity: 1; font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-regular); }
.pv-body .pv-single-summary p.price ins{ text-decoration: none; font-weight: var(--pv-fw-bold); }
.pv-body .pv-single-off{ align-self: center; background: var(--pv-primario); color: #fff; font-size: var(--pv-fs-xs); font-weight: var(--pv-fw-semibold); letter-spacing: .02em; line-height: 1; padding: 7px 12px; border-radius: var(--pv-radius-pill); white-space: nowrap; margin-left: 8px; vertical-align: middle; }
.pv-body .pv-single-summary .precio-sin-iva{ font-size: var(--pv-fs-xs); color: var(--pv-gris); margin: 0 0 var(--pv-space-3); }
.pv-body .pv-single-summary .pv-cuotas{ display: inline-flex; align-self: flex-start; margin: 0 0 var(--pv-space-4); font-size: var(--pv-fs-sm); }

/* Extracto: el CRM repite ahí el nombre del producto, así que el texto se
   filtra en PHP (pv_short_desc_sin_titulo) y el bloque queda sólo para el
   SKU que inyecta el plugin legacy-theme. */
.pv-body .pv-single-summary .woocommerce-product-details__short-description{ display: block; font-size: var(--pv-fs-sm); line-height: var(--pv-lh-loose); color: var(--pv-gris); margin: 0 0 var(--pv-space-5); }
.pv-body .pv-single-summary .woocommerce-product-details__short-description p:last-child{ margin-bottom: 0; }
.pv-body .pv-single-summary .woocommerce-product-details__short-description:empty{ display: none; }
.pv-body .pv-single-summary .peusso-product-sku{ display: inline-block; padding: 4px 10px; border-radius: var(--pv-radius-sm); background: var(--pv-fondo); color: var(--pv-texto); font-size: var(--pv-fs-xs); font-weight: var(--pv-fw-medium); }
.pv-body .pv-single-summary .woocommerce-product-details__short-description > p + .peusso-product-sku{ margin-top: var(--pv-space-3); }
.pv-body .pv-single-summary .product_meta{ display: none; }

.pv-body .pv-single-summary .stock.out-of-stock,
.pv-body .pv-single-summary p.producto-sin-stock{ color: var(--pv-primario); font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-medium); margin: 0 0 var(--pv-space-4); }

/* Cantidad + añadir al carrito: misma fila compacta que la referencia.
   El selector lo pinta el plugin Quantity Increment Buttons, cuyas reglas
   (.woocommerce div.product form.cart div.quantity) ganan por especificidad:
   de ahí el prefijo body.pv-body.single-product y los !important puntuales. */
body.pv-body.single-product .pv-single-summary form.cart{ display: flex; flex-wrap: wrap; align-items: center; gap: var(--pv-space-3); margin: 0 0 var(--pv-space-6); width: 100%; }
body.pv-body.single-product .pv-single-summary form.cart::before,
body.pv-body.single-product .pv-single-summary form.cart::after{ display: none; }
body.pv-body.single-product .pv-single-summary form.cart div.qib-container{
	display: inline-flex !important;
	align-items: center;
	flex: 0 0 auto;
	width: auto !important;
	height: 44px;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	border: 1px solid var(--pv-borde-fuerte) !important;
	border-radius: var(--pv-radius-pill) !important;
	background: #fff !important;
	overflow: hidden;
	box-sizing: border-box;
	box-shadow: none !important;
}
body.pv-body.single-product .pv-single-summary form.cart div.qib-container button.qib-button{
	width: 36px !important; height: 42px !important; min-width: 0; flex: 0 0 auto;
	padding: 0; margin: 0; border: 0 !important; border-radius: 0 !important;
	box-shadow: none !important;
	background: none !important; color: var(--pv-secundario);
	font-family: var(--pv-font); font-size: 18px !important; font-weight: var(--pv-fw-medium);
	line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
}
body.pv-body.single-product .pv-single-summary form.cart div.qib-container button.qib-button:hover,
body.pv-body.single-product .pv-single-summary form.cart div.qib-container button.qib-button:focus,
body.pv-body.single-product .pv-single-summary form.cart div.qib-container button.qib-button:active{ background: transparent !important; color: var(--pv-primario); outline: 0; }
body.pv-body.single-product .pv-single-summary form.cart div.qib-container button.qib-button:focus-visible{ text-decoration: underline; }
body.pv-body.single-product .pv-single-summary form.cart div.quantity{
	display: inline-flex !important;
	align-items: center;
	width: auto !important;
	height: 42px !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	box-shadow: none !important;
}
body.pv-body.single-product .pv-single-summary form.cart input.qty{
	width: 42px !important;
	height: 42px !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	box-shadow: none !important;
	text-align: center;
	font-family: var(--pv-font);
	font-size: 15px;
	font-weight: var(--pv-fw-semibold);
	color: var(--pv-secundario);
	line-height: 42px;
	-moz-appearance: textfield;
	appearance: textfield;
}
body.pv-body.single-product .pv-single-summary form.cart input.qty::-webkit-outer-spin-button,
body.pv-body.single-product .pv-single-summary form.cart input.qty::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }
body.pv-body.single-product .pv-single-summary form.cart button.single_add_to_cart_button{
	flex: 0 0 auto;
	width: auto;
	min-width: 210px;
	/* Astra manda `height: 35px` con el truco de especificidad
	   `:not(#qib_id)`, así que la altura va con !important. */
	height: 44px !important;
	min-height: 44px !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 var(--pv-space-8) !important;
	margin: 0;
	background: var(--pv-primario) !important;
	color: #fff !important;
	border: 1px solid var(--pv-primario) !important;
	border-radius: var(--pv-radius-pill) !important;
	font-family: var(--pv-font);
	font-size: var(--pv-fs-md);
	font-weight: var(--pv-fw-semibold);
	line-height: 1;
	letter-spacing: .01em;
	cursor: pointer;
	box-shadow: none !important;
	transition: background .2s ease, transform .2s ease;
}
body.pv-body.single-product .pv-single-summary form.cart button.single_add_to_cart_button:hover{ background: var(--pv-primario-hover) !important; border-color: var(--pv-primario-hover) !important; transform: translateY(-1px); }
body.pv-body.single-product .pv-single-summary form.cart button.single_add_to_cart_button.disabled,
body.pv-body.single-product .pv-single-summary form.cart button.single_add_to_cart_button:disabled{ background: var(--pv-gris-claro) !important; border-color: var(--pv-gris-claro) !important; transform: none; cursor: not-allowed; }
body.pv-body.single-product .pv-single-summary #custom-whatsapp-button{ flex: 0 0 auto; height: 44px; min-height: 0; display: inline-flex; align-items: center; justify-content: center; padding: 0 var(--pv-space-6); border-radius: var(--pv-radius-pill) !important; font-family: var(--pv-font); font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); margin: 0 !important; }

/* Variaciones */
.pv-body .pv-single-summary table.variations{ margin: 0 0 var(--pv-space-4); }
.pv-body .pv-single-summary table.variations th.label{ font-family: var(--pv-font); font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); color: var(--pv-secundario); }
.pv-body .pv-single-summary .reset_variations{ color: var(--pv-primario); font-size: var(--pv-fs-xs); }

/* Beneficios: mismos tiles que la franja del home. */
.pv-body ul.pv-single-trust{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--pv-space-2); background: none; }
.pv-body ul.pv-single-trust li{ display: flex; align-items: center; gap: var(--pv-space-3); background: var(--pv-fondo); border: 1px solid transparent; border-radius: var(--pv-radius-md); padding: 12px var(--pv-space-4); font-family: var(--pv-font); font-size: var(--pv-fs-sm); line-height: var(--pv-lh-base); color: var(--pv-texto); transition: background .2s ease, border-color .2s ease; }
.pv-body ul.pv-single-trust li:hover{ border-color: var(--pv-borde); background: #fff; }
.pv-body ul.pv-single-trust svg.pv-ico{ width: 22px; height: 22px; flex: 0 0 auto; color: var(--pv-secundario); stroke-width: 1.5; }

/* -------- Acordeones debajo de la galería (como la referencia) -------- */
.pv-body .pv-single-acc{ margin-top: var(--pv-space-10); border-top: 1px solid var(--pv-borde); }
.pv-body .pv-acc{ background: none; border: 0; border-bottom: 1px solid var(--pv-borde); border-radius: 0; margin: 0; padding: 0; overflow: hidden; }
.pv-body .pv-acc-title{ display: flex; align-items: center; justify-content: space-between; gap: var(--pv-space-4); width: 100%; background: none; border: 0; border-radius: 0; list-style: none; cursor: pointer; font-family: var(--pv-display); font-size: var(--pv-fs-xl); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); padding: var(--pv-space-6) 0; margin: 0; text-align: left; }
.pv-body .pv-acc-title:hover{ color: var(--pv-primario); }
.pv-body .pv-acc-title svg.pv-ico{ width: 22px; height: 22px; flex: 0 0 auto; fill: none; stroke: currentColor; transition: transform .35s ease; }
.pv-body .pv-acc.open > .pv-acc-title svg.pv-ico{ transform: rotate(180deg); }
.pv-body .pv-acc-panel{ display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s ease; }
.pv-body .pv-acc.open > .pv-acc-panel{ grid-template-rows: 1fr; }
.pv-body .pv-acc-content{ overflow: hidden; min-height: 0; padding: 0; font-size: var(--pv-fs-sm); line-height: var(--pv-lh-loose); color: var(--pv-texto); }
.pv-body .pv-acc.open > .pv-acc-panel > .pv-acc-content{ padding: 0 0 var(--pv-space-6); }
.pv-body .pv-acc-content > *:first-child{ margin-top: 0; }
.pv-body .pv-acc-content > *:last-child{ margin-bottom: 0; }
.pv-body .pv-acc-content table.shop_attributes{ margin: 0; border: 0; }
.pv-body .pv-acc-content table.shop_attributes th,
.pv-body .pv-acc-content table.shop_attributes td{ border: 0; border-bottom: 1px solid var(--pv-borde); padding: 10px 0; font-size: var(--pv-fs-sm); font-style: normal; }
.pv-body .pv-acc-content table.shop_attributes th{ color: var(--pv-secundario); font-weight: var(--pv-fw-semibold); }

/* -------- Valoraciones: sólo la solapa de reseñas -------- */
.pv-body .pv-single-reviews{ margin-top: var(--pv-space-10); }
.pv-body .pv-single li#tab-title-description,
.pv-body .pv-single li#tab-title-additional_information,
.pv-body .pv-single div#tab-description,
.pv-body .pv-single div#tab-additional_information{ display: none !important; }
.pv-body .pv-single .woocommerce-tabs{ margin: 0 !important; }
.pv-body .pv-single .wc-tabs-wrapper{ padding: 0 !important; }
.pv-body .pv-single .woocommerce-tabs ul.tabs{ margin: 0 0 var(--pv-space-5); padding: 0; border: 0; display: flex; }
.pv-body .pv-single .woocommerce-tabs ul.tabs::before,
.pv-body .pv-single .woocommerce-tabs ul.tabs::after{ display: none; }
.pv-body .pv-single .woocommerce-tabs ul.tabs li{ border: 0; border-radius: 0; background: transparent; margin: 0; padding: 0; box-shadow: none; }
.pv-body .pv-single .woocommerce-tabs ul.tabs li::before,
.pv-body .pv-single .woocommerce-tabs ul.tabs li::after{ display: none; }
body.pv-body .pv-single .woocommerce-tabs ul.tabs li a{ font-family: var(--pv-display); font-size: var(--pv-fs-xl); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); line-height: var(--pv-lh-tight); padding: 0; display: block; }
.pv-body .pv-single .woocommerce-tabs .panel{ padding: 0; margin: 0; border: 0; }
.pv-body .pv-single div#tab-reviews{ padding: 0; }
.pv-body .pv-single #reviews .woocommerce-Reviews-title{ display: none; }
.pv-body .pv-single #reviews .woocommerce-noreviews{ font-size: var(--pv-fs-sm); color: var(--pv-texto); margin: 0; }
.pv-body .pv-single #reviews #review_form_wrapper{ background: none; border-radius: 0; padding: 0 !important; }
.pv-body .pv-single #reviews #review_form{ border: 0; padding: 0; }
.pv-body .pv-single #reviews #respond{ margin: 0; padding: 0; }
/* El título "Sé el primero en valorar..." sobra: la solapa del acordeón ya
   dice para qué es el formulario. */
.pv-body .pv-single #reviews #reply-title{ display: none; }

/* Solapa "Añadir una opinión": filete arriba y abajo, chevron a la
   izquierda que baja al abrirse. */
.pv-body .pv-acc-opinion{ margin-top: var(--pv-space-6); border-top: 1px solid var(--pv-borde); border-bottom: 1px solid var(--pv-borde); }
.pv-body .pv-acc-opinion > .pv-acc-title{ justify-content: flex-start; gap: var(--pv-space-3); font-size: var(--pv-fs-md); font-weight: var(--pv-fw-medium); padding: var(--pv-space-4) 0; }
.pv-body .pv-acc-opinion > .pv-acc-title svg.pv-ico{ width: 18px; height: 18px; }
.pv-body .pv-acc-opinion.open > .pv-acc-title svg.pv-ico{ transform: rotate(-90deg); }
.pv-body .pv-acc-opinion.open > .pv-acc-panel > .pv-acc-content{ padding: 0 0 var(--pv-space-6); }
.pv-body .pv-single #reviews .comment-form input[type="submit"]{ background: var(--pv-secundario) !important; color: #fff !important; border-radius: var(--pv-radius-pill) !important; border: 0 !important; padding: 13px 28px; font-family: var(--pv-font); font-weight: var(--pv-fw-semibold); }

/* -------- Relacionados: mismas tarjetas que los carruseles del home -------- */
.pv-body .pv-single-bottom{ max-width: var(--pv-container); margin: 0 auto; padding: 0 var(--pv-gutter) var(--pv-space-16); box-sizing: border-box; }
.pv-body .pv-single-bottom:not(:has(ul.products)){ display: none; }
.pv-body .pv-single-related > h2{ font-family: var(--pv-display); font-size: var(--pv-fs-2xl); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); line-height: var(--pv-lh-tight); margin: 0 0 var(--pv-space-6); }
.pv-body .pv-single-related ul.products{ display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--pv-space-6); margin: 0; padding: 0; list-style: none; }
.pv-body .pv-single-related ul.products::before,
.pv-body .pv-single-related ul.products::after{ display: none; }
.pv-body .pv-single-related ul.products li.product{ width: auto !important; float: none !important; margin: 0 !important; }

/* La tarjeta queda igual que en los carruseles del home: sin overrides de
   borde, alto de título ni peso de fuente. */
.pv-body .pv-single-related .pv-card{ border-radius: var(--pv-radius-md); box-shadow: none; }
.pv-body .pv-single-related .pv-card:hover{ box-shadow: var(--pv-shadow-card); }

@media (max-width: 1024px){
	.pv-body .pv-single-top{ padding: var(--pv-space-6) var(--pv-gutter) var(--pv-space-10); }
	.pv-body .pv-single-main{ padding-right: var(--pv-space-8); }
	.pv-body .pv-single-summary{ padding-left: var(--pv-space-8); }
	body.pv-body .pv-single-summary h1.product_title{ font-size: var(--pv-fs-xl); }
	.pv-body .pv-single-summary p.price{ font-size: var(--pv-fs-2xl); }
	body.pv-body.single-product .pv-single-summary form.cart button.single_add_to_cart_button{ min-width: 170px; padding: 0 var(--pv-space-6); }
	.pv-body .pv-single-related ul.products{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px){
	.pv-body.single-product .woocommerce-notices-wrapper{ padding: 0 var(--pv-space-4); }
	.pv-body .pv-single-top{ grid-template-columns: 1fr; gap: var(--pv-space-8); padding: var(--pv-space-4) var(--pv-space-4) var(--pv-space-8); }
	.pv-body .pv-single-main{ padding-right: 0; border-right: 0; order: 2; }
	.pv-body .pv-single-summary{ padding-left: 0; order: 1; position: static; }
	body.pv-body .pv-single-summary h1.product_title{ font-size: var(--pv-fs-lg); }
	.pv-body .pv-single-summary p.price{ font-size: var(--pv-fs-xl); }
	.pv-body .pv-single-summary .woocommerce-breadcrumb{ overflow-wrap: anywhere; }
	body.pv-body.single-product .pv-single-summary form.cart button.single_add_to_cart_button{ flex: 1 1 auto; min-width: 0; }
	.pv-body .pv-single-bottom{ padding: 0 var(--pv-space-4) var(--pv-space-12); }
	.pv-body .pv-single-acc,
	.pv-body .pv-single-reviews{ margin-top: var(--pv-space-8); }
	.pv-body .pv-single-related > h2,
	body.pv-body .pv-single .woocommerce-tabs ul.tabs li a{ font-size: var(--pv-fs-xl); }
	.pv-body .pv-acc-title{ padding: var(--pv-space-4) 0; font-size: var(--pv-fs-md); }
}

/* =========================================================================
 * Flujo de compra: carrito → finalizar compra → confirmación.
 * Misma línea que el home (URW Geometric, azul 2757, rojo 199, tarjetas
 * blancas sobre fondo gris claro) con el mínimo de elementos: una sola
 * acción principal por pantalla, en rojo.
 * ====================================================================== */

/* Chrome simple: logo + pasos + compra segura. */
.pv-body.pv-simple-chrome{ min-height: 100vh; display: flex; flex-direction: column; background: var(--pv-fondo); }
.pv-body.pv-simple-chrome .pv-content{ flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; width: 100%; }
.pv-body.pv-simple-chrome .pv-content > *:not(.pv-footer-simple){ flex: 0 0 auto; }
.pv-body.pv-simple-chrome .pv-footer-simple{ margin-top: auto; flex: 0 0 auto; }
.pv-body.pv-simple-chrome .entry-header,
.pv-body.pv-simple-chrome .ast-breadcrumbs{ display: none !important; }
.pv-body .pv-header-simple{ background: #fff; border-bottom: 1px solid var(--pv-borde); position: relative; z-index: 50; }
.pv-body .pv-header-simple-inner{ max-width: var(--pv-container); margin: 0 auto; padding: 14px var(--pv-gutter); box-sizing: border-box; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--pv-space-6); min-height: 72px; }
.pv-body .pv-header-simple .pv-brand img.pv-logo,
.pv-body .pv-header-simple .pv-brand img.custom-logo{ height: 40px; width: auto; max-width: none; display: block; }
.pv-body .pv-steps{ display: flex; align-items: center; gap: 10px; list-style: none; margin: 0; padding: 0; }
.pv-body .pv-step{ display: flex; align-items: center; gap: 10px; margin: 0; color: var(--pv-gris); font-size: 14px; font-weight: var(--pv-fw-medium); white-space: nowrap; }
.pv-body .pv-step + .pv-step::before{ content: ""; width: 44px; height: 1px; background: var(--pv-borde-fuerte); }
.pv-body .pv-step a{ display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.pv-body .pv-step a:hover .pv-step-label{ text-decoration: underline; }
.pv-body .pv-step-dot{ width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid var(--pv-borde-fuerte); display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: var(--pv-fw-bold); line-height: 1; box-sizing: border-box; background: #fff; }
.pv-body .pv-step-dot svg.pv-ico{ width: 15px; height: 15px; stroke-width: 2.4; }
.pv-body .pv-step.is-current{ color: var(--pv-secundario); font-weight: var(--pv-fw-bold); }
.pv-body .pv-step.is-current .pv-step-dot{ background: var(--pv-secundario); border-color: var(--pv-secundario); color: #fff; }
.pv-body .pv-step.is-done{ color: var(--pv-secundario); }
.pv-body .pv-step.is-done .pv-step-dot{ background: #e6ebf5; border-color: #e6ebf5; color: var(--pv-secundario); }
.pv-body .pv-simple-secure{ justify-self: end; display: inline-flex; align-items: center; gap: 10px; color: var(--pv-secundario); }
.pv-body .pv-simple-secure svg.pv-ico{ width: 30px; height: 30px; stroke-width: 1.5; }
.pv-body .pv-simple-secure-txt{ display: flex; flex-direction: column; gap: 2px; line-height: 1.1; }
.pv-body .pv-simple-secure-txt strong{ font-size: 14px; font-weight: var(--pv-fw-bold); color: var(--pv-secundario); }
.pv-body .pv-simple-secure-txt em{ font-size: 12px; font-style: normal; color: var(--pv-gris); }

.pv-body .pv-footer-simple-inner{ max-width: var(--pv-container); margin: 0 auto; padding: 18px var(--pv-gutter); box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: var(--pv-space-4) var(--pv-space-8); flex-wrap: wrap; }
.pv-body .pv-footer-simple-help{ display: flex; align-items: center; gap: 8px 20px; flex-wrap: wrap; font-size: 14px; }
.pv-body .pv-footer-simple-q{ color: rgba(255,255,255,.75); }
.pv-body .pv-footer-simple-help a{ display: inline-flex; align-items: center; gap: 6px; color: #fff; font-weight: var(--pv-fw-semibold); text-decoration: none; }
.pv-body .pv-footer-simple-help a:hover{ text-decoration: underline; }
.pv-body .pv-footer-simple-help svg.pv-ico{ width: 16px; height: 16px; }
.pv-body .pv-footer-simple-legal{ display: flex; align-items: center; gap: var(--pv-space-5); }
.pv-body .pv-footer-simple .pv-copy{ margin: 0; display: flex; gap: 4px 12px; flex-wrap: wrap; font-size: 13px; color: rgba(255,255,255,.7); }
.pv-body .pv-footer-simple .pv-copy a{ color: #fff; font-weight: var(--pv-fw-semibold); text-decoration: none; }
.pv-body .pv-footer-simple .pv-afip img{ height: 40px; width: auto; display: block; border-radius: 4px; }
@media (min-width: 768px){ .pv-body .pv-footer-simple-inner{ padding-right: 104px; } }

/* Contenedor, encabezado y avisos comunes. */
.pv-body.woocommerce-cart .woocommerce,
.pv-body.woocommerce-checkout .woocommerce{ max-width: 1280px; margin: 0 auto; padding: var(--pv-space-8) 20px var(--pv-space-16); box-sizing: border-box; font-family: var(--pv-font); color: var(--pv-texto); }
.pv-body .pv-flow-head{ display: flex; align-items: flex-end; justify-content: space-between; gap: var(--pv-space-4); flex-wrap: wrap; margin: 0 0 var(--pv-space-6); }
.pv-body .pv-flow-title{ font-family: var(--pv-display); font-size: clamp(26px, 2.6vw, 34px); font-weight: var(--pv-fw-bold); line-height: var(--pv-lh-tight); color: var(--pv-secundario); margin: 0; letter-spacing: 0; text-transform: none; }
.pv-body .pv-flow-sub{ margin: 6px 0 0; font-size: var(--pv-fs-sm); color: var(--pv-gris); }
.pv-body .pv-flow-back{ display: inline-flex; align-items: center; gap: 6px; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); color: var(--pv-secundario); text-decoration: none; }
.pv-body .pv-flow-back svg.pv-ico{ width: 18px; height: 18px; transition: transform .2s ease; }
.pv-body .pv-flow-back:hover{ color: var(--pv-primario); }
.pv-body .pv-flow-back:hover svg.pv-ico{ transform: translateX(-3px); }
.pv-body.pv-simple-chrome .woocommerce-notices-wrapper:empty{ display: none; }
.pv-body.pv-simple-chrome .woocommerce-message,
.pv-body.pv-simple-chrome .woocommerce-info,
.pv-body.pv-simple-chrome .woocommerce-error{ background: #fff; border: 1px solid var(--pv-borde); border-left: 4px solid var(--pv-secundario); border-radius: var(--pv-radius-md); color: var(--pv-texto); font-size: var(--pv-fs-sm); margin: 0 0 var(--pv-space-4); box-shadow: none; }
.pv-body.pv-simple-chrome .woocommerce-message::before,
.pv-body.pv-simple-chrome .woocommerce-info::before{ color: var(--pv-secundario); }
.pv-body.pv-simple-chrome .woocommerce-error{ border-left-color: var(--pv-primario); }
.pv-body.pv-simple-chrome .woocommerce-error::before{ color: var(--pv-primario); }
.pv-body.pv-simple-chrome .woocommerce-message .button,
.pv-body.pv-simple-chrome .woocommerce-info .button{ background: transparent !important; border: 0 !important; color: var(--pv-secundario) !important; padding: 0 !important; font-weight: var(--pv-fw-semibold); text-transform: none; }
.pv-body.woocommerce-checkout .woocommerce-notices-wrapper .woocommerce-message{ display: none; }
.pv-body.pv-simple-chrome .woocommerce > .woocommerce-info,
.pv-body.pv-simple-chrome .woocommerce > .woocommerce-message,
.pv-body.pv-simple-chrome .woocommerce > .woocommerce-error,
.pv-body.pv-simple-chrome .woocommerce-notices-wrapper > *,
.pv-body.pv-simple-chrome .woocommerce-NoticeGroup > *{ margin: 0 0 var(--pv-space-4) !important; width: auto; max-width: none; box-sizing: border-box; }

/* Loader de WooCommerce (blockUI): aro azul de marca en lugar de la bola
   gris de loader.svg. El velo lleva la transparencia en el fondo y no en
   `opacity`, así el aro se ve nítido sobre el formulario. */
.pv-body .blockUI.blockOverlay{ background: rgba(255, 255, 255, .55) !important; opacity: 1 !important; }
.pv-body .woocommerce .blockUI.blockOverlay::before,
.pv-body .blockUI.blockOverlay::before,
.pv-body .woocommerce .loader::before{ content: "" !important; width: 30px !important; height: 30px !important; margin: -15px 0 0 -15px !important; background: none !important; border: 3px solid #dde3ee; border-top-color: var(--pv-secundario); border-radius: 50%; box-sizing: border-box; animation: pv-spin .8s linear infinite !important; }
@keyframes pv-spin{ to{ transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce){
	.pv-body .blockUI.blockOverlay::before{ animation-duration: 2.4s !important; }
}

/* Botones del flujo. La acción principal va en rojo, el resto en contorno. */
.pv-body .pv-btn-linea{ background: #fff; color: var(--pv-secundario); border-color: var(--pv-secundario); }
.pv-body .pv-btn-linea:hover{ background: var(--pv-secundario); color: #fff; }
.pv-body .pv-btn .pv-ico-brand{ width: 18px; height: 18px; }
.pv-body.pv-simple-chrome .woocommerce button.button,
.pv-body.woocommerce-account .woocommerce button.button,
.pv-body.pv-simple-chrome .woocommerce a.button,
.pv-body.woocommerce-account .woocommerce a.button,
.pv-body.pv-simple-chrome .woocommerce .button.alt,
.pv-body.woocommerce-account .woocommerce .button.alt{ background: #fff; color: var(--pv-secundario); border: 1px solid var(--pv-secundario); border-radius: var(--pv-radius-pill); font-family: var(--pv-font); font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); line-height: 1.2; padding: 12px 22px; text-transform: none; letter-spacing: 0; box-shadow: none; transition: background .2s ease, color .2s ease; }
.pv-body.pv-simple-chrome .woocommerce button.button:hover,
.pv-body.woocommerce-account .woocommerce button.button:hover,
.pv-body.pv-simple-chrome .woocommerce a.button:hover,
.pv-body.woocommerce-account .woocommerce a.button:hover,
.pv-body.pv-simple-chrome .woocommerce .button.alt:hover,
.pv-body.woocommerce-account .woocommerce .button.alt:hover{ background: var(--pv-secundario); color: #fff; }
.pv-body.pv-simple-chrome .woocommerce .wc-proceed-to-checkout a.checkout-button,
.pv-body.woocommerce-account .woocommerce .wc-proceed-to-checkout a.checkout-button,
.pv-body.pv-simple-chrome .woocommerce-checkout #payment #place_order,
.pv-body.woocommerce-account .woocommerce-checkout #payment #place_order,
.pv-body.pv-simple-chrome .woocommerce-checkout #place_order,
.pv-body.woocommerce-account .woocommerce-checkout #place_order{ width: 100%; display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--pv-primario); color: #fff; border: 0; border-radius: var(--pv-radius-pill); font-family: var(--pv-font); font-size: var(--pv-fs-md); font-weight: var(--pv-fw-semibold); line-height: 1.2; letter-spacing: 0; text-transform: none; padding: 16px 24px; margin: 0; cursor: pointer; transition: background .2s ease; }
.pv-body.pv-simple-chrome .woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.pv-body.woocommerce-account .woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.pv-body.pv-simple-chrome .woocommerce-checkout #place_order:hover,
.pv-body.woocommerce-account .woocommerce-checkout #place_order:hover{ background: var(--pv-primario-hover); color: #fff; }
.pv-body.pv-simple-chrome .woocommerce-checkout #place_order:disabled,
.pv-body.woocommerce-account .woocommerce-checkout #place_order:disabled,
.pv-body.pv-simple-chrome .woocommerce-checkout #place_order.disabled,
.pv-body.woocommerce-account .woocommerce-checkout #place_order.disabled{ background: var(--pv-borde-fuerte); cursor: default; }
.pv-body.pv-simple-chrome .woocommerce-checkout #place_order::before,
.pv-body.woocommerce-account .woocommerce-checkout #place_order::before{ content: ""; width: 17px; height: 17px; flex: 0 0 auto; background-color: currentColor; -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'%3E%3Crect x='4' y='10' width='16' height='11' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%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'%3E%3Crect x='4' y='10' width='16' height='11' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center/contain no-repeat; }
/* Campos: mismos inputs en checkout,
cupones y cuenta. */
.pv-body.pv-simple-chrome .woocommerce form .form-row,
.pv-body.woocommerce-account .woocommerce form .form-row{ margin: 0; padding: 0; }
.pv-body.pv-simple-chrome .woocommerce form .form-row label,
.pv-body.woocommerce-account .woocommerce form .form-row label{ display: block; font-size: 14px; font-weight: var(--pv-fw-medium); color: var(--pv-texto); margin: 0 0 6px; line-height: 1.3; }
.pv-body.pv-simple-chrome .woocommerce form .form-row .required,
.pv-body.woocommerce-account .woocommerce form .form-row .required{ color: var(--pv-primario); text-decoration: none; }
.pv-body.pv-simple-chrome .woocommerce form .form-row input.input-text,
.pv-body.woocommerce-account .woocommerce form .form-row input.input-text,
.pv-body.pv-simple-chrome .woocommerce form .form-row textarea,
.pv-body.woocommerce-account .woocommerce form .form-row textarea,
.pv-body.pv-simple-chrome .woocommerce form .form-row select,
.pv-body.woocommerce-account .woocommerce form .form-row select,
.pv-body.pv-simple-chrome .woocommerce .select2-container .select2-selection--single,
.pv-body.woocommerce-account .woocommerce .select2-container .select2-selection--single,
.pv-body.woocommerce-cart .pv-cart-coupon .coupon .input-text,
.pv-body .pv-co-coupon input#coupon_code{ width: 100%; height: 48px; border: 1px solid var(--pv-borde-fuerte); border-radius: 10px; padding: 0 14px; font-family: var(--pv-font); font-size: 15px; color: var(--pv-texto); background: #fff; box-sizing: border-box; box-shadow: none; transition: border-color .2s ease, box-shadow .2s ease; }
.pv-body.pv-simple-chrome .woocommerce form .form-row textarea,
.pv-body.woocommerce-account .woocommerce form .form-row textarea{ height: auto; min-height: 96px; padding: 12px 14px; }
.pv-body.pv-simple-chrome .woocommerce form .form-row input.input-text:focus,
.pv-body.woocommerce-account .woocommerce form .form-row input.input-text:focus,
.pv-body.pv-simple-chrome .woocommerce form .form-row textarea:focus,
.pv-body.woocommerce-account .woocommerce form .form-row textarea:focus,
.pv-body.pv-simple-chrome .woocommerce form .form-row select:focus,
.pv-body.woocommerce-account .woocommerce form .form-row select:focus,
.pv-body.pv-simple-chrome .woocommerce .select2-container--open .select2-selection--single,
.pv-body.woocommerce-account .woocommerce .select2-container--open .select2-selection--single,
.pv-body.woocommerce-cart .pv-cart-coupon .coupon .input-text:focus,
.pv-body .pv-co-coupon input#coupon_code:focus{ outline: 0; border-color: var(--pv-secundario); box-shadow: 0 0 0 3px rgba(0, 31, 95, .12); }
.pv-body.pv-simple-chrome .woocommerce form .form-row.woocommerce-invalid input.input-text,
.pv-body.woocommerce-account .woocommerce form .form-row.woocommerce-invalid input.input-text,
.pv-body.pv-simple-chrome .woocommerce form .form-row.woocommerce-invalid select,
.pv-body.woocommerce-account .woocommerce form .form-row.woocommerce-invalid select,
.pv-body.pv-simple-chrome .woocommerce form .form-row.woocommerce-invalid .select2-selection,
.pv-body.woocommerce-account .woocommerce form .form-row.woocommerce-invalid .select2-selection{ border-color: var(--pv-primario); }
.pv-body.pv-simple-chrome .woocommerce form .form-row input.input-text::placeholder,
.pv-body.woocommerce-account .woocommerce form .form-row input.input-text::placeholder{ color: var(--pv-gris-claro); }
.pv-body.pv-simple-chrome .woocommerce .select2-container .select2-selection--single .select2-selection__rendered,
.pv-body.woocommerce-account .woocommerce .select2-container .select2-selection--single .select2-selection__rendered{ line-height: 46px; padding: 0; color: var(--pv-texto); }
.pv-body.pv-simple-chrome .woocommerce .select2-container .select2-selection--single .select2-selection__arrow,
.pv-body.woocommerce-account .woocommerce .select2-container .select2-selection--single .select2-selection__arrow{ height: 46px; right: 8px; }
.pv-body.pv-simple-chrome .woocommerce form .form-row input[type="checkbox"],
.pv-body.woocommerce-account .woocommerce form .form-row input[type="checkbox"]{ accent-color: var(--pv-secundario); width: 16px; height: 16px; margin: 0 8px 0 0; vertical-align: -3px; }
.pv-body.pv-simple-chrome .woocommerce input[type="radio"],
.pv-body.woocommerce-account .woocommerce input[type="radio"]{ accent-color: var(--pv-secundario); }

/* -------------------------------------------------------------------------
 * Carrito
 * ---------------------------------------------------------------------- */
.pv-body .pv-cart-grid{ display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: var(--pv-space-6); align-items: start; }
.pv-body.woocommerce-cart form.woocommerce-cart-form{ margin: 0; min-width: 0; }
.pv-body.woocommerce-cart table.shop_table.pv-cart-items{ width: 100%; margin: 0; border: 0; border-radius: 0; border-collapse: separate; border-spacing: 0; background: transparent; }
.pv-body.woocommerce-cart table.pv-cart-items thead{ display: none; }
.pv-body.woocommerce-cart table.pv-cart-items tbody{ display: flex; flex-direction: column; gap: var(--pv-space-3); }
.pv-body.woocommerce-cart table.pv-cart-items tr.cart_item{ display: grid; grid-template-columns: 96px minmax(0, 1fr) auto 40px; grid-template-areas: "img info sub rm"; gap: 0 var(--pv-space-5); align-items: center; background: #fff; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-md); padding: var(--pv-space-4) var(--pv-space-5); }
.pv-body.woocommerce-cart table.pv-cart-items tr td{ display: block; padding: 0; border: 0; background: transparent !important; text-align: left !important; min-width: 0; }
.pv-body.woocommerce-cart table.pv-cart-items tr td::before{ display: none !important; content: none !important; }
.pv-body.woocommerce-cart table.pv-cart-items td.product-thumbnail{ grid-area: img; }
.pv-body.woocommerce-cart table.pv-cart-items td.product-name{ grid-area: info; }
.pv-body.woocommerce-cart table.pv-cart-items td.product-subtotal{ grid-area: sub; text-align: right !important; }
.pv-body.woocommerce-cart table.pv-cart-items td.product-remove{ grid-area: rm; }
.pv-body.woocommerce-cart table.pv-cart-items td.product-thumbnail img{ width: 96px; height: 96px; max-width: none; object-fit: contain; border-radius: 8px; background: #fff; display: block; }
.pv-body.woocommerce-cart table.pv-cart-items .pv-cart-name{ display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); line-height: 1.35; color: var(--pv-texto); text-decoration: none; }
.pv-body.woocommerce-cart table.pv-cart-items .pv-cart-name:hover{ color: var(--pv-secundario); }
.pv-body.woocommerce-cart table.pv-cart-items .peusso-cart-item-sku{ display: block; margin-top: 4px; font-size: 12px; color: var(--pv-gris); }
.pv-body.woocommerce-cart table.pv-cart-items dl.variation{ margin: 4px 0 0; font-size: 13px; color: var(--pv-gris); }
.pv-body.woocommerce-cart table.pv-cart-items .backorder_notification{ margin: 4px 0 0; font-size: 13px; color: var(--pv-hot); }
.pv-body .pv-cart-row{ display: flex; align-items: center; gap: 10px var(--pv-space-4); flex-wrap: wrap; margin-top: var(--pv-space-3); }
.pv-body .pv-cart-row .product-price{ font-size: 14px; color: var(--pv-gris); }
.pv-body .pv-cart-row .product-price small{ font-size: 12px; }
.pv-body.woocommerce-cart table.pv-cart-items td.product-subtotal{ font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); white-space: nowrap; }
.pv-body.woocommerce-cart table.pv-cart-items td.product-subtotal .woocommerce-Price-amount{ font-weight: inherit; }
.pv-body.woocommerce-cart table.pv-cart-items td.product-remove a.remove{ width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: var(--pv-gris) !important; background: transparent !important; font-size: 0; line-height: 1; transition: background .2s ease, color .2s ease; }
.pv-body.woocommerce-cart table.pv-cart-items td.product-remove a.remove:hover{ background: #fdecef !important; color: var(--pv-primario) !important; }
.pv-body.woocommerce-cart table.pv-cart-items td.product-remove a.remove svg.pv-ico{ width: 18px; height: 18px; }
.pv-body.woocommerce-cart table.pv-cart-items td.product-remove a.remove::before,
.pv-body.woocommerce-cart table.pv-cart-items td.product-remove a.remove::after{ display: none !important; content: none !important; }

/* Selector de cantidad (plugin qib) como una sola píldora. */
.pv-body.woocommerce-cart .woocommerce .qib-container{ display: inline-flex !important; align-items: center; height: 40px; border: 1px solid var(--pv-borde-fuerte); border-radius: var(--pv-radius-pill); background: #fff; overflow: hidden; }
.pv-body.woocommerce-cart .woocommerce .qib-container .qib-button{ width: 36px !important; height: 38px !important; min-width: 0; padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: var(--pv-secundario) !important; font-size: 18px !important; font-weight: var(--pv-fw-medium); line-height: 1 !important; cursor: pointer; box-shadow: none !important; }
.pv-body.woocommerce-cart .woocommerce .qib-container .qib-button:hover,
.pv-body.woocommerce-cart .woocommerce .qib-container .qib-button:focus,
.pv-body.woocommerce-cart .woocommerce .qib-container .qib-button:active{ background: transparent !important; color: var(--pv-primario) !important; outline: 0; box-shadow: none !important; }
.pv-body.woocommerce-cart .woocommerce .qib-container .qib-button:focus-visible{ color: var(--pv-primario) !important; text-decoration: underline; }
.pv-body.woocommerce-cart .woocommerce .qib-container .quantity{ margin: 0 !important; float: none !important; }
.pv-body.woocommerce-cart .woocommerce .qib-container input.qty{ width: 42px !important; height: 38px !important; padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; text-align: center; font-family: var(--pv-font); font-size: 15px; font-weight: var(--pv-fw-semibold); color: var(--pv-texto); box-shadow: none !important; -moz-appearance: textfield; }
.pv-body.woocommerce-cart .woocommerce .qib-container input.qty::-webkit-outer-spin-button,
.pv-body.woocommerce-cart .woocommerce .qib-container input.qty::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }
.pv-body.woocommerce-cart .product-quantity .quantity:not(.buttons_added) input.qty{ width: 72px; height: 40px; border: 1px solid var(--pv-borde-fuerte); border-radius: 10px; text-align: center; }

/* Cupón + actualizar: fila liviana bajo los productos. */
.pv-body.woocommerce-cart table.pv-cart-items tr.pv-cart-actions-row{ display: block; }
.pv-body.woocommerce-cart table.pv-cart-items tr.pv-cart-actions-row td.actions{ display: flex; flex-direction: column; gap: var(--pv-space-3); padding: 0; }
.pv-body .pv-cart-coupon{ background: #fff; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-md); padding: 14px var(--pv-space-5); }
.pv-body .pv-cart-coupon summary{ display: flex; align-items: center; justify-content: space-between; gap: 10px; list-style: none; cursor: pointer; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); color: var(--pv-secundario); }
.pv-body .pv-cart-coupon summary::-webkit-details-marker{ display: none; }
.pv-body .pv-cart-coupon summary:focus{ outline: 0 !important; box-shadow: none; }
.pv-body .pv-cart-coupon summary:focus-visible{ text-decoration: underline; }
.pv-body .pv-cart-coupon summary::after{ content: ""; width: 8px; height: 8px; border-right: 1.7px solid currentColor; border-bottom: 1.7px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s ease; }
.pv-body .pv-cart-coupon[open] summary::after{ transform: rotate(-135deg) translateY(-2px); }
.pv-body.woocommerce-cart .pv-cart-coupon .coupon{ display: flex; gap: 10px; margin: var(--pv-space-3) 0 2px; float: none; width: auto; padding: 0; border: 0; }
.pv-body.woocommerce-cart .pv-cart-coupon .coupon{ width: 100%; max-width: 520px; align-items: center; }
.pv-body.woocommerce-cart .pv-cart-coupon .coupon .input-text{ flex: 1 1 auto; float: none; width: 100% !important; min-width: 0; max-width: none !important; height: 44px; padding: 0 14px !important; margin: 0 !important; }
.pv-body.woocommerce-cart .pv-cart-coupon .coupon .button,
.pv-body.woocommerce-checkout .pv-co-summary .pv-co-coupon button{ flex: 0 0 auto; float: none; height: 48px; padding: 0 24px !important; display: inline-flex; align-items: center; justify-content: center; line-height: 1 !important; }
.pv-body.woocommerce-checkout .pv-co-summary .pv-co-coupon button{ height: 44px; }
/* Woo le da `width: 48%` (content-box) al botón y lo deja angosto y alto. */
.pv-body.woocommerce-cart .pv-cart-coupon .coupon .button{ width: auto !important; height: 44px !important; min-height: 0 !important; padding: 0 20px !important; margin: 0 !important; box-sizing: border-box; white-space: nowrap; font-size: 14px; }
.pv-body.pv-simple-chrome .pv-cart-coupon .coupon .input-text:focus,
.pv-body.pv-simple-chrome .pv-co-coupon input#coupon_code:focus{ outline: 0 !important; outline-offset: 0; }
/* "Actualizar carrito" sólo aparece si el autoenvío del JS no corrió. */
.pv-body.woocommerce-cart .pv-cart-update{ align-self: flex-end; }
.pv-body.woocommerce-cart .pv-cart-update[disabled],
.pv-body.woocommerce-cart .pv-cart-update:disabled{ display: none !important; }

/* Resumen del carrito. */
.pv-body.woocommerce-cart .cart-collaterals{ float: none; width: auto; position: sticky; top: 20px; min-width: 0; }
.pv-body.woocommerce-cart .cart-collaterals .cart_totals{ float: none !important; width: auto !important; max-width: none; background: #fff; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-lg); padding: var(--pv-space-6); box-sizing: border-box; }
.pv-body.woocommerce-cart .cart_totals h2{ font-family: var(--pv-display); font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); text-align: left; margin: 0 0 var(--pv-space-4); padding: 0; border: 0; background: transparent; text-transform: none; }
.pv-body.woocommerce-cart .cart_totals table.shop_table{ width: 100%; margin: 0; border: 0; border-radius: 0; border-collapse: collapse; font-size: var(--pv-fs-sm); }
.pv-body.woocommerce-cart .cart_totals table.shop_table tr{ display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 10px 0; }
.pv-body.woocommerce-cart .cart_totals table.shop_table th,
.pv-body.woocommerce-cart .cart_totals table.shop_table td{ display: block !important; padding: 0; border: 0; background: transparent !important; font-weight: var(--pv-fw-regular); }
.pv-body.woocommerce-cart .cart_totals table.shop_table th{ text-align: left; color: var(--pv-gris); }
.pv-body.woocommerce-cart .cart_totals table.shop_table td{ text-align: right !important; color: var(--pv-texto); }
.pv-body.woocommerce-cart .cart_totals table.shop_table td::before{ display: none !important; content: none !important; }
.pv-body.woocommerce-cart .cart_totals table.shop_table .pv-shipping-later td{ font-size: 13px; color: var(--pv-gris); }
.pv-body.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals{ flex-direction: column; align-items: stretch; }
.pv-body.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td{ text-align: left !important; }
.pv-body.woocommerce-cart .cart_totals #shipping_method{ list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.pv-body.woocommerce-cart .cart_totals #shipping_method{ gap: 10px; margin-top: 10px; }
.pv-body.woocommerce-cart .cart_totals #shipping_method li{ margin: 0; padding: 0 !important; display: flex; align-items: flex-start; gap: 10px; text-indent: 0 !important; line-height: 1.35; }
.pv-body.woocommerce-cart .cart_totals #shipping_method li input{ position: static !important; margin: 2px 0 0 !important; flex: 0 0 auto; }
.pv-body.woocommerce-cart .cart_totals #shipping_method li label{ margin: 0; padding: 0 !important; text-indent: 0 !important; cursor: pointer; color: var(--pv-texto); }
.pv-body.woocommerce-cart .cart_totals #shipping_method li label::before,
.pv-body.woocommerce-cart .cart_totals #shipping_method li label::after{ display: none !important; content: none !important; }
.pv-body.woocommerce-cart .cart_totals #shipping_method li label .woocommerce-Price-amount{ font-weight: var(--pv-fw-bold); color: var(--pv-secundario); white-space: nowrap; }
.pv-body.woocommerce-cart .cart_totals .woocommerce-shipping-destination{ margin: 8px 0 0; font-size: 12px; color: var(--pv-gris); }
.pv-body.woocommerce-cart .cart_totals .shipping-calculator-button{ font-size: 13px; color: var(--pv-secundario); }
.pv-body.woocommerce-cart .cart_totals table.shop_table .cart-discount td{ color: var(--pv-exito); }
.pv-body.woocommerce-cart .cart_totals .cart-discount a{ font-size: 12px; color: var(--pv-gris); }
.pv-body.woocommerce-cart .cart_totals .order-total{ margin-top: 6px; padding-top: 16px; border-top: 1px solid var(--pv-borde); }
.pv-body.woocommerce-cart .cart_totals table.shop_table .order-total th{ font-size: var(--pv-fs-md); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); }
.pv-body.woocommerce-cart .cart_totals table.shop_table .order-total th small{ display: block; font-size: 12px; font-weight: var(--pv-fw-regular); color: var(--pv-gris); }
.pv-body.woocommerce-cart .cart_totals table.shop_table .order-total td{ font-size: var(--pv-fs-xl); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); }
.pv-body.woocommerce-cart .cart_totals .order-total td strong,
.pv-body.woocommerce-cart .cart_totals .order-total .woocommerce-Price-amount{ font-weight: inherit; }
.pv-body.woocommerce-cart .cart_totals .order-total .includes_tax{ display: block; font-size: 12px; font-weight: var(--pv-fw-regular); color: var(--pv-gris); }
.pv-body.woocommerce-cart .cart_totals .order-total .includes_tax .woocommerce-Price-amount{ font-weight: var(--pv-fw-regular); }
.pv-body.woocommerce-cart .wc-proceed-to-checkout{ padding: var(--pv-space-4) 0 0; }
.pv-body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{ margin: 0; }
/* legacy-theme agrega un segundo "Seguir comprando": queda como enlace de texto. */
.pv-body.pv-simple-chrome .woocommerce .wc-proceed-to-checkout a.seguir-comprando{ display: block !important; width: 100%; margin: 12px 0 0 !important; padding: 4px 0; background: transparent; border: 0; color: var(--pv-secundario); font-size: 14px; text-align: center; }
.pv-body.pv-simple-chrome .woocommerce .wc-proceed-to-checkout a.seguir-comprando:hover{ background: transparent; color: var(--pv-primario); text-decoration: underline; }
.pv-body .pv-cart-trust{ list-style: none; margin: var(--pv-space-5) 0 0; padding: var(--pv-space-4) 0 0; border-top: 1px solid var(--pv-borde); display: flex; flex-direction: column; gap: 10px; }
.pv-body .pv-cart-trust li{ display: flex; align-items: center; gap: 10px; margin: 0; font-size: 13px; color: var(--pv-gris); }
.pv-body .pv-cart-trust svg.pv-ico{ width: 18px; height: 18px; color: var(--pv-secundario); }

/* Envío gratis: cuánto falta. */
.pv-body .pv-freeship{ margin: 0 0 var(--pv-space-4); padding: 12px 14px; background: var(--pv-fondo); border-radius: 10px; }
.pv-body .pv-freeship p{ display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 13px; color: var(--pv-texto); line-height: 1.35; }
.pv-body .pv-freeship svg.pv-ico{ width: 18px; height: 18px; color: var(--pv-secundario); }
.pv-body .pv-freeship strong{ color: var(--pv-secundario); }
.pv-body .pv-freeship-track{ display: block; height: 6px; border-radius: var(--pv-radius-pill); background: #dde3ee; overflow: hidden; }
.pv-body .pv-freeship-track span{ display: block; height: 100%; background: var(--pv-secundario); border-radius: inherit; transition: width .4s ease; }
.pv-body .pv-freeship.is-done strong,
.pv-body .pv-freeship.is-done svg.pv-ico{ color: var(--pv-exito); }
.pv-body .pv-freeship.is-done .pv-freeship-track span{ background: var(--pv-exito); }

/* Productos sugeridos (cross-sells, carrito vacío, gracias). */
.pv-body.woocommerce-cart .cross-sells{ margin-top: var(--pv-space-10); }
.pv-body.woocommerce-cart .cross-sells > h2,
.pv-body .pv-flow-related .pv-sec-title{ font-size: var(--pv-fs-xl); margin: 0 0 var(--pv-space-4); }
.pv-body.woocommerce-cart .cross-sells > h2{ font-family: var(--pv-display); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); }
.pv-body.woocommerce-cart .cross-sells ul.products{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--pv-space-5); margin: 0; padding: 0; list-style: none; }
.pv-body.woocommerce-cart .cross-sells ul.products::before,
.pv-body.woocommerce-cart .cross-sells ul.products::after{ display: none; }
.pv-body.woocommerce-cart .cross-sells ul.products li.product{ width: auto !important; float: none !important; margin: 0 !important; padding: 0; }
.pv-body .pv-flow-related{ margin-top: var(--pv-space-12); text-align: left; }
.pv-body .pv-flow-related .pv-slide{ width: 220px; }

/* Carrito vacío. */
.pv-body .pv-cart-empty{ max-width: 640px; margin: var(--pv-space-4) auto 0; padding: var(--pv-space-12) var(--pv-space-6); text-align: center; background: #fff; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-lg); font-size: var(--pv-fs-sm); }
.pv-body .pv-cart-empty::before{ display: none !important; content: none !important; }
.pv-body .pv-cart-empty-ico{ width: 76px; height: 76px; margin: 0 auto var(--pv-space-5); border-radius: 50%; background: #e6ebf5; color: var(--pv-secundario); display: flex; align-items: center; justify-content: center; }
.pv-body .pv-cart-empty-ico svg.pv-ico{ width: 34px; height: 34px; }
.pv-body .pv-cart-empty p{ margin: 10px 0 0; color: var(--pv-gris); }
.pv-body .pv-cart-empty .return-to-shop{ margin: var(--pv-space-6) 0 0; }

/* -------------------------------------------------------------------------
 * Finalizar compra
 * ---------------------------------------------------------------------- */
.pv-body.woocommerce-checkout .woocommerce{ display: flex; flex-direction: column; }
.pv-body form.checkout.woocommerce-checkout{ display: grid !important; grid-template-columns: minmax(0, 1fr) 420px; gap: var(--pv-space-6); align-items: start; margin: 0; }
.pv-body form.checkout.woocommerce-checkout .pv-co-left{ grid-column: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--pv-space-4); counter-reset: pvco; }
.pv-body form.checkout.woocommerce-checkout .pv-co-right{ grid-column: 2; min-width: 0; }
.pv-body form.checkout.woocommerce-checkout #customer_details,
.pv-body form.checkout.woocommerce-checkout #order_review{ float: none !important; width: auto !important; max-width: none !important; }
.pv-body form.checkout.woocommerce-checkout #customer_details{ display: flex !important; flex-direction: column; gap: var(--pv-space-4); }
.pv-body form.checkout.woocommerce-checkout #customer_details::before,
.pv-body form.checkout.woocommerce-checkout #customer_details::after{ display: none; }
.pv-body form.checkout.woocommerce-checkout #order_review_heading{ display: flex !important; }
/* Astra flota el título del resumen y les pone borde y padding a los dos. */
.pv-body form.checkout.woocommerce-checkout #order_review_heading,
.pv-body form.checkout.woocommerce-checkout #order_review{ float: none !important; width: auto !important; padding: 0 !important; border: 0 !important; margin-left: 0; margin-right: 0; }
.pv-body form.checkout.woocommerce-checkout #customer_details{ margin: 0 !important; padding: 0 !important; }

/* Tarjetas: blancas, borde fino, sin sombra (igual que las del home). */
.pv-body.woocommerce-checkout #customer_details > .col-1,
.pv-body.woocommerce-checkout #customer_details > .col-2,
.pv-body.woocommerce-checkout .pv-co-card{ display: block !important; float: none !important; width: 100% !important; background: #fff !important; border: 1px solid var(--pv-borde) !important; border-radius: var(--pv-radius-lg) !important; box-shadow: none !important; padding: var(--pv-space-6) var(--pv-space-8) var(--pv-space-8) !important; margin: 0 !important; box-sizing: border-box; }
.pv-body.woocommerce-checkout #customer_details h3,
.pv-body.woocommerce-checkout .pv-co-card > h3,
.pv-body.woocommerce-checkout #ship-to-different-address{ display: flex; align-items: center; gap: 12px; font-family: var(--pv-display); font-size: 19px; font-weight: var(--pv-fw-semibold); line-height: 1.3; color: var(--pv-secundario); margin: 0 0 var(--pv-space-5); padding: 0; border: 0; text-transform: none; }
/* Cada bloque de la columna izquierda lleva su número: 1 datos, 2 dirección, 3 envío, 4 pago. */
.pv-body.woocommerce-checkout .pv-co-left .woocommerce-billing-fields > h3::before,
.pv-body.woocommerce-checkout .pv-co-left #ship-to-different-address::before,
.pv-body.woocommerce-checkout .pv-co-left .pv-co-card > h3::before{ counter-increment: pvco; content: counter(pvco); flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; background: var(--pv-secundario); color: #fff; font-size: 13px; font-weight: var(--pv-fw-bold); display: inline-flex; align-items: center; justify-content: center; }
.pv-body.woocommerce-checkout #ship-to-different-address > label{ margin: 0; }
.pv-body.woocommerce-checkout .woocommerce-additional-fields{ display: none !important; }
.pv-body.woocommerce-checkout .woocommerce-account-fields .create-account{ margin: 0; }
.pv-body.woocommerce-checkout .woocommerce-account-fields label.checkbox,
.pv-body.woocommerce-checkout .woocommerce-form__label-for-checkbox{ display: inline-flex !important; align-items: center; font-size: 14px; font-weight: var(--pv-fw-regular); color: var(--pv-texto); cursor: pointer; }

/* Envío: cada método es una opción seleccionable. */
.pv-body.woocommerce-checkout .pv-co-shipping #shipping_method,
.pv-body.woocommerce-checkout #shipping_method.woocommerce-shipping-methods{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.pv-body.woocommerce-checkout .pv-co-shipping #shipping_method li{ list-style: none; margin: 0; padding: 14px 16px !important; display: flex; align-items: center; gap: 12px; border: 1px solid var(--pv-borde-fuerte); border-radius: 10px; font-size: var(--pv-fs-sm); cursor: pointer; transition: border-color .2s ease, background .2s ease; }
.pv-body.woocommerce-checkout .pv-co-shipping #shipping_method li:has(input:checked),
.pv-body.woocommerce-checkout .pv-co-shipping #shipping_method li:only-child{ border-color: var(--pv-secundario); background: #f3f6fb; }
.pv-body.woocommerce-checkout .pv-co-shipping #shipping_method li input{ position: static !important; margin: 0 !important; flex: 0 0 auto; }
/* Astra dibuja un radio falso con label::before: se usa el nativo. */
.pv-body.woocommerce-checkout #shipping_method li label::before,
.pv-body.woocommerce-checkout #shipping_method li label::after,
.pv-body.woocommerce-checkout #payment ul.wc_payment_methods li > label::before,
.pv-body.woocommerce-checkout #payment ul.wc_payment_methods li > label::after{ display: none !important; content: none !important; }
.pv-body.woocommerce-checkout #shipping_method li,
.pv-body.woocommerce-checkout #shipping_method li label,
.pv-body.woocommerce-checkout #payment ul.wc_payment_methods li > label{ text-indent: 0 !important; }
.pv-body.woocommerce-checkout #shipping_method li label{ padding: 0 !important; }
.pv-body.woocommerce-checkout .pv-co-shipping #shipping_method li label{ flex: 1 1 auto; margin: 0; cursor: pointer; font-weight: var(--pv-fw-medium); color: var(--pv-texto); }
.pv-body.woocommerce-checkout .pv-co-shipping #shipping_method li label .woocommerce-Price-amount{ font-weight: var(--pv-fw-bold); color: var(--pv-secundario); }
.pv-body.woocommerce-checkout .pv-co-shipping #shipping_method:empty::before{ content: "Completá la dirección para ver las opciones de envío."; font-size: 14px; color: var(--pv-gris); }

/* Pago. */
.pv-body.woocommerce-checkout .pv-co-pay-intro{ display: flex; gap: 8px; font-size: 13px; line-height: 1.45; color: var(--pv-gris); margin: -6px 0 var(--pv-space-4); }
.pv-body.woocommerce-checkout .pv-co-pay-methods-title{ display: none; }
.pv-body.woocommerce-checkout #payment{ background: transparent; border-radius: 0; }
.pv-body.woocommerce-checkout #payment ul.wc_payment_methods{ list-style: none; margin: 0 0 var(--pv-space-5); padding: 0; border: 0; display: flex; flex-direction: column; gap: 10px; }
.pv-body.woocommerce-checkout #payment ul.wc_payment_methods li{ list-style: none; margin: 0; padding: 14px 16px !important; border: 1px solid var(--pv-borde-fuerte); border-radius: 10px; transition: border-color .2s ease; }
.pv-body.woocommerce-checkout #payment ul.wc_payment_methods li:has(> input:checked),
.pv-body.woocommerce-checkout #payment ul.wc_payment_methods li:only-child{ border-color: var(--pv-secundario); }
.pv-body.woocommerce-checkout #payment ul.wc_payment_methods li > label{ font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); color: var(--pv-texto); cursor: pointer; }
.pv-body.woocommerce-checkout #payment ul.wc_payment_methods li > label img{ max-height: 24px; width: auto; vertical-align: middle; margin-left: 6px; }
.pv-body.woocommerce-checkout #payment div.payment_box{ background: var(--pv-fondo); border-radius: 8px; margin: 12px 0 0; padding: 14px; font-size: 13px; color: var(--pv-gris); }
.pv-body.woocommerce-checkout #payment div.payment_box::before{ display: none; }
.pv-body.woocommerce-checkout #payment .form-row.place-order{ padding: 0; margin: 0; }
.pv-body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
.pv-body.woocommerce-checkout .woocommerce-privacy-policy-text{ font-size: 13px; color: var(--pv-gris); margin: 0 0 var(--pv-space-4); }
.pv-body.woocommerce-checkout .woocommerce-privacy-policy-text a,
.pv-body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a{ color: var(--pv-secundario); }

/* Resumen de compra (columna derecha, fija al hacer scroll). */
.pv-body.woocommerce-checkout .pv-co-summary{ position: sticky; top: 20px; padding: var(--pv-space-6) !important; }
.pv-body.woocommerce-checkout .pv-co-summary > h3{ font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-bold); margin: 0 0 var(--pv-space-4); }
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table{ width: 100%; margin: 0; border: 0; border-radius: 0; border-collapse: collapse; }
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table thead{ display: none; }
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table td{ padding: 10px 0; border: 0; background: transparent; text-align: left; font-size: 14px; font-weight: var(--pv-fw-regular); color: var(--pv-texto); vertical-align: middle; }
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td{ padding: 8px 0; }
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td.product-total{ text-align: right; font-weight: var(--pv-fw-semibold); white-space: nowrap; padding-left: 12px; }
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th{ color: var(--pv-gris); }
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td{ text-align: right; }
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.cart-subtotal th,
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.cart-subtotal td{ border-top: 1px solid var(--pv-borde); padding-top: 14px; }
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart-discount td{ color: var(--pv-exito); }
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td{ border-top: 1px solid var(--pv-borde); padding-top: 16px; font-size: var(--pv-fs-md); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); }
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td{ font-size: var(--pv-fs-xl); }
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td strong,
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total .woocommerce-Price-amount{ font-weight: inherit; }
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total .includes_tax{ display: block; font-size: 12px; font-weight: var(--pv-fw-regular); color: var(--pv-gris); }
.pv-body.woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-totals{ display: none; }
.pv-body.woocommerce-checkout .pv-co-item{ display: inline-flex; align-items: center; gap: 12px; position: relative; max-width: 100%; }
.pv-body.woocommerce-checkout .pv-co-item img.pv-co-thumb,
.pv-body.woocommerce-checkout .pv-co-item img{ width: 56px !important; height: 56px !important; object-fit: contain; border: 1px solid var(--pv-borde); border-radius: 8px; background: #fff; flex: 0 0 auto; }
.pv-body.woocommerce-checkout .pv-co-item-qty{ position: absolute; left: 44px; top: -7px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: var(--pv-secundario); color: #fff; font-size: 11px; font-weight: var(--pv-fw-bold); line-height: 20px; text-align: center; box-sizing: border-box; }
.pv-body.woocommerce-checkout .pv-co-item-name{ display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 13px; font-weight: var(--pv-fw-medium); line-height: 1.35; color: var(--pv-texto); }
.pv-body.woocommerce-checkout .pv-co-coupon-slot td{ padding: 8px 0 12px !important; }
.pv-body.woocommerce-checkout .pv-co-coupon{ display: grid !important; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin: 0; width: 100%; }
.pv-body.woocommerce-checkout .pv-co-coupon p{ float: none !important; width: 100% !important; margin: 0; padding: 0; }
.pv-body.woocommerce-checkout .pv-co-coupon input#coupon_code{ height: 44px; font-size: 14px; }
.pv-body.woocommerce-checkout .pv-co-summary .pv-co-coupon button{ height: 44px; padding: 0 18px !important; white-space: nowrap; }

/* -------------------------------------------------------------------------
 * Pedido recibido (endpoint de Woo) y página "Gracias".
 * ---------------------------------------------------------------------- */
.pv-body .pv-thanks{ padding: var(--pv-space-8) 20px var(--pv-space-16); }
.pv-body .pv-order{ max-width: 1280px; margin: 0 auto; }
.pv-body .pv-order > *:not(.pv-flow-related){ max-width: 880px; margin-left: auto; margin-right: auto; }
.pv-body .pv-order-hero{ text-align: center; background: #fff; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-lg); padding: var(--pv-space-8) var(--pv-space-6) var(--pv-space-10); }
.pv-body .pv-lottie{ width: 120px; min-width: 0; max-width: none; margin: 0 auto var(--pv-space-2); }
.pv-body .pv-lottie .pv-lottie-mount,
.pv-body .pv-lottie svg{ width: 100%; height: auto; display: block; }
.pv-body .pv-order-hero .woocommerce-thankyou-order-received,
.pv-body .pv-order-hero .woocommerce-notice{ margin: 10px 0 0; font-size: var(--pv-fs-md); color: var(--pv-texto); background: transparent; border: 0; padding: 0; }
.pv-body .pv-order-mail{ margin: 8px 0 0; font-size: var(--pv-fs-sm); color: var(--pv-gris); }
.pv-body .pv-order-mail strong{ color: var(--pv-secundario); }
.pv-body .pv-order-hero-ico{ width: 76px; height: 76px; margin: 0 auto var(--pv-space-5); border-radius: 50%; background: #fdecef; color: var(--pv-primario); display: flex; align-items: center; justify-content: center; }
.pv-body .pv-order-hero-ico svg.pv-ico{ width: 34px; height: 34px; }
.pv-body .pv-order-hero.is-failed .pv-order-actions{ margin-top: var(--pv-space-6); }
.pv-body .woocommerce ul.order_details.pv-order-facts{ list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--pv-space-3); margin: var(--pv-space-4) auto 0; padding: 0; }
.pv-body .woocommerce ul.order_details.pv-order-facts::before,
.pv-body .woocommerce ul.order_details.pv-order-facts::after{ display: none; }
.pv-body .woocommerce ul.order_details.pv-order-facts li{ float: none; margin: 0; padding: var(--pv-space-4); border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-md); background: #fff; font-size: 12px; line-height: 1.3; text-transform: none; color: var(--pv-gris); min-width: 0; }
.pv-body .woocommerce ul.order_details.pv-order-facts li strong{ display: block; margin-top: 6px; font-size: var(--pv-fs-md); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); overflow-wrap: anywhere; }
.pv-body .pv-order-next{ list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pv-space-3); margin: var(--pv-space-3) auto 0; padding: 0; }
.pv-body .pv-order-next li{ display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: var(--pv-space-4); background: #fff; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-md); text-align: left; }
.pv-body .pv-order-next svg.pv-ico{ width: 26px; height: 26px; color: var(--pv-secundario); stroke-width: 1.5; }
.pv-body .pv-order-next b{ display: block; font-size: var(--pv-fs-sm); color: var(--pv-secundario); }
.pv-body .pv-order-next span{ display: block; margin-top: 2px; font-size: 13px; line-height: 1.4; color: var(--pv-gris); }
.pv-body .pv-order-details{ margin-top: var(--pv-space-4); }
.pv-body .pv-order-details:empty{ display: none; }
.pv-body .pv-order-details > p,
.pv-body .pv-order-details .woocommerce-bacs-bank-details{ background: #fff; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-md); padding: var(--pv-space-4) var(--pv-space-5); margin: 0 0 var(--pv-space-3); font-size: var(--pv-fs-sm); }
.pv-body .pv-order-details .woocommerce-order-details,
.pv-body .pv-order-details .woocommerce-customer-details{ background: #fff; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-lg); padding: var(--pv-space-6); margin: 0 0 var(--pv-space-3); }
.pv-body .pv-order-details h2{ font-family: var(--pv-display); font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); margin: 0 0 var(--pv-space-4); text-transform: none; }
.pv-body .pv-order-details table.shop_table{ width: 100%; margin: 0; border: 0; border-radius: 0; border-collapse: collapse; font-size: 14px; }
.pv-body .pv-order-details table.shop_table th,
.pv-body .pv-order-details table.shop_table td{ padding: 10px 0; border: 0; border-top: 1px solid var(--pv-borde); background: transparent; text-align: left; font-weight: var(--pv-fw-regular); }
.pv-body .pv-order-details table.shop_table thead th{ border-top: 0; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--pv-gris); }
.pv-body .pv-order-details table.shop_table td:last-child,
.pv-body .pv-order-details table.shop_table th:last-child{ text-align: right; }
.pv-body .pv-order-details table.shop_table tfoot th{ color: var(--pv-gris); }
.pv-body .pv-order-details table.shop_table tfoot tr:last-child th,
.pv-body .pv-order-details table.shop_table tfoot tr:last-child td{ font-size: var(--pv-fs-md); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); }
.pv-body .pv-order-details table.shop_table td.product-name a{ color: var(--pv-texto); text-decoration: none; }
.pv-body .pv-order-details .woocommerce-customer-details .woocommerce-columns{ display: grid; grid-template-columns: 1fr 1fr; gap: var(--pv-space-6); }
.pv-body .pv-order-details .woocommerce-customer-details .woocommerce-column{ float: none; width: auto; margin: 0; }
.pv-body .pv-order-details .woocommerce-customer-details .woocommerce-columns::before,
.pv-body .pv-order-details .woocommerce-customer-details .woocommerce-columns::after{ display: none; }
.pv-body .pv-order-details .woocommerce-customer-details h2.woocommerce-column__title{ font-size: var(--pv-fs-md); }
.pv-body .pv-order-details .woocommerce-customer-details address{ border: 0; padding: 0; font-style: normal; font-size: 14px; line-height: 1.6; color: var(--pv-texto); }
.pv-body .pv-order-details .woocommerce-customer-details address p{ margin: 4px 0 0; }
.pv-body .pv-order-actions{ display: flex; justify-content: center; flex-wrap: wrap; gap: var(--pv-space-3); margin: var(--pv-space-6) auto 0; }
.pv-body .pv-thanks-related{ display: none; }
.pv-body .pv-order-hero.is-pending .pv-order-hero-ico{ background: #e8ecf8; color: var(--pv-secundario); }

/* 404 — reuses the order-hero card + next-steps grid. */
.pv-body .pv-404-code{ margin: 0 0 var(--pv-space-2); font-family: var(--pv-display); font-size: clamp(64px, 9vw, 112px); font-weight: var(--pv-fw-bold); line-height: 1; color: var(--pv-secundario); letter-spacing: -.02em; }
.pv-body .pv-404-search{ display: flex; gap: var(--pv-space-2); max-width: 560px; margin: var(--pv-space-5) auto 0; }
.pv-body .pv-404-search input[type="search"]{ flex: 1; min-width: 0; height: 48px; padding: 0 18px; border: 1px solid var(--pv-borde); border-radius: 100px; font-size: var(--pv-fs-md); background: #fff; }
.pv-body .pv-404-search input[type="search"]:focus{ outline: 2px solid var(--pv-secundario); outline-offset: 1px; border-color: var(--pv-secundario); }
.pv-body .pv-404-search .pv-btn{ height: 48px; padding: 0 24px; }
.pv-body .pv-404-links li{ padding: 0; }
.pv-body .pv-404-links a{ display: flex; align-items: flex-start; gap: 12px; width: 100%; padding: var(--pv-space-4); border-radius: inherit; color: inherit; text-decoration: none; transition: background .2s ease; }
.pv-body .pv-404-links a:hover{ background: #f4f6fb; }
.pv-body .pv-404-links a:focus-visible{ outline: 2px solid var(--pv-secundario); outline-offset: 2px; }

/* -------------------------------------------------------------------------
 * Mi cuenta (usa el header completo, pero los mismos formularios).
 * ---------------------------------------------------------------------- */
.pv-body.woocommerce-account .entry-header{ max-width: 1280px; margin: 0 auto; padding: var(--pv-space-8) 20px 0; box-sizing: border-box; }
.pv-body.woocommerce-account .entry-title{ font-family: var(--pv-display); font-size: clamp(26px, 2.6vw, 34px); font-weight: var(--pv-fw-bold); line-height: var(--pv-lh-tight); color: var(--pv-secundario); margin: 0 0 var(--pv-space-2); text-transform: none; }
.pv-body.woocommerce-account{ background: var(--pv-fondo); }
.pv-body.woocommerce-account .woocommerce{ max-width: 1280px; margin: 0 auto; padding: var(--pv-space-4) 20px var(--pv-space-16); box-sizing: border-box; font-family: var(--pv-font); }
.pv-body.woocommerce-account .woocommerce-MyAccount-navigation ul{ list-style: none; margin: 0; padding: 8px; background: #fff; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-lg); }
.pv-body.woocommerce-account .woocommerce-MyAccount-navigation li{ margin: 0; }
.pv-body.woocommerce-account .woocommerce-MyAccount-navigation li a{ display: block; padding: 12px 14px; border-radius: 10px; color: var(--pv-texto); font-size: var(--pv-fs-sm); text-decoration: none; }
.pv-body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{ background: #e6ebf5; color: var(--pv-secundario); font-weight: var(--pv-fw-semibold); }
.pv-body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{ background: var(--pv-fondo); color: var(--pv-secundario); }
.pv-body.woocommerce-account .woocommerce-MyAccount-content{ padding: var(--pv-space-6); }
.pv-body.woocommerce-account form.woocommerce-form-login,
.pv-body.woocommerce-account form.woocommerce-form-register,
.pv-body.woocommerce-account .woocommerce-MyAccount-content{ background: #fff; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-lg); padding: var(--pv-space-6); margin: 0; }
.pv-body.woocommerce-account .woocommerce form .form-row{ margin: 0 0 var(--pv-space-4); }
.pv-body.woocommerce-account h2{ font-family: var(--pv-display); font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); }
.pv-body.woocommerce-account .woocommerce-form-login__rememberme{ display: inline-flex; align-items: center; gap: 6px; }
.pv-body.woocommerce-account .woocommerce form.login button.button,
.pv-body.woocommerce-account .woocommerce form.register button.button{ background: var(--pv-primario); border-color: var(--pv-primario); color: #fff; }
.pv-body.woocommerce-account .woocommerce form.login button.button:hover,
.pv-body.woocommerce-account .woocommerce form.register button.button:hover{ background: var(--pv-primario-hover); border-color: var(--pv-primario-hover); }
.pv-body.woocommerce-account .woocommerce-LostPassword a{ color: var(--pv-secundario); font-size: 14px; }

/* -------------------------------------------------------------------------
 * Responsive del flujo
 * ---------------------------------------------------------------------- */
@media (max-width: 1024px){
	.pv-body .pv-cart-grid{ grid-template-columns: minmax(0, 1fr) 340px; }
	.pv-body form.checkout.woocommerce-checkout{ grid-template-columns: minmax(0, 1fr) 360px; }
	.pv-body .pv-step + .pv-step::before{ width: 24px; }
	.pv-body.woocommerce-cart .cross-sells ul.products{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px){
	.pv-body .pv-cart-grid,
	.pv-body form.checkout.woocommerce-checkout{ grid-template-columns: 1fr; }
	.pv-body form.checkout.woocommerce-checkout .pv-co-left,
	.pv-body form.checkout.woocommerce-checkout .pv-co-right{ grid-column: 1; }
	/* En el celular el resumen va arriba: se ve el total antes de pagar. */
	.pv-body form.checkout.woocommerce-checkout .pv-co-right{ order: -1; }
	.pv-body.woocommerce-cart .cart-collaterals,
	.pv-body.woocommerce-checkout .pv-co-summary{ position: static; }
	.pv-body .woocommerce ul.order_details.pv-order-facts{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pv-body .pv-order-next{ grid-template-columns: 1fr; }
	.pv-body.woocommerce-cart .cross-sells ul.products{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pv-space-3); }
}
@media (max-width: 767px){
	.pv-body .pv-header-simple-inner{ grid-template-columns: auto 1fr; gap: 12px var(--pv-space-4); padding-top: 12px; padding-bottom: 12px; min-height: 0; }
	.pv-body .pv-header-simple .pv-brand img.pv-logo,
	.pv-body .pv-header-simple .pv-brand img.custom-logo{ height: 32px; }
	.pv-body .pv-steps{ grid-column: 1 / -1; grid-row: 2; justify-content: center; }
	.pv-body .pv-step .pv-step-label{ display: none; }
	.pv-body .pv-step.is-current .pv-step-label{ display: inline; }
	.pv-body .pv-simple-secure-txt em{ display: none; }
	.pv-body.woocommerce-cart .woocommerce,
	.pv-body.woocommerce-checkout .woocommerce,
	.pv-body .pv-thanks{ padding: var(--pv-space-5) 16px var(--pv-space-12); }
	.pv-body .pv-flow-head{ margin-bottom: var(--pv-space-4); }
	.pv-body.woocommerce-cart table.pv-cart-items tr.cart_item{ grid-template-columns: 76px minmax(0, 1fr) 36px; grid-template-areas: "img info rm" "img sub sub"; gap: 6px 14px; padding: 14px; align-items: start; }
	.pv-body.woocommerce-cart table.pv-cart-items td.product-thumbnail img{ width: 76px; height: 76px; }
	.pv-body.woocommerce-cart table.pv-cart-items td.product-subtotal{ text-align: left !important; font-size: var(--pv-fs-md); }
	.pv-body.woocommerce-cart table.pv-cart-items td.product-remove a.remove{ width: 32px; height: 32px; }
	.pv-body.woocommerce-checkout #customer_details > .col-1,
	.pv-body.woocommerce-checkout #customer_details > .col-2,
	.pv-body.woocommerce-checkout .pv-co-card{ padding: var(--pv-space-5) !important; }
	.pv-body .pv-footer-simple-inner{ flex-direction: column; align-items: flex-start; }
	.pv-body .pv-order-hero{ padding: var(--pv-space-6) var(--pv-space-4) var(--pv-space-8); }
	.pv-body .pv-order-details .woocommerce-customer-details .woocommerce-columns{ grid-template-columns: 1fr; }
	.pv-body .pv-order-actions .pv-btn{ width: 100%; }
	.pv-body .pv-404-search{ flex-direction: column; }
	.pv-body .pv-404-search .pv-btn{ width: 100%; }
}

/* -------------------------------------------------------------------------
 * Campos del checkout: grilla y orden (datos personales vs. dirección).
 * thwcfd reinyecta la dirección en facturación: se oculta y se usa la de envío.
 * ---------------------------------------------------------------------- */
body.woocommerce-checkout .driver-popover,
body.woocommerce-checkout .driver-overlay,
body.woocommerce-cart .driver-popover,
body.woocommerce-cart .driver-overlay,
body.woocommerce-checkout .notificationx-frontend,
body.woocommerce-cart .notificationx-frontend{ display: none !important; visibility: hidden !important; pointer-events: none !important; opacity: 0 !important; }
body.woocommerce-checkout #billing_address_1_field,
body.woocommerce-checkout #billing_address_2_field,
body.woocommerce-checkout #billing_city_field,
body.woocommerce-checkout #billing_state_field,
body.woocommerce-checkout #billing_postcode_field,
body.woocommerce-checkout #billing_country_field,
body.woocommerce-checkout #billing_company_field,
body.woocommerce-checkout .woocommerce-billing-fields .address-field,
body.woocommerce-checkout .pv-hide-field{ display: none !important; height: 0 !important; max-height: 0 !important; overflow: hidden !important; margin: 0 !important; padding: 0 !important; border: 0 !important; position: absolute !important; left: -9999px !important; }
body.woocommerce-checkout .woocommerce-shipping-fields .shipping_address{ display: block !important; height: auto !important; overflow: visible !important; }
body.woocommerce-checkout .woocommerce-billing-fields{ display: flex; flex-direction: column; }
body.woocommerce-checkout .woocommerce-billing-fields > h3{ order: 0; }
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper{ order: 1; }
body.woocommerce-checkout .woocommerce-account-fields{ order: 2; margin: var(--pv-space-4) 0 0; }
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper{ display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 18px 20px !important; align-items: start; }
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row{ float: none !important; width: 100% !important; margin: 0 !important; padding: 0 !important; }
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-wide{ grid-column: 1 / -1; }
body.woocommerce-checkout #billing_email_field{ grid-column: 1 / -1; order: 1; }
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .woocommerce-account-fields,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .create-account{ grid-column: 1 / -1; order: 2; margin: 0; }
body.woocommerce-checkout #billing_first_name_field{ order: 3; }
body.woocommerce-checkout #billing_last_name_field{ order: 4; }
body.woocommerce-checkout #billing_phone_field{ grid-column: 1; order: 5; }
body.woocommerce-checkout #billing_dni_field,
body.woocommerce-checkout #dni_field{ grid-column: 2; order: 6; display: block !important; }
/* Woo deja la etiqueta de "Piso, departamento" sólo para lectores de pantalla. */
body.woocommerce-checkout #shipping_address_2_field label.screen-reader-text{ position: static !important; width: auto !important; height: auto !important; clip: auto !important; clip-path: none !important; margin: 0 0 6px !important; overflow: visible !important; }
body.woocommerce-checkout #shipping_address_1_field{ grid-column: 1; }
body.woocommerce-checkout #shipping_address_2_field{ grid-column: 2; }
body.woocommerce-checkout #shipping_city_field{ grid-column: 1; }
body.woocommerce-checkout #shipping_state_field{ grid-column: 2; }
body.woocommerce-checkout #shipping_postcode_field{ grid-column: 1; }
body.woocommerce-checkout #shipping_country_field{ grid-column: 2; }
@media (max-width: 560px){
	body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
	body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper{ grid-template-columns: 1fr !important; }
	body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row,
	body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row{ grid-column: 1 !important; }
}

/* Campaign badge: Lanzamiento (AWL 467, category "lanzamientos") */
.pv-body .pv-new{
	position: absolute;
	top: 0;
	right: 0;
	z-index: 3;
	background: var(--pv-secundario);
	color: #fff;
	font-size: 14px;
	font-weight: 400;
	line-height: 1;
	padding: .4em 2em;
	transform: rotate(40deg);
	transform-origin: center;
	margin-top: 22px;
	margin-right: -32px;
	pointer-events: none;
	white-space: nowrap;
}

/* =========================================================================
 * Entradas sutiles: el JS marca los elementos con .pv-reveal y les agrega
 * .is-in cuando entran en pantalla (IntersectionObserver). La clase la pone
 * el JS, así que sin JS todo queda visible, y con "reducir movimiento" el
 * observer ni siquiera corre.
 * ====================================================================== */
.pv-body .pv-reveal{ opacity: 0; transform: translateY(16px); transition: opacity .6s cubic-bezier(.22,.61,.36,1), transform .6s cubic-bezier(.22,.61,.36,1); transition-delay: var(--pv-reveal-delay, 0ms); will-change: opacity, transform; }
.pv-body .pv-reveal.is-in{ opacity: 1; transform: none; }
/* Terminada la entrada el JS saca la clase: si .pv-reveal quedara puesta, su
   `transform` pisaría los hover que levantan tarjetas y notas. */
@media (prefers-reduced-motion: reduce){
	.pv-body .pv-reveal{ opacity: 1; transform: none; transition: none; }
}

/* =========================================================================
 * Landings de evento (template-parts/evento.php): piezas comunes — grilla,
 * "Agregar al carrito" en las tarjetas, kit, preguntas frecuentes, letra
 * chica y barra fija mobile. El resto del diseño está más abajo, en el
 * bloque `.pv-hs-*` (la base nació con la página de Hot Sale).
 * ====================================================================== */
.pv-body .pv-ev{ padding-bottom: var(--pv-space-8); }

/* Grilla de ofertas */
.pv-body .pv-ev-grid{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--pv-space-5); }

/* Botón "Agregar" en tarjetas y popup (add-to-cart AJAX de Woo) */
.pv-body .pv-card .pv-card-add{ width: 100%; margin-top: 4px; }
.pv-body .pv-add.loading{ opacity: .6; pointer-events: none; }
.pv-body .pv-add.is-added{ background: var(--pv-exito); border-color: var(--pv-exito); color: #fff; pointer-events: none; }
.pv-body .pv-card .added_to_cart, .pv-body .pv-xsell .added_to_cart{ display: none !important; }

/* Preguntas frecuentes + WhatsApp */
.pv-body .pv-ev-help{ display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: var(--pv-space-12); align-items: start; }
.pv-body .pv-ev-faq .pv-sec-title{ margin-bottom: var(--pv-space-3); }
.pv-body .pv-ev-faq .pv-acc-title{ font-family: var(--pv-font); font-size: var(--pv-fs-md); font-weight: var(--pv-fw-semibold); padding: var(--pv-space-5) 0; }
.pv-body .pv-ev-faq .pv-acc-content p{ margin: 0; color: var(--pv-gris); }
/* Astra le pone una sombra de 1 px a los botones: sobre la respuesta se veía como un borde gris. */
.pv-body .pv-ev-faq .pv-acc-title, .pv-body .pv-ev-faq .pv-acc-title:hover, .pv-body .pv-ev-faq .pv-acc-title:focus{ box-shadow: none; }
.pv-body .pv-ev-wa{ display: flex; flex-direction: column; align-items: flex-start; gap: var(--pv-space-3); padding: var(--pv-space-8); border-radius: var(--pv-radius-lg); background: var(--pv-secundario); color: #fff; }
.pv-body .pv-ev-wa p{ margin: 0 0 var(--pv-space-3); font-size: var(--pv-fs-sm); line-height: 1.55; color: rgba(255,255,255,.85); }
.pv-body .pv-ev-wa-ico{ width: 48px; height: 48px; display: grid; place-items: center; border-radius: 12px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); }
.pv-body .pv-ev-wa-ico .pv-ico{ width: 24px; height: 24px; }
.pv-body .pv-ev-wa-title{ margin: 0; font-family: var(--pv-display); font-size: var(--pv-fs-xl); font-weight: var(--pv-fw-bold); color: #fff; }

.pv-body .pv-ev-legales{ max-width: var(--pv-container); margin: 0 auto; padding: 0 var(--pv-gutter); box-sizing: border-box; font-size: var(--pv-fs-xs); line-height: 1.5; color: var(--pv-gris); }

/* Barra fija mobile (la prende el JS al pasar el encabezado). */
.pv-body .pv-ev-bar{ display: none; }

/* =========================================================================
 * Popup "Agregado al carrito" con complementarios (inc/cross-sell.php · Sprint 3)
 * ====================================================================== */
.pv-body .pv-xsell .pv-xsell-box{ width: 760px; padding: var(--pv-space-8); }
.pv-body .pv-xsell-head{ display: flex; align-items: flex-start; gap: var(--pv-space-4); padding: 0 var(--pv-space-8) var(--pv-space-6) 0; border-bottom: 1px solid var(--pv-borde); }
.pv-body .pv-xsell-ok{ flex: 0 0 auto; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--pv-exito); color: #fff; }
.pv-body .pv-xsell-ok .pv-ico{ width: 20px; height: 20px; stroke-width: 3; }
.pv-body .pv-xsell-added{ min-width: 0; }
.pv-body .pv-xsell-kicker{ margin: 4px 0 var(--pv-space-3); font-size: var(--pv-fs-md); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); }
.pv-body .pv-xsell-item{ display: flex; align-items: center; gap: var(--pv-space-3); }
.pv-body .pv-xsell-item img.pv-xsell-thumb{ width: 56px; height: 56px; object-fit: contain; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-sm); background: #fff; flex: 0 0 auto; }
.pv-body .pv-xsell-name{ margin: 0 0 2px; font-size: var(--pv-fs-sm); line-height: 1.35; color: var(--pv-texto); }
.pv-body .pv-xsell-price{ margin: 0; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); }
.pv-body .pv-xsell-price del, .pv-body .pv-xsell-card-price del{ font-weight: var(--pv-fw-regular); color: var(--pv-gris); margin-right: 4px; }
.pv-body .pv-xsell-price ins, .pv-body .pv-xsell-card-price ins{ text-decoration: none; }
.pv-body .pv-xsell-sug{ padding: var(--pv-space-6) 0; }
.pv-body .pv-xsell-title{ margin: 0; font-family: var(--pv-display); font-size: var(--pv-fs-xl); font-weight: var(--pv-fw-bold); color: var(--pv-secundario); }
.pv-body .pv-xsell-sub{ margin: 4px 0 var(--pv-space-5); font-size: var(--pv-fs-sm); color: var(--pv-gris); }
.pv-body .pv-xsell-list{ list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pv-space-4); }
.pv-body .pv-xsell-card{ display: flex; flex-direction: column; gap: 6px; padding: var(--pv-space-3); border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-md); }
.pv-body .pv-xsell-media{ display: block; aspect-ratio: 1 / 1; }
.pv-body .pv-xsell-media img{ width: 100%; height: 100%; object-fit: contain; display: block; }
.pv-body .pv-xsell-card-name{ font-size: var(--pv-fs-sm); line-height: 1.35; color: var(--pv-texto); text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.7em; }
.pv-body .pv-xsell-card-name:hover{ color: var(--pv-secundario); }
.pv-body .pv-xsell-card-price{ font-weight: var(--pv-fw-bold); color: var(--pv-secundario); margin-top: auto; }
.pv-body .pv-xsell-card .pv-add{ width: 100%; }
.pv-body .pv-xsell-actions{ display: flex; justify-content: flex-end; flex-wrap: wrap; gap: var(--pv-space-3); padding-top: var(--pv-space-5); border-top: 1px solid var(--pv-borde); }
.pv-body .pv-xsell-actions .pv-btn{ font-size: var(--pv-fs-sm); padding: 12px 22px; }
.pv-body .pv-xsell-actions button.pv-btn{ font-family: var(--pv-font); }

@media (max-width: 1200px){
	.pv-body .pv-ev-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px){
	.pv-body .pv-ev-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pv-space-3); }
	.pv-body .pv-ev-help{ grid-template-columns: 1fr; gap: var(--pv-space-8); }
	.pv-body .pv-ev-legales{ padding: 0 var(--pv-space-4); }
	.pv-body .pv-ev-bar{ display: flex; align-items: center; justify-content: space-between; gap: var(--pv-space-3); position: fixed; left: 0; right: 0; bottom: 0; z-index: 250; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: #fff; box-shadow: 0 -4px 18px rgba(0,31,95,.14); transform: translateY(110%); transition: transform .25s ease; }
	.pv-body .pv-ev-bar.on{ transform: none; }
	.pv-body .pv-ev-bar-txt{ display: flex; flex-direction: column; min-width: 0; font-size: var(--pv-fs-xs); color: var(--pv-gris); line-height: 1.3; }
	.pv-body .pv-ev-bar-txt b{ font-size: var(--pv-fs-md); color: var(--pv-primario); }
	.pv-body.pv-ev-bar-on .pv-wa-float{ bottom: 84px; }
	.pv-body .pv-xsell .pv-xsell-box{ padding: var(--pv-space-6) var(--pv-space-4); }
}
@media (max-width: 560px){
	.pv-body .pv-card .pv-card-add{ padding-left: 10px; padding-right: 10px; font-size: var(--pv-fs-xs); }
	.pv-body .pv-card .pv-card-add .pv-ico{ display: none; }
	/* Popup como hoja desde abajo, con las sugerencias en filas. */
	.pv-body .pv-xsell.on{ align-items: flex-end; padding: 0; }
	.pv-body .pv-xsell .pv-xsell-box{ max-width: 100%; width: 100%; max-height: 92vh; border-radius: var(--pv-radius-lg) var(--pv-radius-lg) 0 0; }
	.pv-body .pv-xsell-list{ grid-template-columns: 1fr; gap: var(--pv-space-3); }
	.pv-body .pv-xsell-card{ display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: var(--pv-space-3); row-gap: 2px; align-items: center; }
	.pv-body .pv-xsell-media{ grid-row: 1 / span 2; }
	.pv-body .pv-xsell-card-name{ min-height: 0; }
	.pv-body .pv-xsell-card-price{ grid-column: 2; margin-top: 0; }
	.pv-body .pv-xsell-card .pv-add{ grid-column: 3; grid-row: 1 / span 2; width: auto; padding: 10px 12px; }
	.pv-body .pv-xsell-card .pv-add span{ position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.pv-body .pv-xsell-actions .pv-btn{ flex: 1 1 auto; }
	.pv-body .pv-xsell-actions .pv-btn-linea:first-child{ display: none; }
}

/* Popup compacto: entra entero sin scroll en una notebook (~650px de alto).
   Fotos a 110px, sin la línea de precio sin impuestos (sigue en ficha y
   carrito) y espaciados más cortos. */
.pv-body .pv-xsell .pv-xsell-box{ padding: var(--pv-space-6); }
.pv-body .pv-xsell .pv-close{ width: 36px; height: 36px; min-width: 0; padding: 0; margin: 0; border: 0; border-radius: 50%; background: transparent; box-shadow: none; display: grid; place-items: center; font-size: 26px; line-height: 1; color: var(--pv-secundario); }
.pv-body .pv-xsell .pv-close:hover{ background: var(--pv-fondo); color: var(--pv-secundario); }
.pv-body .pv-xsell .precio-sin-iva, .pv-body .pv-xsell .pv-cuotas{ display: none !important; }
.pv-body .pv-xsell-head{ align-items: center; gap: var(--pv-space-3); padding-bottom: var(--pv-space-4); }
.pv-body .pv-xsell-ok{ width: 30px; height: 30px; }
.pv-body .pv-xsell-ok .pv-ico{ width: 17px; height: 17px; }
.pv-body .pv-xsell-kicker{ margin: 0 0 6px; font-size: var(--pv-fs-sm); }
.pv-body .pv-xsell-item img.pv-xsell-thumb{ width: 44px; height: 44px; }
.pv-body .pv-xsell-name{ font-size: var(--pv-fs-xs); }
.pv-body .pv-xsell-sug{ padding: var(--pv-space-4) 0; }
.pv-body .pv-xsell-title{ font-size: var(--pv-fs-lg); }
.pv-body .pv-xsell-sub{ margin: 2px 0 var(--pv-space-3); font-size: var(--pv-fs-xs); }
.pv-body .pv-xsell-list{ gap: var(--pv-space-3); }
.pv-body .pv-xsell-card{ gap: 4px; padding: var(--pv-space-3); }
.pv-body .pv-xsell-media{ aspect-ratio: auto; height: 110px; }
.pv-body .pv-xsell-card-name{ font-size: var(--pv-fs-xs); }
.pv-body .pv-xsell-card-price{ font-size: var(--pv-fs-sm); }
.pv-body .pv-xsell-card .pv-add{ padding: 9px 14px; font-size: var(--pv-fs-xs); margin-top: 4px; }
.pv-body .pv-xsell-card .pv-add .pv-ico{ width: 16px; height: 16px; }
.pv-body .pv-xsell-actions{ padding-top: var(--pv-space-4); }
.pv-body .pv-xsell-actions .pv-btn{ padding: 10px 20px; }
@media (max-width: 560px){
	.pv-body .pv-xsell-media{ height: 72px; }
}

/* =========================================================================
 * Página de Hot Sale (template-hotsale-sv.php)
 * Usa la base de la página de evento (.pv-ev) y suma: banner de diseño a
 * ancho completo, sello Hot Sale en las tarjetas, ofertas flash, banners
 * promocionales y ofertas nocturnas. Sólo colores y tipografía de la marca.
 * ====================================================================== */
.pv-body .pv-card-sello{ position: absolute; top: 8px; right: 8px; z-index: 2; width: 56px; height: auto; pointer-events: none; }
.pv-body .pv-hs .pv-off{ top: 0; left: 0; padding: 8px 14px; border-radius: var(--pv-radius-md) 0 var(--pv-radius-md) 0; font-size: 15px; font-weight: var(--pv-fw-bold); letter-spacing: .01em; }
.pv-body .pv-hs .pv-card-sello{ top: 6px; }

/* Banner: la pieza de diseño va tal cual, en el mismo formato que la referencia (1920×400). */
.pv-body .pv-hs-hero{ max-width: var(--pv-container); margin: var(--pv-space-8) auto 0; padding: 0 var(--pv-gutter); box-sizing: border-box; }
.pv-body .pv-hs-banner{ position: relative; display: block; border-radius: var(--pv-radius-lg); overflow: hidden; background: var(--pv-secundario); text-decoration: none; }
.pv-body .pv-hs-banner picture, .pv-body .pv-hs-banner img{ display: block; width: 100%; height: auto; }
/* Sin banner cargado: composición de marca con la misma proporción. */
.pv-body .pv-hs-banner-vacio{ aspect-ratio: 1920 / 400; min-height: 240px; display: flex; align-items: center; justify-content: center; gap: clamp(20px, 4vw, 64px); padding: var(--pv-space-8); box-sizing: border-box; background: radial-gradient(circle at 82% 40%, rgba(221,0,49,.55) 0%, rgba(221,0,49,0) 42%), radial-gradient(circle at 10% 110%, rgba(10,31,143,.9) 0%, rgba(10,31,143,0) 50%), linear-gradient(110deg, var(--pv-secundario) 0%, var(--pv-acento) 100%); color: #fff; }
.pv-body .pv-hs-banner-vacio img.pv-hs-banner-sello{ width: clamp(110px, 12vw, 190px); height: auto; transform: rotate(-6deg); filter: drop-shadow(0 10px 24px rgba(0,0,0,.25)); }
.pv-body .pv-hs-banner-txt{ display: flex; flex-direction: column; gap: 6px; }
.pv-body .pv-hs-banner-kicker{ font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); letter-spacing: .14em; text-transform: uppercase; opacity: .85; }
.pv-body .pv-hs-banner-off{ font-family: var(--pv-display); font-size: clamp(36px, 5vw, 72px); font-weight: 900; line-height: 1; letter-spacing: -.01em; }
.pv-body .pv-hs-banner-sub{ font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-medium); opacity: .92; }
.pv-body .pv-hs-banner-aviso{ position: absolute; left: 16px; bottom: 14px; right: 16px; width: fit-content; padding: 6px 12px; border: 1px dashed rgba(255,255,255,.6); border-radius: var(--pv-radius-sm); background: rgba(0,31,95,.55); font-size: 12px; line-height: 1.4; color: #fff; }
.pv-body .pv-hs-banner-aviso code{ background: rgba(255,255,255,.15); color: #fff; padding: 0 4px; border-radius: 3px; font-size: 11px; }

/* h1 de la página: lo dice el banner, queda para lectores de pantalla. */
.pv-body .pv-hs-sr{ position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Barra fija "Hot Sale termina en" (dentro de .pv-chrome, arriba de todo). */
.pv-body .pv-hs-bar{ background: linear-gradient(90deg, var(--pv-primario-hover) 0%, var(--pv-primario) 50%, var(--pv-primario-hover) 100%); color: #fff; }
.pv-body .pv-hs-bar-inner{ max-width: var(--pv-container); margin: 0 auto; padding: 8px var(--pv-gutter); box-sizing: border-box; display: flex; align-items: center; justify-content: center; gap: var(--pv-space-5); }
.pv-body .pv-hs-bar-txt{ margin: 0; font-size: var(--pv-fs-md); font-weight: var(--pv-fw-medium); white-space: nowrap; }
.pv-body .pv-hs-bar-txt b{ font-weight: var(--pv-fw-bold); }
.pv-body .pv-hs-bar-cd{ display: flex; align-items: center; gap: 6px; }
.pv-body .pv-hs-bar-box{ display: inline-flex; align-items: baseline; gap: 3px; padding: 4px 8px; border-radius: var(--pv-radius-sm); background: #fff; color: var(--pv-primario); line-height: 1; }
.pv-body .pv-hs-bar-box b{ font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-bold); font-variant-numeric: tabular-nums; }
.pv-body .pv-hs-bar-box i{ font-style: normal; font-size: 11px; font-weight: var(--pv-fw-medium); color: var(--pv-texto); }
.pv-body .pv-hs-bar-link{ color: #fff; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.pv-body .pv-hs-bar-link:hover{ color: #fff; opacity: .85; }

/* Beneficios en marquesina: sólo títulos, en loop continuo. */
.pv-body .pv-hs-marquee{ margin-top: 0; overflow: hidden; background: var(--pv-secundario); color: #fff; }
.pv-body .pv-hs-marquee-track{ display: flex; width: max-content; animation: pv-hs-marquee 38s linear infinite; }
.pv-body .pv-hs-marquee:hover .pv-hs-marquee-track{ animation-play-state: paused; }
.pv-body .pv-hs-marquee-list{ display: flex; align-items: center; margin: 0; padding: 0; list-style: none; }
.pv-body .pv-hs-marquee-list li{ display: inline-flex; align-items: center; gap: 10px; padding: 14px 28px; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); letter-spacing: .02em; white-space: nowrap; }
.pv-body .pv-hs-marquee-list li::after{ content: ""; width: 6px; height: 6px; margin-left: 46px; border-radius: 50%; background: var(--pv-primario); }
.pv-body .pv-hs-marquee-list svg.pv-ico{ width: 20px; height: 20px; }
@keyframes pv-hs-marquee{ to{ transform: translateX(-50%); } }

/* Reloj HH : MM : SS de flash y nocturnas */
.pv-body .pv-hs-clock{ display: flex; align-items: flex-start; justify-content: center; gap: 8px; }
.pv-body .pv-hs-clock-box{ display: inline-flex; flex-direction: column; align-items: center; min-width: 54px; }
.pv-body .pv-hs-clock-box b{ font-family: var(--pv-display); font-size: 40px; font-weight: 800; line-height: 1; color: var(--pv-secundario); font-variant-numeric: tabular-nums; }
.pv-body .pv-hs-clock-box i{ margin-top: 6px; font-style: normal; font-size: 12px; color: var(--pv-gris); }
.pv-body .pv-hs-clock-sep{ font-family: var(--pv-display); font-size: 32px; font-weight: var(--pv-fw-bold); line-height: 1.1; color: var(--pv-secundario); }

/* Ofertas flash: panel con titular, tope de descuento y reloj + carrusel. */
.pv-body .pv-hs-flash-box{ display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: var(--pv-space-8); align-items: center; padding: var(--pv-space-10); border-radius: var(--pv-radius-lg); background: linear-gradient(120deg, #e6edfa 0%, #f3f6fc 55%, #fceef1 100%); }
.pv-body .pv-hs-flash-panel{ display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--pv-space-3); }
.pv-body .pv-hs-flash-kicker{ display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 6px 14px; border-radius: var(--pv-radius-pill); background: var(--pv-primario); color: #fff; font-size: var(--pv-fs-xs); font-weight: var(--pv-fw-bold); letter-spacing: .1em; text-transform: uppercase; }
.pv-body .pv-hs-flash-kicker .pv-ico{ width: 16px; height: 16px; fill: currentColor; }
.pv-body .pv-hs-flash-title{ margin: 0; font-family: var(--pv-display); font-size: var(--pv-fs-2xl); font-weight: 800; line-height: 1.05; color: var(--pv-secundario); }
.pv-body .pv-hs-pill{ display: inline-flex; flex-direction: column; align-items: center; margin: 0; padding: 8px 26px 10px; border-radius: var(--pv-radius-pill); background: #fff; box-shadow: var(--pv-shadow-card); line-height: 1; }
.pv-body .pv-hs-pill small{ font-size: 11px; font-weight: var(--pv-fw-bold); letter-spacing: .12em; text-transform: uppercase; color: var(--pv-gris); }
.pv-body .pv-hs-pill b{ margin-top: 3px; font-family: var(--pv-display); font-size: 30px; font-weight: 900; color: var(--pv-primario); }
.pv-body .pv-hs-flash-hurry{ display: flex; flex-direction: column; gap: 2px; margin: var(--pv-space-3) 0 0; font-size: var(--pv-fs-md); font-weight: var(--pv-fw-bold); text-transform: uppercase; color: var(--pv-secundario); }
.pv-body .pv-hs-flash-hurry span{ font-size: var(--pv-fs-xs); font-weight: var(--pv-fw-medium); letter-spacing: .08em; color: var(--pv-gris); }
.pv-body .pv-hs-flash-rail{ min-width: 0; }

/* Banner destacado de una categoría (estilo vidriera): mosaico de productos
   de fondo, texto a la izquierda y productos rotando a la derecha. */
.pv-body .pv-hs-spot-box{ position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: var(--pv-space-8); align-items: center; min-height: 380px; padding: var(--pv-space-8) var(--pv-space-8) var(--pv-space-8) var(--pv-space-10); border-radius: var(--pv-radius-lg); overflow: hidden; isolation: isolate; background: #000c26; color: #fff; }
.pv-body .pv-hs-spot-mosaic{ position: absolute; inset: -40% -10% -40% -20%; z-index: -2; display: grid; grid-template-columns: repeat(8, 1fr); gap: 14px; transform: rotate(-14deg); opacity: .22; animation: pv-hs-deriva 40s linear infinite alternate; }
.pv-body .pv-hs-spot-mosaic span{ display: block; aspect-ratio: 1 / 1; border-radius: var(--pv-radius-md); background: #fff; overflow: hidden; }
.pv-body .pv-hs-spot-mosaic img{ width: 100%; height: 100%; object-fit: contain; display: block; }
.pv-body .pv-hs-spot-box::before{ content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0,12,38,.96) 0%, rgba(0,31,95,.88) 42%, rgba(0,31,95,.55) 100%); }
@keyframes pv-hs-deriva{ to{ transform: rotate(-14deg) translateY(-12%); } }
.pv-body .pv-hs-spot-copy{ display: flex; flex-direction: column; align-items: flex-start; gap: var(--pv-space-4); }
.pv-body .pv-hs-spot-cat{ display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border-radius: var(--pv-radius-pill); background: #fff; color: var(--pv-secundario); font-size: var(--pv-fs-md); font-weight: var(--pv-fw-bold); }
.pv-body .pv-hs-spot-cat svg.pv-ico{ width: 22px; height: 22px; color: var(--pv-primario); }
.pv-body .pv-hs-spot-title{ margin: var(--pv-space-2) 0 0; font-family: var(--pv-display); font-size: var(--pv-fs-3xl); font-weight: var(--pv-fw-bold); line-height: 1.12; color: #fff; }
.pv-body .pv-hs-spot-title span{ display: block; }
.pv-body .pv-hs-spot-tag{ padding: 5px 12px; border-radius: var(--pv-radius-sm); background: var(--pv-primario); font-size: 13px; font-weight: var(--pv-fw-bold); letter-spacing: .06em; text-transform: uppercase; }
.pv-body .pv-hs-spot-cta{ margin-top: var(--pv-space-4); padding: 12px 22px; border-radius: var(--pv-radius-sm); background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.3); color: #fff; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); text-decoration: none; transition: background .2s ease, color .2s ease; }
.pv-body .pv-hs-spot-cta:hover{ background: #fff; color: var(--pv-secundario); }
.pv-body .pv-hs-spot-media{ position: relative; display: flex; flex-direction: column; gap: var(--pv-space-3); padding: var(--pv-space-4); border-radius: var(--pv-radius-md); background: rgba(0,8,26,.82); box-shadow: 0 18px 40px rgba(0,0,0,.35); }
.pv-body .pv-hs-spot-caption{ margin: 0; padding-left: 10px; border-left: 3px solid var(--pv-primario); font-size: var(--pv-fs-md); font-weight: var(--pv-fw-medium); color: #fff; }
.pv-body .pv-hs-spot-video{ display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--pv-radius-sm); background: #000; }
.pv-body .pv-hs-spot-stage{ position: relative; height: 260px; }
.pv-body .pv-hs-spot-slide{ position: absolute; inset: 0; display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: var(--pv-space-6); align-items: center; opacity: 0; visibility: hidden; transform: translateX(24px); transition: opacity .5s ease, transform .5s ease, visibility 0s linear .5s; }
.pv-body .pv-hs-spot-slide.on{ opacity: 1; visibility: visible; transform: none; transition: opacity .5s ease, transform .5s ease; }
.pv-body .pv-hs-spot-img{ position: relative; display: block; height: 260px; border-radius: var(--pv-radius-md); background: #fff; overflow: hidden; }
.pv-body .pv-hs-spot-img img{ width: 100%; height: 100%; object-fit: contain; padding: var(--pv-space-4); box-sizing: border-box; display: block; }
.pv-body .pv-hs-spot-slide.on .pv-hs-spot-img img{ animation: pv-hs-zoom 4.5s ease-out both; }
@keyframes pv-hs-zoom{ from{ transform: scale(1); } to{ transform: scale(1.08); } }
.pv-body .pv-hs-spot-info{ display: flex; flex-direction: column; align-items: flex-start; gap: var(--pv-space-3); min-width: 0; }
.pv-body .pv-hs-spot-name{ font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-medium); line-height: 1.3; color: #fff; text-decoration: none; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pv-body .pv-hs-spot-name:hover{ color: #fff; text-decoration: underline; }
.pv-body .pv-hs-spot-price{ font-size: var(--pv-fs-2xl); font-weight: var(--pv-fw-bold); color: #fff; line-height: 1.1; }
.pv-body .pv-hs-spot-price .woocommerce-Price-amount{ color: inherit; }
.pv-body .pv-hs-spot-price del{ display: block; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-regular); color: rgba(255,255,255,.6); }
.pv-body .pv-hs-spot-price ins{ text-decoration: none; }
.pv-body .pv-hs-spot-price .precio-sin-iva, .pv-body .pv-hs-spot-price .config-cuotas{ display: none; }
.pv-body .pv-hs-spot-add.pv-btn{ background: var(--pv-primario); border-color: var(--pv-primario); color: #fff; }
.pv-body .pv-hs-spot-add.pv-btn:hover{ background: var(--pv-primario-hover); color: #fff; }
/* Barras de progreso tipo historias: la activa se llena en el tiempo de cada producto. */
.pv-body .pv-hs-spot-bars{ display: flex; gap: 6px; }
.pv-body .pv-hs-spot-bar{ flex: 1 1 0; height: 14px; min-width: 0; margin: 0; padding: 5px 0; border: 0; border-radius: 0; background: none; box-shadow: none; cursor: pointer; }
.pv-body .pv-hs-spot-bar i{ position: relative; display: block; height: 4px; border-radius: 4px; background: rgba(255,255,255,.22); overflow: hidden; }
.pv-body .pv-hs-spot-bar i::after{ content: ""; position: absolute; inset: 0; background: #fff; transform: scaleX(0); transform-origin: left; }
.pv-body .pv-hs-spot-bar.done i::after{ transform: scaleX(1); }
.pv-body .pv-hs-spot-bar.on i::after{ animation: pv-hs-progreso var(--pv-spot-ms, 4500ms) linear forwards; }
.pv-body .pv-hs-spot-box.is-quieto .pv-hs-spot-bar.on i::after{ animation-play-state: paused; }
@keyframes pv-hs-progreso{ to{ transform: scaleX(1); } }

/* Llamadores de atención: el cartel de ofertas flash parpadea como un neón,
   el rayo titila, el tope de descuento late con un brillo que lo cruza, los
   dos puntos del reloj parpadean y las etiquetas de % OFF tienen un destello. */
.pv-body .pv-hs-flash-kicker{ animation: pv-hs-neon 3.2s linear infinite; }
.pv-body .pv-hs-flash-kicker svg.pv-ico{ animation: pv-hs-rayo 1.6s ease-in-out infinite; }
@keyframes pv-hs-neon{
	0%, 18%, 22%, 25%, 53%, 57%, 100%{ opacity: 1; box-shadow: 0 0 0 0 rgba(221,0,49,0), 0 0 18px rgba(221,0,49,.65); }
	20%, 24%, 55%{ opacity: .35; box-shadow: none; }
}
@keyframes pv-hs-rayo{ 0%, 100%{ transform: scale(1); } 50%{ transform: scale(1.25) rotate(-8deg); } }
.pv-body .pv-hs-pill{ position: relative; overflow: hidden; animation: pv-hs-late 1.8s ease-in-out infinite; }
.pv-body .pv-hs-pill::after{ content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.85) 50%, rgba(255,255,255,0) 100%); transform: skewX(-18deg); animation: pv-hs-brillo 2.6s ease-in-out infinite; }
@keyframes pv-hs-late{ 0%, 100%{ transform: scale(1); } 50%{ transform: scale(1.06); } }
@keyframes pv-hs-brillo{ 0%, 55%{ left: -60%; } 100%{ left: 130%; } }
.pv-body .pv-hs-clock-sep{ animation: pv-hs-titila 1s steps(1) infinite; }
@keyframes pv-hs-titila{ 50%{ opacity: .15; } }
.pv-body .pv-hs .pv-off{ overflow: hidden; }
.pv-body .pv-hs .pv-off::after{ content: ""; position: absolute; top: 0; bottom: 0; left: -80%; width: 50%; background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.7) 50%, rgba(255,255,255,0) 100%); transform: skewX(-18deg); animation: pv-hs-brillo 3.4s ease-in-out infinite; }
.pv-body .pv-hs-spot-tag{ animation: pv-hs-late 1.8s ease-in-out infinite; }

/* Ofertas nocturnas: caja oscura (azul de marca hacia el negro) con estrellas. */
.pv-body .pv-hs-noche-box{ display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: var(--pv-space-8); align-items: center; padding: var(--pv-space-6) var(--pv-space-8); border-radius: var(--pv-radius-lg); color: #fff;
	background:
		radial-gradient(1.5px 1.5px at 8% 18%, rgba(255,255,255,.8) 50%, transparent 51%),
		radial-gradient(1px 1px at 22% 72%, rgba(255,255,255,.6) 50%, transparent 51%),
		radial-gradient(1.5px 1.5px at 31% 34%, rgba(255,255,255,.7) 50%, transparent 51%),
		radial-gradient(1px 1px at 14% 88%, rgba(255,255,255,.5) 50%, transparent 51%),
		radial-gradient(1px 1px at 4% 52%, rgba(255,255,255,.6) 50%, transparent 51%),
		radial-gradient(circle at 18% 0%, rgba(10,31,143,.7) 0%, rgba(10,31,143,0) 55%),
		linear-gradient(120deg, #000c26 0%, var(--pv-secundario) 60%, #00184a 100%); }
.pv-body .pv-hs-noche-panel{ display: flex; flex-direction: column; align-items: flex-start; gap: var(--pv-space-2); }
.pv-body .pv-hs-noche-horario{ display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: var(--pv-fs-xs); font-weight: var(--pv-fw-medium); letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.8); }
.pv-body .pv-hs-noche-horario svg.pv-ico{ width: 22px; height: 22px; color: #fff; stroke-width: 1.5; }
.pv-body .pv-hs-noche-title{ margin: 0; font-family: var(--pv-display); font-size: var(--pv-fs-2xl); font-weight: var(--pv-fw-semibold); line-height: 1.1; color: #fff; }
.pv-body .pv-hs-noche-sub{ margin: 0; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-regular); line-height: 1.5; color: rgba(255,255,255,.75); }
.pv-body .pv-hs-noche-estado{ display: flex; flex-direction: column; gap: 6px; margin-top: var(--pv-space-2); padding-top: var(--pv-space-3); border-top: 1px solid rgba(255,255,255,.15); width: 100%; }
.pv-body .pv-hs-noche-chip{ display: inline-flex; align-items: center; gap: 8px; font-size: var(--pv-fs-xs); font-weight: var(--pv-fw-medium); color: rgba(255,255,255,.85); }
.pv-body .pv-hs-noche-chip::before{ content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--pv-gris-claro); }
.pv-body .pv-hs-noche-box.is-activa .pv-hs-noche-chip::before{ background: var(--pv-exito); box-shadow: 0 0 0 0 rgba(49,188,82,.6); animation: pv-hs-pulso 1.8s ease-out infinite; }
@keyframes pv-hs-pulso{ to{ box-shadow: 0 0 0 10px rgba(49,188,82,0); } }
.pv-body .pv-hs-clock-sm{ justify-content: flex-start; }
.pv-body .pv-hs-clock-sm .pv-hs-clock-box{ min-width: 44px; align-items: flex-start; }
.pv-body .pv-hs-clock-sm .pv-hs-clock-box b{ font-size: 26px; font-weight: var(--pv-fw-medium); color: #fff; }
.pv-body .pv-hs-clock-sm .pv-hs-clock-box i{ color: rgba(255,255,255,.6); }
.pv-body .pv-hs-clock-sm .pv-hs-clock-sep{ font-size: 22px; font-weight: var(--pv-fw-regular); color: rgba(255,255,255,.5); }
.pv-body .pv-hs-noche-rail{ min-width: 0; }
.pv-body .pv-hs-noche .pv-card{ border-color: transparent; }
.pv-body .pv-hs-noche .pv-card-media{ padding: var(--pv-space-3); }

@media (prefers-reduced-motion: reduce){
	.pv-body .pv-hs-noche-box.is-activa .pv-hs-noche-chip::before{ animation: none; }
	.pv-body .pv-hs-marquee{ overflow-x: auto; }
	.pv-body .pv-hs-marquee-track{ animation: none; }
	.pv-body .pv-hs-flash-kicker, .pv-body .pv-hs-flash-kicker svg.pv-ico, .pv-body .pv-hs-pill, .pv-body .pv-hs-pill::after, .pv-body .pv-hs-clock-sep, .pv-body .pv-hs .pv-off::after, .pv-body .pv-hs-spot-tag, .pv-body .pv-hs-spot-mosaic, .pv-body .pv-hs-spot-slide.on .pv-hs-spot-img img{ animation: none; }
	.pv-body .pv-hs-spot-bar.on i::after{ animation: none; transform: scaleX(1); }
}
@media (max-width: 1200px){
	.pv-body .pv-hs-flash-box{ grid-template-columns: 240px minmax(0, 1fr); padding: var(--pv-space-8); }
	.pv-body .pv-hs-noche-box{ grid-template-columns: 240px minmax(0, 1fr); gap: var(--pv-space-6); }
	.pv-body .pv-hs-spot-box{ grid-template-columns: 1fr; padding: var(--pv-space-8); }
}
@media (max-width: 860px){
	.pv-body .pv-hs-hero{ padding: 0 var(--pv-space-4); margin-top: var(--pv-space-4); }
	.pv-body .pv-hs-banner-vacio{ aspect-ratio: auto; min-height: 200px; flex-direction: column; gap: var(--pv-space-3); padding: var(--pv-space-6) var(--pv-space-4); text-align: center; }
	.pv-body .pv-hs-banner-vacio img.pv-hs-banner-sello{ width: 84px; }
	.pv-body .pv-hs-banner-txt{ align-items: center; }
	.pv-body .pv-hs-banner-sub{ font-size: var(--pv-fs-sm); }
	.pv-body .pv-hs-bar-inner{ gap: var(--pv-space-3); padding: 7px var(--pv-space-4); }
	.pv-body .pv-hs-bar-link{ display: none; }
	.pv-body .pv-hs-bar-txt{ font-size: var(--pv-fs-sm); }
	.pv-body .pv-hs-marquee-list li{ padding: 12px 20px; font-size: var(--pv-fs-xs); }
	.pv-body .pv-hs-marquee-list li::after{ margin-left: 30px; }
	.pv-body .pv-hs-flash, .pv-body .pv-hs-noche, .pv-body .pv-hs-spot{ padding-left: var(--pv-space-4); padding-right: var(--pv-space-4); }
	.pv-body .pv-hs-flash-box, .pv-body .pv-hs-noche-box{ grid-template-columns: 1fr; gap: var(--pv-space-6); padding: var(--pv-space-6) var(--pv-space-4); }
	.pv-body .pv-hs-clock-box b{ font-size: 32px; }
	.pv-body .pv-hs-noche-title{ font-size: var(--pv-fs-xl); }
	.pv-body .pv-hs-spot-box{ padding: var(--pv-space-6) var(--pv-space-4); gap: var(--pv-space-6); }
	.pv-body .pv-hs-spot-title{ font-size: var(--pv-fs-2xl); }
	.pv-body .pv-hs-spot-media{ padding: var(--pv-space-3); }
}
@media (max-width: 560px){
	.pv-body .pv-hs-spot-stage{ height: 340px; }
	.pv-body .pv-hs-spot-slide{ grid-template-columns: 1fr; grid-template-rows: 170px auto; gap: var(--pv-space-3); align-items: start; }
	.pv-body .pv-hs-spot-img{ height: 170px; }
	.pv-body .pv-hs-spot-name{ font-size: var(--pv-fs-md); -webkit-line-clamp: 2; }
	.pv-body .pv-hs-spot-price{ font-size: var(--pv-fs-xl); }
	.pv-body .pv-card-sello{ width: 42px; top: 6px; right: 6px; }
	.pv-body .pv-hs .pv-off{ padding: 6px 10px; font-size: 12px; }
	.pv-body .pv-hs-bar-txt{ font-size: var(--pv-fs-xs); }
	.pv-body .pv-hs-bar-box{ padding: 3px 6px; }
	.pv-body .pv-hs-bar-box b{ font-size: var(--pv-fs-sm); }
	.pv-body .pv-hs-bar-box i{ font-size: 10px; }
	.pv-body .pv-hs-banner-aviso{ display: none; }
}
/* Con la barra de Hot Sale el bloque fijo es más alto: las anclas bajan un poco más. */
html:has(.pv-hs-bar){ scroll-padding-top: 170px; }

/* Hot Sale · ancho completo: hero, banner destacado y kit van de borde a
   borde; el contenido interno queda alineado con el contenedor del sitio. */
.pv-body .pv-hs{ --pv-hs-lado: max(var(--pv-gutter), calc((100% - var(--pv-container)) / 2 + var(--pv-gutter))); }
.pv-body .pv-hs-hero{ max-width: none; margin: 0; padding: 0; }
.pv-body .pv-hs-banner{ border-radius: 0; }
.pv-body .pv-hs-spot{ max-width: none; padding-left: 0; padding-right: 0; }
.pv-body .pv-hs-spot-box{ border-radius: 0; min-height: 440px; padding: var(--pv-space-12) var(--pv-hs-lado); }

/* Ofertas nocturnas: más color en los textos (antes todo blanco). */
.pv-body .pv-hs-noche-horario{ padding: 5px 12px 5px 8px; border-radius: var(--pv-radius-pill); background: rgba(221,0,49,.18); border: 1px solid rgba(221,0,49,.55); color: #ff8fa6; font-weight: var(--pv-fw-semibold); }
.pv-body .pv-hs-noche-horario svg.pv-ico{ color: #b9c8ff; }
.pv-body .pv-hs-noche-title{ font-weight: var(--pv-fw-bold); background: linear-gradient(90deg, #fff 0%, #b9c8ff 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pv-body .pv-hs-noche-sub{ color: #b9c8ff; }
.pv-body .pv-hs-noche-chip{ color: #ff8fa6; font-weight: var(--pv-fw-semibold); }
.pv-body .pv-hs-clock-sm{ gap: 6px; }
.pv-body .pv-hs-clock-sm .pv-hs-clock-box{ min-width: 52px; align-items: center; padding: 8px 6px 6px; border-radius: var(--pv-radius-sm); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); }
.pv-body .pv-hs-clock-sm .pv-hs-clock-box b{ font-weight: var(--pv-fw-semibold); }
.pv-body .pv-hs-clock-sm .pv-hs-clock-box:last-child b{ color: #ff8fa6; }
.pv-body .pv-hs-clock-sm .pv-hs-clock-box i{ color: #b9c8ff; }
.pv-body .pv-hs-clock-sm .pv-hs-clock-sep{ align-self: center; color: #ff8fa6; }

@media (max-width: 860px){
	.pv-body .pv-hs-hero{ padding: 0; margin-top: 0; }
	.pv-body .pv-hs-spot{ padding-left: 0; padding-right: 0; }
	.pv-body .pv-hs-spot-box{ min-height: 0; padding: var(--pv-space-8) var(--pv-space-4); }
}

/* Hot Sale en mobile: carruseles de a una tarjeta, con puntos y deslizamiento
   (data-pv-uno), y tarjetas con textos más chicos para que no se corten. */
.pv-body .pv-car-dots{ display: none; }
@media (max-width: 560px){
	.pv-body [data-pv-uno] .pv-car-btn{ display: none; }
	.pv-body [data-pv-uno] .pv-car-view{ touch-action: pan-y; }
	/* Una sola línea aunque haya muchos productos: los puntos se achican. */
	.pv-body .pv-car-dots{ display: flex; justify-content: center; flex-wrap: nowrap; gap: 6px; margin-top: var(--pv-space-3); padding: 0 var(--pv-space-2); }
	.pv-body .pv-car-dots button{ flex: 0 1 8px; }
	.pv-body .pv-car-dots button.on{ flex-basis: 24px; flex-shrink: 0; }
	.pv-body .pv-car-dots button{ width: 8px; height: 8px; min-width: 0; padding: 0; margin: 0; border: 0; border-radius: 99px; background: rgba(0,31,95,.25); box-shadow: none; cursor: pointer; transition: width .25s ease, background .25s ease; }
	.pv-body .pv-car-dots button.on{ width: 24px; background: var(--pv-primario); }
	.pv-body .pv-hs-noche .pv-car-dots button{ background: rgba(255,255,255,.35); }
	.pv-body .pv-hs-noche .pv-car-dots button.on{ background: #fff; }

	.pv-body .pv-hs [data-pv-uno] .pv-card-media{ aspect-ratio: 4 / 3; }
	.pv-body .pv-hs .pv-card-body{ padding: var(--pv-space-3); gap: 6px; }
	.pv-body .pv-hs .pv-card-title{ font-size: 14px; line-height: 1.3; min-height: 0; }
	.pv-body .pv-hs .pv-card-price{ font-size: var(--pv-fs-lg); }
	.pv-body .pv-hs .pv-card-price del{ font-size: 12px; }
	.pv-body .pv-hs .pv-card-price .precio-sin-iva{ font-size: 11px; margin-top: 3px; }
	.pv-body .pv-hs .pv-cuotas{ font-size: 11px; padding: 4px 8px; }
	.pv-body .pv-hs .pv-cuotas svg.pv-ico{ width: 14px; height: 14px; }
	.pv-body .pv-hs .pv-card .pv-card-add{ padding-top: 10px; padding-bottom: 10px; font-size: 13px; }
}

/* Banner destacado: flechas para pasar de producto y botón "Ver categoría"
   más bajo y más ancho, con flecha al final. */
.pv-body .pv-hs-spot-head{ display: flex; align-items: center; justify-content: space-between; gap: var(--pv-space-3); }
.pv-body .pv-hs-spot-nav{ display: flex; gap: 8px; }
.pv-body .pv-hs-spot-arrow{ width: 36px; height: 36px; min-width: 0; padding: 0; margin: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.08); color: #fff; box-shadow: none; cursor: pointer; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.pv-body .pv-hs-spot-arrow:hover, .pv-body .pv-hs-spot-arrow:focus-visible{ background: #fff; border-color: #fff; color: var(--pv-secundario); }
.pv-body .pv-hs-spot-arrow svg.pv-ico{ width: 18px; height: 18px; }
.pv-body .pv-hs-spot-cta{ display: inline-flex; align-items: center; justify-content: space-between; gap: var(--pv-space-6); min-width: 240px; box-sizing: border-box; padding: 9px 14px 9px 22px; }
.pv-body .pv-hs-spot-cta svg.pv-ico{ width: 18px; height: 18px; transition: transform .2s ease; }
.pv-body .pv-hs-spot-cta:hover svg.pv-ico{ transform: translateX(4px); }
@media (max-width: 560px){
	.pv-body .pv-hs-spot-cta{ min-width: 0; width: 100%; }
	.pv-body .pv-hs-spot-arrow{ width: 32px; height: 32px; }
}
/* Banner destacado en mobile: el mosaico de fondo con fotos del mismo tamaño
   que en desktop y el velo de arriba hacia abajo, así se ve igual. */
@media (max-width: 860px){
	.pv-body .pv-hs-spot-mosaic{ inset: -12% -45%; grid-template-columns: repeat(3, 1fr); }
	.pv-body .pv-hs-spot-box::before{ background: linear-gradient(180deg, rgba(0,12,38,.9) 0%, rgba(0,31,95,.72) 45%, rgba(0,31,95,.6) 100%); }
}
/* Botón "Ver categoría" del banner destacado: sin caja. Texto con subrayado
   que crece al pasar el mouse y la flecha en un círculo rojo de marca. */
.pv-body .pv-hs-spot-cta{ min-width: 0; width: auto; padding: 0; gap: 12px; justify-content: flex-start; border: 0; border-radius: 0; background: none; font-size: var(--pv-fs-md); font-weight: var(--pv-fw-semibold); color: #fff; }
.pv-body .pv-hs-spot-cta:hover{ background: none; color: #fff; }
.pv-body .pv-hs-spot-cta span{ background: linear-gradient(currentColor, currentColor) left bottom / 0 2px no-repeat; padding-bottom: 3px; transition: background-size .3s ease; }
.pv-body .pv-hs-spot-cta:hover span, .pv-body .pv-hs-spot-cta:focus-visible span{ background-size: 100% 2px; }
.pv-body .pv-hs-spot-cta svg.pv-ico{ width: 38px; height: 38px; padding: 10px; box-sizing: border-box; border-radius: 50%; background: var(--pv-primario); color: #fff; transition: transform .2s ease, background .2s ease; }
.pv-body .pv-hs-spot-cta:hover svg.pv-ico{ transform: translateX(4px); background: var(--pv-primario-hover); }
@media (max-width: 560px){
	.pv-body .pv-hs-spot-cta{ width: auto; }
}

/* Barra de cuenta regresiva en mobile: con nombres largos ("Semana de la
   Iluminación") el texto va arriba y el reloj abajo, en vez de cortarse. */
@media (max-width: 560px){
	.pv-body .pv-hs-bar-inner{ flex-wrap: wrap; row-gap: 4px; padding-top: 6px; padding-bottom: 6px; }
	.pv-body .pv-hs-bar-txt{ flex: 1 0 100%; text-align: center; white-space: normal; }
}

/* Ofertas nocturnas: horario y cuenta regresiva más grandes. */
.pv-body .pv-hs-noche-horario{ padding: 8px 16px 8px 12px; font-size: var(--pv-fs-sm); gap: 10px; }
.pv-body .pv-hs-noche-horario svg.pv-ico{ width: 26px; height: 26px; }
.pv-body .pv-hs-noche-estado{ gap: 10px; }
.pv-body .pv-hs-noche-chip{ font-size: var(--pv-fs-sm); }
.pv-body .pv-hs-noche-chip::before{ width: 10px; height: 10px; }
.pv-body .pv-hs-clock-sm{ gap: 8px; }
.pv-body .pv-hs-clock-sm .pv-hs-clock-box{ min-width: 72px; padding: 12px 8px 10px; }
.pv-body .pv-hs-clock-sm .pv-hs-clock-box b{ font-size: 38px; }
.pv-body .pv-hs-clock-sm .pv-hs-clock-box i{ margin-top: 8px; font-size: 13px; }
.pv-body .pv-hs-clock-sm .pv-hs-clock-sep{ font-size: 30px; }
@media (max-width: 560px){
	.pv-body .pv-hs-clock-sm .pv-hs-clock-box{ min-width: 64px; }
	.pv-body .pv-hs-clock-sm .pv-hs-clock-box b{ font-size: 32px; }
}

/* =========================================================================
 * Kit completo (template-parts/evento-kit.php). Bloque gris claro con
 * círculos rosados de fondo: titular a la izquierda, productos en tarjetas
 * blancas unidas por "+" y panel azul con el total y el botón.
 * ====================================================================== */
.pv-body .pv-kit-box{ position: relative; overflow: hidden; isolation: isolate; display: grid; grid-template-columns: minmax(240px, 1fr) minmax(0, 2.5fr) minmax(280px, 1.15fr); gap: var(--pv-space-6); align-items: center; padding: var(--pv-space-12) var(--pv-space-10); border-radius: 28px; background: #f3f4f7; }
.pv-body .pv-kit-box::before, .pv-body .pv-kit-box::after{ content: ""; position: absolute; z-index: -1; border-radius: 50%; background: rgba(221,0,49,.07); pointer-events: none; }
.pv-body .pv-kit-box::before{ width: 260px; height: 260px; top: -150px; left: -120px; }
.pv-body .pv-kit-box::after{ width: 320px; height: 320px; bottom: -170px; right: -140px; }

.pv-body .pv-kit-copy{ display: flex; flex-direction: column; align-items: flex-start; gap: var(--pv-space-4); }
.pv-body .pv-kit-kicker{ display: inline-flex; align-items: center; gap: 8px; height: 40px; margin: 0; padding: 0 18px; border-radius: var(--pv-radius-pill); background: var(--pv-primario); color: #fff; font-size: var(--pv-fs-xs); font-weight: var(--pv-fw-bold); letter-spacing: .06em; line-height: 1; text-transform: uppercase; box-sizing: border-box; }
.pv-body .pv-kit-kicker svg.pv-ico{ width: 18px; height: 18px; }
.pv-body .pv-kit-title{ margin: 0; font-family: var(--pv-display); font-size: 40px; font-weight: 800; line-height: 1.05; letter-spacing: -.01em; color: var(--pv-secundario); }
.pv-body .pv-kit-title span, .pv-body .pv-kit-title em{ display: block; }
.pv-body .pv-kit-title em{ font-style: normal; color: var(--pv-primario); }
.pv-body .pv-kit-text{ margin: 0; max-width: 30ch; font-size: var(--pv-fs-md); line-height: 1.5; color: var(--pv-gris); }

.pv-body .pv-kit-items{ list-style: none; margin: 0; padding: 0; display: flex; align-items: stretch; }
.pv-body .pv-kit-item{ flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: var(--pv-space-3); padding: var(--pv-space-5); border-radius: 18px; background: #fff; box-shadow: 0 12px 32px rgba(0,31,95,.08); transition: transform .25s ease, box-shadow .25s ease; }
.pv-body .pv-kit-item:hover{ transform: translateY(-4px); box-shadow: 0 18px 40px rgba(0,31,95,.13); }
.pv-body .pv-kit-media{ display: block; aspect-ratio: 1 / 1; }
.pv-body .pv-kit-media img{ width: 100%; height: 100%; object-fit: contain; display: block; }
.pv-body .pv-kit-info{ display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.pv-body .pv-kit-name{ font-size: var(--pv-fs-md); font-weight: var(--pv-fw-bold); line-height: 1.3; color: var(--pv-texto); text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pv-body .pv-kit-name:hover{ color: var(--pv-secundario); }
.pv-body .pv-kit-nota{ align-self: flex-start; padding: 3px 8px; border-radius: var(--pv-radius-sm); background: rgba(221,0,49,.08); font-size: 12px; font-weight: var(--pv-fw-semibold); color: var(--pv-primario); }
.pv-body .pv-kit-price{ font-size: var(--pv-fs-xl); font-weight: 800; line-height: 1.2; color: var(--pv-secundario); }
.pv-body .pv-kit-price .woocommerce-Price-amount{ color: inherit; }
.pv-body .pv-kit-price del{ display: none; }
.pv-body .pv-kit-price ins{ text-decoration: none; }
.pv-body .pv-kit-price .precio-sin-iva{ display: block; margin-top: 6px; font-size: 13px; font-weight: var(--pv-fw-regular); line-height: 1.35; color: var(--pv-gris); }
.pv-body .pv-kit-price .precio-sin-iva .woocommerce-Price-amount{ font-weight: var(--pv-fw-regular); }
.pv-body .pv-kit-mas{ position: relative; z-index: 1; flex: 0 0 auto; align-self: center; display: grid; place-items: center; width: 40px; height: 40px; margin: 0 -10px; border-radius: 50%; background: #fde7ec; box-shadow: 0 0 0 4px #f3f4f7; color: var(--pv-primario); font-size: 24px; font-weight: var(--pv-fw-bold); line-height: 1; }

.pv-body .pv-kit-resumen{ position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; gap: var(--pv-space-4); padding: var(--pv-space-8); border-radius: 22px; color: #fff; background: linear-gradient(160deg, #0b2a72 0%, var(--pv-secundario) 45%, #000c26 100%); box-shadow: 0 22px 44px rgba(0,31,95,.28); }
.pv-body .pv-kit-resumen::after{ content: ""; position: absolute; z-index: -1; width: 240px; height: 240px; right: -90px; bottom: -120px; border-radius: 50%; background: radial-gradient(circle, rgba(221,0,49,.35) 0%, rgba(221,0,49,0) 70%); }
.pv-body .pv-kit-cant{ display: inline-flex; align-items: center; gap: 10px; align-self: flex-start; margin: 0; padding: 8px 16px; border-radius: var(--pv-radius-pill); background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.14); font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-medium); }
.pv-body .pv-kit-cant svg.pv-ico{ width: 20px; height: 20px; }
.pv-body .pv-kit-total, .pv-body .pv-kit-total .woocommerce-Price-amount{ margin: 0; font-family: var(--pv-display); font-size: 48px; font-weight: 800; line-height: 1; letter-spacing: -.01em; color: #fff; }
.pv-body .pv-kit-extra{ display: flex; align-items: center; gap: 12px; margin: 0; padding-top: var(--pv-space-4); border-top: 1px solid rgba(255,255,255,.16); font-size: var(--pv-fs-sm); color: rgba(255,255,255,.9); }
.pv-body .pv-kit-extra .woocommerce-Price-amount{ color: #fff; font-weight: var(--pv-fw-bold); }
.pv-body .pv-kit-extra-ico{ flex: 0 0 auto; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #fff; color: var(--pv-primario); }
.pv-body .pv-kit-extra-ico svg.pv-ico{ width: 18px; height: 18px; }
.pv-body .pv-kit-btn{ width: 100%; height: 58px; padding: 0 24px; gap: 12px; border-radius: var(--pv-radius-pill); font-size: var(--pv-fs-lg); font-weight: var(--pv-fw-bold); box-shadow: 0 12px 26px rgba(221,0,49,.45); }
.pv-body .pv-kit-btn svg.pv-ico{ width: 24px; height: 24px; }
.pv-body .pv-kit-btn svg.pv-ico:last-child{ transition: transform .2s ease; }
.pv-body .pv-kit-btn:hover svg.pv-ico:last-child{ transform: translateX(4px); }
.pv-body .pv-kit-btn.loading{ opacity: .6; pointer-events: none; }

@media (max-width: 1200px){
	.pv-body .pv-kit-box{ grid-template-columns: 1fr; padding: var(--pv-space-10) var(--pv-space-8); }
	.pv-body .pv-kit-text{ max-width: 52ch; }
	.pv-body .pv-kit-resumen{ max-width: 520px; width: 100%; justify-self: end; box-sizing: border-box; }
}
@media (max-width: 860px){
	.pv-body .pv-kit{ padding-left: var(--pv-space-4); padding-right: var(--pv-space-4); }
	.pv-body .pv-kit-box{ padding: var(--pv-space-8) var(--pv-space-4); border-radius: 22px; gap: var(--pv-space-5); }
	.pv-body .pv-kit-title{ font-size: 32px; }
	.pv-body .pv-kit-text{ font-size: var(--pv-fs-sm); }
	/* Productos en filas: foto a la izquierda, datos a la derecha. */
	.pv-body .pv-kit-items{ flex-direction: column; }
	.pv-body .pv-kit-item{ flex-direction: row; align-items: center; gap: var(--pv-space-4); padding: var(--pv-space-3); }
	.pv-body .pv-kit-item:hover{ transform: none; }
	.pv-body .pv-kit-media{ flex: 0 0 88px; width: 88px; }
	.pv-body .pv-kit-name{ font-size: var(--pv-fs-sm); }
	.pv-body .pv-kit-price{ font-size: var(--pv-fs-lg); }
	.pv-body .pv-kit-price .precio-sin-iva{ font-size: 11px; margin-top: 3px; }
	.pv-body .pv-kit-mas{ width: 34px; height: 34px; margin: -8px 0; font-size: 20px; }
	.pv-body .pv-kit-resumen{ max-width: none; padding: var(--pv-space-6); }
	.pv-body .pv-kit-total, .pv-body .pv-kit-total .woocommerce-Price-amount{ font-size: 38px; }
}

/* Kit: el fondo gris ocupa todo el ancho; el contenido sigue alineado con el
   contenedor del sitio (--pv-hs-lado). */
.pv-body .pv-hs .pv-kit{ max-width: none; padding-left: 0; padding-right: 0; }
.pv-body .pv-hs .pv-kit-box{ border-radius: 0; padding-left: var(--pv-hs-lado); padding-right: var(--pv-hs-lado); }
@media (max-width: 860px){
	.pv-body .pv-hs .pv-kit-box{ padding-left: var(--pv-space-4); padding-right: var(--pv-space-4); }
}

/* Botón del kit con el mismo estilo que "Agregar al carrito" del banner
   destacado: rojo, tamaño chico, sin sombra ni flecha. */
.pv-body .pv-kit-btn{ align-self: flex-start; width: auto; height: auto; padding: 11px 22px; gap: 10px; border-radius: 100px; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); box-shadow: none; white-space: nowrap; }
.pv-body .pv-kit-btn:hover{ background: var(--pv-primario-hover); color: #fff; }
.pv-body .pv-kit-btn svg.pv-ico{ width: 18px; height: 18px; }
.pv-body .pv-kit-btn svg.pv-ico:last-child{ display: none; }

/* Ofertas nocturnas en mobile: píldora del horario más chica. */
@media (max-width: 560px){
	.pv-body .pv-hs-noche-horario{ padding: 5px 12px 5px 9px; gap: 7px; font-size: 12px; letter-spacing: .05em; }
	.pv-body .pv-hs-noche-horario svg.pv-ico{ width: 18px; height: 18px; }
}

/* -------------------------------------------------------------------------
   Banner de evento en código (template-parts/evento-banner.php): foto de
   fondo + textos con la tipografía y los botones de la marca. Variante
   "hero" = primer slide del home (formato del carrusel); "evento" = banner
   apaisado de la landing.
   ------------------------------------------------------------------------- */
.pv-body .pv-promo{ position: relative; display: block; overflow: hidden; color: #fff; text-decoration: none; background: var(--pv-secundario); isolation: isolate; }
.pv-body .pv-promo:hover{ color: #fff; }
.pv-body .pv-promo-bg, .pv-body .pv-promo-bg img{ position: absolute; inset: 0; width: 100%; height: 100%; }
.pv-body .pv-promo-bg img{ object-fit: cover; object-position: 70% center; }
.pv-body .pv-promo::before{ content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(0,31,95,.97) 0%, rgba(0,31,95,.92) 30%, rgba(0,31,95,.55) 48%, rgba(0,31,95,.08) 66%, rgba(0,31,95,0) 76%); }
.pv-body .pv-promo-copy{ position: relative; z-index: 3; display: flex; flex-direction: column; justify-content: center; gap: clamp(14px, 1.6vw, 22px); height: 100%; box-sizing: border-box; padding: clamp(24px, 3vw, 44px) clamp(24px, 5vw, 72px); }
.pv-body .pv-promo-head, .pv-body .pv-promo-body{ display: flex; flex-direction: column; align-items: flex-start; }
.pv-body .pv-promo-kicker{ display: inline-flex; align-items: center; gap: 14px; margin-bottom: 10px; font-family: var(--pv-font); font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-medium); letter-spacing: .3em; text-transform: uppercase; opacity: .9; }
.pv-body .pv-promo-kicker::before{ content: ""; width: 44px; height: 3px; border-radius: 2px; background: var(--pv-primario); }
.pv-body .pv-promo-title{ display: flex; flex-direction: column; font-family: var(--pv-display); text-transform: uppercase; line-height: .9; letter-spacing: .01em; }
.pv-body .pv-promo-l1{ font-weight: var(--pv-fw-regular); font-size: clamp(40px, 5.4vw, 84px); letter-spacing: .04em; }
.pv-body .pv-promo-l2{ font-weight: 800; font-size: clamp(44px, 6vw, 94px); }
.pv-body .pv-promo-offs{ display: flex; align-items: center; gap: clamp(12px, 1.6vw, 24px); }
.pv-body .pv-promo-off{ display: inline-flex; align-items: flex-end; gap: 3px; font-family: var(--pv-display); line-height: .85; }
.pv-body .pv-promo-off + .pv-promo-off{ padding-left: clamp(12px, 1.6vw, 24px); border-left: 1px solid rgba(255,255,255,.4); }
.pv-body .pv-promo-off b{ font-weight: 800; font-size: clamp(36px, 4vw, 62px); color: var(--pv-primario); letter-spacing: -.02em; }
.pv-body .pv-promo-off > span{ display: flex; flex-direction: column; font-style: normal; }
.pv-body .pv-promo-off i{ font-style: normal; font-weight: 800; }
.pv-body .pv-promo-off i:first-child{ font-size: clamp(20px, 2.1vw, 32px); color: var(--pv-primario); line-height: .9; }
.pv-body .pv-promo-off i:last-child{ font-size: clamp(13px, 1.25vw, 19px); color: #fff; letter-spacing: .02em; }
.pv-body .pv-promo-sub{ margin-top: 10px; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-medium); letter-spacing: .28em; text-transform: uppercase; color: rgba(255,255,255,.92); }
.pv-body .pv-promo-cta{ margin-top: clamp(14px, 1.6vw, 22px); pointer-events: none; }
.pv-body .pv-promo:hover .pv-promo-cta{ background: #c4002b; }
.pv-body .pv-promo:hover .pv-promo-cta .pv-ico{ transform: translateX(3px); }

/* Home: ocupa el slide entero del carrusel (mismo formato que los demás). */
.pv-body .pv-hero-slide.is-pieza .pv-promo--hero{ position: absolute; inset: 0; }

/* Landing: apaisado y más bajo, título a la izquierda y descuentos + botón al lado. */
.pv-body .pv-promo--evento{ border-radius: 0; aspect-ratio: 1920 / 420; min-height: 280px; }
.pv-body .pv-hs .pv-promo--evento .pv-promo-copy{ padding-left: var(--pv-hs-lado); padding-right: var(--pv-hs-lado); }
.pv-body .pv-promo--evento::before{ background: linear-gradient(90deg, rgba(0,31,95,.97) 0%, rgba(0,31,95,.9) 38%, rgba(0,31,95,.5) 58%, rgba(0,31,95,.06) 72%, rgba(0,31,95,0) 80%); }
.pv-body .pv-promo--evento .pv-promo-copy{ flex-direction: row; align-items: center; justify-content: flex-start; gap: clamp(28px, 4vw, 64px); }
.pv-body .pv-promo--evento .pv-promo-l1{ font-size: clamp(34px, 4vw, 66px); }
.pv-body .pv-promo--evento .pv-promo-l2{ font-size: clamp(38px, 4.5vw, 74px); }
.pv-body .pv-promo--evento .pv-promo-off b{ font-size: clamp(52px, 5.8vw, 92px); }
.pv-body .pv-promo--evento .pv-promo-off i:first-child{ font-size: clamp(28px, 3vw, 46px); }
.pv-body .pv-promo--evento .pv-promo-off i:last-child{ font-size: clamp(17px, 1.7vw, 26px); }

.pv-body .pv-promo--evento .pv-promo-body{ padding-left: clamp(28px, 4vw, 64px); border-left: 1px solid rgba(255,255,255,.25); }

@media (max-width: 1100px){
	.pv-body .pv-promo--evento{ aspect-ratio: auto; }
	.pv-body .pv-promo--evento .pv-promo-copy{ flex-direction: column; align-items: flex-start; }
	.pv-body .pv-promo--evento .pv-promo-body{ padding-left: 0; border-left: 0; }
	.pv-body .pv-promo--evento::before{ background: linear-gradient(90deg, rgba(0,31,95,.96) 0%, rgba(0,31,95,.85) 50%, rgba(0,31,95,.3) 80%, rgba(0,31,95,.15) 100%); }
}
@media (max-width: 767px){
	.pv-body .pv-promo{ display: flex; flex-direction: column; justify-content: flex-end; }
	.pv-body .pv-promo::before, .pv-body .pv-promo--evento::before{ background: linear-gradient(180deg, rgba(0,31,95,.05) 0%, rgba(0,31,95,.35) 28%, rgba(0,31,95,.9) 55%, rgba(0,31,95,.97) 100%); }
	.pv-body .pv-promo-copy, .pv-body .pv-hs .pv-promo--evento .pv-promo-copy{ height: auto; justify-content: flex-end; gap: 14px; padding: 28px 22px 30px; }
	.pv-body .pv-promo--evento{ min-height: 0; aspect-ratio: auto; }
	.pv-body .pv-hs .pv-promo--evento .pv-promo-copy, .pv-body .pv-promo--evento .pv-promo-copy{ padding-top: 170px; }
	.pv-body .pv-promo-bg img{ object-position: 64% 30%; }
	.pv-body .pv-promo-kicker{ font-size: var(--pv-fs-xs); margin-bottom: 8px; }
	.pv-body .pv-promo-kicker::before{ width: 30px; }
	.pv-body .pv-promo-l1, .pv-body .pv-promo--evento .pv-promo-l1{ font-size: 40px; }
	.pv-body .pv-promo-l2, .pv-body .pv-promo--evento .pv-promo-l2{ font-size: 46px; }
	.pv-body .pv-promo-off b{ font-size: 36px; }
	.pv-body .pv-promo-off i:first-child{ font-size: 19px; }
	.pv-body .pv-promo-off i:last-child{ font-size: 12px; }
	.pv-body .pv-promo-sub{ font-size: 12px; letter-spacing: .2em; margin-top: 8px; }
	.pv-body .pv-promo-cta{ margin-top: 16px; }
	.pv-body .pv-promo--hero .pv-promo-copy{ padding-bottom: 54px; }
	.pv-body .pv-promo--evento .pv-promo-off b{ font-size: 46px; }
	.pv-body .pv-promo--evento .pv-promo-off i:first-child{ font-size: 24px; }
	.pv-body .pv-promo--evento .pv-promo-off i:last-child{ font-size: 15px; }
}
.pv-body .pv-hs-clock [hidden]{ display: none !important; }

/* Landing: filtro de la grilla por categoría (Todos / Iluminación / Electricidad). */
.pv-body .pv-ev-filtros{ display: flex; flex-wrap: wrap; gap: var(--pv-space-2); }
.pv-body .pv-ev-filtro{ padding: 9px 20px; margin: 0; border: 1px solid var(--pv-borde); border-radius: var(--pv-radius-pill); background: #fff; box-shadow: none; font-family: inherit; font-size: var(--pv-fs-sm); font-weight: var(--pv-fw-semibold); color: var(--pv-secundario); cursor: pointer; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.pv-body .pv-ev-filtro:hover{ border-color: var(--pv-secundario); }
.pv-body .pv-ev-filtro.on{ background: var(--pv-secundario); border-color: var(--pv-secundario); color: #fff; }
.pv-body .pv-ev-filtro span{ opacity: .65; font-weight: var(--pv-fw-medium); margin-left: 6px; }
.pv-body .pv-ev-item{ display: flex; min-width: 0; }
.pv-body .pv-ev-item > .pv-card{ flex: 1; min-width: 0; }
.pv-body .pv-ev-item[hidden]{ display: none; }

/* Banner de evento: Ken Burns en la foto + entrada escalonada de los textos.
   En el home corre cada vez que el slide se activa (.on); en la landing, al
   cargar la página. */
@keyframes pv-promo-in{ from{ opacity: 0; transform: translateY(18px); } to{ opacity: 1; transform: none; } }
@keyframes pv-promo-pop{ from{ opacity: 0; transform: translateY(10px) scale(.86); } to{ opacity: 1; transform: none; } }
@keyframes pv-promo-linea{ from{ transform: scaleX(0); } to{ transform: scaleX(1); } }
.pv-body .pv-promo-bg img{ transform-origin: 70% 50%; will-change: transform; }
.pv-body .pv-hero-slide.on .pv-promo-bg img{ animation: pv-kenburns 7s ease-out forwards; }
.pv-body .pv-promo--evento .pv-promo-bg img{ animation: pv-kenburns 12s ease-out forwards; }
.pv-body .pv-hero-slide.on .pv-promo-kicker, .pv-body .pv-promo--evento .pv-promo-kicker{ animation: pv-promo-in .6s cubic-bezier(.2,.7,.2,1) .15s both; }
.pv-body .pv-hero-slide.on .pv-promo-kicker::before, .pv-body .pv-promo--evento .pv-promo-kicker::before{ transform-origin: left center; animation: pv-promo-linea .6s cubic-bezier(.2,.7,.2,1) .35s both; }
.pv-body .pv-hero-slide.on .pv-promo-l1, .pv-body .pv-promo--evento .pv-promo-l1{ animation: pv-promo-in .7s cubic-bezier(.2,.7,.2,1) .3s both; }
.pv-body .pv-hero-slide.on .pv-promo-l2, .pv-body .pv-promo--evento .pv-promo-l2{ animation: pv-promo-in .7s cubic-bezier(.2,.7,.2,1) .45s both; }
.pv-body .pv-hero-slide.on .pv-promo-off, .pv-body .pv-promo--evento .pv-promo-off{ animation: pv-promo-pop .55s cubic-bezier(.2,.9,.3,1.25) .65s both; }
.pv-body .pv-hero-slide.on .pv-promo-off:nth-child(2), .pv-body .pv-promo--evento .pv-promo-off:nth-child(2){ animation-delay: .78s; }
.pv-body .pv-hero-slide.on .pv-promo-off:nth-child(3), .pv-body .pv-promo--evento .pv-promo-off:nth-child(3){ animation-delay: .91s; }
.pv-body .pv-hero-slide.on .pv-promo-sub, .pv-body .pv-promo--evento .pv-promo-sub{ animation: pv-promo-in .6s cubic-bezier(.2,.7,.2,1) 1.05s both; }
.pv-body .pv-hero-slide.on .pv-promo-cta, .pv-body .pv-promo--evento .pv-promo-cta{ animation: pv-promo-in .6s cubic-bezier(.2,.7,.2,1) 1.2s both; }
@media (prefers-reduced-motion: reduce){
	.pv-body .pv-promo-bg img, .pv-body .pv-promo-kicker, .pv-body .pv-promo-kicker::before, .pv-body .pv-promo-l1, .pv-body .pv-promo-l2, .pv-body .pv-promo-off, .pv-body .pv-promo-sub, .pv-body .pv-promo-cta{ animation: none !important; }
}
