/*
 * Atelier PorLaNovia — la única hoja de estilos del tema.
 * Diseño 2026: blanco, aire, frambuesa viva, esquinas redondas.
 */

/* ============ FUENTES (variables, alojadas en el servidor) ============ */
@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url('/wp-content/fonts/manrope/xn7gYHE41ni1AdIRggexSg.woff2') format('woff2');
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('/wp-content/fonts/inter/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2') format('woff2');
}
/* Serif elegante para los titulares (aire de invitación de boda) */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 500 700;
	font-display: swap;
	src: url('/wp-content/fonts/playfair/playfair-latin-var.woff2') format('woff2');
}

/* ============ VARIABLES ============ */
:root {
	--ink: #23263B;
	--ink-soft: #5C607A;
	--berry: #D6336C;
	--berry-dark: #B02458;
	--berry-soft: #FCE7EF;
	--gold: #F0A93B;
	--bg: #FFFFFF;
	--tint: #FAF5F7;
	--line: #ECEBF0;
	--r-sm: 10px;
	--r: 16px;
	--r-lg: 24px;
	--shadow: 0 10px 30px rgba(35, 38, 59, 0.10);
	--shadow-soft: 0 4px 14px rgba(35, 38, 59, 0.06);
	--ui: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--display: 'Playfair Display', Georgia, 'Times New Roman', serif;
}

/* ============ BASE ============ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--body);
	font-size: 15.5px;
	line-height: 1.65;
}
img { max-width: 100%; height: auto; }
a { color: var(--berry); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--berry-dark); }
::selection { background: var(--berry); color: #fff; }
h1, h2, h3, h4, h5 { font-family: var(--ui); color: var(--ink); line-height: 1.3; margin: 0 0 .5em; }
/* Titulares grandes en serif elegante; el resto de la interfaz sigue en Manrope */
.pnv-h1, h1 { font-family: var(--display); font-size: clamp(27px, 3.8vw, 40px); font-weight: 600; letter-spacing: 0; line-height: 1.24; }
.pnv-h2, h2 { font-family: var(--display); font-size: clamp(22px, 2.8vw, 30px); font-weight: 600; letter-spacing: 0; }
.pnv-container { max-width: 1280px; margin: 0 auto; padding: 0 20px; }
.pnv-main { padding-bottom: 28px; }
.pnv-section { margin-top: 52px; }

button { font-family: var(--ui); cursor: pointer; }

/* ============ BARRA DE ANUNCIO ============ */
.pnv-announce {
	background: linear-gradient(90deg, #A81E52 0%, var(--berry) 55%, #E0487F 100%);
	color: #fff; font-family: var(--ui); font-size: 12.5px; font-weight: 700; letter-spacing: 0.02em;
}
/* La barra usa TODO el ancho: los avisos centrados en pantalla y las
   estrellas + Mi cuenta pegadas al borde derecho real */
.pnv-announce .pnv-announce-in { max-width: none; }
/* Estrellas a la IZQUIERDA, los tres avisos centrados, Mi cuenta a la derecha */
.pnv-announce-in { display: flex; align-items: center; justify-content: center; gap: 2.6em; padding: 9px 20px; position: relative; }
.pnv-announce-in > span { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.pnv-announce-in > span svg { opacity: .9; flex-shrink: 0; }
.pnv-announce-left { position: absolute; left: 20px; top: 50%; transform: translateY(-50%); }
.pnv-announce-stars { color: #F5C34B; letter-spacing: 0.12em; font-size: 12px; }
.pnv-announce-account { position: absolute; right: 20px; top: 50%; transform: translateY(-50%); color: #fff; font-weight: 700; opacity: .92; }
.pnv-announce-account:hover { opacity: 1; color: #fff; text-decoration: underline; }
@media (max-width: 900px) {
	.pnv-announce-in > span:nth-child(3), .pnv-announce-in > span:nth-child(4), .pnv-announce-account { display: none; }
	.pnv-announce-in { padding: 6px 12px; gap: 3px 16px; flex-wrap: wrap; justify-content: center; }
	/* Estrellas + nº de productos también en móvil, en línea centrada */
	.pnv-announce-in > .pnv-announce-left { position: static; transform: none; }
	.pnv-announce { font-size: 12px; }
}

/* ============ CABECERA ============ */
.pnv-header { background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 900; }
.pnv-header.is-stuck { box-shadow: var(--shadow-soft); }
.pnv-header-in { display: flex; align-items: center; gap: 26px; padding-top: 12px; padding-bottom: 12px; }
.pnv-logo { flex-shrink: 0; }
.pnv-logo img { max-height: 62px; width: auto; display: block; }
.pnv-logo-text { font-family: var(--ui); font-weight: 800; font-size: 24px; color: var(--ink); }

/* Navegación central: dos filas centradas junto al logo (estilo Merchant Pro) */
.pnv-nav { flex: 1; min-width: 0; }
.pnv-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 2px 6px; }
.pnv-menu > li { position: static; }
.pnv-menu > li > a {
	display: flex; align-items: center; gap: 5px;
	font-family: var(--ui); font-weight: 700; font-size: 14px; color: var(--ink);
	padding: 8px 11px; border-radius: 999px; transition: background .15s ease, color .15s ease;
}
.pnv-menu > li > a:hover, .pnv-menu > li.current-menu-item > a { background: var(--berry-soft); color: var(--berry-dark); }
.pnv-caret { opacity: .55; margin-top: 2px; transition: transform .18s ease; }
.pnv-menu > li.is-abierto .pnv-caret { transform: rotate(180deg); }
.pnv-menu > li.is-abierto > a { background: var(--berry-soft); color: var(--berry-dark); }

/* Panel desplegable a TODO el ancho de la cabecera, con círculos grandes en fila */
.pnv-menu .sub-menu {
	list-style: none; margin: 0; padding: 24px 30px 28px;
	position: absolute; left: 0; right: 0; top: 100%;
	display: flex; flex-wrap: wrap; justify-content: center; gap: 18px 28px;
	background: #fff; border-top: 1px solid var(--line);
	border-radius: 0 0 22px 22px; box-shadow: var(--shadow);
	opacity: 0; visibility: hidden; transform: translateY(4px);
	transition: opacity .12s ease, transform .12s ease, visibility 0s linear .12s;
	z-index: 950;
}
/* La apertura la gestiona main.js (clase is-abierto) con lógica de intención:
   cruzar la fila 2 camino del panel NO cambia el panel abierto */
.pnv-menu > li.is-abierto > .sub-menu {
	opacity: 1; visibility: visible; transform: translateY(0);
}
.pnv-menu .sub-menu li a {
	display: flex; flex-direction: column; align-items: center; gap: 10px;
	width: 150px; text-align: center;
	font-family: var(--ui); font-weight: 600; font-size: 14px; line-height: 1.3; color: var(--ink-soft);
	padding: 4px; border-radius: 14px; transition: color .14s ease;
}
.pnv-menu .sub-menu li a:hover { color: var(--berry-dark); }
.pnv-menu .sub-menu .pnv-menu-img {
	width: 118px; height: 118px;
	transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.pnv-menu .sub-menu .pnv-menu-icono { width: 118px; height: 118px; }
.pnv-menu .sub-menu .pnv-menu-icono svg { width: 36px; height: 36px; }
.pnv-menu .sub-menu .pnv-ver-todo a { color: var(--berry-dark); font-weight: 700; }
.pnv-menu .sub-menu li a:hover .pnv-menu-img { border-color: var(--berry); transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.pnv-menu-img {
	width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex-shrink: 0;
	border: 2px solid var(--berry-soft); background: var(--tint);
}
.pnv-menu-icono {
	display: inline-flex; align-items: center; justify-content: center;
	width: 48px; height: 48px; border-radius: 50%; flex-shrink: 0;
	background: var(--berry-soft); color: var(--berry-dark);
}
.pnv-menu .sub-menu .sub-menu { display: none; }

/* Herramientas: buscador + iconos */
.pnv-header-tools { display: flex; align-items: center; gap: 10px; flex-shrink: 0; margin-left: auto; }
.pnv-search { width: 250px; }
.pnv-tool { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; color: var(--ink); position: relative; transition: background .15s ease, color .15s ease; }
.pnv-tool:hover { background: var(--berry-soft); color: var(--berry-dark); }
.pnv-cart-count {
	position: absolute; top: -2px; right: -2px; min-width: 18px; height: 18px; padding: 0 4px;
	background: var(--berry); color: #fff; border-radius: 999px;
	font-family: var(--ui); font-size: 11px; font-weight: 800; line-height: 18px; text-align: center;
}

/* Buscador (WooCommerce y FiboSearch) en píldora */
.pnv-search form { position: relative; margin: 0; }
.pnv-search input[type="search"], .pnv-search input[type="text"],
.pnv-search .dgwt-wcas-search-input,
.pnv-search-mobile input[type="search"], .pnv-search-mobile .dgwt-wcas-search-input {
	width: 100%; border: 1.5px solid var(--line); border-radius: 999px; background: #F7F7FA;
	padding: 10px 42px 10px 18px; font-family: var(--body); font-size: 14px; color: var(--ink);
	transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.pnv-search input:focus, .pnv-search .dgwt-wcas-search-input:focus,
.pnv-search-mobile input:focus {
	outline: none; background: #fff; border-color: var(--berry);
	box-shadow: 0 0 0 4px rgba(214, 51, 108, 0.12);
}
.pnv-search button[type="submit"], .pnv-search-mobile button[type="submit"] {
	position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
	width: 34px; height: 34px; border: none; border-radius: 50%; background: transparent;
	color: var(--ink-soft); font-size: 0;
}
.pnv-search button[type="submit"]::before, .pnv-search-mobile button[type="submit"]::before {
	content: ""; display: block; width: 16px; height: 16px; margin: 0 auto;
	background: currentColor;
	-webkit-mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.5-4.5"/></svg>') center / contain no-repeat;
	mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.5-4.5"/></svg>') center / contain no-repeat;
}
.pnv-search .dgwt-wcas-search-wrapp { max-width: none; }
.pnv-search-mobile { display: none; padding-bottom: 12px; }

/* Hamburguesa */
.pnv-burger { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 42px; height: 42px; border: none; background: transparent; border-radius: 12px; }
.pnv-burger span { display: block; width: 22px; height: 2.5px; margin: 0 auto; background: var(--ink); border-radius: 2px; }

/* Cajón móvil: navegación por paneles deslizantes (como las referencias del dueño) */
.pnv-drawer {
	position: fixed; top: 0; left: 0; bottom: 0; width: min(88vw, 380px); z-index: 1100;
	background: #fff; overflow: hidden; padding: 18px 20px 16px;
	display: flex; flex-direction: column;
	transform: translateX(-102%); transition: transform .25s ease;
	box-shadow: var(--shadow);
}
.pnv-drawer.is-open { transform: translateX(0); }
.pnv-drawer-head { display: flex; align-items: center; justify-content: space-between; font-family: var(--ui); font-size: 17px; margin-bottom: 10px; flex-shrink: 0; }
.pnv-drawer-close { border: none; background: var(--tint); width: 38px; height: 38px; border-radius: 50%; font-size: 22px; line-height: 1; color: var(--ink); }
.pnv-drawer-menu { list-style: none; margin: 0; padding: 0; flex: 1; overflow-y: auto; }
.pnv-drawer-menu > li { border-bottom: 1px solid var(--line); }
.pnv-drawer-menu > li:last-child { border-bottom: none; }
.pnv-drawer-menu a { display: flex; align-items: center; gap: 12px; padding: 11px 4px; font-family: var(--ui); font-weight: 700; font-size: 15.5px; color: var(--ink); }
.pnv-drawer-menu .pnv-caret { display: none; }
.pnv-drawer-menu .pnv-menu-img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; border: 1.5px solid var(--berry-soft); flex-shrink: 0; }
.pnv-drawer-menu .pnv-menu-icono { width: 52px; height: 52px; }
.pnv-drawer-menu li.menu-item-has-children > a { position: relative; padding-right: 34px; }
.pnv-drawer-menu li.menu-item-has-children > a::after {
	content: ""; position: absolute; right: 12px; top: 50%; width: 9px; height: 9px;
	border-right: 2.2px solid var(--berry); border-bottom: 2.2px solid var(--berry);
	transform: translateY(-50%) rotate(-45deg);
}
/* Panel de subcategorías: entra deslizándose y tapa todo el cajón */
.pnv-drawer-menu .sub-menu {
	list-style: none; margin: 0; padding: 16px 20px 30px;
	position: absolute; inset: 0; z-index: 5; background: #fff; overflow-y: auto;
	transform: translateX(103%); transition: transform .25s ease;
}
.pnv-drawer-menu li.is-open > .sub-menu { transform: translateX(0); }
.pnv-drawer-menu .sub-menu li { border-bottom: 1px solid var(--line); }
.pnv-drawer-menu .sub-menu li:last-child { border-bottom: none; }
.pnv-drawer-menu .sub-menu a { font-weight: 600; font-size: 15px; color: var(--ink); padding: 10px 2px; }
.pnv-drawer-menu .sub-menu a:active { color: var(--berry-dark); }
.pnv-sub-head {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	padding-bottom: 12px; margin-bottom: 4px;
}
.pnv-sub-head strong { flex: 1; text-align: center; font-family: var(--ui); font-size: 17px; color: var(--berry-dark); }
.pnv-sub-back, .pnv-sub-close {
	border: none; background: var(--tint); width: 38px; height: 38px; border-radius: 50%;
	font-size: 20px; line-height: 1; color: var(--ink); flex-shrink: 0;
}
.pnv-drawer-menu .sub-menu .pnv-ver-todo a { color: var(--berry-dark); font-weight: 700; }
.pnv-drawer-foot { margin-top: 14px; display: flex; gap: 14px; flex-shrink: 0; }
.pnv-drawer-foot a { font-family: var(--ui); font-weight: 700; }
.pnv-overlay { position: fixed; inset: 0; background: rgba(35, 38, 59, .45); z-index: 1000; }

/* ============ BOTONES ============ */
/* Los selectores .woocommerce a.button (etc.) igualan la especificidad del CSS
   de WooCommerce, que si no pintaría el fondo gris claro con texto blanco. */
.pnv-btn, .button, button[type="submit"], input[type="submit"],
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce #respond input#submit, .single_add_to_cart_button, .checkout-button,
.wc-block-components-button {
	display: inline-block;
	background: var(--berry); color: #fff !important;
	border: none; border-radius: 999px;
	font-family: var(--ui); font-weight: 800; font-size: 14.5px; letter-spacing: 0.01em;
	padding: 12px 26px; text-align: center;
	box-shadow: 0 6px 16px rgba(214, 51, 108, 0.28);
	transition: background .15s ease, box-shadow .15s ease, transform .12s ease;
	cursor: pointer;
}
.pnv-btn:hover, .button:hover, button[type="submit"]:hover, input[type="submit"]:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.single_add_to_cart_button:hover, .checkout-button:hover {
	background: var(--berry-dark); color: #fff !important;
	box-shadow: 0 8px 20px rgba(176, 36, 88, 0.32); transform: translateY(-1px);
}
.pnv-btn:active { transform: translateY(0); }
.pnv-btn-ghost { background: #fff; color: var(--ink) !important; border: 1.5px solid var(--line); box-shadow: none; }
.pnv-btn-ghost:hover { background: var(--tint); color: var(--berry-dark) !important; border-color: var(--berry); box-shadow: none; }

/* ============ MIGAS DE PAN ============ */
.pnv-breadcrumb { font-size: 12.5px; color: #6E7288; padding: 16px 0 4px; }
.pnv-breadcrumb a { color: var(--ink-soft); }
.pnv-breadcrumb a:hover { color: var(--berry); }

/* ============ PORTADA ============ */
.pnv-hero {
	display: grid; grid-template-columns: 1.05fr 1fr; align-items: center; gap: 30px;
	background: linear-gradient(120deg, var(--berry-soft) 0%, #FDF3F0 55%, #FFF8ED 100%);
	border-radius: var(--r-lg); padding: 46px 50px; margin-top: 24px;
	overflow: hidden;
}
.pnv-chip {
	display: inline-block; background: #fff; color: var(--berry-dark);
	font-family: var(--ui); font-weight: 800; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase;
	border-radius: 999px; padding: 7px 15px; margin-bottom: 16px; box-shadow: var(--shadow-soft);
}
.pnv-hero h1 { margin-bottom: 14px; }
.pnv-hero p { color: var(--ink-soft); font-size: 16.5px; max-width: 48ch; margin: 0 0 24px; }
.pnv-hero-cta { display: flex; gap: 12px; flex-wrap: wrap; }
.pnv-hero-img img { border-radius: var(--r); box-shadow: var(--shadow); display: block; }

.pnv-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 6px; }
.pnv-link-more { font-family: var(--ui); font-weight: 700; font-size: 14px; white-space: nowrap; }

/* Círculos de categorías */
.pnv-cat-circles {
	list-style: none; margin: 18px 0 6px; padding: 0;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 18px 12px;
}
.pnv-cat-circles a { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; }
.pnv-cat-circle-img {
	display: block; width: 116px; height: 116px; border-radius: 50%; overflow: hidden;
	border: 3px solid var(--berry-soft); background: var(--tint);
	transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.pnv-cat-circles a:hover .pnv-cat-circle-img { border-color: var(--berry); transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.pnv-cat-circle-img img { width: 100%; height: 100%; object-fit: cover; }
.pnv-cat-circle-name {
	font-family: var(--ui); font-weight: 700; font-size: 13.5px; color: var(--ink); line-height: 1.3;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.pnv-cat-circles a:hover .pnv-cat-circle-name { color: var(--berry-dark); }

/* Banners de temporada */
.pnv-banners { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.pnv-banner {
	position: relative; display: flex; align-items: flex-end; min-height: 240px;
	border-radius: var(--r-lg); overflow: hidden; background: var(--tint) center / cover no-repeat;
}
.pnv-banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(35,38,59,.72) 0%, rgba(35,38,59,.05) 55%); }
.pnv-banner-body { position: relative; z-index: 1; padding: 24px 26px; display: flex; flex-direction: column; gap: 4px; }
.pnv-banner-title { font-family: var(--ui); font-weight: 800; font-size: 24px; color: #fff; }
.pnv-banner-cta { font-family: var(--ui); font-weight: 700; font-size: 14px; color: #FFD9E6; }
.pnv-banner:hover .pnv-banner-cta { color: #fff; }

/* Barra de confianza */
.pnv-trust { background: var(--tint); margin-top: 52px; padding: 34px 0; }
.pnv-trust-in { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.pnv-trust-item { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; color: var(--berry); }
.pnv-trust-item strong { font-family: var(--ui); font-size: 15px; color: var(--ink); }
.pnv-trust-item span { font-size: 13px; color: var(--ink-soft); }

/* Blog en portada y archivo */
.pnv-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 16px; }
.pnv-blog-card {
	display: block; background: #fff; border: 1px solid var(--line); border-radius: var(--r);
	overflow: hidden; transition: transform .18s ease, box-shadow .18s ease;
}
.pnv-blog-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.pnv-blog-card img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.pnv-blog-card h2, .pnv-blog-card h3 { font-size: 16.5px; font-weight: 800; margin: 14px 16px 6px; color: var(--ink); }
.pnv-blog-card:hover h2, .pnv-blog-card:hover h3 { color: var(--berry-dark); }
.pnv-blog-card p { margin: 0 16px 8px; font-size: 13.5px; color: var(--ink-soft); }
.pnv-blog-date { display: block; margin: 0 16px 16px; font-family: var(--ui); font-size: 12px; font-weight: 600; color: #6E7288; }

/* Texto SEO */
.pnv-seo-text { background: var(--tint); border-radius: var(--r-lg); padding: 30px 34px; }
.pnv-seo-text h2 { font-size: 20px; }
.pnv-seo-text p { color: var(--ink-soft); margin: 0; }
/* Enlaces distinguibles también sin color (accesibilidad) */
.pnv-seo-text a { text-decoration: underline; text-decoration-color: rgba(214, 51, 108, .4); text-underline-offset: 3px; }
.woocommerce-price-suffix { color: #6E7288; }

/* ============ REJILLA DE PRODUCTOS (WooCommerce) ============ */
ul.products {
	list-style: none; margin: 22px 0 0; padding: 0;
	display: grid; gap: 22px 18px;
	grid-template-columns: repeat(3, 1fr);
}
ul.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
ul.products li.product {
	position: relative; display: flex; flex-direction: column; text-align: center;
	background: #fff; border: 1px solid var(--line); border-radius: var(--r);
	padding: 12px 14px 18px; margin: 0; width: auto; float: none;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
/* Anula los anchos/floats de woocommerce-layout y smallscreen: la rejilla manda */
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product, .woocommerce-page ul.products[class*="columns-"] li.product {
	float: none; clear: none; width: auto; margin: 0;
}
/* El clearfix ::before/::after de WooCommerce crea una CELDA VACÍA en la rejilla
   (el «primer hueco» que siempre faltaba). Fuera. */
.woocommerce ul.products::before, .woocommerce ul.products::after,
.woocommerce-page ul.products::before, .woocommerce-page ul.products::after,
ul.products::before, ul.products::after { content: none; }
ul.products li.product:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: #F3D2DE; }
/* Tarjetas iguales: los botones SIEMPRE abajo y alineados entre tarjetas,
   tenga el título 1 o 4 líneas, con o sin reseñas. Especificidad .woocommerce
   necesaria: el CSS de WooCommerce pone margin-top:1em a estos botones. */
ul.products li.product { align-self: stretch; }
ul.products li.product .button,
.woocommerce ul.products li.product .button, .woocommerce-page ul.products li.product .button { margin-top: auto; }
ul.products li.product .button ~ .button,
.woocommerce ul.products li.product .button ~ .button, .woocommerce-page ul.products li.product .button ~ .button { margin-top: 8px; }
/* «Vista rápida» como botón secundario: jerarquía clara, menos pared rosa */
.woocommerce ul.products li.product .yith-wcqv-button, ul.products li.product .yith-wcqv-button {
	background: #fff; color: var(--berry-dark) !important;
	border: 1.5px solid #F3D2DE; box-shadow: none;
}
.woocommerce ul.products li.product .yith-wcqv-button:hover, ul.products li.product .yith-wcqv-button:hover {
	background: var(--tint); color: var(--berry-dark) !important; border-color: var(--berry);
	box-shadow: none; transform: none;
}
ul.products li.product a img { border-radius: var(--r-sm); }
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product .woocommerce-loop-product__title a {
	font-family: var(--ui); font-weight: 700; font-size: 14.5px; line-height: 1.4; color: var(--ink);
	padding: 10px 0 2px;
}
ul.products li.product .woocommerce-loop-product__title a:hover { color: var(--berry-dark); }
ul.products li.product .star-rating { margin: 4px auto; }
ul.products li.product .price {
	display: block; font-family: var(--ui); font-weight: 800; font-size: 17px; color: var(--berry);
	margin: 4px 0 10px;
}
ul.products li.product .price del { color: #8B88A0; font-weight: 500; font-size: 14px; margin-right: 6px; }
ul.products li.product .price ins { text-decoration: none; }
.woocommerce-price-suffix { font-size: 11px; color: #6E7288; font-weight: 500; }
ul.products li.product .button {
	margin-top: auto; width: 100%; padding: 11px 10px; font-size: 13.5px;
}
ul.products li.product .shoptimizer_ratingContainer,
ul.products li.product .shoptimizer_ratingCount { display: inline-block; font-size: 12px; color: #6E7288; }

/* Insignia de oferta */
.onsale {
	position: absolute; top: 18px; left: 18px; z-index: 5;
	background: var(--berry); color: #fff;
	font-family: var(--ui); font-weight: 800; font-size: 12.5px;
	border-radius: 999px; padding: 5px 11px;
	box-shadow: var(--shadow-soft);
}

/* Estrellas: oro oscurecido #8F6300 (contraste 5.3:1 sobre blanco; --gold suspende) */
.star-rating { color: #8F6300; }
.star-rating::before { color: #E7E3DA; }
.star-rating span::before { color: #8F6300; }

/* Cabecera de categoría */
.woocommerce-products-header { padding: 6px 0 2px; }
.woocommerce-products-header__title { margin-bottom: 4px; }
.term-description { color: var(--ink-soft); font-size: 14.5px; max-width: 90ch; }
/* Descripción de categoría: recogida a 4 líneas COMPLETAS con «Leer más»
   (recorte por líneas, no por altura: en móvil no se corta texto a medias) */
.term-description { color: var(--ink-soft); font-size: 14.5px; line-height: 1.65; }
.term-description.is-recogida {
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden;
}
.pnv-leer-mas {
	display: inline-flex; align-items: center; justify-content: center;
	width: 34px; height: 34px; padding: 0; margin: 8px 0 4px;
	border: 1.5px solid var(--line); border-radius: 50%; background: #fff;
	color: var(--berry-dark); cursor: pointer;
	transition: border-color .15s ease, background .15s ease;
}
.pnv-leer-mas:hover { border-color: var(--berry); background: var(--tint); }
.pnv-leer-mas svg { transition: transform .2s ease; }
.pnv-leer-mas.is-abierto svg { transform: rotate(180deg); }

/* Barra contador + ordenación: flex propio, sin floats de WooCommerce */
.pnv-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px 14px; flex-wrap: wrap; margin: 8px 0 2px; }
.pnv-toolbar .woocommerce-result-count, .woocommerce .pnv-toolbar .woocommerce-result-count,
.pnv-toolbar .woocommerce-ordering, .woocommerce .pnv-toolbar .woocommerce-ordering { float: none; margin: 0; }
.pnv-filtros-categoria { margin: 10px 0 4px; }
.woocommerce-result-count { color: #6E7288; font-size: 13px; }
.woocommerce-ordering select {
	border: 1.5px solid var(--line); border-radius: 999px; padding: 8px 14px;
	font-family: var(--ui); font-weight: 600; font-size: 13.5px; color: var(--ink); background: #fff;
}

/* Paginación */
.woocommerce-pagination, .pnv-pagination { text-align: center; margin-top: 34px; }
.woocommerce-pagination ul.page-numbers { list-style: none; margin: 0; padding: 0; display: inline-flex; gap: 8px; border: none; }
.woocommerce-pagination ul.page-numbers li { border: none; }
.woocommerce-pagination .page-numbers,
.pnv-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 42px; height: 42px; padding: 0 10px;
	border: 1.5px solid var(--line); border-radius: 999px; background: #fff;
	font-family: var(--ui); font-weight: 700; font-size: 14px; color: var(--ink-soft);
	transition: all .15s ease;
}
.woocommerce-pagination .page-numbers.current, .woocommerce-pagination .page-numbers:hover,
.pnv-pagination .page-numbers.current, .pnv-pagination .page-numbers:hover {
	background: var(--berry); border-color: var(--berry); color: #fff;
}

/* ============ FICHA DE PRODUCTO ============ */
.single-product div.product { display: flex; flex-wrap: wrap; gap: 40px; margin-top: 18px; }
.single-product div.product .woocommerce-product-gallery { flex: 1 1 46%; max-width: 560px; float: none; }
.single-product div.product .entry-summary { flex: 1 1 46%; float: none; margin: 0; }
.single-product div.product .woocommerce-product-gallery__wrapper img { border-radius: var(--r); }
.single-product div.product .woocommerce-product-gallery ol.flex-control-thumbs { margin-top: 10px; display: flex; gap: 8px; flex-wrap: wrap; padding: 0; }
.single-product div.product .woocommerce-product-gallery ol.flex-control-thumbs li { width: 76px; list-style: none; }
.single-product div.product .woocommerce-product-gallery ol.flex-control-thumbs img { border-radius: var(--r-sm); border: 2px solid transparent; cursor: pointer; }
.single-product div.product .woocommerce-product-gallery ol.flex-control-thumbs img.flex-active { border-color: var(--berry); }
.single-product div.product .product_title { font-size: clamp(22px, 2.8vw, 30px); font-weight: 800; }
.single-product div.product .entry-summary .price { font-family: var(--ui); font-weight: 800; font-size: 26px; color: var(--berry); }
.single-product div.product .entry-summary .price del { color: #8B88A0; font-size: 19px; }
.single-product div.product .entry-summary .price ins { text-decoration: none; }
.single-product div.product .woocommerce-product-details__short-description { color: var(--ink-soft); }
.single-product div.product form.cart { margin: 18px 0; }
.single-product .quantity .qty {
	border: 1.5px solid var(--line); border-radius: 999px; padding: 10px 8px; width: 74px;
	font-family: var(--ui); font-weight: 700; text-align: center;
}
.single-product div.product .single_add_to_cart_button { padding: 14px 34px; font-size: 15px; }

/* Campos de personalización (Product Add-Ons) */
.wc-pao-addon { margin-bottom: 14px; }
.wc-pao-addon-name { font-family: var(--ui); font-weight: 700; font-size: 14px; }
.wc-pao-addon input[type="text"], .wc-pao-addon textarea, .wc-pao-addon select,
form.cart input[type="text"], form.cart textarea, form.cart select {
	width: 100%; border: 1.5px solid var(--line); border-radius: var(--r-sm);
	padding: 10px 14px; font-family: var(--body); font-size: 14px; background: #fff;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.wc-pao-addon input:focus, .wc-pao-addon textarea:focus, .wc-pao-addon select:focus {
	outline: none; border-color: var(--berry); box-shadow: 0 0 0 4px rgba(214, 51, 108, 0.10);
}

/* Pestañas */
.woocommerce-tabs { width: 100%; margin-top: 20px; }
.woocommerce-tabs ul.tabs { list-style: none; margin: 0 0 18px; padding: 0; display: flex; gap: 8px; flex-wrap: wrap; border-bottom: 1.5px solid var(--line); }
.woocommerce-tabs ul.tabs li { margin: 0; }
.woocommerce-tabs ul.tabs li a {
	display: block; padding: 10px 18px; font-family: var(--ui); font-weight: 700; font-size: 14px;
	color: var(--ink-soft); border-radius: 12px 12px 0 0; border-bottom: 3px solid transparent;
}
.woocommerce-tabs ul.tabs li.active a { color: var(--berry-dark); border-bottom-color: var(--berry); }
.woocommerce-tabs .panel h2:first-of-type { font-size: 19px; }

/* Relacionados y ventas cruzadas */
.related.products, .up-sells.products { width: 100%; margin-top: 34px; }
.related.products > h2, .up-sells.products > h2 { font-size: 22px; }

/* ============ PAGINACIÓN ============ */
/* Anula la barra segmentada con bordes de WooCommerce: bolitas sueltas */
.woocommerce nav.woocommerce-pagination { text-align: center; margin: 30px 0 8px; }
.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 8px;
	border: none; margin: 0; padding: 0; white-space: normal;
}
.woocommerce nav.woocommerce-pagination ul li { border: none; margin: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 42px; height: 42px; padding: 0 10px; border-radius: 999px;
	background: #fff; border: 1.5px solid var(--line);
	font-family: var(--ui); font-weight: 700; font-size: 14.5px; line-height: 1; color: var(--ink);
	transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--tint); border-color: var(--berry); color: var(--berry-dark);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--berry); border-color: var(--berry); color: #fff;
}

/* ============ AVISOS ============ */
/* padding-left amplio: WooCommerce pinta su icono ::before en absoluto a la izquierda */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border: 1px solid var(--line); border-top: none; border-left: 5px solid var(--berry);
	border-radius: var(--r-sm); background: #fff; box-shadow: var(--shadow-soft);
	color: var(--ink); padding: 14px 18px 14px 48px; margin-bottom: 20px; list-style: none;
	position: relative; line-height: 1.55;
}
.woocommerce-error li, .woocommerce-message li, .woocommerce-info li { list-style: none; margin: 0; }
.woocommerce-message { border-left-color: #2F9E44; }
.woocommerce-error { border-left-color: #E03131; }
.woocommerce-message a.button, .woocommerce-info a.button { padding: 8px 16px; font-size: 13px; margin-left: 8px; }

/* ============ CESTA / PAGO / CUENTA ============ */
.woocommerce table.shop_table {
	border: 1px solid var(--line); border-radius: var(--r); border-collapse: separate; border-spacing: 0;
	overflow: hidden; width: 100%;
}
.woocommerce table.shop_table th { background: var(--tint); font-family: var(--ui); font-weight: 700; font-size: 13.5px; padding: 12px 14px; text-align: left; }
.woocommerce table.shop_table td { padding: 12px 14px; border-top: 1px solid var(--line); }
.woocommerce table.shop_table img { border-radius: var(--r-sm); width: 64px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
	border: 1.5px solid var(--line); border-radius: var(--r-sm); padding: 11px 14px;
	font-family: var(--body); font-size: 14px;
}
.woocommerce form .form-row input.input-text:focus { outline: none; border-color: var(--berry); box-shadow: 0 0 0 4px rgba(214, 51, 108, 0.10); }
.woocommerce form .form-row label { font-family: var(--ui); font-weight: 600; font-size: 13.5px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block; padding: 10px 14px; border-radius: var(--r-sm);
	font-family: var(--ui); font-weight: 600; color: var(--ink-soft);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--berry-soft); color: var(--berry-dark); }

/* ============ PÁGINAS Y BLOG ============ */
.pnv-page-head { padding: 10px 0 6px; }
.pnv-page-sub { color: var(--ink-soft); margin-top: -4px; }
.pnv-entry { max-width: 820px; }
.pnv-entry h2 { margin-top: 1.4em; }
.pnv-entry h2:first-child { margin-top: 0.4em; }
.pnv-entry ul, .pnv-entry ol { padding-left: 22px; margin: 0.6em 0 1em; }
.pnv-entry li { margin-bottom: 6px; line-height: 1.65; }
/* Caja destacada para avisos importantes en páginas informativas */
.pnv-info-box {
	background: var(--tint); border-left: 4px solid var(--berry); border-radius: var(--r-sm);
	padding: 14px 18px; margin: 1.2em 0; font-size: 14.5px; line-height: 1.6;
}
.pnv-entry img { border-radius: var(--r); }
.pnv-entry a { font-weight: 600; text-decoration: underline; text-decoration-color: rgba(214, 51, 108, .35); text-underline-offset: 3px; }
.pnv-entry a:hover { text-decoration-color: var(--berry); }
.pnv-article-wrap { max-width: 900px; }
.pnv-article-head { padding: 8px 0 4px; }
.pnv-article-img img { width: 100%; border-radius: var(--r-lg); }
.pnv-post-nav { display: flex; justify-content: space-between; gap: 20px; margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--line); font-family: var(--ui); font-weight: 700; font-size: 14px; }
.pnv-blog-grid-archive { grid-template-columns: repeat(3, 1fr); }

/* 404 */
.pnv-404 { text-align: center; padding: 70px 20px; max-width: 560px; }
.pnv-404 .pnv-404-search { margin: 22px 0 26px; }

/* ============ PIE DE PÁGINA ============ */
.pnv-footer { background: var(--tint); border-top: 1px solid var(--line); margin-top: 32px; }
.pnv-footer-cols {
	display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 36px;
	padding-top: 46px; padding-bottom: 40px;
}
.pnv-footer-brand img { max-height: 46px; width: auto; margin-bottom: 12px; }
.pnv-footer-brand p { font-size: 13.5px; color: var(--ink-soft); max-width: 34ch; }
.pnv-social { display: flex; gap: 10px; margin-top: 14px; }
.pnv-social a {
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px; border-radius: 50%; background: #fff; border: 1px solid var(--line);
	color: var(--berry); transition: all .15s ease;
}
.pnv-social a:hover { background: var(--berry); border-color: var(--berry); color: #fff; transform: translateY(-2px); }
.pnv-footer-col h3 {
	font-size: 12.5px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--ink); margin-bottom: 14px;
}
.pnv-footer-col ul { list-style: none; margin: 0; padding: 0; }
.pnv-footer-col li { margin-bottom: 9px; font-size: 14px; color: var(--ink-soft); }
.pnv-footer-col a { color: var(--ink-soft); }
.pnv-footer-col a:hover { color: var(--berry-dark); }
.pnv-footer-legal { border-top: 1px solid var(--line); }
.pnv-footer-legal-in {
	display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
	padding-top: 16px; padding-bottom: 16px; font-size: 12.5px; color: #6E7288;
}
.pnv-footer-legal a { color: #6E7288; margin-left: 16px; }
.pnv-footer-legal a:hover { color: var(--berry); }

/* ============ OPINIONES EN PORTADA ============ */
.pnv-links-more { display: inline-flex; gap: 18px; flex-shrink: 0; }
.pnv-reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 16px; }
.pnv-review { margin: 0; background: var(--tint); border-radius: var(--r); padding: 22px 22px 18px; }
.pnv-review-stars { color: #F0A93B; letter-spacing: 0.15em; font-size: 14px; }
.pnv-review blockquote { margin: 10px 0 12px; font-size: 14.5px; line-height: 1.6; color: var(--ink); }
.pnv-review figcaption { font-family: var(--ui); font-weight: 700; font-size: 12.5px; color: var(--ink-soft); }

/* Tarjeta con la nota de bodas.net (5.0 · Fantástico · 66 opiniones) */
.pnv-bodas-score {
	display: inline-flex; align-items: center; gap: 18px;
	margin: 22px 0 6px; padding: 18px 26px 18px 18px;
	background: #fff; border: 2px solid #B08D3E; border-radius: var(--r);
	color: var(--ink);
}
.pnv-bodas-score:hover { box-shadow: var(--shadow-soft); color: var(--ink); }
.pnv-bodas-nota {
	display: inline-flex; align-items: center; justify-content: center;
	width: 64px; height: 64px; border-radius: 50%; flex-shrink: 0;
	background: #B08D3E; color: #fff;
	font-family: var(--ui); font-weight: 800; font-size: 22px;
}
.pnv-bodas-detalle { display: flex; flex-direction: column; gap: 2px; line-height: 1.35; }
.pnv-bodas-detalle strong { font-family: var(--ui); font-size: 16px; }
.pnv-bodas-detalle > span { font-size: 13px; color: var(--ink-soft); }
.pnv-bodas-detalle .pnv-review-stars { color: #B08D3E; font-size: 13px; }
.pnv-bodas-reco { font-weight: 600; color: #2F9E44 !important; }

/* ============ TESTIMONIOS (muro de opiniones) ============ */
.pnv-testimonios { columns: 3; column-gap: 18px; margin-top: 26px; }
.pnv-testimonios .pnv-review { break-inside: avoid; margin-bottom: 18px; }
@media (max-width: 1080px) { .pnv-testimonios { columns: 2; } }
@media (max-width: 640px) { .pnv-testimonios { columns: 1; } }

/* ============ CONTACTO ============ */
.pnv-contacto-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 26px; }
@media (max-width: 860px) { .pnv-contacto-grid { grid-template-columns: 1fr; } }
.pnv-contacto-card {
	background: #fff; border: 1px solid var(--line); border-radius: var(--r);
	padding: 26px 24px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
	color: var(--berry);
}
.pnv-contacto-card h2 { font-size: 18px; margin: 0; color: var(--ink); }
.pnv-contacto-card p { margin: 0 0 6px; color: var(--ink-soft); font-size: 14.5px; line-height: 1.6; }
.pnv-contacto-card .pnv-btn { margin-top: auto; }
.pnv-contacto-whatsapp { background: var(--tint); border-color: #F3D2DE; }
.pnv-contacto-dato { font-family: var(--ui); font-weight: 800; color: var(--ink); margin-top: 8px; }

/* ============ PÁGINA PREMIOS (insignias bodas.net) ============ */
.pnv-premios-intro { color: var(--ink-soft); font-size: 16px; max-width: 640px; margin: 10px 0 0; }
.pnv-premios {
	list-style: none; margin: 30px 0 0; padding: 0;
	display: flex; flex-wrap: wrap; gap: 18px;
}
.pnv-premio {
	width: 158px; min-height: 158px; padding: 18px 12px;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
	border: 2px solid #B08D3E; border-radius: 6px; background: #fff; color: #B08D3E;
	text-align: center; font-family: var(--ui);
}
.pnv-premio-titulo { font-size: 17px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: #2B2B2B; line-height: 1.25; }
.pnv-premio-anio { font-size: 30px; font-weight: 800; letter-spacing: 0.12em; color: #B08D3E; }
.pnv-premio-marca { font-size: 14px; font-weight: 700; color: #2B2B2B; }
.pnv-premio-estrellas { color: #B08D3E; font-size: 15px; letter-spacing: 0.15em; }
.pnv-premio-peq { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: #B08D3E; }
.pnv-premio-recomendado svg { margin-bottom: 2px; }
.pnv-premio-2024 { background: #111; border-color: #111; }
.pnv-premio-2024 .pnv-premio-marca { color: #fff; }
.pnv-premio-2024 .pnv-premio-titulo { color: #fff; }
.pnv-premio-2024 .pnv-premio-anio { color: #F5D77C; }
.pnv-premios-cta { margin: 28px 0 8px; display: flex; gap: 12px; flex-wrap: wrap; }
.pnv-premios-texto { max-width: 720px; }

/* ============ RESPONSIVE ============ */
@media (max-width: 1080px) {
	.pnv-nav { display: none; }
	.pnv-burger { display: flex; }
	/* Logo centrado entre la hamburguesa y los iconos */
	.pnv-header-in { gap: 14px; position: relative; justify-content: space-between; }
	.pnv-logo { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
	.pnv-search { display: none; }
	.pnv-search-mobile { display: block; }
	ul.products, ul.products.columns-4 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
	.pnv-hero { grid-template-columns: 1fr; padding: 30px 24px; gap: 20px; }
	.pnv-hero-img { order: -1; }
	.pnv-trust-in { grid-template-columns: repeat(2, 1fr); }
	.pnv-banners { grid-template-columns: 1fr; }
	/* Opiniones: carrusel lateral deslizable, como los círculos de categorías */
	.pnv-reviews-grid {
		display: flex; overflow-x: auto; gap: 14px; padding: 4px 2px 12px;
		scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.pnv-reviews-grid::-webkit-scrollbar { display: none; }
	.pnv-review { flex: 0 0 84%; max-width: 340px; scroll-snap-align: start; }
	.pnv-blog-grid, .pnv-blog-grid-archive { grid-template-columns: 1fr 1fr; }
	.pnv-footer-cols { grid-template-columns: 1fr 1fr; }
	.single-product div.product { gap: 24px; }
	.pnv-cat-circle-img { width: 96px; height: 96px; }
}
@media (max-width: 640px) {
	body { font-size: 15px; }
	.pnv-logo img { max-height: 58px; }
	ul.products, ul.products.columns-4 { grid-template-columns: repeat(2, 1fr); gap: 14px 10px; }
	ul.products li.product { padding: 8px 8px 14px; }
	ul.products li.product .button { font-size: 12.5px; padding: 10px 6px; }
	.pnv-blog-grid, .pnv-blog-grid-archive { grid-template-columns: 1fr; }
	.pnv-footer-cols { grid-template-columns: 1fr; gap: 26px; }
	/* Subcategorías (páginas de categoría): carrusel horizontal deslizable */
	.pnv-cat-circles {
		display: flex; overflow-x: auto; gap: 16px; padding: 4px 2px 12px;
		scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.pnv-cat-circles::-webkit-scrollbar { display: none; }
	.pnv-cat-circles li { flex: 0 0 auto; width: 96px; scroll-snap-align: start; }
	.pnv-cat-circle-img { width: 88px; height: 88px; }
	.pnv-cat-circle-name { font-size: 12px; }
	/* Portada: mismo carrusel lateral, con círculos algo más grandes */
	.pnv-cat-circles-home li { width: 112px; }
	.pnv-cat-circles-home .pnv-cat-circle-img { width: 104px; height: 104px; }
	.pnv-cat-circles-home .pnv-cat-circle-name { font-size: 12.5px; }
	.pnv-section { margin-top: 38px; }
	.onsale { top: 12px; left: 12px; font-size: 11.5px; padding: 4px 9px; }
}

/* ============ «MÁS DE ESTA CATEGORÍA» (tira de mini-fotos) ============ */
.pnv-more-cat { margin: 30px 0 8px; }
.pnv-more-cat h2 {
	font-family: var(--ui); font-size: 15px; font-weight: 700;
	color: var(--ink); letter-spacing: 0; margin: 0 0 12px;
}
.pnv-more-cat ul {
	display: flex; gap: 12px; list-style: none; margin: 0; padding: 0 0 6px;
	overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.pnv-more-cat ul::-webkit-scrollbar { display: none; }
.pnv-more-cat li { flex: 0 0 auto; }
.pnv-more-cat img {
	width: 84px; height: 84px; object-fit: cover; display: block;
	border-radius: var(--r-sm); border: 1px solid var(--line);
	transition: transform 0.15s ease, border-color 0.15s ease;
}
.pnv-more-cat a:hover img { border-color: var(--berry); transform: translateY(-2px); }
@media (max-width: 600px) {
	.pnv-more-cat img { width: 72px; height: 72px; }
}
