/* =====================================================================
   Prolift · vista M1.2, fases 1-3 (cabecera, categoría y ficha), 11-oct-2026.
   Va DETRÁS del CSS del tema y del user_css (v3 + M1.2b): lo enlaza header.twig antes de </head>
   (OCMOD prolift_vista_m12). Tokens: los del user_css v3 (--pl-*), con valor de reserva.
   Maqueta: Prolift-KB/Web/disenos-opciones/M-mezcla/claro-v1.2/ (m.css §17-§20).
   ===================================================================== */
:root {
	--plv-rojo: var(--pl-rojo, #D02F00); --plv-rojo-hover: var(--pl-rojo-hover, #A82400);
	--plv-tinta: var(--pl-tinta, #1E2124); --plv-tinta-2: var(--pl-tinta-2, #4B5259); --plv-tinta-3: var(--pl-tinta-3, #5F666D);
	--plv-sup: var(--pl-superficie, #F4F5F6); --plv-linea: var(--pl-linea, #DDE1E5); --plv-linea-f: var(--pl-linea-fuerte, #8A9199);
	--plv-ok: var(--pl-ok, #1D7A3A); --plv-aviso: var(--pl-aviso, #8A5300); --plv-foco: var(--pl-foco, #0B57D0);
}
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* ---------- comunes: estados, botones, referencia ---------- */
.pl-estado { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 500; line-height: 1.3; }
.pl-estado::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.pl-estado--ok { color: var(--plv-ok); }
.pl-estado--pedido { color: var(--plv-aviso); }
.pl-estado--consultar { color: var(--plv-tinta-3); }
.pl-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 8px; font-size: 15px; font-weight: 700; line-height: 1.15; text-decoration: none; cursor: pointer; white-space: nowrap; }
.pl-btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; }
.pl-btn--borde { background: #fff; color: var(--plv-tinta); border: 2px solid var(--plv-tinta) !important; }
.pl-btn--borde:hover, .pl-btn--borde:focus { background: var(--plv-sup); color: var(--plv-tinta); text-decoration: none; }
.pl-btn--rojo { background: var(--plv-rojo); color: #fff; border: 2px solid var(--plv-rojo) !important; }
.pl-btn--rojo:hover, .pl-btn--rojo:focus { background: var(--plv-rojo-hover); border-color: var(--plv-rojo-hover) !important; color: #fff; }
.pl-btn:focus-visible, .pl-copiar:focus-visible, .pl-vista__btn:focus-visible, .pl-nav a:focus-visible, .pl-nav button:focus-visible, .pl-arbol a:focus-visible, .pl-subcats a:focus-visible, .pl-cat-desc__mas:focus-visible {
	outline: 3px solid var(--plv-foco); outline-offset: 2px;
}
.pl-cod { font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace; font-weight: 700; color: var(--plv-tinta); background: var(--plv-sup); border-radius: 6px; padding: 3px 8px; font-size: 14px; white-space: nowrap; }
.pl-ref { display: inline-flex; align-items: center; gap: 4px; flex-wrap: nowrap; }
.pl-copiar { display: inline-flex; align-items: center; gap: 4px; min-height: 36px; padding: 0 8px; border: 0; background: none; border-radius: 6px; color: var(--plv-tinta-2); font-size: 13px; font-weight: 500; cursor: pointer; }
.pl-copiar:hover { background: var(--plv-sup); }
.pl-copiar svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; }
.pl-copiar.is-copiada { color: var(--plv-ok); }
.pl-copiar--borde { border: 1.5px solid var(--plv-linea-f) !important; border-radius: 8px; padding: 0 14px; min-height: 44px; font-size: 14px; font-weight: 700; color: var(--plv-tinta); }

/* =====================================================================
   1. CABECERA (ordenador; el móvil sigue con la cabecera de la M1.2b)
   ===================================================================== */
.pl-franja, .pl-nav { display: none; }
.pl-nav__punto { display: inline-block; width: 10px; height: 10px; border-radius: 3px; background: var(--pl-sec-asc, #D02F00); flex: none; }
@media (min-width: 992px) {
	.pl-franja { display: block; background: var(--plv-sup); color: var(--plv-tinta-2); font-size: 13px; }
	.pl-franja__in { display: flex; align-items: center; gap: 24px; min-height: 34px; }
	.pl-franja__der { margin-left: auto; display: flex; gap: 24px; }
	.pl-franja a { display: inline-flex; align-items: center; gap: 6px; min-height: 24px; color: inherit; text-decoration: none; }
	.pl-franja a:hover { text-decoration: underline; color: var(--plv-tinta); }
	.pl-franja b { color: var(--plv-tinta); font-weight: 500; }
	.pl-franja svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; }

	/* lo que la franja y el menú sustituyen */
	header .top-menu { display: none !important; }
	header .header-block__item-telephone { display: none !important; }
	header .main-menu { display: none !important; }

	header { background: #fff; border-bottom: 0; }
	header > .container > .header-block { display: flex; align-items: center; gap: 28px; min-height: 92px; padding: 12px 0 !important; margin: 0; }
	header .header-block__item { float: none; margin: 0; padding: 0; }
	header .header-block__item-logo { flex: 0 0 auto; width: auto; max-width: none; }
	html body header .header-logo__img { max-height: 70px !important; height: 70px !important; width: auto !important; }
	header #search.header-block__item-search { flex: 1 1 auto; width: auto; max-width: 980px; order: 0; }
	header .header-block__item-account, header .header-block__item-cart { order: 2; flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 64px; }
	header .header-block__item-account { margin-left: auto; }
	header .header-block__item-account .header-block__item-caption, header .header-block__item-cart .header-block__item-caption { display: block; font-size: 13px !important; font-weight: 500; color: var(--plv-tinta); margin-top: 2px; }
	header .header-account__icon, header .header-cart__icon { font-size: 22px; color: var(--plv-tinta); }
	header .header-cart { position: relative; }
	header .header-cart__total-items { position: absolute; top: 2px; right: 0; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--plv-rojo); color: #fff; font-size: 12px; font-weight: 700; line-height: 20px; text-align: center; }

	/* buscador grande: campo de 52 px, «Buscar» en rojo y la cámara al lado (una sola vez) */
	header #search .header-search { position: relative; }
	header #search .header-search__form { display: flex; align-items: stretch; gap: 0; border: 0; background: none; box-shadow: none; height: auto; }
	header #search .header-search__category { display: none !important; }
	header #search .header-search__input.form-control { order: 1; flex: 1 1 auto; min-width: 0; height: 52px; padding: 0 16px 0 44px !important; border: 2px solid var(--plv-tinta); border-right: 0; border-radius: 8px 0 0 8px; font-size: 16px; color: var(--plv-tinta);
		background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235F666D' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E") no-repeat 14px 50% / 20px 20px; }
	header #search .header-search__input::placeholder { color: var(--plv-tinta-3); opacity: 1; }
	header #search .search-btn-clear { order: 2; position: static; transform: none; height: 52px; margin: 0; border: 2px solid var(--plv-tinta) !important; border-left: 0 !important; border-right: 0 !important; background: #fff; }
	header #search .search-btn-clear:not(.show) { display: none; }
	header #search .header-search__btn.search-btn { order: 3; position: static; top: auto; right: auto; transform: none; width: auto; display: inline-flex; align-items: center; justify-content: center; gap: 0; height: 52px; min-width: 116px; padding: 0 24px; margin: 0; border: 2px solid var(--plv-rojo) !important; border-radius: 0 8px 8px 0; background: var(--plv-rojo); color: #fff; font-size: 16px; font-weight: 700; }
	header #search .header-search__btn.search-btn:hover { background: var(--plv-rojo-hover); border-color: var(--plv-rojo-hover); }
	header #search .header-search__btn > i { display: none; }
	header #search .header-search__foto { order: 4; flex: 0 0 auto; display: inline-flex; gap: 10px; width: auto; height: 52px; margin: 0 0 0 10px; padding: 0 18px; border: 2px solid var(--plv-linea-f); border-radius: 8px; color: var(--plv-tinta); font-size: 18px; font-weight: 700; text-decoration: none; background: #fff; }
	header #search .header-search__foto:hover { border-color: var(--plv-tinta); color: var(--plv-tinta); }
	header #search .header-search__foto .pl-foto-txt { font-size: 15px; white-space: nowrap; }
	/* 1.1 (A3): la cámara se queda SIEMPRE (también con texto: el estilo en línea del tema la quitaba)
	   y la «×» va dentro del borde del campo, cuadrada, sin montarse en el borde */
	header #search .header-search__input:not(:placeholder-shown) ~ .header-search__foto,
	header #search .header-search__form:focus-within .header-search__foto { display: inline-flex !important; }
	header #search .search-btn-clear.show { display: inline-flex; align-items: center; justify-content: center; width: 44px; min-width: 44px; padding: 0; border-radius: 0 !important; color: var(--plv-tinta-2); font-size: 22px; line-height: 1; box-shadow: none; }
	header #search .header-search__form:focus-within .header-search__input { outline: 0; }
	header #search .header-search__input:focus-visible { box-shadow: 0 0 0 3px var(--plv-foco); position: relative; z-index: 1; }
	header #search .live-search { top: 56px; }
}
@media (min-width: 992px) and (max-width: 1279px) {
	header #search .header-search__foto .pl-foto-txt { display: none; }
	header > .container > .header-block { gap: 18px; }
	html body header .header-logo__img { max-height: 56px !important; height: 56px !important; }
}
.pl-buscar-txt { display: none; }
@media (min-width: 992px) { header #search .pl-buscar-txt { display: inline; } }
.pl-foto-txt { display: none; }
@media (min-width: 992px) { header #search .pl-foto-txt { display: inline; } }

/* menú oscuro */
@media (min-width: 992px) {
	.pl-nav { display: block; position: relative; z-index: 1030; background: var(--plv-tinta); color: #fff; }
	.pl-nav__in { display: flex; align-items: stretch; }
	.pl-nav__sec { position: static; display: flex; }
	.pl-nav__item { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 20px; border: 0; border-bottom: 3px solid transparent; background: none; color: #fff !important; font: inherit; font-size: 15px; font-weight: 500; text-decoration: none !important; cursor: pointer; }
	.pl-nav__item:hover, .pl-nav__sec.is-abierto .pl-nav__boton { background: rgba(255, 255, 255, .1); }
	.pl-nav__boton { font-weight: 700; }
	.pl-nav__boton.is-actual, .pl-nav__sec.is-abierto .pl-nav__boton { border-bottom-color: var(--plv-rojo); }
	.pl-nav__flecha { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform .15s; }
	.pl-nav__sec.is-abierto .pl-nav__flecha { transform: rotate(180deg); }
	.pl-nav__der { margin-left: auto; display: flex; }
	.pl-nav__der .pl-nav__item { font-size: 14px; padding: 0 16px; }
	.pl-nav__panel { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; color: var(--plv-tinta); border-bottom: 1px solid var(--plv-linea); box-shadow: 0 12px 28px rgba(16, 24, 40, .16); }
	.pl-nav__sec.is-abierto .pl-nav__panel { display: block; }
	.pl-nav__cols { max-width: 1720px; margin: 0 auto; padding: 24px; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px 28px; }
	.pl-nav__raiz { display: inline-flex; align-items: center; min-height: 32px; font-size: 15px; font-weight: 700; color: var(--plv-tinta); text-decoration: none; }
	.pl-nav__raiz:hover { color: var(--plv-rojo); text-decoration: underline; }
	.pl-nav__col ul { list-style: none; margin: 4px 0 0; padding: 0; }
	.pl-nav__col li a { display: inline-flex; align-items: center; min-height: 28px; font-size: 14px; color: var(--plv-tinta-2); text-decoration: none; }
	.pl-nav__col li a:hover { color: var(--plv-tinta); text-decoration: underline; }
}
@media (min-width: 992px) and (max-width: 1279px) {
	.pl-nav__der .pl-nav__item { padding: 0 10px; font-size: 13px; }
	.pl-nav__item { padding: 0 14px; }
}

/* =====================================================================
   2. CATEGORÍA
   ===================================================================== */
/* título + texto SEO recortado + resumen a la derecha */
#product-category .breadcrumb-h1:has(.pl-cat-resumen) { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 32px; align-items: start; }
#product-category .breadcrumb-h1:has(.pl-cat-resumen) > .breadcrumb { grid-column: 1 / -1; }
#product-category .breadcrumb-h1:has(.pl-cat-resumen) h1 { margin: 8px 0 8px; font-size: 30px; line-height: 1.15; }
.pl-cat-desc { max-width: 60em; margin: 0 0 16px; color: var(--plv-tinta-2); font-size: 15px; line-height: 1.6; }
.pl-cat-desc__txt { overflow: hidden; }
.pl-cat-desc:not(.is-abierta) .pl-cat-desc__txt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; max-height: 3.2em; }
.pl-cat-desc:not(.is-abierta) .pl-cat-desc__txt * { display: inline; font-size: inherit !important; font-family: inherit !important; font-weight: inherit !important; color: inherit !important; margin: 0 !important; padding: 0 !important; line-height: inherit !important; }
.pl-cat-desc:not(.is-abierta) .pl-cat-desc__txt li::after { content: ". "; }
.pl-cat-desc:not(.is-abierta) .pl-cat-desc__txt img { display: none; }
.pl-cat-desc.is-abierta .pl-cat-desc__txt h2 { font-size: 18px !important; margin: 16px 0 6px; color: var(--plv-tinta) !important; font-family: inherit !important; }
.pl-cat-desc.is-abierta .pl-cat-desc__txt h2 p, .pl-cat-desc.is-abierta .pl-cat-desc__txt h2 ul { font-size: 15px !important; font-weight: 400; color: var(--plv-tinta-2) !important; }
.pl-cat-desc__mas { margin-top: 2px; padding: 0; min-height: 32px; border: 0; background: none; color: var(--plv-tinta); font-weight: 700; text-decoration: underline; cursor: pointer; }
.pl-cat-resumen { border: 1px solid var(--plv-linea); border-radius: 12px; background: #fff; padding: 18px 22px; margin: 0 0 16px; }
.pl-cat-resumen p { margin: 0 0 10px; font-size: 14px; color: var(--plv-tinta-2); line-height: 1.5; }
.pl-cat-resumen__n { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; }
.pl-cat-resumen__n b { font-size: 19px; color: var(--plv-tinta); }
.pl-cat-resumen__peso { display: flex; gap: 10px; }
.pl-cat-resumen__peso svg { flex: none; width: 18px; height: 18px; margin-top: 2px; fill: none; stroke: var(--plv-tinta-2); stroke-width: 1.8; stroke-linejoin: round; }
.pl-cat-resumen__peso b, .pl-cat-resumen__acceso a { color: var(--plv-tinta); }
.pl-cat-resumen__acceso a { font-weight: 700; text-decoration: underline; }
.pl-cat-resumen__btn { margin-top: 4px; }
@media (min-width: 992px) {
	#product-category .breadcrumb-h1:has(.pl-cat-resumen) { grid-template-columns: minmax(0, 1fr) minmax(320px, 480px); grid-template-rows: auto auto auto 1fr; background: var(--plv-sup); margin: 0 -24px 24px; padding: 12px 24px 8px; }
	#product-category .breadcrumb-h1:has(.pl-cat-resumen) h1 { grid-column: 1; grid-row: 2; font-size: 32px; margin-top: 20px; }
	#product-category .breadcrumb-h1:has(.pl-cat-resumen) h1::before { content: ""; display: block; width: 48px; height: 4px; margin-bottom: 14px; border-radius: 2px; background: var(--pl-sec-asc, #D02F00); }
	#product-category .breadcrumb-h1:has(.pl-cat-resumen) .pl-cat-desc { grid-column: 1; grid-row: 3; }
	#product-category .breadcrumb-h1:has(.pl-cat-resumen) .pl-cat-resumen { grid-column: 2; grid-row: 2 / -1; align-self: center; margin: 8px 0 16px; }
}
/* lo que la nueva cabecera sustituye */
#product-category .category-list, #product-category .category-list__select { display: none !important; }

/* columna izquierda: árbol de familias y filtros */
@media (min-width: 992px) {
	#product-category > .row:has(> .pl-cat-lateral) { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 0 28px; margin-left: 0; margin-right: 0; }
	#product-category > .row:has(> .pl-cat-lateral)::before, #product-category > .row:has(> .pl-cat-lateral)::after { display: none; }
	#product-category > .row:has(> .pl-cat-lateral) > #content { width: auto; padding: 0; float: none; min-width: 0; }
	.pl-cat-lateral { position: sticky; top: 72px; align-self: start; max-height: calc(100vh - 88px); overflow-y: auto; }
}
@media (max-width: 991px) {
	.pl-cat-lateral { display: none; }
}
.pl-arbol { border: 1px solid var(--plv-linea); border-radius: 12px; padding: 12px 8px; margin-bottom: 20px; background: #fff; }
.pl-arbol h2, .pl-filtros h2 { margin: 0; padding: 0 8px 6px; font-size: 15px; font-weight: 700; color: var(--plv-tinta); }
.pl-arbol__sec { display: flex; align-items: center; gap: 10px; margin: 4px 0; padding: 0 8px; min-height: 36px; font-weight: 700; font-size: 15px; color: var(--plv-tinta); }
.pl-arbol ul { list-style: none; margin: 0; padding: 0; }
.pl-arbol ul ul { margin-left: 13px; padding-left: 10px; border-left: 1px solid var(--plv-linea); }
.pl-arbol a { display: flex; align-items: center; min-height: 40px; padding: 4px 8px; border-radius: 6px; font-size: 14px; line-height: 1.25; color: var(--plv-tinta); text-decoration: none; }
.pl-arbol a:hover { background: var(--plv-sup); color: var(--plv-tinta); }
.pl-arbol a[aria-current="page"] { background: var(--plv-tinta); color: #fff; font-weight: 700; }
.pl-arbol ul ul a { color: var(--plv-tinta-2); }
.pl-filtros { border: 1px solid var(--plv-linea); border-radius: 12px; padding: 12px 8px; background: #fff; }
.pl-filtros fieldset { border: 0; margin: 0; padding: 0 8px; }
.pl-filtros legend { border: 0; margin: 4px 0; font-size: 13px; font-weight: 700; color: var(--plv-tinta-2); }
.pl-check { display: flex; align-items: center; gap: 10px; min-height: 40px; margin: 0; font-weight: 400; font-size: 14px; cursor: pointer; }
.pl-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--plv-tinta); }

/* barra de la lista: subfamilias y tabla / cuadrícula */
.pl-lista-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 0 0 12px; }
.pl-subcats { display: flex; flex-wrap: wrap; gap: 8px; flex: 1 1 auto; min-width: 0; }
.pl-subcats a, .pl-subcats__on { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border: 1px solid var(--plv-linea-f); border-radius: 999px; font-size: 14px; color: var(--plv-tinta); text-decoration: none; background: #fff; }
.pl-subcats a:hover { border-color: var(--plv-tinta); background: var(--plv-sup); }
.pl-subcats__on { background: var(--plv-tinta); border-color: var(--plv-tinta); color: #fff; font-weight: 700; }
.pl-vista { display: inline-flex; margin-left: auto; border: 1px solid var(--plv-linea-f); border-radius: 8px; overflow: hidden; }
.pl-vista__btn { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 14px; border: 0; background: #fff; color: var(--plv-tinta); font-size: 14px; font-weight: 500; cursor: pointer; }
.pl-vista__btn + .pl-vista__btn { border-left: 1px solid var(--plv-linea-f) !important; }
.pl-vista__btn[aria-pressed="true"] { background: var(--plv-tinta); color: #fff; font-weight: 700; }
.pl-vista__btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
/* el tema: sin los botones de vista (los sustituye el conmutador) */
#product-category .sorts-block__btn-group, #product-search .sorts-block__btn-group { display: none !important; }

/* tabla / cuadrícula */
html:not(.pl-vista-cuadricula) #product-category .products-block:has(> .product-layout),
html:not(.pl-vista-cuadricula) #product-search .products-block:has(> .product-layout) { display: none !important; }
html.pl-vista-cuadricula [data-pl-vista-panel="tabla"] { display: none; }
.pl-tabla-caja { border: 1px solid var(--plv-linea); border-radius: 12px; overflow: clip; margin-bottom: 24px; background: #fff; }
.pl-tabla { width: 100%; border-collapse: collapse; font-size: 15px; }
.pl-tabla th { background: var(--plv-sup); text-align: left; font-size: 13px; font-weight: 700; color: var(--plv-tinta-2); padding: 10px 12px; border-bottom: 1px solid var(--plv-linea); white-space: nowrap; }
.pl-tabla td { padding: 8px 12px; border-bottom: 1px solid var(--plv-linea); vertical-align: middle; }
.pl-tabla tbody tr:last-child td { border-bottom: 0; }
.pl-tabla tbody tr:hover { background: #FAFBFB; }
.pl-tabla .c-foto { width: 84px; padding-right: 0; }
.pl-tabla .c-foto a { display: grid; place-items: center; width: 64px; height: 64px; border: 1px solid var(--plv-linea); border-radius: 6px; padding: 4px; background: #fff; }
.pl-tabla .c-foto img { width: 100%; height: 100%; object-fit: contain; }
.pl-tabla__nom { display: block; font-weight: 700; color: var(--plv-tinta); text-decoration: none; line-height: 1.3; }
.pl-tabla__nom:hover { text-decoration: underline; color: var(--plv-tinta); }
.pl-tabla__sub { display: block; margin-top: 2px; font-size: 13px; color: var(--plv-tinta-3); }
.pl-tabla .c-peso { color: var(--plv-tinta-2); font-size: 14px; white-space: nowrap; }
.pl-tabla .c-precio { text-align: right; white-space: nowrap; }
.pl-tabla__precio { display: block; font-size: 17px; font-weight: 700; color: var(--plv-tinta); margin-bottom: 6px; }
.pl-tabla__precio small { font-size: 13px; font-weight: 400; color: var(--plv-tinta-2); }
.pl-tabla .pl-btn { min-height: 42px; }
.pl-anadir { display: inline-flex; align-items: center; justify-content: flex-end; gap: 6px; }
.pl-anadir .pl-cant { width: 64px; height: 42px; padding: 0 6px; border: 1.5px solid var(--plv-linea-f); border-radius: 8px; text-align: center; font-size: 15px; }
.pl-tabla tr[hidden] { display: none; }
.pl-tabla__vacia { margin: 0; padding: 16px; color: var(--plv-tinta-2); }

/* móvil: cada fila, una tarjeta compacta */
@media (max-width: 767px) {
	.pl-tabla-caja { border: 0; border-radius: 0; background: none; }
	.pl-tabla thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
	.pl-tabla, .pl-tabla tbody { display: block; }
	.pl-tabla tr { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 4px 12px; padding: 12px 0; border-bottom: 1px solid var(--plv-linea); }
	.pl-tabla td { display: block; padding: 0; border: 0; }
	.pl-tabla .c-foto { grid-row: 1 / span 3; width: auto; }
	.pl-tabla .c-foto a { width: 64px; height: 64px; }
	.pl-tabla .c-nom, .pl-tabla .c-ref, .pl-tabla .c-precio { grid-column: 2; }
	.pl-tabla .c-plazo, .pl-tabla .c-peso { grid-column: 2; display: inline-block; font-size: 13px; }
	.pl-tabla tr { grid-template-areas: none; }
	.pl-tabla .c-plazo { grid-row: 3; }
	.pl-tabla .c-peso { grid-row: 4; justify-self: start; color: var(--plv-tinta-3); }
	.pl-tabla .c-precio { grid-row: 5; }
	.pl-tabla .c-foto { grid-row: 1 / span 4; }
	.pl-tabla .c-precio { text-align: left; white-space: normal; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 4px; }
	.pl-tabla__precio { margin: 0; }
	.pl-tabla .pl-copiar__txt { display: none; }
	.pl-tabla .pl-copiar { min-width: 36px; min-height: 36px; justify-content: center; }
	.pl-lista-barra { gap: 10px; }
	.pl-subcats { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; -webkit-overflow-scrolling: touch; }
	.pl-subcats a, .pl-subcats__on { flex: none; }
	.pl-vista { margin-left: 0; }
	.pl-cat-resumen { padding: 14px 16px; }
}
@media (min-width: 768px) and (max-width: 1199px) {
	.pl-tabla .c-peso { display: none; }
}

/* =====================================================================
   3. FICHA
   ===================================================================== */
.pl-fc { margin: 0 0 12px; }
.pl-fc__marca { margin: 0 0 4px; font-size: 15px; color: var(--plv-tinta-2); }
.pl-fc__marca b { color: var(--plv-tinta); letter-spacing: .06em; }
.pl-fc__h1 h1 { margin: 4px 0 0; font-size: clamp(28px, 2.3vw, 42px); line-height: 1.1; letter-spacing: -.015em; font-weight: 700; color: var(--plv-tinta); }
.pl-fc__ref { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 14px; }
.pl-fc__ref-et { font-size: 14px; color: var(--plv-tinta-2); }
.pl-fc__cod { font-size: 22px; padding: 4px 10px; background: none; }
.pl-fc__resumen { margin: 14px 0 0; font-size: 16px; line-height: 1.55; color: var(--plv-tinta-2); max-width: 38em; }
.pl-normas { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.pl-normas li { border: 1px solid var(--plv-linea-f); border-radius: 4px; padding: 3px 10px; font-size: 13px; font-weight: 700; letter-spacing: .02em; color: var(--plv-tinta-2); }
/* la marca ya está en la cabecera del panel */
#product-product .product-block > .product-data > .product-data__item.manufacturer { display: none; }
#product-product .product-block > .product-data:not(:has(> li:not(.manufacturer):not([style*="none"]))) { display: none; }

/* precio grande «sin IVA» + desglose */
#product-product .product-page__price.price { font-size: clamp(36px, 3vw, 52px); font-weight: 700; line-height: 1.05; letter-spacing: -.02em; color: var(--plv-tinta); margin-top: 16px !important; }
#product-product .pl-iva small { font-size: 15px; color: var(--plv-tinta-2); }
.pl-desglose { margin: 12px 0 0; border: 1px solid var(--plv-linea); border-radius: 8px; font-size: 14px; }
.pl-desglose > div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 12px; border-top: 1px solid var(--plv-linea); }
.pl-desglose > div:first-child { border-top: 0; }
.pl-desglose dt { font-weight: 400; color: var(--plv-tinta-2); }
.pl-desglose dd { margin: 0; font-weight: 700; color: var(--plv-tinta); text-align: right; }
.pl-desglose__nota { margin: 8px 0 12px; font-size: 13px; color: var(--plv-tinta-2); line-height: 1.5; }

/* configuraciones en almacén */
.pl-conf { margin: 24px 0; }
.pl-conf h2 { margin: 0; font-size: 22px; font-weight: 700; color: var(--plv-tinta); }
.pl-conf__nota { margin: 4px 0 14px; font-size: 14px; color: var(--plv-tinta-2); }
.pl-conf__nota a { color: var(--plv-tinta); font-weight: 700; text-decoration: underline; }
.pl-conf__caja { border: 1px solid var(--plv-linea); border-radius: 12px; overflow: hidden; background: #fff; }
.pl-conf__tabla { width: 100%; border-collapse: collapse; font-size: 15px; }
.pl-conf__tabla th { background: var(--plv-sup); text-align: left; font-size: 13px; font-weight: 700; color: var(--plv-tinta-2); padding: 10px 12px; border-bottom: 1px solid var(--plv-linea); }
.pl-conf__tabla td { padding: 8px 12px; border-bottom: 1px solid var(--plv-linea); vertical-align: middle; }
.pl-conf__tabla tr:last-child td { border-bottom: 0; }
.pl-conf__tabla .c-precio { text-align: right; white-space: nowrap; font-weight: 700; font-size: 16px; }
.pl-conf__tabla .c-elegir { width: 1%; text-align: right; white-space: nowrap; }
.pl-conf__tabla tr.is-on td { background: #F1F3F4; }
.pl-conf__tabla tr.is-on td:first-child { box-shadow: inset 4px 0 0 var(--plv-tinta); }
.pl-conf__elegir[aria-pressed="true"] { background: var(--plv-tinta); color: #fff; }
.pl-conf__resto td { font-size: 14px; color: var(--plv-tinta-2); }
.pl-conf__resto a { font-weight: 700; color: var(--plv-tinta); text-decoration: underline; }
@media (max-width: 767px) {
	.pl-conf__tabla thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
	.pl-conf__tabla, .pl-conf__tabla tbody, .pl-conf__tabla tr, .pl-conf__tabla td { display: block; }
	.pl-conf__tabla tr { padding: 10px 12px; border-bottom: 1px solid var(--plv-linea); }
	.pl-conf__tabla td { padding: 2px 0; border: 0; }
	.pl-conf__tabla td[data-et]::before { content: attr(data-et) ": "; color: var(--plv-tinta-3); font-size: 13px; }
	.pl-conf__tabla .c-precio, .pl-conf__tabla .c-elegir { text-align: left; width: auto; }
	.pl-conf__tabla .c-elegir .pl-btn { margin-top: 6px; }
}

/* ordenador: galería al 58-60 % con miniaturas a la izquierda y la información en columnas */
@media (min-width: 992px) {
	#product-product .product-page__image .pl-conf { margin: 32px 0 8px; }
	html.pl-con-fc #product-product .breadcrumb-h1 { margin-bottom: 8px; }
	html.pl-ficha-col #product-product .pl-info .tab-content { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 40px; }
	html.pl-ficha-col #product-product .pl-info__h { font-size: 22px; }
}
@media (min-width: 1440px) {
	html.pl-ficha-col #product-product .pl-info .tab-content { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
	html.pl-ficha-col #product-product .pl-info #tab-description { grid-column: 1; }
	html.pl-ficha-col #product-product .pl-info #tab-specification { grid-column: 2; grid-row: 1; }
	html.pl-ficha-col #product-product .pl-info #tab-download, html.pl-ficha-col #product-product .pl-info #tab-additional, html.pl-ficha-col #product-product .pl-info #tab-review { grid-column: 1 / -1; }
}

/* ficha · invitado: la tarjeta «Precio para profesionales», compacta (como la maqueta) */
#product-product .price-login-required { margin: 16px 0 12px; padding: 16px 20px; border: 1px solid var(--plv-linea); border-radius: 12px; background: #fff; }
#product-product .price-login-required__header h3 { margin: 0 0 6px; font-size: 19px; font-weight: 700; color: var(--plv-tinta); }
#product-product .price-login-required__header h3 .fa { font-size: 16px; color: var(--plv-tinta-2); margin-right: 6px; }
#product-product .price-login-required__benefits, #product-product .price-login-required__info { display: none; }
#product-product .price-login-required__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 8px 0 0; }
#product-product .price-login-required__ask-btn { width: auto; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; font-size: 15px; }
#product-product .price-login-required__login { margin: 0; font-size: 14px; color: var(--plv-tinta-2); }
#product-product .price-login-required__login a { color: var(--plv-tinta); font-weight: 700; text-decoration: underline; }
#product-product .price-login-required__register-btn { width: auto; min-height: 40px; padding: 0 14px; font-size: 14px; background: #fff; color: var(--plv-tinta); border: 1.5px solid var(--plv-linea-f) !important; }

/* ficha · ordenador: columna de la galería sobre gris, foto grande en tarjeta blanca; panel con raya */
@media (min-width: 992px) {
	#product-product .product-page > .row { gap: 0; }
	#product-product .product-page__image { background: var(--plv-sup); border-radius: 12px; padding: 16px 20px 24px; }
	#product-product .product-page__image-main { background: #fff; border-radius: 12px; }
	#product-product .product-page__image-main-img { max-height: 560px; width: 100% !important; height: auto; object-fit: contain; aspect-ratio: 4 / 3; }
	#product-product .product-block { padding-left: 40px; border-left: 1px solid var(--plv-linea); }
	#product-product .pl-conf { margin-top: 32px; }
}
/* miniaturas propias en columna (JS §d): 72 × 60, a la izquierda de la foto */
.pl-minis { display: none; }
@media (min-width: 992px) {
	html.pl-con-minis #product-product .product-page__image-addit { display: none !important; }
	html.pl-con-minis #product-product .product-page__image-wrapper { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 0 16px; align-items: start; }
	html.pl-con-minis #product-product .product-page__image-wrapper > .product-page__image-main { grid-column: 2; grid-row: 1; width: auto; margin: 0; }
	.pl-minis { display: grid; gap: 8px; grid-column: 1; grid-row: 1; align-content: start; }
	.pl-minis__btn { width: 80px; height: 66px; padding: 3px; border: 2px solid var(--plv-linea) !important; border-radius: 6px; background: #fff; cursor: pointer; }
	.pl-minis__btn:hover { border-color: var(--plv-linea-f) !important; }
	.pl-minis__btn.is-on { border-color: var(--plv-tinta) !important; }
	.pl-minis__btn:focus-visible { outline: 3px solid var(--plv-foco); outline-offset: 2px; }
	.pl-minis__btn img { width: 100%; height: 100%; object-fit: contain; }
}
/* información de la ficha en el ordenador: títulos y descargas en lista de dos columnas */
#product-product #tab-additional.pl-vacio { display: none !important; }
@media (min-width: 992px) {
	html.pl-ficha-col #product-product .pl-info { border-top: 0; margin-top: 16px; }
	html.pl-ficha-col #product-product #tab-specification > .heading { margin: 0 0 12px; font-size: 22px; font-weight: 700; color: var(--plv-tinta); }
	html.pl-ficha-col #product-product .pl-info .tab-pane { background: #fff; border-radius: 12px; padding: 20px 24px; }
	html.pl-ficha-col #product-product .product-download { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 8px 16px; margin: 0; }
	html.pl-ficha-col #product-product .product-download::before, html.pl-ficha-col #product-product .product-download::after { display: none; }
	html.pl-ficha-col #product-product .product-download__item { width: auto; float: none; padding: 0; margin: 0; }
	html.pl-ficha-col #product-product .product-download__item-inner { display: flex; align-items: center; gap: 12px; min-height: 56px; height: auto; padding: 8px 12px; border: 1px solid var(--plv-linea); border-radius: 8px; box-shadow: none; text-align: left; }
	html.pl-ficha-col #product-product .product-download__icon { flex: none; margin: 0; font-size: 22px; color: var(--plv-rojo); }
	html.pl-ficha-col #product-product .product-download__name { flex: 1 1 auto; margin: 0; font-size: 14px; font-weight: 500; line-height: 1.3; color: var(--plv-tinta); text-decoration: underline; }
	html.pl-ficha-col #product-product .product-download__size { flex: none; margin: 0; font-size: 12px; color: var(--plv-tinta-3); white-space: nowrap; }
}
/* barra de la lista: «Ordenar» y «Mostrar» propios; la barra del tema y «Mostrar más» (que carga en la cuadrícula) fuera */
#product-category:has(.pl-lista-barra) .sorts-block, #product-search:has(.pl-lista-barra) .sorts-block { display: none !important; }
html:not(.pl-vista-cuadricula) #product-category .show-more, html:not(.pl-vista-cuadricula) #product-search .show-more { display: none !important; }
.pl-lista-barra__der { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-left: auto; }
.pl-lista-barra__der .pl-vista { margin-left: 0; }
.pl-ordenar { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 14px; font-weight: 500; color: var(--plv-tinta-2); }
.pl-ordenar select { max-width: 220px; height: 42px; padding: 0 32px 0 12px; border: 1.5px solid var(--plv-linea-f); border-radius: 8px; background-color: #fff; font-size: 14px; color: var(--plv-tinta); }
@media (max-width: 767px) { .pl-lista-barra__der { width: 100%; justify-content: space-between; } .pl-ordenar:last-child { display: none; } }
/* ficha · compra: cantidad + «Añadir a la cesta» grande (como la maqueta) */
@media (min-width: 992px) {
	#product-product .product-block .product-page__cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; margin-top: 12px; }
	#product-product .product-block .product-page__cart #button-cart { flex: 1 1 220px; min-height: 56px; font-size: 18px; font-weight: 700; border-radius: 8px; }
	#product-product .product-block .product-page__cart .qty-switch { min-height: 56px; }
	#product-product .product-block .product-page__cart .product-page__quick-order { min-height: 56px; }
}
/* barra recogida de la ficha en el ordenador: precio + «Añadir a la cesta» cuando el del panel no se ve */
.pl-fija__compra { display: none; }
@media (min-width: 992px) {
	.pl-fija__compra:not([hidden]) { display: flex; align-items: center; gap: 12px; margin-left: 8px; }
	.pl-fija__precio { white-space: nowrap; font-size: 16px; color: var(--plv-tinta); }
	.pl-fija__precio small { color: var(--plv-tinta-2); font-size: 12px; }
	.pl-fija__anadir { min-height: 40px; padding: 0 16px; font-size: 15px; }
}
/* móvil: como la maqueta, el primer producto cerca: texto SEO a 1 línea y el resumen reducido a la cifra */
@media (max-width: 767px) {
	.pl-cat-desc { display: flex; align-items: baseline; gap: 8px; margin-bottom: 12px; }
	.pl-cat-desc:not(.is-abierta) .pl-cat-desc__txt { -webkit-line-clamp: 1; line-clamp: 1; max-height: 1.6em; flex: 1 1 auto; }
	.pl-cat-desc.is-abierta { display: block; }
	.pl-cat-resumen { padding: 10px 14px; margin-bottom: 12px; }
	.pl-cat-resumen p { margin: 0; }
	.pl-cat-resumen__peso, .pl-cat-resumen__btn, .pl-cat-resumen__acceso { display: none !important; }
	.pl-cat-resumen__n b { font-size: 16px; }
}

/* =====================================================================
   4. ARREGLOS 1.1 (revisión independiente de la M1.2 en pruebas, 11-oct)
   ===================================================================== */

/* A2 · foco de teclado visible en todo (cabecera, menús, migas, botones, campos). El tema y el
   user_css quitan el outline; esto va con más peso y !important. Azul sobre claro; blanco
   sobre el menú oscuro. */
html body :is(a, button, [role="button"], [tabindex]:not([tabindex="-1"]), input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--plv-foco) !important; outline-offset: 2px !important;
}
html body .pl-nav .pl-nav__item:focus-visible { outline: 3px solid #fff !important; outline-offset: -5px !important; }
html body .pl-nav .pl-nav__panel a:focus-visible { outline: 3px solid var(--plv-foco) !important; outline-offset: 2px !important; }
html body header #search .header-search__input:focus-visible { outline-offset: -3px !important; }

/* Migas: «Inicio» en texto (text_home); el tema le daba forma de icono */
.breadcrumb > li:first-child > a { font-size: 14px; color: var(--plv-tinta-2); text-decoration: underline; }
.breadcrumb > li:first-child > a > i { display: none; }

/* ---------- A3 · búsqueda: un solo buscador (el de la cabecera) y la tabla ---------- */
#product-search .search-page__search-block { display: none !important; }
#product-search .product-category-list { margin: 0 0 16px; padding: 12px 16px; border-radius: 12px; }
#product-search .product-category-list h4 { margin: 0 0 6px; font-size: 15px; }
#product-search .heading { margin: 8px 0 12px; font-size: 20px; }

/* ---------- M7 · cabecera del móvil como la maqueta ----------
   Fila 1: menú (tres rayas), logo, cesta. Fila 2: el buscador a todo el ancho con la cámara y
   la lupa dentro. Teléfono y WhatsApp solo en la barra de abajo (no arriba). */
@media (max-width: 991px) {
	body > header { position: relative; }
	header .header-block__item-telephone, header .header-block__item-account { display: none !important; }
	header > .container > .header-block { display: flex !important; align-items: center; gap: 8px; min-height: 64px; margin: 0; padding: 8px 0 8px 56px !important; }
	header > .container > .header-block::before, header > .container > .header-block::after { display: none; }
	header .header-block__item { float: none; margin: 0; padding: 0; width: auto; }
	header .header-block__item-logo { flex: 1 1 auto; min-width: 0; }
	html body header .header-logo__img { max-height: 40px !important; height: 40px !important; width: auto !important; }
	/* la M1.2b la quita cuando hay barra de abajo (html.pl-con-dock): en la maqueta, arriba también */
	html.pl-con-dock body > header .header-block__item-cart, body > header .header-block__item-cart { display: flex !important; flex: 0 0 auto; align-items: center; margin-left: auto; }
	header .header-block__item-cart .header-block__item-caption { display: none; }
	header .header-cart { position: relative; }
	header .header-cart__btn { min-width: 44px; min-height: 44px; }
	header .header-cart__icon { font-size: 22px; color: var(--plv-tinta); }
	header .header-cart__total-items { position: absolute; top: 2px; right: -2px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--plv-rojo); color: #fff; font-size: 12px; font-weight: 700; line-height: 20px; text-align: center; }
	/* las tres rayas: el botón del tema (abre su menú), arriba a la izquierda, sin texto a la vista */
	header .main-menu, header > .container > .row, header > .container:has(> .row > #search2) { position: static !important; }
	html body header .menu-open.btn { position: absolute !important; top: 10px; left: 12px; z-index: 3; display: inline-flex !important; align-items: center; justify-content: center; width: 44px; min-width: 44px; height: 44px; min-height: 44px; margin: 0; padding: 0; border: 0 !important; border-radius: 8px; background: none !important; color: var(--plv-tinta) !important; box-shadow: none; }
	html body header .menu-open.btn .menu-open__icon { width: 22px; height: 22px; margin: 0; }
	html body header .menu-open.btn .menu-open__title { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
	/* buscador */
	header #search2 { display: block !important; float: none; width: auto; margin: 0; padding: 0 16px 12px; }
	header > .container > .row:has(> #search2) { margin: 0 -15px; }
	header #search2 .header-search { width: 100%; margin: 0; padding: 0; }
	header #search2 .header-search__form { position: relative; display: flex !important; align-items: stretch; width: 100%; height: 50px; margin: 0; padding: 0; border: 2px solid var(--plv-tinta) !important; border-radius: 8px; background: #fff; overflow: hidden; box-shadow: none; }
	header #search2 .header-search__category { display: none !important; }
	header #search2 .header-search__input.form-control { position: static; flex: 1 1 auto; min-width: 0; width: auto; height: 46px; margin: 0; padding: 0 8px 0 14px !important; border: 0 !important; border-radius: 0; background: #fff; box-shadow: none; font-size: 16px; color: var(--plv-tinta); }
	header #search2 .header-search__input::placeholder { color: var(--plv-tinta-3); opacity: 1; }
	header #search2 .search-btn-clear { position: static !important; transform: none; flex: 0 0 40px; width: 40px; height: 46px; margin: 0; padding: 0; border: 0 !important; border-radius: 0; background: #fff; color: var(--plv-tinta-2); font-size: 22px; }
	header #search2 .search-btn-clear:not(.show) { display: none !important; }
	html body header #search2 .header-search__foto { display: flex !important; flex: 0 0 48px; width: 48px; height: 46px; margin: 0 !important; border-left: 1px solid var(--plv-linea) !important; color: var(--plv-tinta); font-size: 19px; }
	header #search2 .header-search__btn.search-btn { position: static !important; top: auto; right: auto; transform: none; flex: 0 0 52px; width: 52px; height: 46px; margin: 0; padding: 0; border: 0 !important; border-radius: 0; background: var(--plv-tinta); color: #fff; font-size: 17px; }
	header #search2 .live-search { left: 0; right: 0; top: 52px; }
}

/* ---------- M2 · ficha: datos técnicos con la etiqueta arriba y las normas sin partir ---------- */
#product-product #tab-specification td, #product-product #tab-specification th { vertical-align: top !important; }
#product-product #tab-specification td:first-child, #product-product #tab-specification th:first-child { width: 38%; padding-right: 12px; }
@media (min-width: 1440px) {
	html.pl-ficha-col #product-product .pl-info .tab-content { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}

/* ---------- M4 · configuraciones: la elegida bien marcada; con muchas, 5 y «Ver las N» ---------- */
.pl-conf__tabla tr.is-on td { background: #E9ECEF; font-weight: 700; color: var(--plv-tinta); }
.pl-conf__tabla tr.is-on .pl-estado { font-weight: 700; }
.pl-conf--plegable:not(.is-abierta) .pl-conf__tabla tr[data-pl-conf-fila]:nth-child(n+6):not(.is-on) { display: none; }
.pl-conf__mas { margin-top: 12px; }

/* ---------- M12 · configuraciones en el móvil ---------- */
@media (max-width: 767px) {
	.pl-conf__tabla tr.is-on td:first-child { box-shadow: none; }
	.pl-conf__tabla tr { padding-left: 16px; }
	.pl-conf__tabla tr.is-on { box-shadow: inset 4px 0 0 var(--plv-tinta); background: #E9ECEF; }
	.pl-conf__tabla tr.is-on td { background: none; }
}
@media (max-width: 991px) {
	#product-product .pl-conf { margin: 24px 0 72px; padding: 0 var(--pl-conf-margen, 11px); }
}

/* ---------- B1 · tabla de configuraciones (ordenador) ---------- */
.pl-conf__tabla th.c-precio { font-size: 13px; }
.pl-conf__tabla .c-elegir { padding-right: 16px; }
.pl-conf__resto .c-elegir { padding-right: 16px; }

/* ---------- B3 · icono pegado a «Registrar empresa» ---------- */
#product-product .price-login-required__register-btn i, #product-product .price-login-required__ask-btn i { margin-right: .4em; }

/* ---------- B7 · «+» y «−» de la cantidad de 32 px como mínimo ---------- */
/* el tema los pinta como <i> de 14 px apilados junto al campo: 32 × 28 cada uno (WCAG 2.5.8: 24) */
html body .qty-switch.type-1 { display: inline-flex; align-items: stretch; }
html body .qty-switch.type-1 > span { display: flex; flex-direction: column; justify-content: center; }
html body .qty-switch .qty-switch__btn { display: flex; align-items: center; justify-content: center; width: 32px; min-width: 32px; height: 28px; min-height: 28px; font-size: 12px; cursor: pointer; position: static; }

/* ---------- B12 · la cabecera de la tabla se queda al bajar (bajo la barra recogida) ---------- */
@media (min-width: 768px) {
	.pl-tabla thead th { position: sticky; top: 56px; z-index: 2; }
}

/* ---------- B13 · subfamilias: con el árbol a la vista, sin las píldoras repetidas ---------- */
@media (min-width: 992px) {
	#product-category .pl-subcats { display: none; }
}

/* ---------- M10 / B10 · cesta y pedido ---------- */
.pl-iva-nota { display: block; font-size: 12px; font-weight: 400; color: var(--plv-tinta-2); }

/* ---------- M9 · checkout: etiqueta visible encima de cada campo ---------- */
.pl-etiqueta { display: block; margin: 0 0 4px; font-size: 13px; font-weight: 700; color: var(--plv-tinta); }

/* ---------- M11 / B11 · acceso y cuenta ---------- */
.pl-acceso-h1 { margin: 8px 0 20px; font-size: 28px; font-weight: 700; color: var(--plv-tinta); }
html body .list-group a.list-group-item, html body .list-group-item { color: var(--plv-tinta-2); }
html body .list-group a.list-group-item:hover, html body .list-group a.list-group-item.active { color: var(--plv-tinta); }
#account-login .account-login__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding-top: 0; padding-bottom: 0; }
.error-not-found__404-text { color: var(--plv-tinta-2) !important; }

/* M4/B1 · con muchas características (151: 5 + disponibilidad + precio + elegir) la tabla no cabía
   en la columna de la galería y se cortaba «Elegir»: más compacta y, si aun así no cabe, se desplaza */
@media (min-width: 768px) {
	.pl-conf__caja { overflow-x: auto; }
	.pl-conf__tabla { font-size: 14px; }
	.pl-conf__tabla th, .pl-conf__tabla td { padding: 8px 8px; }
	.pl-conf__tabla td:not(.c-elegir):not(.c-precio) { min-width: 64px; }
	.pl-conf__tabla .c-precio { font-size: 15px; }
	.pl-conf__tabla .c-elegir .pl-btn { min-height: 40px; padding: 0 12px; }
}
/* M2 · «Datos técnicos» es una lista (li flex con la etiqueta en un div): la etiqueta, a la
   altura de la PRIMERA línea del valor */
html body #product-product #tab-specification .product-data__item { align-items: baseline !important; }
html body #product-product #tab-specification .product-data__item-div { align-self: baseline; flex: 0 0 38%; }
@media (min-width: 768px) {
	.pl-conf__tabla th, .pl-conf__tabla td { padding: 8px 6px; }
	.pl-conf__tabla .c-elegir, .pl-conf__resto .c-elegir { padding-right: 10px; }
}
html body .qty-switch.type-1 .qty-switch__input { height: auto; align-self: stretch; }
/* M9 · en el checkout varios campos van en una fila flex: cada uno, en su bloque con la etiqueta encima */
html body :has(> .pl-campo) { flex-wrap: wrap; gap: 0 16px; }
html body .pl-campo { flex: 1 1 calc(50% - 8px); min-width: 220px; margin: 0 0 12px; }
html body .pl-campo > .form-control { width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; margin-bottom: 0 !important; }
html body .pl-etiqueta { text-align: left; }
.pl-tabla th.c-peso { font-size: 13px; color: var(--plv-tinta-2); }
html body .checkout-customer .row-flex:has(> .pl-campo) { margin-left: 0; margin-right: 0; padding-left: 8px; }

/* =====================================================================
   5. CABECERA 1.2 (encargo de Nico, 12-oct): «Catálogo» en la franja negra, los enlaces de la
   cabecera en la misma línea, barra fija al bajar con lo esencial
   ===================================================================== */
/* franja fina: objetivos de 44 px (era 34) */
@media (min-width: 992px) {
	.pl-franja__in { min-height: 44px; }
	.pl-franja a { min-height: 44px; }
}
/* franja negra: «Catálogo» con tres rayas; megamenú con un grupo por sector (hoy, «Ascensor») */
@media (min-width: 992px) {
	.pl-nav__rayas { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
	.pl-nav__panel { max-height: calc(100vh - 120px); overflow-y: auto; overscroll-behavior: contain; }
	.pl-nav__sectores { max-width: 1720px; margin: 0 auto; padding: 16px 24px 24px; display: flex; gap: 40px; }
	.pl-nav__sector { flex: 1 1 0; min-width: 0; }
	.pl-nav__sector-t { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; padding: 0 0 10px; border-bottom: 1px solid var(--plv-linea); font-size: 17px; font-weight: 700; line-height: 1.3; color: var(--plv-tinta); }
	.pl-nav__sector .pl-nav__cols { max-width: none; margin: 0; padding: 0; gap: 8px 28px; }
	.pl-nav__raiz { min-height: 44px; }
	.pl-nav__col ul { margin: 0; }
	.pl-nav__col li a { min-height: 44px; }
	/* el panel en la barra fija: el mismo megamenú a todo el ancho, debajo de la barra */
	.pl-fija .pl-fija__cat { position: static; }
	.pl-fija .pl-fija__cats { left: 0; right: 0; top: 100%; min-width: 0; padding: 0; border-radius: 0; border-width: 0 0 1px; max-height: calc(100vh - 64px); overflow-y: auto; overscroll-behavior: contain; }
	.pl-fija .pl-fija__cats .pl-nav__raiz, .pl-fija .pl-fija__cats .pl-nav__col li a { display: inline-flex; padding: 0; }
	.pl-fija .pl-fija__cats .pl-nav__raiz { font-size: 15px; }
	.pl-fija .pl-fija__cats .pl-nav__col li a { font-size: 14px; color: var(--plv-tinta-2); }
	.pl-fija .pl-fija__cats .pl-nav__col li a:hover, .pl-fija .pl-fija__cats .pl-nav__raiz:hover { background: none; color: var(--plv-rojo); text-decoration: underline; }
	.pl-fija__catbtn svg:first-child { width: 20px; height: 20px; }
}
/* barra fija: el buscador ocupa el sitio que dejaban «Pedir presupuesto» y el teléfono */
@media (min-width: 992px) { .pl-fija .header-search { max-width: none; } }
/* barra fija sin logo (corrección 24 de Nico) */
.pl-fija__catbtn:focus-visible, .pl-fija__menu:focus-visible, .pl-fija__acc:focus-visible { outline: 3px solid var(--plv-foco) !important; outline-offset: 2px !important; }
/* menú del móvil: «Catálogo» y dentro el grupo «Ascensor» */
.pl-cat-sub-t { margin: 0; padding: 12px 20px 6px; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--plv-tinta-2); }

/* =====================================================================
   1.3 (13-oct): árbol de Ascensor y textos. Portada (prolift_portada.twig), pie (prolift_pie.twig),
   familias «Bajo pedido» y «Todas las familias» (prolift_cat_vacia.twig), megamenú del árbol.
   Guía §3.4: un bloque = un fondo = un h2 = una acción, con el límite a la vista.
   ===================================================================== */
:root { --plv-banda: #ECEAE5; --plv-sup-c: var(--pl-superficie, #F4F3F0); }
.pl-solo-lector { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.pl-pildora { display: inline-flex; align-items: center; min-height: 22px; padding: 0 8px; border-radius: 11px; font-size: 12px; font-weight: 700; line-height: 1.2; vertical-align: middle; white-space: nowrap; }
.pl-pildora--pedido { background: #FFF4E0; color: var(--plv-aviso); border: 1px solid #E8C98F; }
.pl-btn--tinta { background: var(--plv-tinta); color: #fff; border: 2px solid var(--plv-tinta) !important; }
.pl-btn--tinta:hover, .pl-btn--tinta:focus { background: #000; color: #fff; text-decoration: none; }

/* ---------- portada ---------- */
.home-page #content > .content-top:empty { display: none; }
.pl-home { display: flex; flex-direction: column; gap: 64px; margin: 8px 0 64px; color: var(--plv-tinta); }
.pl-home__b { position: relative; border-radius: 12px; }
.pl-home__in { padding: 40px 40px; }
.pl-home h2 { margin: 0 0 8px; font-size: 26px; line-height: 1.2; font-weight: 700; color: var(--plv-tinta); }
.pl-home__entra { margin: 0 0 24px; font-size: 16px; color: var(--plv-tinta-2); max-width: 70ch; }
/* 1 · presentación: banda gris cálido */
.pl-home__pres { background: var(--plv-sup-c); }
.pl-home__pres-in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px 48px; align-items: center; padding: 40px; }
.pl-home__pres h1 { margin: 0; font-size: clamp(27px, 2.4vw, 38px); line-height: 1.15; letter-spacing: -.01em; font-weight: 700; color: var(--plv-tinta); max-width: 26ch; }
.pl-home__pres-txt p { margin: 12px 0 0; font-size: 17px; line-height: 1.5; color: var(--plv-tinta-2); max-width: 62ch; }
.pl-home__contacto { background: #fff; border: 1px solid var(--plv-linea); border-radius: 12px; padding: 20px 24px; }
.pl-home__contacto-t { margin: 0; font-size: 18px; font-weight: 700; }
.pl-home__contacto-l { margin: 4px 0 14px; font-size: 15px; color: var(--plv-tinta-2); }
.pl-home__contacto-b { display: flex; flex-wrap: wrap; gap: 8px; }
@media (min-width: 992px) { .pl-home__pres-in { grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); } }
/* 2 · sellos: banda blanca con filete arriba y abajo, 4 columnas iguales (2 × 2 en el móvil) */
.pl-home__sellos { margin-top: -48px; background: #fff; border-top: 1px solid var(--plv-linea); border-bottom: 1px solid var(--plv-linea); border-radius: 0; }
.pl-sellos { list-style: none; margin: 0; padding: 16px 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.pl-sellos li + li { border-left: 1px solid var(--plv-linea); }
.pl-sello { display: flex; align-items: center; gap: 14px; height: 100%; min-height: 72px; padding: 8px 20px; color: var(--plv-tinta); text-decoration: none; }
.pl-sello:hover b { text-decoration: underline; }
.pl-sello:hover, .pl-sello:focus { color: var(--plv-tinta); text-decoration: none; }
.pl-sello__ico { flex: none; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--plv-sup-c); }
.pl-sello__ico svg { width: 28px; height: 28px; fill: none; stroke: var(--plv-tinta); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pl-sello__txt b { display: block; font-size: 16px; font-weight: 700; line-height: 1.25; }
.pl-sello__txt small { display: block; margin-top: 2px; font-size: 14px; font-weight: 400; line-height: 1.35; color: var(--plv-tinta-2); }
/* 3 · para quién trabajamos: blanco con borde, 3 tarjetas con filete rojo arriba */
.pl-home__publicos { background: #fff; border: 1px solid var(--plv-linea); }
.pl-publicos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.pl-publico { position: relative; display: flex; flex-direction: column; padding: 28px 24px 24px; border: 1px solid var(--plv-linea); border-radius: 10px; background: #fff; overflow: hidden; }
.pl-publico::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--plv-rojo); }
.pl-publico h3 { margin: 0 0 6px; font-size: 19px; font-weight: 700; line-height: 1.25; color: var(--plv-tinta); }
.pl-publico__dolor { margin: 0 0 12px; font-size: 16px; font-weight: 500; color: var(--plv-tinta); }
.pl-publico ul { margin: 0 0 20px; padding: 0 0 0 18px; color: var(--plv-tinta-2); font-size: 15px; line-height: 1.5; }
.pl-publico li + li { margin-top: 6px; }
.pl-publico .pl-btn { margin-top: auto; align-self: flex-start; white-space: normal; text-align: center; }
/* 4 · familias: banda gris cálido, mosaico del árbol */
.pl-home__familias { background: var(--plv-sup-c); }
.pl-mosaico2 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.pl-mosaico2 a { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--plv-linea); border-radius: 10px; overflow: hidden; color: var(--plv-tinta); text-decoration: none; }
.pl-mosaico2 a:hover, .pl-mosaico2 a:focus { border-color: var(--plv-tinta); color: var(--plv-tinta); text-decoration: none; }
.pl-mosaico2 a:hover .pl-mosaico2__ver { text-decoration: underline; }
.pl-mosaico2__foto { position: relative; display: block; aspect-ratio: 4 / 3; background: #fff; border-bottom: 1px solid var(--plv-linea); }
.pl-mosaico2__foto:empty { background: var(--plv-sup-c); }
.pl-mosaico2__foto img { position: absolute; inset: 8%; width: 84%; height: 84%; object-fit: contain; }
.pl-mosaico2__txt { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; flex: 1; padding: 14px 16px 16px; line-height: 1.3; }
.pl-mosaico2__h { font-size: 17px; font-weight: 700; }
.pl-mosaico2__txt small { font-size: 14px; color: var(--plv-tinta-2); }
.pl-mosaico2__ver { margin-top: auto; padding-top: 8px; font-size: 14px; font-weight: 700; color: var(--plv-tinta); }
.pl-home__todas { margin: 24px 0 0; }
/* 5 · cómo comprar / su cuenta: banda #ECEAE5 */
.pl-home__comprar { background: var(--plv-banda); }
.pl-pasos { list-style: none; margin: 0 0 20px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; counter-reset: pl-paso; }
.pl-pasos li { counter-increment: pl-paso; padding: 4px 0 4px 16px; border-left: 3px solid var(--plv-rojo); }
.pl-pasos b { display: block; font-size: 17px; }
.pl-pasos b::before { content: counter(pl-paso) ". "; }
.pl-pasos span { display: block; margin-top: 4px; font-size: 15px; color: var(--plv-tinta-2); }
.pl-home__cond { margin: 0 0 20px; font-size: 15px; color: var(--plv-tinta-2); max-width: 90ch; }
.pl-cuenta { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.pl-cuenta a { display: flex; flex-direction: column; gap: 2px; min-height: 64px; padding: 14px 18px; background: #fff; border: 1px solid var(--plv-linea); border-radius: 10px; color: var(--plv-tinta); text-decoration: none; }
.pl-cuenta a:hover { border-color: var(--plv-tinta); }
.pl-cuenta small { font-size: 14px; color: var(--plv-tinta-2); }
/* 6 · lo más pedido */
.pl-home__destacados { background: #fff; border: 1px solid var(--plv-linea); }
.pl-destacados { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }
.pl-destacados a { display: flex; flex-direction: column; height: 100%; border: 1px solid var(--plv-linea); border-radius: 10px; overflow: hidden; color: var(--plv-tinta); text-decoration: none; }
/* 7 · texto de la casa (h2), ancho de lectura */
.pl-home__casa { background: #fff; border: 1px solid var(--plv-linea); }
.pl-home__lectura { max-width: 760px; }
.pl-home__casa p { margin: 0 0 14px; font-size: 16px; line-height: 1.6; color: var(--plv-tinta-2); }
@media (max-width: 1279px) { .pl-mosaico2 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pl-destacados { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 991px) {
	.pl-home { gap: 48px; }
	.pl-home__in, .pl-home__pres-in { padding: 24px 16px; }
	.pl-home h2 { font-size: 22px; }
	.pl-home__pres h1 { font-size: 26px; }
	.pl-home__pres-txt p { font-size: 16px; }
	.pl-home__sellos { margin-top: -32px; }
	.pl-sellos { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 8px 0; }
	.pl-sellos li + li { border-left: 0; }
	.pl-sellos li:nth-child(2n) { border-left: 1px solid var(--plv-linea); }
	.pl-sellos li:nth-child(n+3) { border-top: 1px solid var(--plv-linea); }
	.pl-sello { flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px; }
	.pl-sello__ico { width: 44px; height: 44px; }
	.pl-sello__ico svg { width: 24px; height: 24px; }
	.pl-sello__txt b { font-size: 15px; }
	.pl-sello__txt small { font-size: 13px; }
	.pl-publicos, .pl-pasos, .pl-cuenta { grid-template-columns: minmax(0, 1fr); }
	.pl-mosaico2, .pl-destacados { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.pl-mosaico2__txt { padding: 10px 12px 12px; }
	.pl-mosaico2__h { font-size: 15px; }
	.pl-mosaico2__txt small { font-size: 13px; }
}
@media (max-width: 767px) {
	.home-page.container { padding-left: 16px; padding-right: 16px; }
	.pl-home__b { border-radius: 10px; }
}

/* ---------- categoría: «Todas las familias» y «Bajo pedido» ---------- */
.pl-cat-pedido { margin: 4px 0 0; }
.pl-familias { margin: 0 0 32px; }
.pl-familias h2 { margin: 0 0 16px; font-size: 22px; }
.pl-mosaico2--todas .pl-pildora { margin: 2px 0; }
.pl-bajo-pedido { margin: 0 0 32px; padding: 28px; background: var(--plv-sup-c); border-radius: 12px; }
.pl-bajo-pedido h2 { margin: 0 0 8px; font-size: 22px; }
.pl-bajo-pedido p { margin: 0 0 16px; font-size: 16px; color: var(--plv-tinta-2); }
.pl-bajo-pedido__b { display: flex; flex-wrap: wrap; gap: 12px; }
.pl-arbol__sec a { display: inline-flex; align-items: center; min-height: 36px; color: inherit; text-decoration: none; }
.pl-arbol__sec a:hover, .pl-arbol__sec a[aria-current] { text-decoration: underline; }
.pl-arbol__sel { margin-top: 8px !important; padding-top: 8px !important; border-top: 1px solid var(--plv-linea); }
.pl-arbol .pl-pildora { margin-left: 6px; }

/* ---------- megamenú del árbol ---------- */
.pl-nav__sector-t a { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-decoration: none; }
.pl-nav__sector-t a:hover { text-decoration: underline; color: var(--plv-rojo); }
.pl-nav__otras { display: flex; flex-wrap: wrap; gap: 4px 24px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--plv-linea); }
.pl-nav__otras a { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; font-weight: 700; color: var(--plv-tinta); }
.pl-nav__otras a:hover { color: var(--plv-rojo); }
.pl-nav .pl-pildora { margin-left: 6px; }
.pl-cat-sub-a .pl-pildora { margin-left: 8px; }
.pl-cat-sub-a--sel { border-top: 1px solid var(--plv-linea); font-weight: 700; }

/* ---------- pie (banda en tinta; acordeón en el móvil) ---------- */
footer.footer { background: var(--plv-tinta) !important; color: #fff; border-top: 0; }
footer.footer .footer__socials-payments { background: var(--plv-tinta); border-top: 1px solid rgba(255,255,255,.15); }
.pl-pie { color: rgba(255,255,255,.86); font-size: 15px; line-height: 1.5; }
.pl-pie__in::before, .pl-pie__in::after { content: none !important; display: none !important; }
.pl-pie__in { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 32px; padding-top: 48px; padding-bottom: 32px; }
.pl-pie__h { display: flex; align-items: center; justify-content: space-between; min-height: 44px; margin: 0 0 8px; font-size: 16px; font-weight: 700; color: #fff; list-style: none; cursor: default; }
.pl-pie__h::-webkit-details-marker { display: none; }
.pl-pie p { margin: 0 0 12px; }
.pl-pie ul { list-style: none; margin: 0; padding: 0; }
.pl-pie li { margin: 0; }
footer.footer .pl-pie a, footer.footer .pl-pie a:visited, footer.footer .pl-pie a:hover { color: #fff !important; }
.pl-pie a { display: inline-flex; align-items: center; min-height: 32px; color: #fff; text-decoration: underline; text-decoration-color: rgba(255,255,255,.35); text-underline-offset: 3px; }
.pl-pie a:hover, .pl-pie a:focus { color: #fff; text-decoration-color: #fff; }
.pl-pie a:focus-visible, .pl-pie summary:focus-visible { outline: 3px solid #fff !important; outline-offset: 2px; }
.pl-pie__datos li { min-height: 32px; display: flex; align-items: center; flex-wrap: wrap; gap: 0 6px; }
.pl-pie__fin { border-top: 1px solid rgba(255,255,255,.15); }
.pl-pie__fin p { margin: 0; padding: 16px 0; font-size: 14px; color: rgba(255,255,255,.78); }
@media (max-width: 991px) {
	.pl-pie__in { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 24px; }
	.pl-pie__col--prolift { padding-bottom: 16px; }
	details.pl-pie__col { border-top: 1px solid rgba(255,255,255,.15); }
	details.pl-pie__col > summary { cursor: pointer; margin: 0; }
	details.pl-pie__col > summary::after { content: ""; width: 10px; height: 10px; border-right: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(45deg); margin-right: 4px; }
	details.pl-pie__col[open] > summary::after { transform: rotate(-135deg); }
	details.pl-pie__col ul { padding-bottom: 12px; }
	.pl-pie a { min-height: 44px; }
}

/* ---------- alta y formas de pago ---------- */
.pl-ayuda-campo { margin: 6px 0 0; font-size: 14px; color: var(--plv-tinta-2); }
.pl-pago-pronto { margin: 0 0 10px; font-size: 14px; color: var(--plv-tinta-2); }

/* =====================================================================
   1.4 (13-oct, m12-arreglos-roles): arreglos de los informes de diseño, SEO y revisor independiente
   ===================================================================== */
/* H-1: la ficha no se enseña a medio montar (sin saltos). «pl-js» lo pone la cabecera; «pl-listo»,
   vista-m12.js cuando el h1, la información y el panel ya están en su sitio. Red de seguridad: 2,5 s */
@keyframes pl-ver { to { visibility: visible; } }
html.pl-js:not(.pl-listo) #product-product { visibility: hidden; animation: pl-ver 0s 2.5s forwards; }
@media (min-width: 992px) {
	/* la foto grande (500 px) cambia la de 228 sin cambiar de alto */
	#product-product .product-page__image-main-img { aspect-ratio: 1 / 1; width: 100%; height: auto; object-fit: contain; }
}
/* H-2: el «más» del texto de la categoría ocupa su sitio desde el principio */
.pl-cat-desc__mas.is-sin-medir, .pl-cat-desc__mas.is-nada { visibility: hidden; }

/* A2: la tabla de la categoría cabe entera a 1.280 y 1.366 (antes se cortaba el precio) */
@media (min-width: 992px) and (max-width: 1439px) {
	.pl-tabla th, .pl-tabla td { padding-left: 8px; padding-right: 8px; }
	.pl-tabla .c-foto { width: 64px; }
	.pl-tabla .c-foto a { width: 52px; height: 52px; }
	.pl-tabla .c-ref .pl-copiar__txt { display: none; }
	.pl-tabla .c-ref .pl-copiar { min-width: 44px; min-height: 44px; justify-content: center; }
	.pl-tabla .c-ref .pl-cod { word-break: break-all; }
	.pl-tabla .c-precio { white-space: normal; width: 1%; }
	.pl-tabla .c-precio .pl-btn { white-space: normal; text-align: center; min-width: 96px; max-width: 150px; padding: 4px 12px; }
	.pl-tabla .pl-cant { width: 52px; }
}

/* H-3: toques de 44 px en familia y ficha (móvil) sin cambiar el alto de las filas */
@media (max-width: 991px) {
	.pl-subcats a, .pl-subcats__on, .pl-vista__btn { min-height: 44px; }
	.pl-ordenar select { height: 44px; }
	.pl-tabla .pl-btn { min-height: 44px; }
	.pl-tabla .pl-copiar, .pl-copiar { min-width: 44px; min-height: 44px; justify-content: center; }
	.pl-tabla__nom, #product-category .breadcrumb a, #product-product .breadcrumb a { display: inline-block; padding-top: 12px; padding-bottom: 12px; margin-top: -12px; margin-bottom: -12px; }
	.pl-cat-desc__mas { min-height: 44px; min-width: 44px; }
	.menu-close, #product-product .product-page__share-btn, #product-product [class*="share"] > button { min-width: 44px; min-height: 44px; }
	#product-product .price-login-required a { min-height: 44px; }
	.pl-cat-resumen a { display: inline-block; padding-top: 12px; padding-bottom: 12px; margin-top: -12px; margin-bottom: -12px; }
}

/* H-5: páginas de información a 760 px de ancho de lectura, con aire entre apartados */
.pl-lectura { max-width: 760px; }
.pl-lectura h2 { margin: 32px 0 8px; font-size: 22px; line-height: 1.25; }
.pl-lectura p, .pl-lectura li { font-size: 16px; line-height: 1.6; }

/* H-6: familia sin foto = icono de línea, no un hueco gris */
.pl-mosaico2__foto--ico { display: grid; place-items: center; background: #fff; }
.pl-mosaico2__ico { display: grid; place-items: center; width: 80px; height: 80px; border-radius: 50%; background: var(--plv-sup-c); }
.pl-mosaico2__ico svg { width: 36px; height: 36px; fill: none; stroke: var(--plv-tinta); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* H-8: raíz, familia y «Bajo pedido» con la misma cabecera; escala de la guía (h1 30 / 24 en el móvil) */
@media (min-width: 992px) {
	#product-category .breadcrumb-h1:has(.pl-cat-resumen) h1 { font-size: 30px; }
}
@media (max-width: 991px) {
	#product-category .breadcrumb-h1 h1 { font-size: 24px; line-height: 1.2; }
}
.pl-cat-pedido { display: none; }

/* H-10 y H-11: fondos que alternan; el texto de la casa sin caja blanca vacía */
.pl-home__comprar { background: #fff; border: 1px solid var(--plv-linea); }
.pl-home__casa { background: var(--plv-sup-c); border: 0; }

/* H-4: un solo juego de iconos (línea, trazo 1,8): los de Font Awesome de la cabecera pasan al
   dibujo de la barra fija y la del móvil (la misma cesta en todas partes) */
header .header-account__icon, header .header-cart__icon, header .header-search__foto > .fa-camera, header .header-search__btn > .fa-search, .menu-open__icon, .menu-close {
	display: inline-block; width: 22px; height: 22px; font-size: 0 !important; line-height: 0; vertical-align: middle;
	background: currentColor; -webkit-mask: var(--pl-ico) center / contain no-repeat; mask: var(--pl-ico) center / contain no-repeat;
}
header .header-account__icon { --pl-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E"); }
header .header-cart__icon { --pl-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2l2.4 11h10.2L20 7H6.2'/%3E%3Ccircle cx='9' cy='19.5' r='1.5'/%3E%3Ccircle cx='17' cy='19.5' r='1.5'/%3E%3C/svg%3E"); }
header .header-search__foto > .fa-camera { --pl-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l2-3h6l2 3h3v11H4z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%3E%3C/svg%3E"); width: 20px; height: 20px; }
header .header-search__btn > .fa-search { --pl-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E"); width: 18px; height: 18px; }
.menu-open__icon { --pl-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E"); }
.menu-close { --pl-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E"); -webkit-mask-size: 22px; mask-size: 22px; }
/* menú del móvil sin iconos macizos (llama de «Outlet», camión, engranajes…) */
.menu__level-1-icon { display: none !important; }
.pl-franja svg, .pl-home__contacto svg, .pl-btn svg { stroke-width: 1.8; }
/* H-13: el botón «subir» del tema solo en el ordenador, del tamaño y color de la casa; «Buscar», rojo también en el móvil */
@media (max-width: 991px) { .fly-block { display: none !important; } }
@media (min-width: 992px) { .fly-block__scrollup { width: 44px; height: 44px; background: var(--plv-tinta) !important; color: #fff; } }
header .header-search__btn { background: var(--plv-rojo) !important; color: #fff !important; }

/* panel de precio de la ficha (textos de TEXTOS §7): un mensaje, una acción principal */
#product-product .price-login-required__t { margin: 0 0 4px; font-size: 18px; font-weight: 700; color: var(--plv-tinta); }
#product-product .price-login-required__acceder { width: auto; display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; font-size: 15px; }
#product-product .price-login-required__info { display: block; margin: 12px 0 0; font-size: 14px; line-height: 1.5; color: var(--plv-tinta-2); }
#product-product .price-login-required__info a { color: var(--plv-tinta); font-weight: 700; text-decoration: underline; }

/* pedido: condiciones antes de «Confirmar pedido» (revisor M1); alta con h1 */
.pl-pedido-cond { margin: 0 0 10px; font-size: 13px; line-height: 1.5; color: var(--plv-tinta-2); }
.pl-pedido-cond a { color: var(--plv-tinta); text-decoration: underline; }
#account-register h1.account-register__heading { margin: 0 0 6px; font-size: 30px; line-height: 1.2; }
.account-register__para { margin: 0 0 8px; font-size: 16px; color: var(--plv-tinta-2); }
@media (max-width: 991px) { #account-register h1.account-register__heading { font-size: 24px; } }

/* =====================================================================
   1.5 (15-oct, m12-arreglos-roles; Nico 15-oct, punto 7): PANEL DE LA FICHA COMPACTO en el ordenador.
   «Añadir a la cesta» a la vista sin bajar de 1.280 a 1.920 (fichas 196, 151 y 203): arriba lo que
   decide la compra (nombre, referencia, precio, selector y cesta); debajo, el resumen, las normas y
   el desglose del precio. Solo CSS: el orden lo da «order» (la cabecera .pl-fc se abre con
   display: contents para que sus piezas se puedan ordenar). El móvil no cambia.
   ===================================================================== */
@media (min-width: 992px) {
	#product-product .product-block { display: flex; flex-direction: column; }
	#product-product .product-block > * { order: 20; }
	#product-product .product-block > .pl-fc { display: contents; }
	#product-product .product-block .pl-fc__marca { order: 1; margin: 0 0 2px; font-size: 14px; }
	#product-product .product-block .pl-fc__h1 { order: 2; }
	#product-product .product-block .pl-fc__h1 h1 { margin-top: 0; font-size: clamp(26px, 2vw, 36px); }
	#product-product .product-block .pl-fc__ref { order: 3; margin-top: 8px; }
	#product-product .product-block .pl-fc__cod { font-size: 20px; padding: 2px 8px; }
	#product-product .product-block > .product-data { order: 4; }
	#product-product .product-block > .product-page__price { order: 5; margin-top: 10px !important; font-size: clamp(32px, 2.6vw, 44px); }
	#product-product .product-block > .pl-iva { order: 6; margin: 0 0 2px; }
	#product-product .product-block > .pl-sel { order: 7; margin: 8px 0 0; }
	#product-product .product-block > .product-page__option { order: 8; }
	#product-product .product-block > .product-page__cart { order: 9; margin: 10px 0 12px !important; }
	#product-product .product-block > .price-login-required { order: 9; }
	#product-product .product-block .pl-fc__resumen { order: 10; margin: 4px 0 0; font-size: 15px; line-height: 1.5; }
	#product-product .product-block .pl-normas { order: 11; margin: 10px 0 0; }
	#product-product .product-block > .pl-desglose { order: 12; margin-top: 16px; }
	#product-product .product-block > .pl-desglose__nota { order: 13; }
	#product-product .product-block > .product-page__wishlist-compare { order: 14; }
	/* la cesta y su cantidad, de 52 px y sin el margen de abajo del tema */
	#product-product .product-block .product-page__cart #button-cart,
	#product-product .product-block .product-page__cart .product-page__quick-order { min-height: 52px; margin-bottom: 0; }
	#product-product .product-block .product-page__cart .qty-switch { min-height: 52px; height: 52px; }
	/* selector: cada característica en una línea (nombre a la izquierda, valores a la derecha) */
	#product-product .pl-sel .pl-sel__car { display: grid; grid-template-columns: 108px minmax(0, 1fr); align-items: center; gap: 0 10px; margin-bottom: 6px; }
	#product-product .pl-sel .pl-sel__nombre { margin: 0; font-size: 13px; line-height: 1.25; }
	#product-product .pl-sel .pl-sel__vals { gap: 4px; }
	#product-product .pl-sel .pl-sel__btn { min-height: 34px; padding: 2px 9px; font-size: 13px; }
	#product-product .pl-sel .pl-sel__fijas { margin: 2px 0 4px; font-size: 12px; }
	#product-product .pl-sel .pl-sel__res { padding: 4px 10px; font-size: 13px; }
	/* precio e «IVA no incluido» en la misma línea: el panel va en filas que envuelven (todo a lo
	   ancho salvo esas dos piezas) */
	#product-product .product-block { flex-direction: row; flex-wrap: wrap; align-items: flex-end; align-content: flex-start; padding-left: 32px; }
	#product-product .product-block > *, #product-product .product-block > .pl-fc > * { flex: 0 0 100%; min-width: 0; }
	#product-product .product-block > .product-page__price { flex: 0 0 auto; margin-right: 12px; }
	#product-product .product-block > .pl-iva { flex: 1 1 auto; padding-bottom: 4px; }
	#product-product .pl-sel .pl-sel__car { margin-bottom: 4px; }
	#product-product .pl-sel .pl-sel__btn { min-height: 30px; padding: 2px 8px; }
	#product-product .pl-sel .pl-sel__vals { gap: 3px; }
	#product-product .product-block .pl-fc__ref .pl-copiar { min-height: 36px; }
	/* menos aire entre la cabecera, las migas y la ficha */
	body:has(#product-product) > main, main:has(#product-product) { padding-top: 12px; }
	#product-product #product.uni-wrapper { padding-top: 4px; }
}
/* palabras con guion (AE-SMART, AE-LIFT) sin partir en dos renglones (lo pone el JS de la ficha) */
.pl-sin-partir { white-space: nowrap; }

/* 1.5 (CLS del móvil): la banda .top-menu del tema (34 px, sin nada visible en el móvil) la quitaba
   el JS de la cabecera al cargar y empujaba toda la página 34 px (CLS 0,04). Fuera desde el CSS. */
@media (max-width: 991px) {
	header .top-menu { display: none !important; }
}

/* 1.5 (CLS 0 en el ordenador): los textos de la cabecera que ponía el JS al cargar («Buscar»,
   «Identificar por foto», «Acceder» / «Mi cuenta», «Cesta») cambiaban el ancho de los botones y
   movían el buscador (CLS 0,002). Ahora salen del CSS desde el primer pintado; los del JS se ocultan. */
@media (min-width: 992px) {
	header #search .header-search__btn.search-btn::after { content: 'Buscar'; }
	header #search .pl-buscar-txt { display: none !important; }
	header .header-block__item-account .header-block__item-caption,
	header .header-block__item-cart .header-block__item-caption { font-size: 0 !important; }
	header .header-block__item-account .header-block__item-caption::after { content: 'Mi cuenta'; font-size: 13px; }
	header .header-block__item-account .header-account.uni-href ~ .header-block__item-caption::after { content: 'Acceder'; }
	header .header-block__item-cart .header-block__item-caption::after { content: 'Cesta'; font-size: 13px; }
}
@media (min-width: 1280px) {
	header #search .header-search__foto::after { content: 'Identificar por foto'; font-size: 15px; white-space: nowrap; }
	header #search .header-search__foto .pl-foto-txt { display: none !important; }
}

/* 1.5 (CLS 0 en la ficha a 1.440): la caja de la foto grande tiene su alto desde el principio
   (cuadrada, hasta 562 px); antes crecía de 345 a 562 al cargar la foto y empujaba la tabla de
   configuraciones (CLS 0,002) */
@media (min-width: 992px) {
	#product-product .product-page__image-main { aspect-ratio: 1 / 1; max-height: 562px; overflow: hidden; }
}

/* =====================================================================
   Claridad 1.0 (15-oct-2026): mejoras del informe de Raloe aprobadas por Nico (CORRECCIONES 75-78).
   Cada una quita pasos o ruido. Sin colores nuevos: tinta, gris cálido y el rojo solo para avanzar.
   ===================================================================== */

/* mejora 10: Montserrat en subconjunto latino (español completo, «€», comillas y guiones) y los iconos
   del tema solo con los que se usan. Mismo nombre y grosor que los del tema: como esta hoja va DETRÁS,
   estas reglas mandan y el navegador ya no pide los ficheros grandes. font-display: optional en el texto
   y block en los iconos (un icono nunca sale como letra).
   W25 (31-10, revisión final M8/M17): era «swap». Con el preload casi siempre llega antes de pintar, pero cuando
   llegaba tarde el texto cambiaba de ancho y movía la página (CLS de 0,009-0,015 en la búsqueda y en /aybey.html,
   medido retrasando los .woff2): «optional» deja esa visita con la letra de reserva y la siguiente ya la tiene. */
@font-face { font-family: 'Montserrat'; font-weight: 400; font-style: normal; font-display: optional; src: url('fuentes/montserrat-regular-latin.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-weight: 500; font-style: normal; font-display: optional; src: url('fuentes/montserrat-medium-latin.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-weight: 700; font-style: normal; font-display: optional; src: url('fuentes/montserrat-bold-latin.woff2') format('woff2'); }
@font-face { font-family: 'Font Awesome 5 Free'; font-weight: 900; font-style: normal; font-display: block; src: url('fuentes/fa-solid-900-sub.woff2?v=2') format('woff2'); }

/* mejora 3: el dato que decide, en una línea gris debajo del nombre */
.pl-tabla__clave { display: block; margin-top: 4px; font-size: 13px; line-height: 1.4; color: var(--plv-tinta-2); }
.pl-tabla__clave b { font-weight: 700; color: var(--plv-tinta); }
/* (sin nowrap: con sesión la columna del precio lleva cantidad y botón, y una línea larga sin cortes
   ensanchaba el nombre y sacaba «Añadir» por la derecha a 1.440) */

/* mejora 9: un solo filtro, como las subfamilias (píldoras) */
.pl-filtro { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; flex: 1 1 100%; min-width: 0; margin: 0 0 4px; }
.pl-filtro__et { font-size: 14px; font-weight: 700; color: var(--plv-tinta); margin-right: 4px; }
.pl-filtro a, .pl-filtro__on { display: inline-flex; align-items: center; gap: 4px; min-height: 40px; padding: 0 14px; border: 1px solid var(--plv-linea-f); border-radius: 999px; font-size: 14px; color: var(--plv-tinta); text-decoration: none; background: #fff; }
.pl-filtro a:hover { border-color: var(--plv-tinta); background: var(--plv-sup); color: var(--plv-tinta); }
.pl-filtro a:focus-visible { outline: 3px solid var(--plv-foco); outline-offset: 2px; }
.pl-filtro__on { background: var(--plv-tinta); border-color: var(--plv-tinta); color: #fff; font-weight: 700; }
.pl-filtro small { font-size: 12px; opacity: .85; }
/* 16-oct (m12-holded-outlet-16oct): con las fichas nuevas, Botoneras de cabina pasa de 8 fichas y sale su filtro
   por medidas, con valores largos («1.100 × 200 mm, estándar (media altura); otras medidas, bajo pedido»): la
   píldora parte la línea y nunca pasa del ancho (a 390 sacaba 146 px por la derecha) */
.pl-filtro a, .pl-filtro__on { max-width: 100%; white-space: normal; line-height: 1.3; padding-top: 6px; padding-bottom: 6px; overflow-wrap: anywhere; }
@media (max-width: 767px) {
	.pl-filtro { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
	.pl-filtro a, .pl-filtro__on, .pl-filtro__et { flex: none; }
}

/* mejora 4: «Repuestos de este equipo», lista corta fija (no carrusel) */
.pl-repuestos { margin: 32px 0; padding: 24px; background: #fff; border: 1px solid var(--plv-linea); border-radius: 12px; }
.pl-repuestos h2 { margin: 0 0 12px; font-size: 22px; font-weight: 700; color: var(--plv-tinta); }
.pl-repuestos__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(440px, 1fr)); gap: 10px; }
.pl-repuestos__item { display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 8px 14px 8px 8px; border: 1px solid var(--plv-linea); border-radius: 10px; color: var(--plv-tinta); text-decoration: none; }
.pl-repuestos__item:hover, .pl-repuestos__item:focus { border-color: var(--plv-tinta); color: var(--plv-tinta); text-decoration: none; }
.pl-repuestos__item:focus-visible { outline: 3px solid var(--plv-foco); outline-offset: 2px; }
.pl-repuestos__foto { flex: none; width: 64px; height: 64px; display: grid; place-items: center; background: var(--plv-sup-c); border-radius: 8px; overflow: hidden; }
.pl-repuestos__foto img { width: 64px; height: 64px; object-fit: contain; background: #fff; }
.pl-repuestos__txt { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0; line-height: 1.3; }
.pl-repuestos__txt b { font-size: 15px; }
.pl-repuestos__txt small { font-size: 13px; color: var(--plv-tinta-2); }
.pl-repuestos__ver { flex: none; font-size: 14px; font-weight: 700; }
.pl-repuestos__item:hover .pl-repuestos__ver { text-decoration: underline; }
@media (max-width: 767px) {
	.pl-repuestos { padding: 16px; margin: 24px 0; }
	.pl-repuestos__lista { grid-template-columns: minmax(0, 1fr); }
	.pl-repuestos__ver { display: none; }
}

/* mejora 1: familias parecidas cuando no sale ninguna ficha */
.pl-parecidas { margin: 16px 0; padding: 20px; background: var(--plv-sup-c); border-radius: 12px; max-width: 760px; }
.pl-parecidas h2 { margin: 0 0 12px; font-size: 18px; font-weight: 700; color: var(--plv-tinta); }
.pl-parecidas ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pl-parecidas .pl-btn { white-space: normal; text-align: left; min-height: 40px; padding: 6px 14px; border-width: 1px !important; border-radius: 999px; font-size: 14px; }

/* fila 76: el carrusel de la portada (el único de la web). Sin auto-avance; desliza con el dedo,
   con las flechas o con el teclado; tarjetas de tamaño fijo desde el principio (CLS 0) */
.pl-home__carrusel { background: #fff; border: 1px solid var(--plv-linea); }
.pl-carrusel__cab { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.pl-carrusel__nav { display: flex; gap: 8px; flex: none; margin-bottom: 24px; }
.pl-carrusel__btn { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 2px solid var(--plv-tinta) !important; border-radius: 50%; background: #fff; color: var(--plv-tinta); cursor: pointer; }
.pl-carrusel__btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.pl-carrusel__btn:hover { background: var(--plv-sup); }
.pl-carrusel__btn:focus-visible { outline: 3px solid var(--plv-foco); outline-offset: 2px; }
.pl-carrusel__btn[disabled] { border-color: var(--plv-linea-f) !important; color: var(--plv-linea-f); cursor: default; background: #fff; }
.pl-carrusel { list-style: none; margin: 0; padding: 0 0 8px; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 4); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain; scrollbar-width: thin; }
.pl-carrusel > li { scroll-snap-align: start; min-width: 0; }
.pl-carrusel a { display: flex; flex-direction: column; height: 100%; border: 1px solid var(--plv-linea); border-radius: 10px; overflow: hidden; color: var(--plv-tinta); text-decoration: none; }
.pl-carrusel a:hover, .pl-carrusel a:focus { border-color: var(--plv-tinta); color: var(--plv-tinta); text-decoration: none; }
.pl-carrusel a:hover .pl-mosaico2__ver { text-decoration: underline; }
.pl-carrusel a:focus-visible { outline: 3px solid var(--plv-foco); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .pl-carrusel { scroll-behavior: auto; } }
@media (max-width: 1279px) { .pl-carrusel { grid-auto-columns: calc((100% - 32px) / 3); } }
@media (max-width: 991px) { .pl-carrusel { grid-auto-columns: 46%; gap: 10px; } .pl-carrusel__nav { margin-bottom: 16px; } }
@media (max-width: 767px) { .pl-carrusel { grid-auto-columns: 62%; } }

/* mejora 8 (aprobada por Nico): en el móvil, las familias justo debajo de la presentación y en lista
   compacta (foto pequeña + nombre), a la vista sin abrir el menú. El orden del HTML y del ordenador no
   cambia. Los sellos bajan detrás de las familias, sin pegarse a la presentación. */
@media (max-width: 767px) {
	/* «Llamar o WhatsApp» ya está en la barra fija del móvil (Llamar · WhatsApp · Cuenta · Cesta):
	   no se repite en la presentación y las familias entran en la primera pantalla (mejoras 7 y 8) */
	.pl-home__contacto { display: none; }
	.pl-home { gap: 32px; }
	.pl-home > .pl-home__b { order: 3; }
	.pl-home > .pl-home__pres { order: 0; }
	.pl-home > .pl-home__familias { order: 1; }
	.pl-home > .pl-home__sellos { order: 2; margin-top: -24px; border-radius: 10px; }
	.pl-home__familias .pl-home__in { padding-top: 20px; padding-bottom: 20px; }
	.pl-home__familias .pl-home__entra { margin-bottom: 12px; }
	.pl-home__familias .pl-mosaico2 { grid-template-columns: minmax(0, 1fr); gap: 8px; }
	.pl-home__familias .pl-mosaico2 a { flex-direction: row; align-items: center; min-height: 64px; }
	.pl-home__familias .pl-mosaico2__foto { flex: none; width: 64px; aspect-ratio: 1 / 1; border-bottom: 0; border-right: 1px solid var(--plv-linea); }
	.pl-home__familias .pl-mosaico2__foto img { inset: 6%; width: 88%; height: 88%; }
	.pl-home__familias .pl-mosaico2__txt { padding: 8px 12px; gap: 2px; }
	.pl-home__familias .pl-mosaico2__txt small, .pl-home__familias .pl-mosaico2__ver { display: none; }
	.pl-home__familias .pl-home__todas { margin-top: 12px; }
}

/* =====================================================================
   Etiquetas de producto (15-oct, CORRECCIONES fila 82; \Prolift\Etiquetas). Como mucho 2, arriba a la
   izquierda de la foto, discretas: rojo SOLO para «Oferta»; «Exclusivo AYBEY» en tinta; el resto en
   gris cálido con texto de tinta. Iguales en ficha, cuadrícula, búsqueda y portada; en la tabla, encima
   del nombre (pl-etq--linea). Sustituyen a los stickers del tema (.sticker). Sin importes.
   ===================================================================== */
.pl-etq { position: absolute; top: 8px; left: 8px; z-index: 3; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; pointer-events: none; max-width: calc(100% - 16px); }
.pl-etq__i { display: inline-block; padding: 3px 8px; border-radius: 4px; font-size: 12px; font-weight: 700; line-height: 1.3; letter-spacing: .01em; white-space: nowrap; color: var(--plv-tinta); background: #F4F3F0; border: 1px solid var(--plv-linea); }
.pl-etq__i--oferta { color: #fff; background: var(--plv-rojo); border-color: var(--plv-rojo); }
.pl-etq__i--aybey { color: #fff; background: var(--plv-tinta); border-color: var(--plv-tinta); }
.pl-etq__i--bajo_pedido { color: var(--plv-tinta-2); background: #fff; }
.pl-etq--linea { position: static; flex-direction: row; flex-wrap: wrap; max-width: none; margin: 0 0 4px; }
.pl-etq--linea .pl-etq__i { font-size: 11px; padding: 2px 6px; }
#product-product .product-page__image-main, .product-thumb__image, .pl-mosaico2__foto { position: relative; }
#product-product .product-page__image-main > .pl-etq { top: 12px; left: 12px; }
.sticker { display: none !important; }   /* stickers del tema que no salgan de una regla */
/* la línea de AYBEY no puede bajar «Añadir a la cesta» del primer pantallazo (A1, 1.280 × 800): compacta,
   y la referencia sube lo mismo que ocupa */
.pl-fc__excl { margin: 2px 0 0; font-size: 14px; line-height: 1.25; font-weight: 500; color: var(--plv-tinta-2); }
.pl-fc__excl + .pl-fc__ref { margin-top: 2px; }
/* panel compacto del ordenador (1.5): la línea, justo bajo el título (mismo order que el h1, detrás en el DOM) */
@media (min-width: 992px) {
	#product-product .product-block .pl-fc__excl { order: 2; }
	#product-product .product-block .pl-fc__excl + .pl-fc__ref { margin-top: 2px; }
}
/* peso de la tabla: sin dato, «—» en el ordenador y nada en el móvil; con dato, rotulado en el móvil */
@media (max-width: 767px) {
	.pl-tabla .c-peso--sin { display: none; }
	.pl-tabla .c-peso::before { content: attr(data-et) ": "; }
}

/* Alta (15-oct, m12-etiquetas): orden fijo por CSS para que no salte al cargar (CLS 0). El tema coloca
   los campos personalizados con JS (data-sort) y los esconde y enseña al pedir los del grupo de
   cliente: las dos cosas movían los campos ya pintados (CLS 0,03-0,06). Aquí el orden visual ya es el
   final desde el primer pintado (el JS acaba dejando el DOM igual: «CIF o NIF», sort_order 4) y
   «Empresa» y «CIF o NIF», que valen para todos los grupos (oc_custom_field_customer_group: 2 y 3),
   no se esconden. Las dos contraseñas, juntas. */
.account-register__form { display: flex; flex-direction: column; }
.account-register__form > .form-group { order: 20; }
.account-register__form > .form-group:has(#input-firstname) { order: 1; }
.account-register__form > .form-group:has(#input-lastname) { order: 2; }
.account-register__form > #custom-field8 { order: 3; }
.account-register__form > #custom-field7 { order: 4; }
.account-register__form > .form-group:has(#input-telephone) { order: 5; }
.account-register__form > .form-group:has(#input-email) { order: 6; }
.account-register__form > .form-group:has(#input-password) { order: 7; }
.account-register__form > .form-group:has(#input-confirm) { order: 8; }
.account-register__form > #custom-field8, .account-register__form > #custom-field7 { display: block !important; }

/* =====================================================================
   Arreglos del 16-oct (m12-arreglos-16oct): revisiones de diseño, técnica y de coherencia del 15-oct.
   Sin colores nuevos: tinta, gris cálido, banda #ECEAE5 y el rojo solo para avanzar.
   ===================================================================== */

/* H-1, H-5 y H-9 · portada: un bloque = un fondo, alternos, sin dos grises seguidos.
   Ordenador: presentación gris · sellos blanco · públicos gris · familias blanco · «Cómo comprar» banda ·
   carrusel blanco · [lo más pedido gris · texto de la casa blanco] o texto de la casa gris. */
.pl-home__publicos { background: var(--plv-sup-c); border: 0; }
.pl-home__familias { background: #fff; border: 1px solid var(--plv-linea); }
.pl-home__comprar { background: var(--plv-banda); border: 0; }
.pl-home__carrusel { background: #fff; border: 1px solid var(--plv-linea); }
.pl-home__destacados { background: var(--plv-sup-c); border: 0; }
.pl-home__destacados + .pl-home__casa { background: #fff; border: 1px solid var(--plv-linea); }
/* H-10: a 1.440 × 900 los títulos de los públicos entran en la primera pantalla (sellos y arranque más justos) */
@media (min-width: 992px) {
	.pl-sellos { padding: 8px 0; }
	.pl-sello { min-height: 64px; padding: 6px 20px; }
	.pl-home__publicos .pl-home__in { padding-top: 28px; }
	.pl-home__publicos .pl-home__entra { margin-bottom: 16px; }
}
/* carrusel con tarjeta propia, horizontal y compacta (no se parece a la de las familias) */
.pl-carrusel { grid-auto-columns: calc((100% - 32px) / 3); }
.pl-carrusel a.pl-carrusel__item { flex-direction: row; align-items: center; gap: 14px; min-height: 120px; padding: 12px 16px 12px 12px; background: #fff; }
.pl-carrusel__foto { position: relative; flex: none; display: grid; place-items: center; width: 96px; height: 96px; }
.pl-carrusel__foto img { width: 96px; height: 96px; object-fit: contain; }
.pl-carrusel__txt { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; flex: 1; min-width: 0; line-height: 1.3; }
.pl-carrusel__h { font-size: 16px; font-weight: 700; }
.pl-carrusel__txt small { font-size: 14px; color: var(--plv-tinta-2); }
.pl-carrusel__ver { flex: none; font-size: 14px; font-weight: 700; color: var(--plv-tinta); white-space: nowrap; }
.pl-carrusel a.pl-carrusel__item:hover .pl-carrusel__ver { text-decoration: underline; }
@media (max-width: 1279px) { .pl-carrusel { grid-auto-columns: calc((100% - 16px) / 2); } }
@media (max-width: 767px) {
	.pl-carrusel { grid-auto-columns: 88%; }
	.pl-carrusel a.pl-carrusel__item { min-height: 96px; gap: 12px; padding: 10px 12px 10px 10px; }
	.pl-carrusel__foto, .pl-carrusel__foto img { width: 72px; height: 72px; }
	.pl-carrusel__h { font-size: 15px; }
	.pl-carrusel__ver { display: none; }
}
/* H-5 · móvil: 48 px entre bloques y fondos alternos (presentación gris · familias blanco · sellos gris ·
   públicos blanco · «Cómo comprar» banda · carrusel blanco · casa gris) */
@media (max-width: 767px) {
	.pl-home { gap: 48px; }
	.pl-home > .pl-home__sellos { margin-top: 0; background: var(--plv-sup-c); border: 0; border-radius: 10px; }
	.pl-home__sellos .pl-sello__ico { background: #fff; }
	.pl-home__sellos .pl-sellos li:nth-child(2n), .pl-home__sellos .pl-sellos li:nth-child(n+3) { border-color: #DDD9D1; }
	.pl-home__publicos { background: #fff; border: 1px solid var(--plv-linea); }
}

/* H-2 · ficha: el enlace a los repuestos, en el panel de compra (debajo de la cesta y de las normas) */
.pl-fc__rep { margin: 12px 0 0; font-size: 15px; line-height: 1.4; }
.pl-fc__rep a { color: var(--plv-tinta); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.pl-fc__rep a::after { content: " ›";  /* › está en el subconjunto de Montserrat; → no (pediría la fuente completa) */ }
@media (min-width: 992px) { #product-product .product-block .pl-fc__rep { order: 11; } }
.pl-repuestos { scroll-margin-top: 80px; }
#pl-repuestos-tit { scroll-margin-top: 88px; }

/* H-4 · la foto de la ficha, servida a 800 px y pintada más grande (hasta 700 px) */
@media (min-width: 992px) {
	#product-product .product-page__image-main { max-height: 702px; }
	#product-product .product-page__image-main-img { max-height: 700px; }
}

/* H-11 · toques de 44 px en el móvil; las píldoras del filtro bajan de línea (no se cortan en el borde) */
@media (max-width: 767px) {
	.pl-filtro { flex-wrap: wrap; overflow-x: visible; }
	.pl-filtro a, .pl-filtro__on { min-height: 44px; }
	#product-product .desc-collapse button, #product-product .desc-collapse .btn { min-height: 44px; }
	.breadcrumb > li > a { display: inline-flex; align-items: center; min-height: 44px; }
}

/* H-12 · enlaces de las casillas (alta y pedido): tinta, en negrita y subrayados, nunca rojos */
a.agree, a.agree b, #unicheckout a.agree, #unicheckout .checkout-agree a, .account-register a.agree {
	color: var(--plv-tinta) !important; font-weight: 700; text-decoration: underline !important; text-underline-offset: 3px;
}

/* H-14 · un solo juego de iconos: trazo 1,8 en todos los dibujos de línea; fuera «Compartir» (icono suelto
   macizo, sin texto, que nadie en obra usa) */
.pl-btn svg, .pl-copiar svg, .pl-franja svg, .pl-nav__flecha, .pl-nav__rayas, .pl-carrusel__btn svg { stroke-width: 1.8 !important; }
#product-product .product-page__share-btn { display: none !important; }

/* H-15 · búsqueda y alta con los tokens de la casa */
#product-search .breadcrumb-h1 h1, #account-register h1, .account-register h1, h1.pl-h1 { color: var(--plv-tinta); }
.account-register.uni-form { background: var(--plv-sup-c); }
.product-category-list__item a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--plv-linea-f); border-radius: 999px; color: var(--plv-tinta); font-weight: 700; text-decoration: none; background: #fff; }
.product-category-list__item a:hover { border-color: var(--plv-tinta); text-decoration: underline; }

/* H-7 · Condiciones y Garantía: «Lo esencial» al principio e índice de apartados (fijo a la derecha en el
   ordenador, plegable bajo el título en el móvil). Título y texto en el mismo borde. */
.pl-esencial { margin: 8px 0 32px; padding: 20px 24px; background: var(--plv-sup-c); border-left: 4px solid var(--plv-tinta); border-radius: 8px; }
.pl-lectura .pl-esencial h2 { margin: 0 0 10px; font-size: 18px; }
.pl-esencial ul { margin: 0; padding: 0 0 0 18px; }
.pl-esencial li + li { margin-top: 6px; }
.pl-esencial a { color: var(--plv-tinta); text-decoration: none; }
.pl-esencial a:hover, .pl-esencial a:focus { text-decoration: underline; }
.pl-esencial a::after { content: " ›";  /* › está en el subconjunto de Montserrat; → no (pediría la fuente completa) */ color: var(--plv-tinta-2); }
.pl-lectura h2[id] { scroll-margin-top: 88px; }
.pl-indice ol { margin: 0; padding: 0; list-style: none; }
.pl-indice li a { display: flex; align-items: center; min-height: 36px; padding: 4px 0; color: var(--plv-tinta); text-decoration: none; font-size: 15px; line-height: 1.3; }
.pl-indice li a:hover, .pl-indice li a:focus { text-decoration: underline; }
.pl-indice__t, .pl-indice summary { margin: 0 0 6px; font-size: 14px; font-weight: 700; color: var(--plv-tinta-2); }
.pl-indice--fijo { display: none; }
.pl-indice--movil { margin: 0 0 16px; padding: 0 16px; border: 1px solid var(--plv-linea); border-radius: 10px; background: #fff; }
.pl-indice--movil summary { display: flex; align-items: center; min-height: 48px; margin: 0; cursor: pointer; color: var(--plv-tinta); font-size: 15px; }
.pl-indice--movil[open] ol { padding: 0 0 12px; }
.pl-doc .pl-lectura.uni-wrapper { padding-left: 0 !important; padding-right: 0 !important; background: none; box-shadow: none; }
@media (min-width: 1200px) {
	.pl-doc { display: grid; grid-template-columns: minmax(0, 760px) 280px; gap: 0 56px; align-items: start; }
	.pl-doc .pl-indice--movil { display: none; }
	.pl-doc .pl-indice--fijo { display: block; position: sticky; top: 80px; grid-column: 2; grid-row: 1; max-height: calc(100vh - 100px); overflow: auto; padding: 16px 20px; border: 1px solid var(--plv-linea); border-radius: 10px; background: #fff; }
	.pl-doc .pl-lectura { grid-column: 1; grid-row: 1; }
}
/* 16-oct: en el móvil una referencia larga (MB-4PANEL-CENTRAL-700X2000, 193) se partía fuera de la pantalla */
@media (max-width: 767px) { #product-product .pl-fc__cod { white-space: normal; overflow-wrap: anywhere; } }
/* 16-oct (m12-respuestas-16oct): venta por metros (mangueras): rótulo de la cantidad, en una línea propia */
#product-product .product-page__cart .pl-unidad__cant { flex: 1 0 100%; font-size: 14px; font-weight: 600; color: var(--plv-tinta, #1E2124); margin-bottom: -4px; }
/* 21-oct (m12-respuestas-21oct; Nico: «Sí: pedido sin pago ni portes», CORRECCIONES 113): el envío y la forma de
   pago no se eligen (hay uno de cada): sin botón de opción, el texto a la vista y alineado con el resto */
#unicheckout .pl-sin-eleccion input[type="radio"] { display: none; }
#unicheckout .pl-sin-eleccion label.input, #unicheckout .pl-sin-eleccion .shipping-method__label { padding-left: 0; cursor: default; }
#unicheckout .pl-sin-eleccion .payment-method__title, #unicheckout .pl-sin-eleccion .shipping-method__quote { font-weight: 600; color: var(--plv-tinta, #1E2124); }
#unicheckout .pl-sin-eleccion .pl-pago-info { margin-left: 0 !important; font-size: 14px !important; }

/* ---------- 22-oct (m12-arreglos-22oct; revisiones de diseño y del revisor) ---------- */
/* «Sin foto»: UNA sola pieza (galería, listados, mosaico, tarjetas de accesorios). 4:3, superficie, borde 1 px */
.pl-sinfoto { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; width: 100%; aspect-ratio: 4 / 3; background: #F4F3F0; border: 1px solid #E2DFD9; border-radius: 8px; color: #5F666D; text-align: center; box-sizing: border-box; padding: 8px; }
.pl-sinfoto__ico { width: 40px; height: 40px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; }
.pl-sinfoto__txt { font-size: 14px; line-height: 1.3; }
.pl-sinfoto--mini { width: 64px; height: 48px; aspect-ratio: auto; padding: 4px; gap: 0; border-radius: 6px; }
.pl-sinfoto--mini .pl-sinfoto__ico { width: 24px; height: 24px; }
.pl-repuestos__foto .pl-sinfoto--mini { width: 64px; height: 48px; }
.pl-mosaico2__foto .pl-sinfoto { height: 100%; aspect-ratio: auto; border: 0; border-radius: 0; }
#product-product .pl-sinfoto-caja { position: relative; }
#product-product .pl-sinfoto-caja .pl-sinfoto { max-width: 640px; margin: 0 auto; }
#product-product .pl-sinfoto-caja .pl-etq { position: absolute; top: 12px; left: 12px; z-index: 2; }
/* ficha sin datos técnicos (las fichas nuevas sin foto): «Qué es y para qué sirve» a todo el ancho */
@media (min-width: 992px) {
	html.pl-ficha-col #product-product .pl-info .tab-content:not(:has(> #tab-specification)) > #tab-description,
	html.pl-ficha-col #product-product .pl-info .tab-content:has(> #tab-specification.pl-vacio) > #tab-description { grid-column: 1 / -1; }
}
/* cesta y pedido: «−» y «+» de 44 px (también en el móvil) */
html body .qty-switch.qty-switch__cart .qty-switch__btn { width: 44px; min-width: 44px; height: 44px; min-height: 44px; font-size: 14px; }
html body .qty-switch.qty-switch__cart .qty-switch__input { height: 44px; min-height: 44px; }
/* selector de variante: las opciones no elegidas, con borde de 1 px (se ve que son botones) */
#product-product .option__item input[type="radio"]:not(:checked) + .option__name { border: 1px solid #C9C5BD; border-radius: 8px; }
/* checkout: Envío y Pago no se eligen: van como aviso (superficie, borde de 1 px), no como opción marcada */
#unicheckout .shipping-method__item.pl-sin-eleccion, #unicheckout .payment-method .radio.pl-sin-eleccion { background: #F4F3F0 !important; border: 1px solid #E2DFD9 !important; border-radius: 8px; box-shadow: none !important; padding: 12px 14px !important; margin: 0 0 8px; }
#unicheckout .pl-sin-eleccion label, #unicheckout .pl-sin-eleccion .shipping-method__label { border: 0 !important; background: transparent !important; box-shadow: none !important; padding: 0 !important; margin: 0; }
#unicheckout .pl-sin-eleccion .payment-method__title, #unicheckout .pl-sin-eleccion .shipping-method__quote { font-weight: 600; }
/* éxito del pedido: botones de 44 px */
.pl-exito__acc { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 20px 0 0; }
.pl-exito__acc .pl-btn { min-height: 44px; display: inline-flex; align-items: center; padding: 0 20px; }
.pl-exito__seguir { min-height: 44px; display: inline-flex; align-items: center; font-weight: 600; color: var(--plv-tinta); text-decoration: underline; }
#content .uni-wrapper:has(.pl-exito) > .buttons, #content .uni-wrapper:has(.pl-exito) > div[style] { display: none; }
/* Outlet y páginas cortas en el móvil: sin franja blanca bajo el pie (el fondo de abajo es el del pie) */
html { background: #1E2124; }
html body { background: #fff; }
/* portada, «Cómo comprar»: «Dar de alta la empresa» a todo el ancho en el móvil, como el resto de acciones */
@media (max-width: 767px) { .pl-home__b .pl-btn--rojo { display: flex; justify-content: center; width: 100%; box-sizing: border-box; } }
/* pedido: ayuda del comentario; en el móvil, «Total sin IVA» junto al importe de cada línea */
#unicheckout .pl-ayuda-com { margin: -4px 0 8px; font-size: 14px; color: var(--plv-tinta-2); }
@media (max-width: 767px) { #unicheckout .checkout-cart__total-text.hidden-xs { display: block !important; font-size: 12px; color: var(--plv-tinta-3); } }

/* ===== 22-oct (revisión completa, bloque A) ===== */
/* mosaico: familia sin foto (Máquina y tracción) con su icono de línea, sobre blanco */
.pl-mosaico2__ico { position: absolute; inset: 22% 30%; width: 40%; height: 56%; fill: none; stroke: var(--plv-tinta-2); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
/* rojo solo en lo que hace avanzar: «Añadir» de la tabla y «Ver» del historial y del éxito, de borde (guía §7.1 y §7.4) */
.pl-cat-tabla .pl-btn--rojo, .pl-tabla .pl-btn--rojo, table .pl-btn--rojo[onclick^="cart.add"] { background: #fff; color: var(--plv-tinta); border: 2px solid var(--plv-tinta) !important; }
.pl-cat-tabla .pl-btn--rojo:hover, table .pl-btn--rojo[onclick^="cart.add"]:hover { background: var(--plv-tinta); color: #fff; }
.pl-exito .pl-btn--rojo { background: #fff; color: var(--plv-tinta); border: 2px solid var(--plv-tinta) !important; }
.account-order-list__btn.btn-primary { background: #fff !important; color: var(--plv-tinta) !important; border: 2px solid var(--plv-tinta) !important; min-height: 44px; }
.account-order-list__btn .fa-eye { display: none; }
/* toques de 44 px: campos del pedido, cantidad de la ficha (− y + a los lados) y «Copiar» */
#unicheckout input.form-control, #unicheckout select.form-control, #unicheckout textarea.form-control { min-height: 44px; }
#product-product .product-page__cart .qty-switch.type-1 > span { flex-direction: row; }
#product-product .product-page__cart .qty-switch .qty-switch__btn { width: 44px; min-width: 44px; height: 44px; min-height: 44px; }
.pl-copiar, .copiar, [data-pl-copiar] { position: relative; }
.pl-copiar::after, .copiar::after, [data-pl-copiar]::after { content: ""; position: absolute; left: 50%; top: 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); }
/* cesta vacía y 404 con salida */
.pl-vacio { text-align: center; padding: 32px 16px; }
.pl-vacio__ico { width: 28px; height: 28px; fill: none; stroke: var(--plv-tinta-2); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pl-vacio__h { font-size: 24px; margin: 8px 0; }
.pl-vacio__txt { color: var(--plv-tinta-2); }
.pl-vacio__acciones { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 16px; }
.pl-vacio__acciones .pl-btn { min-height: 44px; }

/* ===== 22-oct (revisión completa, bloque 1.6, lo grande) ===== */
/* tabla de categoría y de búsqueda en el móvil: 56 px de foto, nombre en 2 líneas, referencia y estado en una, precio,
   cantidad y botón en otra (objetivo ≤ 120 px por fila a 390; M1.2 LEEME §0 M2) */
@media (max-width: 767px) {
	.pl-tabla tr { grid-template-columns: 56px minmax(0, 1fr); gap: 4px 10px; padding: 8px 0; align-items: center; }
	.pl-tabla .c-foto { grid-row: 1 / span 3; align-self: start; }
	.pl-tabla .c-foto a, .pl-tabla .c-foto .pl-sinfoto { width: 56px; height: 56px; }
	.pl-tabla .c-nom { grid-row: 1; font-size: 14px; }
	.pl-tabla__nom { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.25; }
	.pl-tabla .c-nom .pl-etq-linea, .pl-tabla .c-nom [class*="pl-etq"] { display: inline-flex; vertical-align: middle; margin: 0 4px 0 0; transform: scale(.9); transform-origin: left center; }
	.pl-tabla__sub, .pl-tabla__clave { display: none; }
	.pl-tabla .c-ref, .pl-tabla .c-plazo { grid-row: 2; grid-column: 2; display: flex; align-items: center; font-size: 13px; margin: 0; }
	.pl-tabla .c-ref { justify-self: start; }
	.pl-tabla .c-plazo { justify-self: end; }
	.pl-tabla .c-ref .pl-cod { font-size: 13px; }
	.pl-tabla .c-precio { grid-row: 3; grid-column: 2; display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 8px; margin: 0; }
	.pl-tabla__precio { min-width: 0; font-size: 15px; white-space: nowrap; }
	.pl-tabla .pl-anadir { display: flex; flex-wrap: nowrap; gap: 6px; }
	.pl-tabla .pl-cant { width: 56px; min-height: 44px; }
	.pl-tabla .pl-btn { min-height: 44px; padding: 0 12px; white-space: nowrap; }
}
/* 1.6, segunda vuelta (medido a 390: 148-169 px): la etiqueta va bajo la foto; el nombre, cortado a 2 líneas; «Copiar»
   ocupa 20 px en la fila y su zona de toque de 44 la da el ::after */
@media (max-width: 767px) {
	.pl-tabla tr { position: relative; padding: 5px 0; gap: 3px 10px; }
	.pl-tabla .c-ref { max-width: 52%; overflow: hidden; }
	.pl-tabla .c-ref .pl-ref { display: flex; align-items: center; gap: 4px; min-width: 0; }
	.pl-tabla .c-ref .pl-cod { overflow: hidden; text-overflow: ellipsis; }
	.pl-tabla .c-nom .pl-etq--linea { position: absolute; left: 0; top: 64px; width: 56px; display: flex; flex-direction: column; gap: 2px; margin: 0; transform: none; }
	.pl-tabla .c-nom .pl-etq--linea > * { font-size: 10px; line-height: 1.2; padding: 1px 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 56px; }
	/* sin el truco del relleno de 12 px de la zona de toque (con el corte a 2 líneas, el nombre se salía de su fila):
	   la zona de 44 px la da un ::after */
	.pl-tabla .c-nom .pl-tabla__nom { display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 14px; line-height: 1.2; max-height: 2.4em; padding: 0 !important; margin: 0 !important; position: relative; }
	.pl-tabla .c-nom { position: static; }
	.pl-tabla .c-ref .pl-cod { white-space: nowrap; }
	.pl-tabla .c-plazo { max-width: 46%; overflow: hidden; }
	.pl-tabla .c-plazo .pl-estado { white-space: nowrap; font-size: 12px; overflow: hidden; text-overflow: ellipsis; display: block; }
	.pl-tabla .c-ref .pl-copiar { min-width: 20px; min-height: 20px; height: 20px; width: 20px; padding: 0; }
	.pl-tabla .c-ref, .pl-tabla .c-plazo { min-height: 0; height: auto; line-height: 1.3; }
}
/* búsqueda: sin el bloque «Marcas» (una sola marca no filtra nada) y, en el móvil, las categorías en una fila que se
   desliza, para que el primer producto salga en la primera pantalla (fila 75) */
#product-search .heading:has(+ .category-list), #product-search .category-list { display: none; }
@media (max-width: 767px) {
	#product-search .product-category-list ul { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 8px; scroll-snap-type: x proximity; padding-bottom: 4px; margin: 0; }
	#product-search .product-category-list li { flex: 0 0 auto; scroll-snap-align: start; margin: 0; }
	#product-search .product-category-list li a { white-space: nowrap; }
	#product-search .product-category-list h4 { font-size: 14px; margin: 0 0 6px; }
}
/* Mi cuenta e historial con los tokens de la M1.2: tarjetas blancas con borde, iconos de línea en un círculo de 56 px */
.account-index__item.uni-item-bg, .account-order-list__item.uni-item-bg { background: #fff !important; border: 1px solid var(--plv-linea); border-radius: 12px; box-shadow: none; }
.pl-ico-cuenta { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--plv-sup); flex: 0 0 auto; }
.pl-ico-cuenta svg { width: 28px; height: 28px; fill: none; stroke: var(--plv-tinta); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
#column-right .list-group, #column-left .list-group { background: var(--plv-sup); border-radius: 12px; }
/* 22-oct (revisión completa, diseño A4): «Ver las N» de las categorías de la búsqueda del ordenador (vista-m12.js) */
#product-search .product-category-list button.pl-ver-todas { display: inline-flex; align-items: center; margin: 8px 0 0; min-height: 44px; padding: 0 16px; border: 1px solid var(--plv-tinta, #1D2023) !important; border-radius: 999px !important; background: #fff !important; color: var(--plv-tinta, #1D2023); font-weight: 700; cursor: pointer; box-shadow: none; }
#product-search .product-category-list button.pl-ver-todas[hidden] { display: none; }
#product-search .pl-ver-todas:hover { text-decoration: underline; }
#product-search .pl-ver-todas:focus-visible { outline: 2px solid var(--plv-tinta); outline-offset: 2px; }
@media (max-width: 767px) { #product-search .pl-ver-todas { display: none; } }

/* =====================================================================
   1.11 (24-oct, W17; Nico, 22:29: «OK AL ARBOL NUEVO … OK A LOS ICONOS»): árbol nuevo de Ascensor.
   Iconos de familia (prolift_icono.twig: currentColor, trazo 2,1), tarjetas de la portada (foto 4:3 en el ordenador,
   icono y línea corta en el móvil), franja «Adecuación ITC AEM 1», megamenú en 4 columnas con iconos y todas las
   subfamilias, y menú del móvil con el nombre como enlace y la flecha que abre las subfamilias.
   Maqueta: Prolift-KB/Web/propuesta-categorias-2026-10-24/maqueta/.
   ===================================================================== */
.pl-ico { width: 28px; height: 28px; flex: none; fill: none; stroke: currentColor; stroke-width: 2.1; stroke-linecap: round; stroke-linejoin: round; }
/* portada · bloque 4 */
.pl-fams__cab { display: flex; align-items: baseline; justify-content: space-between; gap: 0 24px; flex-wrap: wrap; }
.pl-fams__todas, .pl-fams__todas-movil a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; font-weight: 700; color: var(--plv-tinta); text-decoration: underline; text-underline-offset: 3px; }
.pl-fams__todas:hover, .pl-fams__todas-movil a:hover { color: var(--plv-tinta); text-decoration-thickness: 2px; }
.pl-fams__todas-movil { display: none; margin: 16px 0 0; }
.pl-home__familias .pl-fams { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.pl-fams .pl-fam__foto img { inset: 6%; width: 88%; height: 88%; }
.pl-fams .pl-fam__foto .pl-fam__grande { position: absolute; inset: 0; margin: auto; width: 96px; height: 96px; border-radius: 0; background: none; stroke: var(--plv-tinta); stroke-width: 1.4; }
.pl-fams .pl-fam__txt { padding: 16px 20px 20px; gap: 0; }
.pl-fams .pl-fam__ico, .pl-fams .pl-fam__corta { display: none; }
.pl-fams .pl-fam__nom { display: flex; flex-direction: column; gap: 4px; }
.pl-fams .pl-mosaico2__h { font-size: 18px; line-height: 1.3; }
.pl-fams .pl-fam__larga { font-size: 14px; line-height: 1.45; color: var(--plv-tinta-2); }
.pl-fams .pl-mosaico2__ver { padding-top: 10px; }
/* franja «Adecuación ITC AEM 1»: la franja entera es el enlace */
.pl-itc { display: flex; align-items: center; gap: 16px; margin-top: 24px; padding: 16px 20px; background: #fff; border: 1px solid var(--plv-linea); border-left: 4px solid var(--plv-tinta); border-radius: 10px; color: var(--plv-tinta); text-decoration: none; }
.pl-itc:hover, .pl-itc:focus { border-color: var(--plv-tinta); color: var(--plv-tinta); text-decoration: none; }
.pl-itc:hover .pl-itc__ver { text-decoration: underline; }
.pl-itc__circ { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--plv-sup-c); flex: none; }
.pl-itc__txt { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pl-itc__h { font-size: 18px; font-weight: 700; line-height: 1.3; }
.pl-itc__p { font-size: 16px; line-height: 1.45; color: var(--plv-tinta-2); }
.pl-itc__ver { font-size: 14px; font-weight: 700; white-space: nowrap; }
.pl-itc:focus-visible, .pl-fams a:focus-visible, .pl-fams__todas:focus-visible, .pl-fams__todas-movil a:focus-visible { outline: 3px solid var(--plv-foco); outline-offset: 2px; }
@media (max-width: 1279px) { .pl-home__familias .pl-fams { gap: 16px; } }
@media (max-width: 991px) { .pl-home__familias .pl-fams { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.pl-fams__cab .pl-fams__todas { display: none; }
	.pl-fams__todas-movil { display: block; }
	.pl-home__familias .pl-fams { grid-template-columns: minmax(0, 1fr); gap: 8px; }
	.pl-home__familias .pl-fams a { flex-direction: row; align-items: center; min-height: 72px; }
	.pl-home__familias .pl-fams .pl-fam__foto { display: none; }
	.pl-home__familias .pl-fams .pl-fam__txt { flex-direction: row; align-items: center; gap: 12px; padding: 10px 12px; }
	.pl-home__familias .pl-fams .pl-fam__ico { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--plv-sup-c); flex: none; }
	.pl-home__familias .pl-fams .pl-fam__ico .pl-ico { width: 24px; height: 24px; }
	.pl-home__familias .pl-fams .pl-fam__larga, .pl-home__familias .pl-fams .pl-mosaico2__ver { display: none; }
	.pl-home__familias .pl-fams .pl-fam__corta { display: block; font-size: 14px; line-height: 1.35; color: var(--plv-tinta-2); }
	.pl-home__familias .pl-fams .pl-fam__nom { gap: 2px; flex: 1; min-width: 0; }
	.pl-home__familias .pl-fams .pl-mosaico2__h { font-size: 16px; }
	.pl-home__familias .pl-fams a::after { content: ""; flex: none; width: 10px; height: 10px; margin-right: 18px; border-right: 2px solid var(--plv-tinta); border-top: 2px solid var(--plv-tinta); transform: rotate(45deg); }
	.pl-itc { flex-wrap: wrap; gap: 6px; margin-top: 16px; padding: 14px 16px; }
	.pl-itc__circ { display: none; }
	.pl-itc__txt { flex-basis: 100%; }
	.pl-itc__h { font-size: 16px; }
	.pl-itc__p { font-size: 14px; }
}
/* megamenú «Catálogo» (ordenador): 4 columnas en flujo, icono de 24, enlaces de 44 */
@media (min-width: 992px) {
	.pl-nav__sector .pl-nav__cols.pl-mega { display: block; columns: 4; column-gap: 32px; }
	.pl-mega .pl-mega__fam { break-inside: avoid; margin: 0 0 12px; }
	.pl-mega .pl-nav__raiz { display: flex; align-items: center; gap: 10px; min-height: 44px; }
	.pl-mega__ico, .pl-nav__otras .pl-mega__ico { width: 24px; height: 24px; }
	.pl-mega .pl-mega__fam ul { margin: -4px 0 0 34px; }
	.pl-mega .pl-mega__fam li a { min-height: 44px; }
	.pl-mega__linea { margin: -6px 0 0 34px; font-size: 14px; line-height: 1.45; color: var(--plv-tinta-3); }
	.pl-nav__otras a { gap: 10px; }
	.pl-fija .pl-fija__cats .pl-mega .pl-nav__raiz { display: flex; }
}
@media (min-width: 992px) and (max-width: 1199px) { .pl-nav__sector .pl-nav__cols.pl-mega { columns: 3; } }
/* menú del móvil: rótulo como en el megamenú (sin mayúsculas, fila 75); nombre = enlace, flecha = abrir */
.pl-cat-sub-t { padding: 14px 20px 8px; font-size: 16px; letter-spacing: 0; text-transform: none; color: var(--plv-tinta); }
.pl-mm { border-bottom: 1px solid var(--plv-linea); }
.pl-mm__fila { display: flex; align-items: center; }
.pl-cat-sub .pl-mm__a { flex: 1; display: flex; align-items: center; gap: 12px; min-height: 56px; font-weight: 700; }
.pl-cat-sub .pl-cat-sub-a--sel.pl-mm__a { border-top: 0; }
.pl-mm__ico { width: 24px; height: 24px; }
.pl-mm__abre { flex: none; display: grid; place-items: center; width: 48px; height: 48px; margin-right: 4px; padding: 0; border: 0; background: none; cursor: pointer; }
.pl-mm__abre::after { content: ""; width: 9px; height: 9px; margin-top: -4px; border-right: 2px solid var(--plv-tinta); border-bottom: 2px solid var(--plv-tinta); transform: rotate(45deg); }
.pl-mm__abre[aria-expanded="true"]::after { margin-top: 4px; transform: rotate(-135deg); }
.pl-mm__abre:focus-visible { outline: 3px solid var(--plv-foco); outline-offset: -3px; }
.pl-mm__directo::after { content: ""; flex: none; width: 9px; height: 9px; margin: 0 18px 0 auto; border-right: 2px solid var(--plv-tinta); border-top: 2px solid var(--plv-tinta); transform: rotate(45deg); }
.pl-mm__subs { list-style: none; margin: 0 0 8px; padding: 0 0 0 36px; }
.pl-mm__subs[hidden] { display: none; }
.pl-cat-sub .pl-mm__sub { font-weight: 500; color: var(--plv-tinta-2); }

/* 1.11 · revisión de diseño de W17 (25-oct, prolift-diseno; los números son sus hallazgos) */
/* 1 · sin rojo al pasar el ratón por el megamenú ni por su clon de la barra fija (rojo solo en lo que hace avanzar, §7.1) */
.pl-nav__raiz:hover, .pl-nav .pl-nav__col li a:hover, .pl-nav__otras a:hover, .pl-nav__sector-t a:hover { color: var(--plv-tinta); text-decoration: underline; text-decoration-thickness: 2px; }
@media (min-width: 992px) {
	.pl-fija .pl-fija__cats .pl-nav__col li a:hover, .pl-fija .pl-fija__cats .pl-nav__raiz:hover, .pl-fija .pl-fija__cats .pl-nav__otras a:hover { color: var(--plv-tinta); text-decoration: underline; text-decoration-thickness: 2px; }
	/* 2 · tamaños de la escala (13 · 14 · 16 · 18): familias 16, rótulo 18, subfamilias y líneas 14 */
	.pl-mega .pl-nav__raiz, .pl-nav__otras a, .pl-fija .pl-fija__cats .pl-mega .pl-nav__raiz, .pl-fija .pl-fija__cats .pl-nav__otras a { font-size: 16px; }
	.pl-nav__sector-t, .pl-fija .pl-fija__cats .pl-nav__sector-t { font-size: 18px; }
	/* 4 · «Adecuación ITC AEM 1» y «Todas las familias», en la línea del rótulo: el panel cabe a 1.280 × 720 */
	.pl-nav__sector-cab { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0 32px; margin: 0 0 12px; border-bottom: 1px solid var(--plv-linea); }
	.pl-nav__sector-cab .pl-nav__sector-t { margin: 0; padding: 0; border-bottom: 0; }
	.pl-nav__sector-cab .pl-nav__otras { margin: 0; padding: 0; border-top: 0; gap: 0 24px; }
	/* 14 · el clon de la barra fija, sin los rellenos de .pl-fija__cats a */
	.pl-fija .pl-fija__cats .pl-nav__sector-t a, .pl-fija .pl-fija__cats .pl-nav__otras a { padding: 0; }
	/* 15 · la píldora «Bajo pedido» baja de línea sin sangría */
	.pl-mega .pl-nav__raiz > span { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
	.pl-mega .pl-nav__raiz .pl-pildora { margin-left: 0; }
}
/* 2 y 13 · menú del móvil: 16 px; la «›» de los enlaces directos alineada con la flecha del acordeón */
.pl-cat-sub .pl-mm__a, .pl-cat-sub .pl-mm__sub { font-size: 16px; }
.pl-cat-sub .pl-mm__directo::after { margin: 0 23px 0 auto; }
.pl-mm__a > span { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; }
.pl-cat-sub .pl-mm__a .pl-pildora { margin-left: 0; }
/* 3 · el nombre de la tarjeta y de la franja ITC en h3 (guía §7.4), a su tamaño: el #content b de maquetacion.css no lo pisa */
.pl-fams h3.pl-mosaico2__h, .pl-itc h3.pl-itc__h { margin: 0; font-family: inherit; font-weight: 700; line-height: 1.3; letter-spacing: 0; text-transform: none; color: var(--plv-tinta); }
.pl-home .pl-fams h3.pl-mosaico2__h, #content .pl-fams h3.pl-mosaico2__h, .pl-home .pl-itc h3.pl-itc__h, #content .pl-itc h3.pl-itc__h { font-size: 18px; }
/* 5 · «Todas las familias»: en el móvil, la misma lista con icono que la portada */
@media (max-width: 767px) {
	.pl-home .pl-fams h3.pl-mosaico2__h, #content .pl-fams h3.pl-mosaico2__h, .pl-home .pl-itc h3.pl-itc__h, #content .pl-itc h3.pl-itc__h { font-size: 16px; }
	.pl-familias .pl-fams { grid-template-columns: minmax(0, 1fr); gap: 8px; }
	.pl-familias .pl-fams a { flex-direction: row; align-items: center; min-height: 72px; }
	.pl-familias .pl-fams .pl-fam__foto { display: none; }
	.pl-familias .pl-fams .pl-fam__txt { flex-direction: row; align-items: center; gap: 12px; padding: 10px 12px; }
	.pl-familias .pl-fams .pl-fam__ico { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--plv-sup-c); flex: none; }
	.pl-familias .pl-fams .pl-fam__ico .pl-ico { width: 24px; height: 24px; }
	.pl-familias .pl-fams .pl-fam__larga, .pl-familias .pl-fams .pl-mosaico2__ver { display: none; }
	.pl-familias .pl-fams .pl-fam__corta { display: block; font-size: 14px; line-height: 1.35; color: var(--plv-tinta-2); }
	.pl-familias .pl-fams .pl-fam__nom { gap: 2px; flex: 1; min-width: 0; }
	.pl-familias .pl-fams a::after { content: ""; flex: none; width: 10px; height: 10px; margin-right: 18px; border-right: 2px solid var(--plv-tinta); border-top: 2px solid var(--plv-tinta); transform: rotate(45deg); }
}
.pl-familias .pl-fams .pl-pildora { align-self: flex-start; }
/* 9 · sin el botón flotante «subir» de UniShop2 (fila 75: sin burbujas flotantes; la barra fija ya vuelve arriba) */
.fly-block { display: none !important; }
/* 12 · el icono grande de la familia sin foto, en currentColor como el resto del juego (trazo 1,4 a 96 px, el de la maqueta) */
.pl-fams .pl-fam__foto .pl-fam__grande { stroke: currentColor; color: var(--plv-tinta); }
