/*
Theme Name: Profi pentru Sănătate
Theme URI: https://voostvision.ro
Author: Voost Vision
Description: Temă de blocuri (FSE) pentru demo-ul Profi pentru Sănătate: magazin B2B de consumabile medicale. Paleta, tipografia și spațierea vin din theme.json; aici stau componentele.
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 8.0
Version: 0.9.90
License: GPL-2.0-or-later
Text Domain: profi-sanatate
*/

/* ═══════════════════════════════════════════════════════════════════
   0. Bază
   ═══════════════════════════════════════════════════════════════════ */

*, *::before, *::after { box-sizing: border-box; }
/* 24.09 (P20): orice :hover stă în @media (hover: hover); pe telefon starea rămânea după atingere. Butoanele au :focus-visible, nu :focus. */
/* Fără pata albastră pe care Chrome pe Android o pune peste orice element atins (23.09, testul lui Radu pe Motorola).
   Feedback-ul la atingere e al nostru, în 21.9. Proprietatea se moștenește, deci acoperă tot site-ul. */
html { -webkit-tap-highlight-color: transparent; }
/* Câmpurile moștenesc fontul site-ului (browserul pune altfel fontul lui de sistem, vizibil la „Cod cupon”). */
input, select, textarea { font-family: var(--pps-font, sans-serif); }
body { -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }

:root {
	--pps-alb: var(--wp--preset--color--alb, #fff);
	--pps-fundal: var(--wp--preset--color--fundal, #f4f7fb);
	--pps-linie: var(--wp--preset--color--linie, #dce3ec);
	/* Marginea câmpurilor de formular (24.09): 3,5:1 pe alb, 3,3:1 pe --pps-fundal (WCAG 1.4.11 cere 3:1; --pps-linie are 1,29:1). */
	--pps-linie-camp: #7a8aa0;
	--pps-pal: var(--wp--preset--color--bleumarin-pal, #e8eef6);
	--pps-text: var(--wp--preset--color--text, #4a5a70);
	--pps-ink: var(--wp--preset--color--bleumarin, #0c2340);
	--pps-rosu: var(--wp--preset--color--rosu, #e01b22);
	--pps-rosu-inchis: var(--wp--preset--color--rosu-inchis, #a9121a);
	--pps-rosu-pal: var(--wp--preset--color--rosu-pal, #fdecec);
	--pps-verde: var(--wp--preset--color--verde, #0e7c5a);
	--pps-portocaliu: #b45309;

	--pps-raza-mic: var(--wp--custom--raza--mic, 6px);
	--pps-raza-card: var(--wp--custom--raza--card, 12px);
	--pps-raza-mare: var(--wp--custom--raza--mare, 18px);
	--pps-raza-pila: var(--wp--custom--raza--pila, 999px);
	--pps-tranzitie: var(--wp--custom--tranzitie, 160ms cubic-bezier(0.2, 0, 0.2, 1));
	--pps-antet-h: var(--wp--custom--antet--inaltime, 72px);
	--pps-bara-h: var(--wp--custom--antet--bara, 40px);
	--pps-lat: var(--wp--custom--container--lat, 1280px);
	--pps-ingust: var(--wp--custom--container--ingust, 820px);

	--pps-display: var(--wp--preset--font-family--display, Archivo, sans-serif);
	--pps-font: var(--wp--preset--font-family--text, "Source Sans 3", sans-serif);

	--pps-umbra-card: var(--wp--preset--shadow--card, 0 1px 2px rgba(12, 35, 64, .04));
	--pps-umbra-ridicat: var(--wp--preset--shadow--ridicat, 0 6px 20px -6px rgba(12, 35, 64, .16));
	--pps-umbra-panou: var(--wp--preset--shadow--panou, 0 18px 44px -14px rgba(12, 35, 64, .24));
}

/* Focus vizibil, peste tot. */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible,
[tabindex]:focus-visible {
	outline: 2px solid var(--pps-ink);
	outline-offset: 2px;
	border-radius: var(--pps-raza-mic);
}

/* Antetul lipicios: WP închide partea de șablon într-un div înalt cât antetul. */
.wp-block-template-part:has(> .pps-antet-total),
.wp-block-template-part:has(> .pps-subsol) { display: contents; }
/* Și wrapperul propriu: un părinte înalt cât antetul oprește `position: sticky`. */
.pps-antet-total { display: contents; }

/* wp:cover — coloană de grilă corectă, altfel se strânge la 784px. */
.wp-block-cover { grid-template-columns: minmax(0, 1fr); }

/* ═══════════════════════════════════════════════════════════════════
   1. Structură
   ═══════════════════════════════════════════════════════════════════ */

.pps-section { padding-block: clamp(3rem, 6vw, 4.5rem); }
.pps-section--rece { background: var(--pps-fundal); }
.pps-section--ink { background: var(--pps-ink); color: #fff; }
.pps-section--ink .pps-h2, .pps-section--ink h2, .pps-section--ink h3 { color: #fff; }
.pps-section--ink .pps-lead { color: rgba(255, 255, 255, .78); }
.pps-section--stramt { padding-block: clamp(1.5rem, 3vw, 2.25rem); }
.pps-section--fara-sus { padding-top: 0; }
.pps-section--fara-jos { padding-bottom: 0; }

.pps-wrap {
	max-width: var(--pps-lat);
	margin-inline: auto;
	padding-inline: clamp(1rem, 4vw, 2rem);
}
.pps-wrap--ingust { max-width: var(--pps-ingust); }
/* Neutralizează layout-ul „constrained" al WordPress pe copiii direcți. */
.pps-wrap > * { max-width: none; margin-left: 0 !important; margin-right: 0 !important; }

.pps-grid { display: grid; gap: 24px; }
.pps-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pps-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pps-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pps-grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.pps-grid--auto { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

/* `wpautop` lasă un `<br>` după shortcode-urile din șabloane. Într-un grid devine element de
   grilă și împinge coloana laterală și grila de produse una în locul celeilalte. */
/* Cardurile din buclă stau într-un `li.wp-block-post`; fără asta rândul iese neregulat,
   cu butoanele „Adaugă în coș" la înălțimi diferite. */
/* `wp:post-template` primește layout „flow", care pune `margin-block-start` pe fiecare frate.
   Într-o grilă asta coboară cardurile 2..n cu un rând de gap și le scurtează. */
.pps-grid > * + * { margin-block-start: 0; }
.pps-grid > .wp-block-post { display: flex; }
.pps-grid > .wp-block-post > * { flex: 1 1 auto; min-width: 0; }

.pps-split > br,
.pps-grid > br,
.pps-rand > br,
.pps-btn > br { display: none; }

.pps-split { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 32px; align-items: start; }
.pps-split--sidebar-stanga { grid-template-columns: 280px minmax(0, 1fr); }

.pps-stack { display: flex; flex-direction: column; gap: 16px; }
.pps-stack--mic { gap: 8px; }
.pps-stack--mare { gap: 24px; }

.pps-rand { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.pps-rand--intre { justify-content: space-between; }

.pps-centrat { text-align: center; margin-inline: auto; max-width: 64ch; }

/* ═══════════════════════════════════════════════════════════════════
   2. Antet de secțiune
   ═══════════════════════════════════════════════════════════════════ */

.pps-antet-sectiune { text-align: center; margin-bottom: 32px; display: flex; flex-direction: column; gap: 8px; align-items: center; }
.pps-antet-sectiune--stanga { text-align: left; align-items: flex-start; }

.pps-eyebrow {
	font-family: var(--pps-display); font-size: 13px; font-weight: 700;
	text-transform: uppercase; letter-spacing: .08em; color: var(--pps-rosu-inchis); margin: 0;
}
.pps-h2 {
	font-family: var(--pps-display); font-weight: 700; color: var(--pps-ink);
	font-size: var(--wp--preset--font-size--xxl, 2.25rem); letter-spacing: -.02em;
	line-height: 1.15; margin: 0;
}
.pps-h3 {
	font-family: var(--pps-display); font-weight: 700; color: var(--pps-ink);
	font-size: var(--wp--preset--font-size--xl, 1.75rem); letter-spacing: -.015em;
	line-height: 1.2; margin: 0;
}
.pps-h4 {
	font-family: var(--pps-display); font-weight: 700; color: var(--pps-ink);
	font-size: var(--wp--preset--font-size--lg, 1.375rem); line-height: 1.3; margin: 0;
}
.pps-lead { font-size: 1.125rem; color: var(--pps-text); max-width: 60ch; margin: 0; line-height: 1.6; }
.pps-antet-sectiune .pps-lead { margin-inline: auto; }
.pps-antet-sectiune--stanga .pps-lead { margin-inline: 0; }

/* ═══════════════════════════════════════════════════════════════════
   3. Carduri
   ═══════════════════════════════════════════════════════════════════ */

.pps-card {
	background: var(--pps-alb);
	border: 1px solid var(--pps-linie);
	border-radius: var(--pps-raza-card);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	height: 100%;
	position: relative;
	transition: border-color var(--pps-tranzitie), box-shadow var(--pps-tranzitie);
}
.pps-card--hover:focus-within { box-shadow: var(--pps-umbra-ridicat); border-color: var(--pps-pal); } @media (hover: hover) { .pps-card--hover:hover { box-shadow: var(--pps-umbra-ridicat); border-color: var(--pps-pal); } }
.pps-card--hover:focus-within .pps-card__media img { transform: scale(1.02); } @media (hover: hover) { .pps-card--hover:hover .pps-card__media img { transform: scale(1.02); } }
.pps-card--plat { border: 0; box-shadow: none; }
.pps-card--rece { background: var(--pps-fundal); }

.pps-card__media {
	background: var(--pps-fundal);
	padding: 16px;
	position: relative;
	aspect-ratio: 4 / 3;
	display: flex; align-items: center; justify-content: center;
	overflow: hidden;
}
.pps-card__media--patrat { aspect-ratio: 1 / 1; }
.pps-card__media--foto { padding: 0; }
.pps-card__media img { width: 100%; height: 100%; object-fit: contain; transition: transform var(--pps-tranzitie); }
.pps-card__media--foto img { object-fit: cover; }
.pps-card__media--gol { color: var(--pps-linie); }
.pps-card__media--gol .pps-ico { font-size: 40px; }

.pps-card__corp { padding: 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.pps-card__titlu {
	font-family: var(--pps-font); font-size: 16px; font-weight: 600; line-height: 1.35;
	color: var(--pps-ink); margin: 0;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.pps-card__titlu a { color: inherit; text-decoration: none; }
@media (hover: hover) { .pps-card__titlu a:hover { color: var(--pps-rosu-inchis); } }
.pps-card__meta { font-size: 13px; color: var(--pps-text); margin: 0; }
.pps-card__text { font-size: 15px; color: var(--pps-text); margin: 0; line-height: 1.55; }
.pps-card__subsol { margin-top: auto; padding-top: 12px; }
.pps-card--produs .pps-card__subsol .pps-btn { width: 100%; justify-content: center; }

.pps-card--nevoie { align-items: center; text-align: center; padding: 24px 16px; gap: 12px; }
.pps-card--nevoie img { width: 48px; height: 48px; }
.pps-card--nevoie .pps-card__titlu { -webkit-line-clamp: 2; font-weight: 700; font-family: var(--pps-display); }
@media (hover: hover) { .pps-card--nevoie:hover { border-color: var(--pps-pal); box-shadow: var(--pps-umbra-ridicat); } }
a.pps-card--nevoie { text-decoration: none; }

.pps-card--brand { padding: 16px; gap: 10px; text-decoration: none; }
.pps-card__media--wordmark {
	aspect-ratio: auto; min-height: 96px; display: grid; place-items: center;
	background: var(--pps-pal); border-radius: var(--pps-raza-mic);
}
.pps-brand-wordmark {
	font-family: var(--pps-display); font-weight: 700; font-size: clamp(15px, 2.2vw, 20px);
	letter-spacing: -.01em; color: var(--pps-ink); opacity: .7; text-align: center;
	text-transform: uppercase; padding: 8px; text-decoration: none;
}
.pps-card--brand:focus-visible .pps-brand-wordmark { opacity: 1; } @media (hover: hover) { .pps-card--brand:hover .pps-brand-wordmark { opacity: 1; } }
.pps-card--brand .pps-card__nume {
	font-family: var(--pps-display); font-weight: 700; font-size: 15px; letter-spacing: .01em;
	color: var(--pps-ink); text-align: center; margin: 0;
}

/* ═══════════════════════════════════════════════════════════════════
   4. Butoane
   ═══════════════════════════════════════════════════════════════════ */

.pps-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	border-radius: var(--pps-raza-card);
	padding: 13px 22px;
	font-family: var(--pps-display); font-weight: 600; font-size: 16px; line-height: 1.2;
	text-decoration: none; border: 1px solid transparent; cursor: pointer;
	transition: background-color var(--pps-tranzitie), color var(--pps-tranzitie), border-color var(--pps-tranzitie);
}
.pps-btn--primar { background: var(--pps-rosu); color: #fff; border-color: var(--pps-rosu); }
.pps-btn--primar:focus-visible { background: var(--pps-rosu-inchis); border-color: var(--pps-rosu-inchis); color: #fff; } @media (hover: hover) { .pps-btn--primar:hover { background: var(--pps-rosu-inchis); border-color: var(--pps-rosu-inchis); color: #fff; } }
.pps-btn--secundar { background: var(--pps-alb); color: var(--pps-ink); border-color: var(--pps-linie); }
.pps-btn--secundar:focus-visible { background: var(--pps-pal); color: var(--pps-ink); } @media (hover: hover) { .pps-btn--secundar:hover { background: var(--pps-pal); color: var(--pps-ink); } }
.pps-btn--ink { background: var(--pps-ink); color: #fff; border-color: var(--pps-ink); }
.pps-btn--ink:focus-visible { background: #17395f; color: #fff; } @media (hover: hover) { .pps-btn--ink:hover { background: #17395f; color: #fff; } }
.pps-btn--fantoma { background: transparent; color: var(--pps-rosu); border-color: var(--pps-rosu); }
.pps-btn--fantoma:focus-visible { background: var(--pps-rosu-pal); color: var(--pps-rosu-inchis); } @media (hover: hover) { .pps-btn--fantoma:hover { background: var(--pps-rosu-pal); color: var(--pps-rosu-inchis); } }
.pps-btn--link { background: none; border: 0; padding: 6px 0; color: var(--pps-rosu-inchis); }
@media (hover: hover) { .pps-btn--link:hover { color: var(--pps-ink); } }
.pps-btn--mic { padding: 8px 14px; font-size: 14px; }
.pps-btn--mare { padding: 16px 28px; font-size: 18px; }
.pps-btn--bloc { width: 100%; }

/* ═══════════════════════════════════════════════════════════════════
   5. Badge-uri
   ═══════════════════════════════════════════════════════════════════ */

.pps-badge {
	display: inline-flex; align-items: center; gap: 6px;
	font-family: var(--pps-display); font-size: 12px; font-weight: 700; line-height: 1.2;
	padding: 4px 10px; border-radius: var(--pps-raza-pila); letter-spacing: .02em;
	border: 1px solid transparent; white-space: nowrap;
}
.pps-badge--rosu { background: var(--pps-rosu); color: #fff; }
.pps-badge--pal { background: var(--pps-rosu-pal); color: var(--pps-rosu-inchis); }
.pps-badge--ink { background: var(--pps-ink); color: #fff; }
.pps-badge--verde { background: var(--pps-verde); color: #fff; }
.pps-badge--contur { background: transparent; border-color: var(--pps-linie); color: var(--pps-text); }
/* Blocul core `post-terms` vine cu `display:flex`, deci pastila se întindea pe toată lățimea cardului. */
.pps-badge.wp-block-post-terms { display: inline-flex; width: auto; max-width: max-content; }
.pps-badge a { color: inherit; text-decoration: none; }
@media (hover: hover) { .pps-badge a:hover { text-decoration: underline; } }

/* Numele produsului în tabelele WooCommerce (coș, checkout, comandă) e link, dar nu e un link
   din corpul textului: fără roșu subliniat. */
.shop_table .product-name a,
.woocommerce-table--order-details .product-name a { color: var(--pps-ink); text-decoration: none; font-weight: 600; }
@media (hover: hover) { .shop_table .product-name a:hover { color: var(--pps-rosu); text-decoration: underline; } }
.pps-badge--importator .pps-marca__semn { width: 12px; height: 12px; color: var(--pps-rosu); }
.pps-badge-stiva { position: absolute; top: 12px; left: 12px; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; z-index: 2; }

/* ═══════════════════════════════════════════════════════════════════
   6. Fișa tehnică — semnătura vizuală
   ═══════════════════════════════════════════════════════════════════ */

.pps-fisa {
	border-top: 1px solid var(--pps-linie);
	padding-top: 10px;
	display: flex; flex-wrap: wrap; gap: 8px 20px;
	font-size: 12px; margin: 0;
	overflow-x: auto;
	overflow-y: hidden; /* QA 24.09: în Firefox rândul avea 1 px de depășire pe verticală și devenea regiune derulabilă fără focus (axe scrollable-region-focusable) */
}
.pps-fisa--fara-linie { border-top: 0; padding-top: 0; }
.pps-fisa__camp { display: inline-flex; gap: 6px; align-items: baseline; white-space: nowrap; }
.pps-fisa__eticheta {
	font-family: var(--pps-display); font-size: 11px; font-weight: 700;
	text-transform: uppercase; letter-spacing: .09em; color: var(--pps-text);
}
.pps-fisa__valoare {
	font-family: var(--pps-display); font-size: 12px; font-weight: 600;
	color: var(--pps-ink); font-variant-numeric: tabular-nums;
	margin-inline: 0; /* `dd` are `margin-left: 40px` din foaia browserului */
}

/* Pe cardul de produs fișa tehnică se așază pe coloană. Pragul e lățimea CARDULUI, nu a
   ferestrei: la 390px grila are 2 coloane (card 171px) și la 900px are 3 (card 218px) —
   în ambele cazuri coloana de valoare rămânea sub 60px și „ISO 13485, Marcaj CE" se rupea
   în „ISO / 134 / 85, / Mar / caj / CE". Eticheta trece deasupra valorii, ambele pe toată
   lățimea, deci valoarea are loc să încapă pe un rând sau două. */
.pps-card--produs .pps-card__corp { container-type: inline-size; container-name: ppscard; }
.pps-card--produs .pps-fisa { min-width: 0; }
@container ppscard (max-width: 200px) {
	.pps-fisa { flex-direction: column; flex-wrap: nowrap; gap: 6px; overflow: visible; }
	.pps-fisa__camp { display: flex; flex-direction: column; align-items: flex-start; width: 100%; min-width: 0; gap: 1px; white-space: normal; }
	.pps-fisa__valoare { min-width: 0; overflow-wrap: anywhere; line-height: 1.3; }
}
/* Rezervă pentru browserele fără container queries: același efect, pe lățimea ferestrei. */
@supports not (container-type: inline-size) {
	@media (max-width: 900px) {
		.pps-card--produs .pps-fisa { flex-direction: column; flex-wrap: nowrap; gap: 6px; overflow: visible; }
		.pps-card--produs .pps-fisa__camp { display: flex; flex-direction: column; align-items: flex-start; width: 100%; min-width: 0; gap: 1px; white-space: normal; }
		.pps-card--produs .pps-fisa__valoare { min-width: 0; overflow-wrap: anywhere; }
	}
}

/* ═══════════════════════════════════════════════════════════════════
   7. Preț și stoc
   ═══════════════════════════════════════════════════════════════════ */

.pps-pret { display: flex; flex-direction: column; gap: 2px; }
.pps-pret__principal {
	font-family: var(--pps-display); font-weight: 700; font-size: 22px; line-height: 1.15;
	color: var(--pps-ink); font-variant-numeric: tabular-nums;
}
.pps-pret__principal small { font-family: var(--pps-font); font-size: 12px; font-weight: 400; color: var(--pps-text); margin-left: 4px; }
.pps-pret__tva { font-size: 13px; color: var(--pps-text); font-variant-numeric: tabular-nums; }
.pps-pret__vechi { font-size: 14px; color: var(--pps-text); text-decoration: line-through; font-variant-numeric: tabular-nums; }
.pps-pret--redus .pps-pret__principal { color: var(--pps-rosu); }
.pps-pret--mare .pps-pret__principal { font-size: 34px; }

.pps-stoc { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--pps-verde); font-weight: 600; }
.pps-stoc::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; flex: none; }
.pps-stoc--limitat { color: var(--pps-portocaliu); }
.pps-stoc--indisponibil { color: var(--pps-text); }
.pps-stoc--indisponibil::before { background: var(--pps-linie); }

/* ═══════════════════════════════════════════════════════════════════
   8. Cifre de încredere
   ═══════════════════════════════════════════════════════════════════ */

.pps-cifre { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.pps-cifre__item { text-align: center; display: flex; flex-direction: column; gap: 4px; }
.pps-cifre__valoare {
	font-family: var(--pps-display); font-weight: 700;
	font-size: var(--wp--preset--font-size--xl, 1.75rem);
	color: var(--pps-ink); font-variant-numeric: tabular-nums; line-height: 1.1;
}
.pps-cifre__eticheta { font-size: 13px; color: var(--pps-text); }
.pps-section--ink .pps-cifre__valoare { color: #fff; }
.pps-section--ink .pps-cifre__eticheta { color: rgba(255, 255, 255, .72); }

/* ═══════════════════════════════════════════════════════════════════
   9. Controale și formulare
   ═══════════════════════════════════════════════════════════════════ */

.pps-chip {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 8px 14px; border-radius: var(--pps-raza-mic);
	background: var(--pps-pal); color: var(--pps-ink);
	border: 1px solid transparent;
	font-family: var(--pps-font); font-size: 14px; font-weight: 600; line-height: 1.2;
	cursor: pointer; text-decoration: none; min-height: 40px;
	transition: background-color var(--pps-tranzitie), color var(--pps-tranzitie);
}
.pps-chip--activ { background: var(--pps-ink); color: #fff; }
.pps-chip--indisponibil { opacity: .4; cursor: not-allowed; text-decoration: line-through; }
.pps-chip--culoare { width: 32px; height: 32px; min-height: 32px; border-radius: 50%; padding: 0; }
.pps-chip--culoare.pps-chip--activ { box-shadow: 0 0 0 2px var(--pps-alb), 0 0 0 4px var(--pps-ink); }

.pps-camp { display: flex; flex-direction: column; gap: 6px; }
.pps-eticheta { font-size: 14px; font-weight: 600; color: var(--pps-ink); }
.pps-input, .pps-select, .pps-textarea {
	padding: 11px 14px; border-radius: var(--pps-raza-mic);
	border: 1px solid var(--pps-linie-camp); background: var(--pps-alb);
	font-family: var(--pps-font); font-size: 16px; color: var(--pps-ink); width: 100%;
}
.pps-input:focus, .pps-select:focus, .pps-textarea:focus {
	/* 29.09.2026 (WCAG 2.4.7, 1.4.11): inelul era bleumarin la 18 % (abia vizibil); acum plin, ca focusul din restul site-ului. */
	border-color: var(--pps-ink); outline: 2px solid var(--pps-ink); outline-offset: 1px;
}
.pps-ajutor { font-size: 13px; color: var(--pps-text); }
.pps-eroare { font-size: 13px; color: var(--pps-rosu-inchis); display: inline-flex; gap: 6px; align-items: center; }

.pps-stepper { display: inline-flex; align-items: center; border: 1px solid var(--pps-linie-camp); border-radius: var(--pps-raza-mic); overflow: hidden; background: var(--pps-alb); }
.pps-stepper button {
	width: 40px; height: 40px; border: 0; background: var(--pps-alb); color: var(--pps-ink);
	cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
}
@media (hover: hover) { .pps-stepper button:hover { background: var(--pps-pal); } }
.pps-stepper input {
	width: 48px; height: 40px; border: 0; text-align: center;
	font-family: var(--pps-display); font-weight: 600; font-variant-numeric: tabular-nums;
	color: var(--pps-ink); font-size: 16px; background: var(--pps-alb);
}

/* Căutarea din antet.
   Structura vine din `pps-features` (.pps-cautare > form.pps-cautare__form + panou);
   regulile de mai jos merg și dacă .pps-cautare e chiar formularul (fallback-ul temei). */
.pps-cautare { display: block; width: 100%; position: relative; }
.pps-cautare__form, form.pps-cautare { display: flex; width: 100%; }
.pps-cautare__panou {
	position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 75;
	background: var(--pps-alb); border: 1px solid var(--pps-linie);
	border-radius: var(--pps-raza-card); box-shadow: var(--pps-umbra-panou);
	max-height: 60vh; overflow-y: auto;
}
.pps-cautare__input {
	flex: 1; min-width: 0;
	padding: 12px 16px 12px 42px;
	border: 1px solid var(--pps-linie-camp); border-right: 0;
	border-radius: var(--pps-raza-mic) 0 0 var(--pps-raza-mic);
	font-family: var(--pps-font); font-size: 16px; color: var(--pps-ink);
	background: var(--pps-fundal) url("assets/icons/cautare.svg") no-repeat 14px center / 18px 18px;
}
.pps-cautare__input::placeholder { color: var(--pps-text); }
.pps-cautare__input:focus { background-color: var(--pps-alb); border-color: var(--pps-ink); }
.pps-cautare__buton {
	flex: none; width: 52px; border: 0; cursor: pointer;
	background: var(--pps-rosu); color: #fff;
	border-radius: 0 var(--pps-raza-mic) var(--pps-raza-mic) 0;
	display: inline-flex; align-items: center; justify-content: center;
}
@media (hover: hover) { .pps-cautare__buton:hover { background: var(--pps-rosu-inchis); } }
.pps-cautare__buton .pps-ico { font-size: 20px; }

/* ═══════════════════════════════════════════════════════════════════
   10. Blocuri de conținut
   ═══════════════════════════════════════════════════════════════════ */

.pps-caseta { background: var(--pps-alb); border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-card); padding: 24px; }
.pps-caseta--rece { background: var(--pps-fundal); }
.pps-caseta--rosie { background: var(--pps-rosu-pal); border-color: var(--pps-rosu-pal); }
.pps-caseta--ink { background: var(--pps-ink); border-color: var(--pps-ink); color: #fff; }
.pps-caseta--ink .pps-h3, .pps-caseta--ink h3 { color: #fff; }
/* Pe fundal bleumarin, linkurile de text rămâneau roșu închis (#a9121a) și nota rămânea
   gri-albastru: telefonul și adresa de e-mail de pe /seap-sicap/ erau practic ilizibile. */
.pps-caseta--ink a:not(.pps-btn), .pps-section--ink a:not(.pps-btn), .pps-banda--ink a:not(.pps-btn) {
	color: #fff; text-decoration-color: rgba(255, 255, 255, .55);
}
@media (hover: hover) { .pps-caseta--ink a:not(.pps-btn):hover, .pps-section--ink a:not(.pps-btn):hover, .pps-banda--ink a:not(.pps-btn):hover {
	color: #fff; text-decoration-color: #fff;
} }
.pps-caseta--ink .pps-nota, .pps-section--ink .pps-nota, .pps-banda--ink .pps-nota { color: rgba(255, 255, 255, .72); }

.pps-banda { background: var(--pps-pal); padding-block: 28px; }
.pps-banda--rosie { background: var(--pps-rosu-inchis); color: #fff; }
.pps-banda--ink { background: var(--pps-ink); color: #fff; }
.pps-banda__int { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: space-between; }
.pps-banda__titlu {
	font-family: var(--pps-display); font-weight: 700; margin: 0;
	font-size: var(--wp--preset--font-size--xl, 1.75rem); line-height: 1.2; color: inherit; letter-spacing: -.015em;
}
.pps-banda__titlu strong { font-weight: 700; }
.pps-banda__titlu span { font-weight: 400; }
.pps-banda--rosie .pps-btn--secundar { border-color: transparent; }
.pps-banda__text { margin: 0; color: inherit; opacity: 1; }

.pps-lista-bifata { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.pps-lista-bifata li { position: relative; padding-left: 30px; line-height: 1.5; }
.pps-lista-bifata li::before {
	content: ""; position: absolute; left: 0; top: .18em;
	width: 18px; height: 18px; background: var(--pps-verde);
	-webkit-mask: url("assets/icons/bifa.svg") center / 16px 16px no-repeat;
	mask: url("assets/icons/bifa.svg") center / 16px 16px no-repeat;
}

.pps-standarde { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.pps-standard { background: var(--pps-alb); border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-card); padding: 20px; display: flex; flex-direction: column; gap: 8px; }
.pps-standard__icon { color: var(--pps-ink); font-size: 40px; }
.pps-standard__titlu { font-family: var(--pps-display); font-size: 16px; font-weight: 700; color: var(--pps-ink); margin: 0; }
.pps-standard p { margin: 0; font-size: 15px; color: var(--pps-text); }

.pps-video { position: relative; border-radius: var(--pps-raza-card); overflow: hidden; background: var(--pps-ink); min-height: 220px; display: flex; }
/* `pps-video__poster` e învelișul randat de pps-features (img + badge + conținut),
   nu imaginea în sine: dacă îl scoatem din flux, cardul rămâne la 220px și taie butonul. */
.pps-video__poster { position: relative; display: flex; flex: 1 1 auto; min-width: 0; }
.pps-video__poster > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pps-video::after {
	content: ""; position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(180deg, rgba(12, 35, 64, .35) 0%, rgba(12, 35, 64, .88) 100%);
}
/* `__continut` e numele randat de pps-features; fără el, voalul ::after acoperă butonul. */
.pps-video__corp,
.pps-video__continut { position: relative; z-index: 2; flex: 1 1 auto; padding: 24px; display: flex; flex-direction: column; gap: 12px; justify-content: flex-end; align-items: flex-start; }
.pps-video__titlu { font-family: var(--pps-display); font-weight: 700; font-size: 20px; color: #fff; margin: 0; }
.pps-video__miniaturi { display: flex; gap: 8px; margin-top: 4px; }
.pps-video__miniaturi img { width: 56px; height: 42px; object-fit: cover; border-radius: 4px; border: 1px solid rgba(255, 255, 255, .35); }

.pps-taburi { margin-top: 8px; }
.pps-taburi__nav {
	display: flex; gap: 4px; overflow-x: auto; border-bottom: 1px solid var(--pps-linie);
	scrollbar-width: none;
	/* Umbră de derulare: pe mobil al treilea tab e tăiat în mijlocul cuvântului și nimic nu
	   spune că bara se derulează. Gradientul cu `background-attachment: local` apare doar
	   când mai e conținut la dreapta și dispare la capăt. */
	background:
		linear-gradient(to left, var(--pps-alb), rgba(255, 255, 255, 0)) right center / 24px 100% no-repeat local,
		radial-gradient(farthest-side at 100% 50%, rgba(12, 35, 64, .16), rgba(12, 35, 64, 0)) right center / 14px 100% no-repeat scroll;
}
.pps-taburi__nav::-webkit-scrollbar { display: none; }
.pps-taburi__buton {
	border: 0; background: none; cursor: pointer; white-space: nowrap;
	padding: 12px 16px; font-family: var(--pps-font); font-size: 15px; font-weight: 600;
	color: var(--pps-text); border-bottom: 2px solid transparent;
}
.pps-taburi__buton[aria-selected="true"] { color: var(--pps-ink); border-bottom-color: var(--pps-rosu); }
.pps-taburi__panou { padding-top: 24px; }
.pps-taburi__panou[hidden] { display: none; }

.pps-breadcrumb { font-size: 13px; color: var(--pps-text); display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 0; padding: 0; list-style: none; }
.pps-breadcrumb a { color: var(--pps-text); text-decoration: none; }
@media (hover: hover) { .pps-breadcrumb a:hover { color: var(--pps-rosu-inchis); text-decoration: underline; } }
.pps-breadcrumb li + li::before { content: "›"; margin-right: 6px; color: var(--pps-linie); }

.pps-gol { text-align: center; padding: 48px 24px; display: flex; flex-direction: column; align-items: center; gap: 12px; border: 1px dashed var(--pps-linie); border-radius: var(--pps-raza-card); background: var(--pps-fundal); }
.pps-gol .pps-ico { font-size: 48px; color: var(--pps-linie); }
.pps-gol__titlu { font-family: var(--pps-display); font-size: var(--wp--preset--font-size--lg, 1.375rem); font-weight: 700; color: var(--pps-ink); margin: 0; }
.pps-gol p { margin: 0; color: var(--pps-text); max-width: 46ch; }

.pps-progres { display: flex; flex-direction: column; gap: 6px; }
.pps-progres__bara { height: 8px; border-radius: var(--pps-raza-pila); background: var(--pps-pal); overflow: hidden; }
.pps-progres__bara > span { display: block; height: 100%; background: var(--pps-verde); }
.pps-progres__text { font-size: 13px; color: var(--pps-text); }

.pps-tabel { width: 100%; border-collapse: collapse; font-size: 15px; }
.pps-tabel th { background: var(--pps-pal); color: var(--pps-ink); text-align: left; font-family: var(--pps-display); font-weight: 700; font-size: 14px; }
.pps-tabel th, .pps-tabel td { padding: 10px 14px; border-bottom: 1px solid var(--pps-linie); }
.pps-tabel td { font-variant-numeric: tabular-nums; }
.pps-tabel-wrap { overflow-x: auto; }
/* Tabelele din „Politica de cookies” (D93): numele pe primul rând al celulei, furnizorul sub el; coloana duratei îngustă. */
.pps-tabel--cookies { margin: 12px 0 28px; }
.pps-tabel--cookies table { width: 100%; }
.pps-tabel--cookies td { vertical-align: top; font-variant-numeric: normal; }
.pps-tabel--cookies td:first-child { width: 34%; min-width: 10rem; color: var(--pps-text); font-size: var(--pps-fs-detaliu, .8125rem); }
.pps-tabel--cookies td:last-child { width: 20%; min-width: 7rem; }
.pps-tabel--cookies code { font-size: .875rem; color: var(--pps-ink); overflow-wrap: anywhere; background: none; padding: 0; }
/* Pe telefon, fiecare rând devine un bloc: numele, scopul, apoi durata, fără derulare laterală. */
@media (max-width: 599px) {
	.pps-tabel--cookies { overflow-x: visible; }
	.pps-tabel--cookies thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	.pps-tabel--cookies table, .pps-tabel--cookies tbody, .pps-tabel--cookies tr, .pps-tabel--cookies td { display: block; width: auto; min-width: 0; }
	.pps-tabel--cookies tr { padding: 12px 0; border-bottom: 1px solid var(--pps-linie); }
	.pps-tabel--cookies tr:first-child { border-top: 1px solid var(--pps-linie); }
	.pps-tabel--cookies td { padding: 2px 0; border: 0; }
	.pps-tabel--cookies td:first-child { width: auto; min-width: 0; margin-bottom: 4px; }
	.pps-tabel--cookies td:last-child { width: auto; min-width: 0; color: var(--pps-text); font-size: var(--pps-fs-detaliu, .8125rem); }
	.pps-tabel--cookies td:last-child::before { content: "Durată: "; font-weight: 600; }
	:lang(en) .pps-tabel--cookies td:last-child::before { content: "Duration: "; }
}

.pps-harta { aspect-ratio: 16 / 7; border-radius: var(--pps-raza-card); overflow: hidden; border: 1px solid var(--pps-linie); }
.pps-harta iframe { width: 100%; height: 100%; border: 0; display: block; }

.pps-nota { font-size: 13px; color: var(--pps-text); }
.pps-hairline { height: 1px; background: var(--pps-linie); border: 0; margin-block: 16px; margin-inline: 0; }

/* ═══════════════════════════════════════════════════════════════════
   11. Iconuri (mască CSS)
   ═══════════════════════════════════════════════════════════════════ */

.pps-ico {
	display: inline-block; width: 1em; height: 1em; flex: none;
	background: currentColor; vertical-align: -.125em;
	-webkit-mask: var(--pps-ico) center / contain no-repeat;
	mask: var(--pps-ico) center / contain no-repeat;
}
.pps-ico--telefon { --pps-ico: url("assets/icons/telefon.svg"); }
.pps-ico--whatsapp { --pps-ico: url("assets/icons/whatsapp.svg"); }
.pps-ico--mail { --pps-ico: url("assets/icons/mail.svg"); }
.pps-ico--pin { --pps-ico: url("assets/icons/pin.svg"); }
.pps-ico--ceas { --pps-ico: url("assets/icons/ceas.svg"); }
.pps-ico--camion { --pps-ico: url("assets/icons/camion.svg"); }
.pps-ico--scut { --pps-ico: url("assets/icons/scut.svg"); }
.pps-ico--certificat { --pps-ico: url("assets/icons/certificat.svg"); }
.pps-ico--bifa { --pps-ico: url("assets/icons/bifa.svg"); }
.pps-ico--cos { --pps-ico: url("assets/icons/cos.svg"); }
.pps-ico--cont { --pps-ico: url("assets/icons/cont.svg"); }
.pps-ico--inima { --pps-ico: url("assets/icons/inima.svg"); }
.pps-ico--lista { --pps-ico: url("assets/icons/lista.svg"); }
.pps-ico--cautare { --pps-ico: url("assets/icons/cautare.svg"); }
.pps-ico--filtru { --pps-ico: url("assets/icons/filtru.svg"); }
.pps-ico--sageata { --pps-ico: url("assets/icons/sageata.svg"); }
.pps-ico--play { --pps-ico: url("assets/icons/play.svg"); }
.pps-ico--factura { --pps-ico: url("assets/icons/factura.svg"); }
.pps-ico--descarca { --pps-ico: url("assets/icons/descarca.svg"); }
.pps-ico--info { --pps-ico: url("assets/icons/info.svg"); }
.pps-ico--plus { --pps-ico: url("assets/icons/plus.svg"); }
.pps-ico--minus { --pps-ico: url("assets/icons/minus.svg"); }
.pps-ico--inchide { --pps-ico: url("assets/icons/inchide.svg"); }
.pps-ico--meniu { --pps-ico: url("assets/icons/meniu.svg"); }
.pps-ico--seap { --pps-ico: url("assets/icons/seap.svg"); }
.pps-ico--stea { --pps-ico: url("assets/icons/stea.svg"); }
.pps-ico--acasa { --pps-ico: url("assets/icons/acasa.svg"); }
.pps-ico--facebook { --pps-ico: url("assets/icons/facebook.svg"); }

.pps-doar-desktop { display: initial; }
.pps-doar-mobil { display: none; }
.pps-sr {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ═══════════════════════════════════════════════════════════════════
   12. Marca
   ═══════════════════════════════════════════════════════════════════ */

.pps-marca { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; flex: none; }
.pps-marca__semn { color: var(--pps-rosu); width: 34px; height: 34px; display: block; flex: none; }
.pps-marca__semn svg { width: 100%; height: 100%; display: block; }
.pps-marca__text { display: flex; flex-direction: column; line-height: 1.05; }
.pps-marca__nume {
	font-family: var(--pps-display); font-weight: 700; font-size: 17px;
	text-transform: uppercase; color: var(--pps-rosu); letter-spacing: .005em;
}
.pps-marca__nume b { font-size: 1.24em; font-weight: 700; }
.pps-marca__tagline { font-family: var(--pps-font); font-weight: 400; font-size: 11px; color: var(--pps-text); margin-top: 2px; }
.pps-subsol .pps-marca__nume { color: #fff; }
.pps-subsol .pps-marca__semn { color: #fff; }
.pps-subsol .pps-marca__tagline { color: rgba(255, 255, 255, .68); }

/* ═══════════════════════════════════════════════════════════════════
   13. Antet
   ═══════════════════════════════════════════════════════════════════ */

.pps-bara-utilitate { background: var(--pps-rosu); color: #fff; font-size: 13px; }
.pps-bara-utilitate__int { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: var(--pps-bara-h); flex-wrap: wrap; }
.pps-bara-utilitate__pile { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
.pps-bara-utilitate__pila {
	display: inline-flex; align-items: center; gap: 6px;
	border: 1px solid rgba(255, 255, 255, .55); border-radius: var(--pps-raza-pila);
	padding: 3px 12px; font-size: 12.5px; font-weight: 600; color: #fff; white-space: nowrap;
}
.pps-bara-utilitate__contact { display: flex; align-items: center; gap: 16px; }
.pps-bara-utilitate a { color: #fff; text-decoration: none; display: inline-flex; align-items: center; gap: 7px; }
@media (hover: hover) { .pps-bara-utilitate a:hover { text-decoration: underline; color: #fff; } }
.pps-bara-utilitate__tel { font-family: var(--pps-display); font-weight: 700; font-size: 16px; font-variant-numeric: tabular-nums; }

.pps-antet-lipicios { position: sticky; top: 0; z-index: 60; background: var(--pps-alb); border-bottom: 1px solid var(--pps-linie); }
/* The WordPress toolbar is fixed above the site header, except on small phones. */
body { --pps-toolbar-height: 0px; }
body.admin-bar { --pps-toolbar-height: 32px; }
.admin-bar .pps-antet-lipicios { top: var(--pps-toolbar-height); }
@media (max-width: 782px) { body.admin-bar { --pps-toolbar-height: 46px; } }
@media (max-width: 600px) { body.admin-bar { --pps-toolbar-height: 0px; } }
.pps-antet__int { display: flex; align-items: center; gap: 24px; min-height: var(--pps-antet-h); }
.pps-antet__cautare { flex: 1; min-width: 0; max-width: 620px; }
.pps-antet__actiuni { display: flex; align-items: center; gap: 18px; margin-left: auto; }
.pps-antet__actiune {
	display: inline-flex; align-items: center; gap: 7px; text-decoration: none;
	color: var(--pps-ink); font-size: 14px; font-weight: 600; position: relative; white-space: nowrap;
}
@media (hover: hover) { .pps-antet__actiune:hover { color: var(--pps-rosu-inchis); } }
.pps-antet__actiune .pps-ico { font-size: 20px; }
.pps-antet__contor {
	background: var(--pps-rosu); color: #fff; border-radius: var(--pps-raza-pila);
	font-family: var(--pps-display); font-size: 11px; font-weight: 700; line-height: 1;
	min-width: 18px; height: 18px; padding: 0 5px;
	display: inline-flex; align-items: center; justify-content: center;
	font-variant-numeric: tabular-nums;
}
.pps-antet__hamburger, .pps-antet__cautare-mobil {
	display: none; border: 1px solid var(--pps-linie); background: var(--pps-alb);
	border-radius: var(--pps-raza-mic); width: 42px; height: 42px; color: var(--pps-ink);
	align-items: center; justify-content: center; cursor: pointer;
}
.pps-antet__hamburger .pps-ico { font-size: 22px; }

/* Rândul de navigare + declanșatorul de mega meniu */
.pps-nav { border-top: 1px solid var(--pps-linie); background: var(--pps-alb); position: relative; }
.pps-nav__int { display: flex; align-items: center; gap: 8px; min-height: 52px; }
.pps-nav__catalog {
	display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
	background: var(--pps-rosu); color: #fff; border: 1px solid var(--pps-rosu);
	border-radius: var(--pps-raza-mic); padding: 9px 16px;
	font-family: var(--pps-display); font-size: 15px; font-weight: 600; white-space: nowrap;
}
@media (hover: hover) { .pps-nav__catalog:hover { background: var(--pps-rosu-inchis); border-color: var(--pps-rosu-inchis); } }
.pps-nav__catalog .pps-ico--sageata { transform: rotate(90deg); font-size: 15px; transition: transform var(--pps-tranzitie); }
.pps-nav__catalog[aria-expanded="true"] .pps-ico--sageata { transform: rotate(-90deg); }
.pps-nav__lista { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
.pps-nav__lista a {
	display: inline-block; padding: 9px 12px; text-decoration: none;
	color: var(--pps-ink); font-size: 14.5px; font-weight: 600; border-radius: var(--pps-raza-mic);
}
@media (hover: hover) { .pps-nav__lista a:hover { background: var(--pps-fundal); color: var(--pps-rosu-inchis); } }
.pps-nav__oferte { margin-left: auto; }

/* Mega meniu */
.pps-mega {
	position: absolute; left: 0; right: 0; top: 100%;
	background: var(--pps-alb); border: 1px solid var(--pps-linie); border-top: 0;
	box-shadow: var(--pps-umbra-panou); z-index: 70;
}
.pps-mega[hidden] { display: none; }
.pps-mega__int { display: grid; grid-template-columns: 260px minmax(0, 1fr) 250px; }
.pps-mega__coloana { padding: 16px 0; border-right: 1px solid var(--pps-linie); }
.pps-mega__coloana:last-child { border-right: 0; }
.pps-mega__cat {
	display: flex; align-items: center; justify-content: space-between; gap: 8px;
	width: 100%; text-align: left; background: none; border: 0; cursor: pointer;
	padding: 10px 20px; font-family: var(--pps-font); font-size: 14.5px; font-weight: 600;
	color: var(--pps-ink); text-decoration: none;
}
.pps-mega__cat[data-activ="true"] { background: var(--pps-fundal); color: var(--pps-rosu-inchis); } @media (hover: hover) { .pps-mega__cat:hover { background: var(--pps-fundal); color: var(--pps-rosu-inchis); } }
.pps-mega__cat[data-activ="true"] { box-shadow: inset 3px 0 0 var(--pps-rosu); }
.pps-mega__panou { padding: 20px 24px; }
.pps-mega__panou[hidden] { display: none; }
.pps-mega__titlu { font-family: var(--pps-display); font-size: 17px; font-weight: 700; color: var(--pps-ink); margin: 0 0 12px; }
.pps-mega__sub { columns: 2; column-gap: 28px; list-style: none; margin: 0 0 16px; padding: 0; }
.pps-mega__sub li { break-inside: avoid; margin-bottom: 8px; }
.pps-mega__sub a { font-size: 14px; color: var(--pps-text); text-decoration: none; }
@media (hover: hover) { .pps-mega__sub a:hover { color: var(--pps-rosu-inchis); text-decoration: underline; } }
.pps-mega__nevoi { padding: 20px; background: var(--pps-fundal); height: 100%; }
.pps-mega__nevoi ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pps-mega__nevoi a {
	display: flex; align-items: center; gap: 10px; text-decoration: none;
	background: var(--pps-alb); border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-mic);
	padding: 8px 12px; font-size: 14px; font-weight: 600; color: var(--pps-ink);
}
@media (hover: hover) { .pps-mega__nevoi a:hover { border-color: var(--pps-pal); box-shadow: var(--pps-umbra-card); color: var(--pps-rosu-inchis); } }
.pps-mega__nevoi img { width: 28px; height: 28px; }

/* Meniu mobil */
.pps-meniu-mobil { position: fixed; inset: 0; z-index: 90; background: var(--pps-alb); overflow-y: auto; display: flex; flex-direction: column; }
.pps-meniu-mobil[hidden] { display: none; }
.pps-meniu-mobil__antet { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px; border-bottom: 1px solid var(--pps-linie); position: sticky; top: 0; background: var(--pps-alb); z-index: 2; }
.pps-meniu-mobil__corp { padding: 16px 16px 96px; display: flex; flex-direction: column; gap: 12px; }
.pps-meniu-mobil details { border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-mic); overflow: hidden; }
.pps-meniu-mobil summary {
	padding: 13px 16px; cursor: pointer; font-weight: 600; color: var(--pps-ink);
	background: var(--pps-fundal); list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 8px;
}
.pps-meniu-mobil summary::-webkit-details-marker { display: none; }
.pps-meniu-mobil summary::after { content: "+"; font-family: var(--pps-display); font-size: 20px; color: var(--pps-text); }
.pps-meniu-mobil details[open] summary::after { content: "–"; }
.pps-meniu-mobil details ul { list-style: none; margin: 0; padding: 8px 0; }
.pps-meniu-mobil details a { display: block; padding: 10px 16px; color: var(--pps-text); text-decoration: none; font-size: 15px; }
@media (hover: hover) { .pps-meniu-mobil details a:hover { color: var(--pps-rosu-inchis); background: var(--pps-fundal); } }
.pps-meniu-mobil__linkuri { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.pps-meniu-mobil__linkuri a { display: block; padding: 12px 4px; color: var(--pps-ink); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--pps-linie); }

/* Bara fixă de jos, doar pe mobil */
.pps-bara-mobil {
	display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 80;
	background: var(--pps-alb); border-top: 1px solid var(--pps-linie);
	padding: 6px 8px calc(6px + env(safe-area-inset-bottom));
	box-shadow: 0 -6px 18px -12px rgba(12, 35, 64, .3);
}
.pps-bara-mobil ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); }
.pps-bara-mobil a, .pps-bara-mobil button {
	display: flex; flex-direction: column; align-items: center; gap: 3px;
	padding: 6px 4px; text-decoration: none; color: var(--pps-ink);
	font-size: 11px; font-weight: 600; background: none; border: 0; cursor: pointer; width: 100%;
	min-height: 44px; justify-content: center; position: relative;
}
.pps-bara-mobil .pps-ico { font-size: 21px; }
.pps-bara-mobil .pps-antet__contor { position: absolute; top: 2px; right: 26%; }

/* ═══════════════════════════════════════════════════════════════════
   14. Hero
   ═══════════════════════════════════════════════════════════════════ */

.pps-hero { position: relative; overflow: hidden; background: var(--pps-ink); }
.pps-hero__pic { display: contents; }
.pps-hero__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.pps-hero__voal { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12, 35, 64, .92) 0%, rgba(12, 35, 64, .82) 46%, rgba(12, 35, 64, .5) 100%); }
.pps-hero__int { position: relative; z-index: 1; padding-block: clamp(3rem, 7vw, 5.5rem); max-width: 660px; display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }
.pps-hero__titlu {
	font-family: var(--pps-display); font-weight: 700; color: #fff; margin: 0;
	font-size: var(--wp--preset--font-size--huge, 2.875rem); line-height: 1.08; letter-spacing: -.025em;
}
.pps-hero__lead { color: rgba(255, 255, 255, .86); font-size: 1.125rem; margin: 0; max-width: 52ch; }
.pps-hero__sigilii { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.pps-hero__sigiliu {
	display: inline-flex; align-items: center; gap: 8px;
	border: 1px solid rgba(255, 255, 255, .4); border-radius: var(--pps-raza-pila);
	padding: 6px 14px; font-family: var(--pps-display); font-size: 13px; font-weight: 600; color: #fff;
}
.pps-hero__butoane { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.pps-hero .pps-btn--secundar { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .55); }
@media (hover: hover) { .pps-hero .pps-btn--secundar:hover { background: rgba(255, 255, 255, .12); color: #fff; } }

/* ═══════════════════════════════════════════════════════════════════
   15. Subsol
   ═══════════════════════════════════════════════════════════════════ */

.pps-subsol { background: var(--pps-ink); color: rgba(255, 255, 255, .78); padding-block: clamp(2.5rem, 5vw, 3.5rem) 0; font-size: 15px; }
.pps-subsol__grila { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 32px; }
.pps-subsol__titlu { font-family: var(--pps-display); font-size: 15px; font-weight: 700; color: #fff; text-transform: uppercase; letter-spacing: .06em; margin: 0 0 14px; }
.pps-subsol ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.pps-subsol a { color: rgba(255, 255, 255, .78); text-decoration: none; }
@media (hover: hover) { .pps-subsol a:hover { color: #fff; text-decoration: underline; } }
.pps-subsol .pps-consent-reopen { position: static; background: none; border: 0; border-radius: 0; padding: 0; color: inherit; font: inherit; line-height: inherit; cursor: pointer; text-align: left; }
@media (hover: hover) { .pps-subsol .pps-consent-reopen:hover { color: #fff; text-decoration: underline; } }
/* Distanța dintre legăturile unei coloane, inclusiv cele adăugate de module: 37.9. */
.pps-subsol__grila > div { min-width: 0; overflow-wrap: anywhere; }
.pps-subsol__contact li { display: flex; gap: 10px; align-items: flex-start; }
.pps-subsol__contact .pps-ico { font-size: 17px; margin-top: 2px; color: rgba(255, 255, 255, .6); }
.pps-subsol__tel { font-family: var(--pps-display); font-weight: 700; font-size: 17px; color: #fff; font-variant-numeric: tabular-nums; }
.pps-subsol__insigne { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 16px; }
.pps-subsol__insigne img { height: 34px; width: auto; background: #fff; border-radius: 4px; padding: 2px 4px; }
.pps-subsol__certificari { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.pps-subsol__certificari span {
	border: 1px solid rgba(255, 255, 255, .28); border-radius: var(--pps-raza-pila);
	padding: 4px 12px; font-family: var(--pps-display); font-size: 12px; font-weight: 600; color: #fff;
}
.pps-subsol__jos {
	margin-top: 32px; border-top: 1px solid rgba(255, 255, 255, .14);
	padding-block: 18px; display: flex; flex-wrap: wrap; gap: 12px;
	justify-content: space-between; align-items: center; font-size: 13px;
}
.pps-subsol__jos p { margin: 0; }
.pps-subsol__firma { font-size: 13px; line-height: 1.6; margin: 14px 0 0; color: rgba(255, 255, 255, .62); }

/* ═══════════════════════════════════════════════════════════════════
   16. Pagini interioare, arhive, produs
   ═══════════════════════════════════════════════════════════════════ */

.pps-antet-pagina { background: var(--pps-fundal); border-bottom: 1px solid var(--pps-linie); padding-block: 28px 32px; }
.pps-antet-pagina__titlu { font-family: var(--pps-display); font-weight: 700; font-size: var(--wp--preset--font-size--xxl, 2.25rem); color: var(--pps-ink); margin: 10px 0 0; letter-spacing: -.02em; }
.pps-antet-pagina .pps-lead { margin-top: 10px; }
/* Antetul cu îndemn (SEAP / SICAP, D93): supratitlu, propoziția de îndemn, două butoane și contactul. */
.pps-antet-pagina--cta { padding-block: 32px 40px; }
.pps-antet-pagina__eyebrow { display: flex; align-items: center; gap: 8px; margin-top: 20px; }
.pps-antet-pagina__eyebrow .pps-ico { font-size: 18px; }
.pps-antet-pagina--cta .pps-lead { max-width: 44rem; font-size: var(--wp--preset--font-size--lg, 1.375rem); line-height: 1.45; color: var(--pps-ink); }
.pps-antet-pagina__butoane { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.pps-antet-pagina__contact { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; margin: 18px 0 0; font-size: var(--pps-fs-ui, .9375rem); color: var(--pps-text); }
.pps-antet-pagina__contact a { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; color: var(--pps-ink); font-weight: 600; text-decoration: none; }
@media (hover: hover) { .pps-antet-pagina__contact a:hover span { text-decoration: underline; text-underline-offset: 3px; } }
.pps-antet-pagina__contact .pps-ico { font-size: 18px; color: var(--pps-rosu); }

.pps-filtre { display: flex; flex-direction: column; gap: 20px; }
.pps-filtre__grup { border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-card); background: var(--pps-alb); padding: 16px; }
.pps-filtre__titlu { font-family: var(--pps-display); font-size: 15px; font-weight: 700; color: var(--pps-ink); margin: 0 0 10px; }
.pps-filtre ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.pps-filtre a { color: var(--pps-text); text-decoration: none; }
@media (hover: hover) { .pps-filtre a:hover { color: var(--pps-rosu-inchis); } }

.pps-produs__sus { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.pps-produs__cumpara { border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-card); padding: 24px; background: var(--pps-alb); display: flex; flex-direction: column; gap: 16px; position: sticky; top: 148px; }
.pps-produs__titlu { font-family: var(--pps-display); font-weight: 700; font-size: var(--wp--preset--font-size--xl, 1.75rem); color: var(--pps-ink); margin: 0; letter-spacing: -.015em; }
.pps-produs__livrare { font-size: 13px; color: var(--pps-text); display: flex; flex-wrap: wrap; gap: 6px 16px; }
.pps-produs__jos .pps-standarde { grid-template-columns: minmax(0, 1fr); }
.pps-produs__cumpara p.stock.in-stock { display: none; }
.pps-produs__jos { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 32px; align-items: start; margin-top: 48px; }

/* ═══════════════════════════════════════════════════════════════════
   17. Punți WooCommerce
   ═══════════════════════════════════════════════════════════════════ */

.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border: 1px solid var(--pps-linie); border-left: 3px solid var(--pps-rosu);
	background: var(--pps-fundal); border-radius: var(--pps-raza-mic);
	padding: 14px 18px; list-style: none; margin: 0 0 20px; font-size: 15px;
}
.woocommerce-error { border-left-color: var(--pps-rosu-inchis); background: var(--pps-rosu-pal); }
/* Pictogramele WooCommerce sunt poziționate pentru padding-ul lor (3.5em) și cădeau peste text; accentul e bordura stângă (QA 25.10). */
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { content: none; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .wc-block-components-button {
	background: var(--pps-rosu) !important; color: #fff !important;
	border-radius: var(--pps-raza-card) !important;
	font-family: var(--pps-display); font-weight: 600; padding: 13px 22px;
}
@media (hover: hover) { .woocommerce a.button:hover, .woocommerce button.button:hover, .wc-block-components-button:hover {
	background: var(--pps-rosu-inchis) !important; color: #fff !important;
} }
.woocommerce .quantity input.qty {
	border: 1px solid var(--pps-linie-camp); border-radius: var(--pps-raza-mic);
	height: 44px; padding: 0 8px; font-variant-numeric: tabular-nums;
}
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.woocommerce form .form-row select, .woocommerce-input-wrapper input:not([type="checkbox"]):not([type="radio"]) {
	border: 1px solid var(--pps-linie-camp); border-radius: var(--pps-raza-mic);
	padding: 11px 14px; font-size: 16px; font-family: var(--pps-font); width: 100%;
}
.woocommerce-ordering select, .woocommerce-ordering .orderby {
	border: 1px solid var(--pps-linie-camp); border-radius: var(--pps-raza-mic);
	padding: 9px 12px; font-family: var(--pps-font); font-size: 15px;
	color: var(--pps-ink); background: var(--pps-alb); min-height: 40px;
	/* Aceeași înălțime în toate motoarele (navigare v3, reparații runda 3, CS3-02): Safari desena selectul nativ la 26 px, iar
	   la înlocuirea scheletului lista urca 17 px. `menulist-button` păstrează săgeata nativă și primește înălțimea, chenarul
	   și fundalul temei, și în Safari. */
	-webkit-appearance: menulist-button; appearance: menulist-button; height: 43px; box-sizing: border-box;
}
.woocommerce-result-count { margin: 0; font-size: 14px; color: var(--pps-text); }
.woocommerce-ordering { margin: 0; }
.woocommerce span.onsale { position: absolute; top: 12px; left: 12px; z-index: 2; min-height: 0; line-height: 1.2; }
.woocommerce div.product div.images { position: relative; }
.woocommerce table.shop_table { border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-card); border-collapse: separate; }
.woocommerce table.shop_table th { background: var(--pps-pal); font-family: var(--pps-display); color: var(--pps-ink); }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.woocommerce-MyAccount-navigation a {
	display: block; padding: 11px 14px; border-radius: var(--pps-raza-mic);
	text-decoration: none; color: var(--pps-ink); font-weight: 600; font-size: 15px;
}
@media (hover: hover) { .woocommerce-MyAccount-navigation a:hover { background: var(--pps-fundal); } }
.woocommerce-MyAccount-navigation .is-active a { background: var(--pps-ink); color: #fff; }
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 32px; align-items: start; }
/* Fără navigația de cont, lista și autentificarea ocupă întreaga lățime.
   Grila de 250px este rezervată contului autentificat. */
.woocommerce-account:not(.logged-in) .woocommerce { display: block; }
.woocommerce-account .pps-lista-vizitator { margin-bottom: 32px; }
/* WooCommerce pune un clearfix `::before`/`::after` pe `.woocommerce`. Într-un container
   grid pseudo-elementele devin ELEMENTE de grilă: ::before ocupa (1,1), navigația era
   împinsă în (1,2), iar conținutul cădea pe rândul 2, coloana 1 (lat de 170px).
   Toate paginile de cont arătau rupte pe desktop. */
.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after { content: none; display: none; }
/* `woocommerce-layout.css` le dă `float` + `width:30%/68%`; procentele se raportau la
   coloana de grilă și strângeau ambele coloane. */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
@media (max-width: 780px) {
	.woocommerce-account .woocommerce { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}
/* `woocommerce-blocktheme.css` pune `padding: 1em 0` pe fiecare `li` de navigație și
   subliniază elementul activ (alb pe bleumarin). */
.woocommerce-account .woocommerce-MyAccount-navigation li { padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; }
/* Zona de cont rămânea la 1000px, cât fixează WooCommerce, într-un site de 1280px. */
.woocommerce-account main .woocommerce, .woocommerce-account .wp-block-post-title { max-width: none; }
.woocommerce div.product form.cart .variations:not(.pps-sr) { width: 100%; margin-bottom: 12px; }
.woocommerce div.product form.cart .variations:not(.pps-sr) label { font-weight: 600; color: var(--pps-ink); font-size: 14px; }
.woocommerce div.product form.cart .variations:not(.pps-sr) select { border: 1px solid var(--pps-linie-camp); border-radius: var(--pps-raza-mic); padding: 9px 12px; min-height: 40px; }
.pps-variatii { display: flex; flex-direction: column; gap: 14px; margin-bottom: 4px; }
.pps-variatii__grup { display: flex; flex-direction: column; gap: 8px; }
.pps-variatii__eticheta { font-size: 14px; font-weight: 700; color: var(--pps-ink); font-family: var(--pps-display); }
.pps-variatii__optiuni { display: flex; flex-wrap: wrap; gap: 8px; }

/* Cârlige cerute de PAGINI (CONTRACT §16). */
.pps-foto, .pps-foto img { border-radius: var(--pps-raza-card); }
.pps-foto { overflow: hidden; box-shadow: var(--pps-umbra-card); }
.pps-foto figcaption { font-size: 13px; color: var(--pps-text); }
.pps-lista-articole .wp-block-post-template { list-style: none; padding: 0; margin: 0; }

/* ═══════════════════════════════════════════════════════════════════
   18. Proză (articole, pagini legale)
   ═══════════════════════════════════════════════════════════════════ */

.pps-proza { max-width: var(--pps-ingust); margin-inline: auto; }
.pps-proza h2 { margin-top: 2em; }
.pps-proza h3 { margin-top: 1.6em; }

/* ═══════════════════════════════════════════════════════════════════
   19. Responsive
   ═══════════════════════════════════════════════════════════════════ */

@media (max-width: 1180px) {
	.pps-nav__lista a { padding: 9px 9px; font-size: 14px; }
	.pps-mega__int { grid-template-columns: 230px minmax(0, 1fr) 220px; }
	.pps-antet__int { gap: 16px; }
}

@media (max-width: 1023px) {
	.pps-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.pps-grid--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.pps-cifre { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pps-produs__sus { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	.pps-produs__cumpara { position: static; }
	.pps-produs__jos { grid-template-columns: minmax(0, 1fr); }
	.pps-subsol__grila { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.woocommerce-account .woocommerce { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 899px) {
	.pps-split, .pps-split--sidebar-stanga { grid-template-columns: minmax(0, 1fr); }
	.pps-split--filtre > .pps-split__lateral { order: -1; }
}

@media (max-width: 759px) {
	.pps-doar-desktop { display: none !important; }
	.pps-doar-mobil { display: initial; }
	body { padding-bottom: 64px; }

	.pps-grid { gap: 16px; }
	.pps-grid--2 { grid-template-columns: minmax(0, 1fr); }
	.pps-grid--3, .pps-grid--4, .pps-grid--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	/* Grilele de pași („Pasul 1/2/3" pe SEAP și pe Cont de firmă) sunt casete cu text lung:
	   la 390px, două coloane le reduc la panglici de 20 de caractere, cu cratime peste tot.
	   Cardurile de produs și de articol (`wp-block-post-template`) rămân pe două coloane. */
	.pps-grid--3:has(> .pps-caseta) { grid-template-columns: minmax(0, 1fr); }
	.pps-grid--auto { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.pps-bara-utilitate__contact { margin-left: auto; }
	.pps-bara-utilitate__pile li:nth-child(n+3) { display: none; }
	.pps-bara-utilitate__wa span { display: none; }
	.pps-bara-utilitate__int { min-height: 34px; }
	.pps-bara-utilitate { font-size: 12px; }

	.pps-antet__int { min-height: 60px; gap: 10px; flex-wrap: wrap; padding-block: 8px; }
	.pps-antet__cautare { order: 3; flex-basis: 100%; max-width: none; }
	/* Pe telefon rândul are doar marca și acțiunile: le lipim de margini,
	   ca butoanele să stea în colț și pe ecrane mai late. */
	.pps-antet__int { justify-content: space-between; }
	.pps-antet__actiuni { gap: 12px; margin-left: auto; }
	.pps-antet__cautare { margin-right: 0; }
	.pps-antet__actiune span:not(.pps-antet__contor) { display: none; }
	.pps-antet__hamburger { display: inline-flex; }
	.pps-nav { display: none; }
	.pps-bara-mobil { display: block; }

	.pps-marca__semn { width: 28px; height: 28px; }
	.pps-marca__nume { font-size: 15px; }

	.pps-standarde { grid-template-columns: minmax(0, 1fr); }
	.pps-banda__int { flex-direction: column; align-items: flex-start; }
	.pps-card__corp { padding: 14px; }
	.pps-card--produs .pps-card__titlu { font-size: 15px; }
	.pps-pret__principal { font-size: 19px; }
	.pps-pret--mare .pps-pret__principal { font-size: 28px; }
	.pps-btn { padding: 12px 18px; }
	.pps-card--produs .pps-btn { padding: 10px 12px; font-size: 14px; }
	.pps-subsol__grila { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.pps-taburi__panou { padding-top: 18px; }
	.pps-hero__int { max-width: none; }
	.pps-hero__voal { background: linear-gradient(180deg, rgba(12, 35, 64, .88) 0%, rgba(12, 35, 64, .8) 100%); }
}

@media (max-width: 559px) {
	.pps-marca__tagline { display: none; }
	.pps-bara-utilitate__pile li:nth-child(n+2) { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════
   19b. Coșul — codul de catalog și cardul de pe mobil
   ═══════════════════════════════════════════════════════════════════ */

/* Codul apare sub numele produsului, ca pe cardurile din magazin. */
.pps-cos__cod {
	display: block;
	margin-top: 3px;
	font-family: var(--pps-display);
	font-size: 11px; font-weight: 700; letter-spacing: .09em;
	text-transform: uppercase; color: var(--pps-text);
}

@media (max-width: 759px) {
	/* WooCommerce stivuiește tabelul coșului cu etichete („Preț:", „Cantitate:") și ascunde
	   miniatura. Aici fiecare rând devine un card: poză, nume, cod, apoi stepper și sub-total. */
	.woocommerce table.shop_table.pps-cos,
	.woocommerce-page table.shop_table.pps-cos { border: 0; background: transparent; }
	.woocommerce table.shop_table.pps-cos tbody { display: block; }

	.woocommerce table.shop_table.pps-cos tr.pps-cos__rand {
		position: relative;
		display: grid;
		/* Stepper-ul are 129 px: pe rândul lui trece sub poză, altfel la 360 px iese din coloană. */
		grid-template-columns: 76px auto minmax(0, 1fr);
		grid-template-areas:
			"foto nume nume"
			"foto pret pret"
			"cant cant total";
		gap: 6px 14px;
		align-items: center;
		margin: 0 0 12px;
		padding: 14px 42px 14px 14px;
		border: 1px solid var(--pps-linie);
		border-radius: var(--pps-raza-card);
		background: var(--pps-alb);
		box-shadow: var(--pps-umbra-card);
	}
	.woocommerce table.shop_table.pps-cos tr.pps-cos__rand td,
	.woocommerce-page table.shop_table.pps-cos tr.pps-cos__rand td {
		display: block;
		padding: 0;
		border: 0;
		background: transparent;
		text-align: left !important;
		min-width: 0;
	}
	.woocommerce table.shop_table.pps-cos tr.pps-cos__rand td:not(.product-price)::before,
	.woocommerce-page table.shop_table.pps-cos tr.pps-cos__rand td:not(.product-price)::before { content: none !important; }

	.woocommerce table.cart.pps-cos .product-thumbnail,
	.woocommerce-page table.cart.pps-cos .product-thumbnail {
		display: block;
		grid-area: foto;
		align-self: start;
	}
	.pps-cos__rand .product-thumbnail a { display: block; }
	/* `woocommerce-blocktheme.css` fixează 117 px pe `.woocommerce-cart-form .product-thumbnail a img`;
	   pe card poza trebuie să încapă în coloana de 76 px. */
	.pps-cos__rand .product-thumbnail img,
	.woocommerce-page .woocommerce-cart-form .pps-cos__rand .product-thumbnail a img {
		width: 76px !important; height: 76px !important; object-fit: contain;
		border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-mic);
		background: var(--pps-alb);
	}

	.pps-cos__rand .product-name { grid-area: nume; align-self: end; }
	.pps-cos__rand .product-name a { display: block; font-size: 15px; line-height: 1.3; }

	.pps-cos__rand .product-price {
		grid-area: pret; align-self: start;
		font-size: 13px; color: var(--pps-text);
	}
	/* Eticheta vine din `data-eticheta` (deci în română), nu din `data-title`-ul WooCommerce. */
	.pps-cos__rand .product-price::before {
		content: attr(data-eticheta) " " !important;
		float: none !important;
		font-weight: 400;
	}

	.pps-cos__rand .product-quantity { grid-area: cant; justify-self: start; margin-top: 4px; }
	.pps-cos__rand .product-quantity .quantity { margin: 0; }

	.woocommerce table.shop_table.pps-cos tr.pps-cos__rand td.product-subtotal,
	.pps-cos__rand .product-subtotal {
		grid-area: total;
		text-align: right !important;
		font-family: var(--pps-display); font-weight: 700; font-size: 17px;
		color: var(--pps-ink); white-space: normal;
	}

	.pps-cos__rand .product-remove { position: absolute; top: 10px; right: 12px; }
	.pps-cos__rand .product-remove .remove { font-size: 20px; line-height: 1; }

	/* Rândul cu cuponul și „Actualizează coșul" devine tot un card, cu butoane pe toată lățimea. */
	.woocommerce table.shop_table.pps-cos tr.pps-cos__actiuni { display: block; }
	.woocommerce table.shop_table.pps-cos tr.pps-cos__actiuni td.actions {
		display: block; padding: 14px; border: 1px solid var(--pps-linie);
		border-radius: var(--pps-raza-card); background: var(--pps-alb);
		text-align: left !important;
	}
	.pps-cos__actiuni .coupon { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
	.pps-cos__actiuni .coupon input.input-text { flex: 1 1 140px; min-width: 0; }
	.pps-cos__actiuni .coupon .button { flex: 0 0 auto; }
	.pps-cos__actiuni button[name="update_cart"] { width: 100%; }
}

/* ═══════════════════════════════════════════════════════════════════
   20. Mișcare redusă
   ═══════════════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}
	@media (hover: hover) { .pps-card--hover:hover .pps-card__media img { transform: none; } }
}

/* ── Adăugare în coș: fără salt de layout ─────────────────────────── */
/* Coșul stă în antet, deci linkul „Vezi coșul" pe care îl injectează  */
/* WooCommerce sub buton nu are ce căuta pe card: împingea conținutul. */
.added_to_cart { display: none !important; }
.pps-btn.add_to_cart_button.loading { opacity: .7; pointer-events: none; }
.pps-btn.add_to_cart_button.pps-adaugat {
	background: var(--pps-verde);
	border-color: var(--pps-verde);
	color: #fff;
}
.pps-antet__contor.pps-puls { animation: pps-puls .45s ease; }
@keyframes pps-puls {
	0%   { transform: scale(1); }
	40%  { transform: scale(1.35); }
	100% { transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
	.pps-antet__contor.pps-puls { animation: none; }
}

/* ── Antetul lipicios: stare compactă la derulare ─────────────────── */
.pps-antet-lipicios { transition: box-shadow .2s ease; overflow-anchor: none; }
.pps-antet-lipicios--compact { box-shadow: 0 8px 24px rgba(12, 35, 64, .1); }
.pps-antet-lipicios--compact .pps-antet__int { --pps-antet-h: 58px; }
@media (max-width: 1023px) {
	.pps-antet-lipicios--compact .pps-nav { display: none; }
}
/* Ancorele nu mai aterizează sub antet. */
/* Loc sub antetul lipicios la salturi pe ancore și la focus cu tastatura, ca elementul să nu rămână ascuns sub antet.
   Pus pe elemente (scroll-margin), nu pe pagină (scroll-padding): cu scroll-padding, Chrome considera câmpul de căutare
   din antet mereu „acoperit” și derula pagina în sus la fiecare tastă (23.09, testul lui Radu pe Motorola).
   Elementele din antet și din meniul mobil nu primesc marginea: ele sunt deja la vedere. */
:where(a, button, input, select, textarea, summary, [tabindex], [id]) { scroll-margin-top: calc(var(--pps-antet-real, 130px) + 16px); }
.pps-antet-lipicios :where(a, button, input, select, textarea, summary, [tabindex], [id]),
.pps-meniu-mobil :where(a, button, input, select, textarea, summary, [tabindex], [id]),
.select2-container:not(.select2) :where(a, button, input, select, textarea, summary, [tabindex], [id]) { scroll-margin-top: 0; }
.pps-produs__cumpara { top: calc(var(--pps-antet-real, 130px) + 20px); }
@media (prefers-reduced-motion: reduce) {
	.pps-antet-lipicios { transition: none; }
}

/* ── Cardul de produs: o singură linie de specificație ────────────── */
.pps-card__ambalare { margin: 8px 0 0; font-size: 13px; color: var(--pps-text); display: flex; align-items: baseline; gap: 6px; }
.pps-card__ambalare-et { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: #516276; opacity: 1; }
@media (max-width: 559px) {
	.pps-card--produs .pps-card__subsol .pps-btn { white-space: nowrap; font-size: 13px; padding: 10px 8px; gap: 6px; }
	.pps-card--produs .pps-card__subsol .pps-btn .pps-ico { font-size: 15px; }
}

/* ── Antet pe ecrane înguste: marca și acțiunile rămân pe un rând ─── */
@media (max-width: 419px) {
	.pps-marca__nume { font-size: 13px; }
	.pps-marca { gap: 8px; }
}
@media (max-width: 349px) {
	.pps-marca__nume { display: none; }
}

/* ── Fără distanța dintre blocuri între regiuni și secțiuni pline ─── */
/* WordPress pune 1.5rem `margin-block-start` între header, main și footer
   și între blocurile de nivel întâi. Secțiunile temei își au propriul ritm
   din padding, deci marginea aia rămâne doar ca dungă albă. */
.wp-site-blocks > main,
.wp-site-blocks > footer,
main > .pps-hero,
main > .pps-banda,
main > .pps-section,
main > .wp-block-group,
main > .entry-content { margin-block-start: 0; }

/* Native Woo reviews and WordPress comments, integrated with the shop forms. */
.pps-recenzii { margin-block: 32px; }
.pps-recenzii textarea { width: 100%; min-height: 140px; }
.pps-recenzii input:not([type=checkbox]):not([type=submit]), .pps-recenzii textarea, .pps-recenzii select { max-width: 100%; padding: 12px; border: 1px solid var(--pps-linie-camp); border-radius: 6px; font: inherit; box-sizing: border-box; }
.pps-recenzii input[type=submit] { background: var(--pps-rosu); color: white; border: 0; border-radius: 10px; padding: 14px 22px; font: inherit; font-weight: 700; cursor: pointer; }
.pps-recenzii label { display: block; margin-bottom: 6px; }
.pps-recenzii .comment-form-cookies-consent label { display: inline; }
.pps-recenzii .commentlist { padding-left: 0; list-style: none; }
.pps-recenzii .commentlist li { margin-bottom: 24px; }
.pps-recenzii .comment-notes { font-size: 14px; }
/* QA 24.09: titlul formularului de comentarii pe scara telefonului (era 23,5 px, în afara scării). */
@media (max-width: 759px) { .pps-recenzii .comment-reply-title { font-size: var(--pps-fs-h2); } }
/* QA 24.09: la 320 px (zoom 400 %, WCAG 1.4.10) cantitatea și „Adaugă în coș” nu încap pe un rând (142 + 150 px în 254 px)
   și împingeau pagina 9 px în lateral: sub 360 px se așază una sub alta. */
@media (max-width: 359px) {
	body .pps-produs__cumpara .variations_button,
	body .pps-produs__cumpara form.cart:not(.variations_form) { grid-template-columns: minmax(0, 1fr); }
}
/* QA 24.09: „Arată parola” (WooCommerce) avea 22x22 px; 1 px de padding îl aduce la 24x24 (WCAG 2.5.8), iconița rămâne pe loc. */
.woocommerce form .show-password-input, .woocommerce-page form .show-password-input { padding: 1px; margin: -1px -1px 0 0; }

/* Catalog facets: native disclosure on small screens, persistent GET selections. */
.pps-filtre-panel{border:1px solid var(--pps-linie);border-radius:var(--pps-raza-card);background:#fff;overflow:hidden}
.pps-filtre-panel summary{padding:18px;display:flex;align-items:center;gap:10px;font-weight:700;color:var(--pps-ink);cursor:pointer;list-style:none}
.pps-filtre-panel summary::-webkit-details-marker{display:none}.pps-filtre-panel summary .pps-filtre-sageata{margin-left:auto}
.pps-filtre-form{padding:0 18px 20px;display:flex;flex-direction:column;gap:17px}
.pps-filtre-form .pps-select{width:100%;max-width:100%;min-width:0}.pps-filtre-price{border:0;padding:0;margin:0;min-width:0}.pps-filtre-price>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:8px}.pps-filtre-price input{width:100%;min-width:0}.pps-filtre-price .pps-camp>span{font-size:13px}.pps-filtre-check{display:flex;align-items:center;gap:9px;font-size:14px;cursor:pointer}.pps-filtre-check input{width:18px;height:18px;accent-color:var(--pps-ink)}.pps-filtre .pps-filtre-reset{text-align:center;text-decoration:underline;font-size:14px}.pps-filtre .pps-btn{color:#fff}.pps-filtre-panel:focus-within{border-color:#a9bbc8}
.pps-filtre-actions { display: flex; flex-direction: column; gap: 10px; }
@media (min-width: 960px) {
	/* Stick the grid item itself: its content-height child has no sticky travel. */
	.pps-filtre {
		--pps-filtre-top: calc(var(--pps-antet-real, 130px) + var(--pps-toolbar-height) + 16px);
		position: sticky;
		top: var(--pps-filtre-top);
		align-self: start;
		min-width: 0;
	}
	.pps-filtre-panel {
		max-height: calc(100vh - var(--pps-filtre-top) - 16px);
		max-height: calc(100dvh - var(--pps-filtre-top) - 16px);
		overflow-y: auto;
		scrollbar-width: thin;
		scrollbar-color: #a9bbc8 var(--pps-fundal);
		scrollbar-gutter: stable;
		scroll-padding-block: 72px 128px;
	}
	.pps-filtre-panel summary {
		position: sticky;
		top: 0;
		z-index: 2;
		background: var(--pps-alb);
		border-bottom: 1px solid var(--pps-linie);
		padding: 16px 18px;
	}
	.pps-filtre-form { padding-top: 14px; padding-bottom: 0; gap: 12px; }
	.pps-filtre-form > * { margin-block: 0; }
	.pps-filtre-actions {
		position: sticky;
		bottom: 0;
		z-index: 2;
		background: var(--pps-alb);
		border-top: 1px solid var(--pps-linie);
		padding: 14px 18px;
		margin-inline: -18px;
	}
}
.pps-price-preview{background:#e8f2ed;color:#194835;font-size:13px;padding:10px 0}.pps-price-preview>.pps-wrap{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.pps-price-preview form{margin:0}.pps-price-preview a,.pps-price-preview button{color:inherit;font:inherit;text-decoration:underline;background:none;border:0;padding:0;cursor:pointer}

/* Anchors from the editor land below the sticky shop navigation. */
.pps-home-section{scroll-margin-top:160px}

/* Contextual facets: selected values remain visible and removable, even at zero results. */
.pps-filtre-help, .pps-filtre-auto-note { font-size: 13px; line-height: 1.4; color: var(--pps-text); margin: 0; }
/* Runda v2 (fără salt la încărcare): nota „Selecțiile se aplică automat” e în pagină de la început, iar câmpul selectWoo
   are aceeași înălțime ca selectul nativ de dinainte (44 px): regula WooCommerce `.select2-container .select2-selection--single`
   (margin-bottom: -4px) îi lăsa containerului 40 px, deci câmpurile urcau câte 4 px la inițializare. Fără JavaScript nota
   nu are sens (filtrele se aplică din buton). */
@media (scripting: none) { .pps-filtre-auto-note { display: none; } }
.pps-filtre-form .select2-container .select2-selection--single { margin-bottom: 0; }
.pps-filtre-active { display: flex; flex-direction: column; gap: 6px; }
.pps-filtre-active a { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 9px; border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-mic); background: var(--pps-fundal); color: var(--pps-ink); font-size: 13px; line-height: 1.35; text-decoration: none; overflow-wrap: anywhere; }
@media (hover: hover) { .pps-filtre-active a:hover { background: var(--pps-pal); } }
.pps-filtre-active a span { flex-shrink: 0; font-size: 18px; }
.pps-filtre-form[aria-busy="true"] .pps-filtre-actions .pps-btn { opacity: .75; cursor: wait; }

/* Tablet header: keep the query readable and preserve catalog access while scrolling. */
@media (min-width: 760px) and (max-width: 1023px) {
	.pps-antet__int {
		flex-wrap: wrap;
		gap: 12px 16px;
		padding-block: 12px;
	}
	.pps-antet__cautare {
		order: 3;
		flex-basis: 100%;
		max-width: none;
	}
	.pps-antet-lipicios--compact .pps-antet__hamburger {
		display: inline-flex;
	}
}

/* Explain the existing keyboard path only while the menu shows keyboard focus. */
.pps-mega__keyboard-help {
	display: none;
	margin: 0;
	padding: 10px 20px;
	font-size: 13px;
	color: var(--pps-text);
	background: var(--pps-fundal);
	border-bottom: 1px solid var(--pps-linie);
}
.pps-mega:has(:focus-visible) .pps-mega__keyboard-help { display: block; }
/* FlexSlider creates thumbnail controls after load. Anchor them in the reserved
   bottom fifth so their insertion/image decoding cannot move the product UI. */
.woocommerce-product-gallery--with-images .flex-control-thumbs {
 position: absolute; inset: auto 0 0; height: 20%; margin: 0; padding: 0;
 display: flex; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden;
}
.woocommerce-product-gallery--with-images .flex-control-thumbs li {
 float: none; flex: 0 0 25%; width: 25%; height: 100%; list-style: none;
}
.woocommerce-product-gallery--with-images .flex-control-thumbs li img {
 display: block; width: 100%; height: 100%; object-fit: contain;
}

/* FlexSlider briefly widens its track before assigning slide widths. Bound each
   slide to the measured gallery width during that initialization window. */
@supports (width: 1cqw) {
 .woocommerce-product-gallery--with-images { container-type: inline-size; }
 .woocommerce-product-gallery--with-images .flex-viewport .woocommerce-product-gallery__image { max-width: 100cqw; }
}

/* ═══════════════════════════════════════════════════════════════════
   21. Telefon: remedierile din auditul mobil (23.09.2026)
   Fiecare bloc numește punctul din build/mobile-audit-2026-09-23/AUDIT.md.
   ═══════════════════════════════════════════════════════════════════ */

/* 21.1 Listări (audit 2, 3): produsele încep în primul ecran; filtrele active se văd cu panoul închis. */
.pps-filtre-numar {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 22px; height: 22px; padding: 0 7px; margin-left: 2px;
	border-radius: var(--pps-raza-pila); background: var(--pps-ink); color: #fff;
	font-family: var(--pps-display); font-size: 12px; font-weight: 700; line-height: 1;
}
.pps-filtre-active--sus { display: none; }
.woocommerce-result-count:focus { outline: none; }
@media (max-width: 959px) {
	.pps-filtre { gap: 10px; }
	.pps-filtre-active--sus { display: flex; flex-direction: row; flex-wrap: wrap; gap: 8px; }
	.pps-filtre-active--sus a {
		min-height: 40px; padding: 8px 10px 8px 14px; border-radius: var(--pps-raza-pila);
		background: var(--pps-alb); font-size: 14px; font-weight: 600; overflow-wrap: normal;
	}
	.pps-filtre-active--sus a span { color: var(--pps-text); }
	.pps-filtre-panel .pps-filtre-active { display: none; }
}
@media (max-width: 899px) {
	.pps-split--filtre { gap: 12px; }
	.pps-split--filtre > .wp-block-group,
	.pps-split--filtre .pps-rand--intre { margin-block-start: 0; }
	.pps-split--filtre .pps-lista-produse { margin-block-start: 12px; }
	.pps-split--filtre .pps-rand--intre > * { margin-block: 0; }
	.pps-split--filtre .pps-rand--intre .woocommerce-ordering { margin: 0; }
}
@media (max-width: 759px) {
	.pps-antet-pagina { padding-block: 16px 20px; }
	.pps-antet-pagina--cta { padding-block: 16px 28px; }
	.pps-antet-pagina--cta .pps-lead { font-size: 1.125rem; }
	.pps-antet-pagina__butoane .pps-btn { flex: 1 1 100%; }
	main > .pps-section:has(.pps-split--filtre) { padding-top: 16px; }
	.pps-split--filtre .pps-rand--intre { flex-wrap: nowrap; gap: 10px; }
	.pps-split--filtre .pps-rand--intre > :first-child { flex: 1 1 auto; min-width: 0; }
	.pps-split--filtre .pps-rand--intre > :last-child { flex: none; }
	.pps-split--filtre .woocommerce-result-count { font-size: 13px; line-height: 1.35; }
	.pps-split--filtre .woocommerce-ordering select { max-width: 52vw; }
}

/* 21.2 Fișa de produs (audit 4): titlul, stocul și prețul în primul ecran. */
@media (max-width: 759px) {
	/* Șablonul de produs învelește `main` într-un grup; regula de la „Fără distanța dintre blocuri” nu-l prinde. */
	.single-product .wp-site-blocks > .wp-block-group { margin-block-start: 0; }
	.single-product main > .pps-section--stramt { padding-block: 10px 12px; }
	.single-product .pps-breadcrumb { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
	.single-product .pps-breadcrumb::-webkit-scrollbar { display: none; }
	.single-product .pps-breadcrumb li { flex: none; }
	/* Ultimul element repetă titlul H1, aflat imediat dedesubt. */
	.single-product .pps-breadcrumb li:last-child { display: none; }

	/* Imaginea principală 4:3 în loc de pătrat și miniaturi de 56 px. Spațiul miniaturilor rămâne
	   rezervat (padding), ca FlexSlider să le poată insera fără să miște pagina. */
	.single-product .woocommerce-product-gallery .flex-viewport,
	.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper { aspect-ratio: 4 / 3; }
	.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img,
	.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child img {
		width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain;
	}
	.single-product .woocommerce-product-gallery.woocommerce-product-gallery--with-images:has(.woocommerce-product-gallery__image:nth-child(2)) { aspect-ratio: auto; padding-bottom: 64px; }
	.single-product .woocommerce-product-gallery--with-images .flex-control-thumbs { height: 56px; gap: 8px; }
	.single-product .woocommerce-product-gallery--with-images .flex-control-thumbs li { flex: 0 0 56px; width: 56px; }
	.single-product .woocommerce-product-gallery--with-images .flex-control-thumbs li img { border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-mic); }
	.woocommerce.single-product div.product .pps-produs__sus div.images { margin-bottom: 0; }

	.pps-produs__sus { gap: 12px; }
	.pps-produs__sus > .pps-stack { gap: 12px; }
	.pps-produs__sus > .pps-produs__cumpara { margin-block-start: 0; padding: 16px; gap: 12px; }
	.pps-produs__sus .pps-produs__cumpara > * { margin-block: 0; }
	/* Pe telefon prețul urcă lângă titlu; descrierea scurtă vine după el. */
	.pps-produs__cumpara > .pps-produs__titlu { order: -3; font-size: 22px; line-height: 1.2; }
	.pps-produs__cumpara > p:has(> .pps-stoc) { order: -2; }
	.pps-produs__cumpara > .pps-pret { order: -1; }
	/* La 360 px „Adaugă în coș” se rupea pe două rânduri și întindea cantitatea la 66 px. */
	form.cart .pps-stepper input.qty { box-sizing: border-box; width: 52px; }
	.pps-produs__cumpara .single_add_to_cart_button { white-space: nowrap; padding-inline: 14px; }
}

/* 21.3 Variante (audit 5): grupurile cu o singură opțiune devin un rând de text,
   iar lipsa mărimii se explică lângă mărimi, nu într-o fereastră de sistem. */
.pps-variatii__grup--fix { flex-direction: row; align-items: baseline; flex-wrap: wrap; gap: 6px; }
.pps-variatii__grup--fix + .pps-variatii__grup--fix { margin-top: -8px; }
.pps-variatii__grup--fix .pps-variatii__eticheta::after { content: ":"; }
.pps-variatii__grup--fix .pps-variatii__optiuni { display: inline-flex; }
.pps-variatii__grup--fix .pps-chip,
.pps-variatii__grup--fix .pps-chip--activ {
	min-height: 0; padding: 0; border: 0; background: none; color: var(--pps-ink);
	font-size: 14px; font-weight: 400; pointer-events: none; cursor: default;
}
/* Runda v2 (fără salt la încărcare): până leagă app.js pastilele, tabelul de selecturi al WooCommerce stă ascuns, iar în
   locul lui se vede copia inertă a pastilelor tipărită de server (inc/b2b-produs.php), la aceeași înălțime. Fără
   JavaScript, tabelul rămâne vizibil și copia dispare. */
@media (scripting: enabled) {
	form.variations_form:has(> [data-pps-variatii-server]) > table.variations {
		position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
	}
}
@media (scripting: none) { [data-pps-variatii-server] { display: none !important; } }
.pps-variatii__grup--lipsa .pps-variatii__eticheta { color: var(--pps-rosu-inchis); }
.pps-variatii__grup--lipsa .pps-chip:not(:disabled) { box-shadow: inset 0 0 0 1px var(--pps-rosu-inchis); }
.pps-variatii__mesaj {
	display: flex; gap: 8px; align-items: flex-start; margin: 2px 0 0;
	padding: 10px 12px; border-radius: var(--pps-raza-mic);
	background: var(--pps-rosu-pal); color: var(--pps-rosu-inchis);
	font-size: 14px; font-weight: 600; line-height: 1.35;
}
.pps-variatii__mesaj::before {
	content: "!"; flex: none; display: inline-flex; align-items: center; justify-content: center;
	width: 18px; height: 18px; margin-top: 1px; border-radius: 50%;
	background: var(--pps-rosu-inchis); color: #fff; font-size: 12px; font-weight: 700;
}
.pps-variatii__mesaj[hidden] { display: none; }
@media (max-width: 759px) {
	.pps-variatii { gap: 12px; }
	.pps-variatii__grup:not(.pps-variatii__grup--fix) .pps-chip { min-height: 44px; min-width: 48px; }
}

/* 21.4 Câmpuri de 16 px pe telefon (audit 6). Sub 16 px, Safari pe iPhone mărește pagina la atingere
   și o lasă mărită. Regulile WooCommerce (`font-size: small`) au specificitate mai mare decât tema,
   de aceea `!important`, limitat la ecrane mici. */
@media (max-width: 759px) {
	input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
	input[type="search"], input[type="password"], input[type="url"], input:not([type]),
	select, textarea,
	.woocommerce .quantity input.qty, .woocommerce-page .quantity input.qty,
	.select2-container .select2-selection__rendered,
	.select2-container .select2-search__field { font-size: 16px !important; }
}

/* 21.5 Ținte de atingere (audit 7, 8): paginare, coșul și meniul din antet. */
.wp-block-query-pagination { justify-content: center; flex-wrap: wrap; gap: 8px; }
.wp-block-query-pagination-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination .wp-block-query-pagination-next,
.wp-block-query-pagination .wp-block-query-pagination-previous {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; min-height: 44px; padding: 0 12px; box-sizing: border-box;
	border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-mic);
	background: var(--pps-alb); color: var(--pps-ink); font-weight: 600; text-decoration: none;
	font-variant-numeric: tabular-nums;
}
@media (hover: hover) { .wp-block-query-pagination a.page-numbers:hover, .wp-block-query-pagination .wp-block-query-pagination-next:hover, .wp-block-query-pagination .wp-block-query-pagination-previous:hover { border-color: var(--pps-ink); } }
.wp-block-query-pagination .page-numbers.current { background: var(--pps-ink); border-color: var(--pps-ink); color: #fff; }
.wp-block-query-pagination .page-numbers.dots { min-width: 24px; padding: 0; border: 0; background: none; }
/* Coșul gol nu mai afișează un „0” roșu care atrage privirea. */
.pps-antet__contor[data-count="0"] { display: none; }
@media (max-width: 759px) {
	.pps-antet__actiuni > a.pps-antet__actiune { min-width: 44px; min-height: 44px; justify-content: center; }
	.pps-antet__hamburger { width: 44px; height: 44px; }
}

/* 21.6 Finalizarea comenzii (audit 9): bifele stau lângă text, nu întinse pe 352 px deasupra lui. */
.woocommerce form .form-row label.checkbox,
.woocommerce-checkout .woocommerce-form__label-for-checkbox {
	display: block; padding-left: 30px; text-indent: -30px; line-height: 1.45; cursor: pointer;
}
.woocommerce form .form-row input[type="checkbox"],
.woocommerce-checkout .woocommerce-form__label-for-checkbox input[type="checkbox"] {
	width: 20px; height: 20px; margin: 0 10px 0 0; vertical-align: -4px; accent-color: var(--pps-ink);
}
@media (max-width: 759px) {
	.woocommerce-checkout .pps-antet-pagina { padding-block: 12px 14px; }
	.woocommerce-form-login-toggle .woocommerce-info,
	.woocommerce-form-coupon-toggle .woocommerce-info { padding: 10px 12px; font-size: 14px; }
}

/* 21.7 Coș și sumar (audit 10): „Mărime: L” pe un rând, „(inclusiv TVA)” nerupt, „×” de 44 px. */
.woocommerce td.product-name dl.variation,
.woocommerce-checkout-review-order-table dl.variation { display: grid; grid-template-columns: auto 1fr; gap: 2px 6px; margin: 4px 0 0; }
.woocommerce td.product-name dl.variation dt, .woocommerce td.product-name dl.variation dd,
.woocommerce-checkout-review-order-table dl.variation dt, .woocommerce-checkout-review-order-table dl.variation dd {
	float: none !important; clear: none !important; margin: 0 !important; padding: 0 !important;
}
.woocommerce td.product-name dl.variation p,
.woocommerce-checkout-review-order-table dl.variation p { margin: 0 !important; }
.tax_label { white-space: nowrap; }
@media (max-width: 759px) {
	.pps-cos__rand .product-remove { top: 2px; right: 2px; }
	.pps-cos__rand .product-remove .remove {
		width: 44px !important; height: 44px !important; line-height: 1 !important;
		display: inline-flex !important; align-items: center; justify-content: center;
	}
}

/* 21.8 Texte rupte (audit 11): nume de produs întregi, „cu TVA” împreună, „24–48” pe un rând. */
.pps-nowrap { white-space: nowrap; }
/* Fiecare propoziție a sloganului începe pe rând nou când nu încap amândouă: la 360 px „Importăm” nu mai rămâne singur. */
.pps-hero__fraza { display: inline-block; }
.pps-pret__principal small { white-space: nowrap; }
@media (max-width: 759px) {
	/* Diferența dintre produse stă la finalul numelui (mărime, volum, model): pe telefon, până la 4 rânduri. */
	.pps-card--produs .pps-card__titlu { -webkit-line-clamp: 4; }
	.pps-card--produs .pps-btn { min-height: 44px; }
}

/* 21.9 Atingere pe telefon: fără pata albastră a browserului (vezi sus), cu un feedback discret al nostru.
   Doar pe ecranele fără hover real; cu mouse și tastatură nu se schimbă nimic, iar :focus-visible rămâne. */
@media (hover: none) {
	.pps-card, .pps-btn { transition: transform 120ms ease, background-color var(--pps-tranzitie), color var(--pps-tranzitie), border-color var(--pps-tranzitie), box-shadow var(--pps-tranzitie); }
	a.pps-card:active, .pps-card--hover:active { transform: scale(0.985); border-color: var(--pps-pal); }
	.pps-btn:active { transform: scale(0.97); }
}
@media (hover: none) and (prefers-reduced-motion: reduce) {
	a.pps-card:active, .pps-card--hover:active, .pps-btn:active { transform: none; }
}

/* ═══════════════════════════════════════════════════════════════════
   22. Telefon: scara tipografică și ritmul de spațiere (23.09.2026)
   Sursa: build/mobile-ux-research-2026-09-23/RAPORT.md. Măsurat înainte: 16–19 mărimi de literă
   pe pagină, titlul produsului (22 px) sub titlurile de secțiune (28,8 px), butoane de 13/16/18 px,
   120 px între secțiuni. Regula de acum încolo: pe telefon, orice mărime vine din variabilele de mai jos.
   ═══════════════════════════════════════════════════════════════════ */

:root {
	/* Opt trepte: afiș (doar titlul de pe prima pagină), H1, H2, accent, text, interfață, detalii, etichetă. */
	--pps-fs-afis: 2rem;          /* 32 */
	--pps-fs-h1: 1.5rem;          /* 24: titlurile de pagină, inclusiv produsul; prețul mare de pe fișă */
	--pps-fs-h2: 1.25rem;         /* 20: titluri de secțiune */
	--pps-fs-accent: 1.125rem;    /* 18: prețul de pe card, H3, totalul din coș */
	--pps-fs-text: 1rem;          /* 16: textul de conținut, câmpurile */
	--pps-fs-ui: 0.9375rem;       /* 15: titlul de card, butoane, chip-uri, file, etichete de câmp */
	--pps-fs-detaliu: 0.8125rem;  /* 13: „fără TVA”, ambalare, cod, stoc, ajutor */
	--pps-fs-eticheta: 0.75rem;   /* 12: insigne, supratitluri, bara de jos */
	--pps-lh-titlu: 1.2;
	--pps-lh-ui: 1.35;
	--pps-lh-text: 1.5;
	/* Ritmul vertical pe telefon: 4/8/12/16/24/32/48, din presetările temei. */
	--pps-sp-sectiune: var(--wp--preset--spacing--40, 1.5rem);        /* 24 sus și jos: 48 între două secțiuni */
	--pps-sp-sectiune-fundal: var(--wp--preset--spacing--50, 2rem);   /* 32 în secțiunile cu fundal */
}

@media (max-width: 759px) {
	/* ── Tipografie ───────────────────────────────────────────── */
	body { line-height: var(--pps-lh-text); }
	.pps-hero__titlu { font-size: var(--pps-fs-afis); line-height: 1.1; }

	/* H1: aceeași mărime pentru toate titlurile de pagină, inclusiv produsul (era cel mai mic, 22 px). */
	.pps-antet-pagina__titlu,
	.pps-produs__cumpara > .pps-produs__titlu,
	.pps-produs__titlu,
	main h1.wp-block-post-title,
	main .entry-title { font-size: var(--pps-fs-h1); line-height: var(--pps-lh-titlu); letter-spacing: -.015em; }
	.pps-pret--mare .pps-pret__principal { font-size: var(--pps-fs-h1); line-height: var(--pps-lh-titlu); }
	.pps-cifre__valoare { font-size: var(--pps-fs-h1); }

	/* H2: titlurile de secțiune coboară sub H1 (erau egale, 28,8 px). */
	.pps-h2,
	main h2:not(.pps-card__titlu),
	.pps-commerce-relations > h2,
	.cart-collaterals .cart_totals > h2,
	.woocommerce-cart .cart_totals > h2 { font-size: var(--pps-fs-h2); line-height: 1.25; letter-spacing: -.01em; }
	.pps-banda__titlu { font-size: var(--pps-fs-h2); line-height: 1.25; }
	.pps-h3 { font-size: var(--pps-fs-accent); line-height: 1.3; }

	/* Accent: prețul de pe card, H4, totalul din coș. */
	.pps-h4 { font-size: var(--pps-fs-accent); line-height: 1.3; }
	.pps-pret__principal { font-size: var(--pps-fs-accent); line-height: var(--pps-lh-titlu); }
	.pps-card--produs .pps-pret__principal { font-size: var(--pps-fs-accent); }
	.woocommerce-cart .cart_totals .order-total .woocommerce-Price-amount { font-size: var(--pps-fs-accent); }
	.pps-cos__rand .product-subtotal .woocommerce-Price-amount { font-size: var(--pps-fs-text); }

	/* Text: 16 px, rând de 1,5, peste tot (textul de introducere era 18, descrierea avea rândul 1,8). */
	.pps-lead,
	.pps-hero__lead,
	.pps-product-summary,
	.pps-product-summary p,
	.pps-product-description,
	.pps-product-description p,
	.pps-taburi__panou p { font-size: var(--pps-fs-text); line-height: var(--pps-lh-text); }
	.pps-card__text,
	.pps-subsol__grila p,
	.pps-subsol__lista a { font-size: var(--pps-fs-ui); line-height: var(--pps-lh-text); }

	/* Interfață: 15 px, 600. Titlul de card, butoane, chip-uri, file, etichete, paginare. */
	.pps-card__titlu,
	.pps-card--produs .pps-card__titlu,
	.pps-card--nevoie .pps-card__titlu { font-family: var(--pps-font); font-size: var(--pps-fs-ui); font-weight: 600; line-height: var(--pps-lh-ui); }
	.pps-btn,
	.pps-btn--mic,
	.pps-btn--mare,
	.pps-card--produs .pps-card__subsol .pps-btn { font-size: var(--pps-fs-ui); line-height: var(--pps-lh-titlu); }
	.pps-chip,
	.pps-taburi__buton,
	.pps-eticheta,
	.pps-variatii__eticheta,
	.pps-filtre-check,
	.pps-filtre-reset,
	.pps-filtre-panel > summary,
	.wp-block-query-pagination a,
	.wp-block-query-pagination .page-numbers,
	.woocommerce form .form-row label,
	.woocommerce-form-row label,
	.variations th.label label { font-size: var(--pps-fs-ui); line-height: var(--pps-lh-ui); }
	.pps-variatii__eticheta { font-family: var(--pps-font); font-weight: 600; }
	.woocommerce form .form-row label,
	.woocommerce-form-row label { font-weight: 600; margin-bottom: 4px; }
	.woocommerce-notices-wrapper,
	.wc-block-components-notice-banner__content,
	.pps-prag-minim__titlu,
	.pps-prag-minim__text { font-size: var(--pps-fs-ui); line-height: var(--pps-lh-ui); }

	/* Detalii: 13 px (fără TVA, cu TVA, ambalare, stoc, cod, ajutor). „cu TVA” era 12. */
	.pps-pret__tva,
	.pps-pret__principal small,
	.pps-card__ambalare,
	.pps-card__detalii,
	.pps-stoc,
	.pps-breadcrumb,
	.pps-nota,
	.pps-filtre-help,
	.pps-filtre-auto-note,
	.pps-cart-auto-status,
	.pps-compliance-note,
	.reset_variations,
	.tax_label,
	.includes_tax,
	.pps-fisa__valoare,
	.woocommerce-result-count { font-size: var(--pps-fs-detaliu); line-height: 1.45; }
	.pps-fisa__valoare { font-family: var(--pps-font); font-weight: 600; }

	/* Etichetă: 12 px, 700, majuscule (nimic sub 12 px: „Ambalare”, „COD FAMILIE”, codul din coș erau 11). */
	.pps-eyebrow,
	.pps-card__ambalare-et,
	.pps-fisa__eticheta,
	.pps-cos__cod { font-family: var(--pps-font); font-size: var(--pps-fs-eticheta); font-weight: 700; line-height: 1.3; letter-spacing: .06em; text-transform: uppercase; }
	.pps-badge,
	.pps-bara-utilitate__pila { font-size: var(--pps-fs-eticheta); line-height: 1.3; }

	/* Reguli WooCommerce și de componentă mai specifice, aduse pe scară. */
	.variations_form .pps-variatii .reset_variations,
	.woocommerce div.product form.cart .reset_variations { font-size: var(--pps-fs-detaliu); }
	.pps-filtre-actions .pps-filtre-reset,
	.wc-proceed-to-checkout .pps-prag-minim__text,
	.woocommerce .pps-cart-auto-status,
	.pps-variatii__grup--fix .pps-chip,
	table.variations th.label label,
	.pps-caseta table th,
	.pps-caseta table td { font-size: var(--pps-fs-ui); line-height: var(--pps-lh-ui); }
	.pps-caseta table th { font-family: var(--pps-font); font-weight: 600; }
	.pps-subsol__tel { font-size: var(--pps-fs-text); }
	.woocommerce div.product form.cart .variations th.label label { font-size: var(--pps-fs-ui); line-height: var(--pps-lh-ui); }
	.pps-pasi__text { font-size: var(--pps-fs-ui); line-height: var(--pps-lh-ui); }
	.pps-pasi .pps-pasi__pas .pps-pasi__numar { font-size: var(--pps-fs-detaliu); }
	.woocommerce-checkout #payment ul.payment_methods li > label { font-size: var(--pps-fs-ui); font-weight: 600; line-height: var(--pps-lh-ui); }
	.woocommerce-checkout #payment div.payment_box p { font-size: var(--pps-fs-ui); line-height: 1.45; }
	.pps-cert-gallery__body p { line-height: 1.45; }
	.woocommerce-cart .cart_totals .order-total .woocommerce-Price-amount,
	.woocommerce-cart .cart_totals .order-total strong { font-family: var(--pps-display); }

	/* ── Spațiere ─────────────────────────────────────────────── */
	/* Între secțiuni: 24 + 24 = 48 px (era 48 + 24 + 48 = 120). Secțiunile cu fundal: 32 px în interior. */
	.pps-section { padding-block: var(--pps-sp-sectiune); }
	.pps-section--rece,
	.pps-section--ink { padding-block: var(--pps-sp-sectiune-fundal); }
	.pps-section--stramt { padding-block: var(--wp--preset--spacing--30, 1rem); }
	.pps-section--fara-sus { padding-top: 0; }
	.pps-section--fara-jos { padding-bottom: 0; }
	.pps-home-section + .pps-home-section,
	.pps-banda + .pps-home-section,
	main > .pps-home-section { margin-block-start: 0; }
	.pps-hero__int { padding-block: var(--wp--preset--spacing--50, 2rem); gap: 14px; }
	.pps-banda { padding-block: var(--wp--preset--spacing--40, 1.5rem); }
	/* Titlu de secțiune → conținut: 16 px (era 32). */
	.pps-antet-sectiune { margin-bottom: var(--wp--preset--spacing--30, 1rem); gap: 6px; }
	.pps-antet-pagina { padding-block: 12px 16px; }
	.pps-antet-pagina .pps-lead { margin-top: 6px; }
	/* Grilele: 12 px între carduri. */
	.pps-grid { gap: var(--wp--preset--spacing--20, .75rem); }
	/* Finalizare: pașii și titlurile de secțiune, pe ritmul de 16/24 px. */
	.pps-pasi { margin-bottom: var(--wp--preset--spacing--30, 1rem); }
	.woocommerce-checkout h3,
	.woocommerce-checkout #order_review_heading { font-size: var(--pps-fs-h2); line-height: 1.25; margin: var(--wp--preset--spacing--40, 1.5rem) 0 var(--wp--preset--spacing--20, .75rem); }
	.woocommerce-cart .cart_totals > h2 { margin: var(--wp--preset--spacing--30, 1rem) 0 var(--wp--preset--spacing--20, .75rem); }
}

/* ═══════════════════════════════════════════════════════════════════
   23. Cardul de produs compact (23.09.2026)
   Un singur buton; lista ca iconiță pe colțul pozei; codul și ambalarea pe un rând de detalii.
   Înainte, pe telefon: 484 px înălțime, două butoane de 44 px („Adaugă în coș”, „Adaugă în listă”).
   ═══════════════════════════════════════════════════════════════════ */

.pps-card__lista {
	position: absolute; top: 6px; right: 6px; z-index: 3;
	width: 44px; height: 44px; padding: 0; margin: 0;
	display: inline-flex; align-items: center; justify-content: center;
	background: none; border: 0; border-radius: 50%; cursor: pointer; color: var(--pps-ink);
}
/* Cercul vizibil are 36 px; zona de atingere rămâne 44 px. */
.pps-card__lista::before {
	content: ""; position: absolute; inset: 4px; border-radius: 50%;
	/* Inel fin + umbră: pe poza deschisă cercul alb abia se vedea (raport client 13.10.2026). */
	background: var(--pps-alb); box-shadow: 0 0 0 1px rgba(12, 35, 64, .16), 0 2px 6px rgba(12, 35, 64, .24);
	transition: background-color var(--pps-tranzitie);
}
.pps-card__lista .pps-ico { position: relative; font-size: 18px; }
.pps-card__lista .pps-buton-lista__text {
	position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.pps-card__lista.pps-buton-lista--activ { color: #fff; }
.pps-card__lista.pps-buton-lista--activ::before { background: var(--pps-ink); }
@media (hover: hover) { .pps-card__lista:hover::before { background: var(--pps-pal); } .pps-card__lista.pps-buton-lista--activ:hover::before { background: var(--pps-ink); } }
.pps-card__lista:focus-visible { outline: 2px solid var(--pps-ink); outline-offset: -2px; }

/* Mesajul listei („Produs salvat în Lista mea.”) apare ca pastilă scurtă pe poză, apoi dispare. */
.pps-card__media .pps-lista-feedback {
	position: absolute; left: 8px; right: 8px; bottom: 8px; z-index: 3; margin: 0;
	padding: 6px 10px; border-radius: var(--pps-raza-mic);
	background: var(--pps-ink); color: #fff; font-size: var(--pps-fs-eticheta, 12px); font-weight: 600; line-height: 1.3; text-align: center;
	opacity: 0; pointer-events: none;
}
.pps-card__media .pps-lista-feedback--eroare { background: var(--pps-rosu-inchis); color: #fff; }
.pps-card__media .pps-lista-feedback.pps-toast { animation: pps-toast 2.8s ease forwards; }
@keyframes pps-toast { 0% { opacity: 0; transform: translateY(4px); } 8%, 80% { opacity: 1; transform: none; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { @keyframes pps-toast { 0%, 85% { opacity: 1; } 100% { opacity: 0; } } }

/* Rândul de detalii: „PPS-240 · 100 buc/cutie”. */
.pps-card__detalii {
	margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 0;
	font-size: var(--pps-fs-detaliu, 13px); line-height: 1.45; color: var(--pps-text); font-variant-numeric: tabular-nums;
}
.pps-card__detalii > span + span::before { content: "·"; margin: 0 6px; color: var(--pps-linie); font-weight: 700; }
/* 23.09 seara: separatorul nu mai rămâne singur la început de rând când codul e lung („PPS-MAN-NIT-ALB”).
   Fiecare element are punctul în stânga, într-o zonă de 14 px; rândul interior e mutat cu 14 px spre stânga,
   iar caseta taie ce iese, deci punctul primului element de pe fiecare rând nu se vede. */
.pps-card__detalii { overflow: hidden; }
.pps-card__detalii-int { display: flex; flex-wrap: wrap; align-items: baseline; margin-left: -14px; }
.pps-card__detalii-int > span { white-space: nowrap; }
.pps-card__detalii-int > span::before { content: "·"; display: inline-block; width: 14px; text-align: center; color: #9aa9ba; font-weight: 700; }
.pps-card__cod { font-weight: 600; color: var(--pps-ink); }
.pps-card__cod-et { font-weight: 400; color: var(--pps-text); }
/* Titlurile de card nu se „echilibrează” ca titlurile de pagină: rândul întâi se umple, fără gol la dreapta. */
.pps-card__titlu { text-wrap: pretty; }

@media (max-width: 759px) {
	.pps-card--produs .pps-card__media { padding: 10px; }
	.pps-card--produs .pps-card__corp { padding: 12px; gap: 6px; }
	.pps-card--produs .pps-card__subsol { padding-top: 6px; }
	.pps-card--produs .pps-card__subsol .pps-btn { min-height: 44px; padding: 10px 8px; }
	.pps-badge-stiva { top: 8px; left: 8px; gap: 4px; }
	.pps-badge-stiva .pps-badge { padding: 3px 8px; }
}

/* ═══════════════════════════════════════════════════════════════════
   24. Bara de jos și meniul mobil (23.09.2026)
   Patru destinații: Acasă, Catalog, Cont, Coș („Catalog” era în Arial, 11 px; Contul lipsea pe telefon).
   Comandă rapidă și Lista mea devin primele rânduri din meniul mobil.
   ═══════════════════════════════════════════════════════════════════ */

.pps-bara-mobil ul { grid-template-columns: repeat(4, 1fr); }
.pps-bara-mobil a, .pps-bara-mobil button {
	font-family: var(--pps-font); font-size: var(--pps-fs-eticheta, 12px); font-weight: 600; line-height: 1.2;
	color: var(--pps-text); gap: 4px;
}
.pps-bara-mobil .pps-ico { font-size: 22px; color: var(--pps-ink); }
.pps-bara-mobil [aria-current="page"],
.pps-bara-mobil button[aria-expanded="true"] { color: var(--pps-rosu-inchis); }
.pps-bara-mobil [aria-current="page"] .pps-ico,
.pps-bara-mobil button[aria-expanded="true"] .pps-ico { color: var(--pps-rosu); }
.pps-bara-mobil .pps-antet__contor { top: 2px; right: calc(50% - 22px); }

.pps-meniu-mobil__scurtaturi { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pps-meniu-mobil__scurtatura {
	display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 10px 12px;
	border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-card); background: var(--pps-alb);
	color: var(--pps-ink); text-decoration: none; font-family: var(--pps-font); font-size: var(--pps-fs-ui, 15px); font-weight: 600; line-height: 1.25;
}
.pps-meniu-mobil__scurtatura .pps-ico { font-size: 22px; color: var(--pps-rosu); flex: none; }
.pps-meniu-mobil__scurtatura:active { background: var(--pps-pal); }

@media (max-width: 759px) {
	body { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
}

/* ═══════════════════════════════════════════════════════════════════
   25. Fișa de produs pe telefon: bară fixă cu prețul și „Adaugă în coș” (23.09.2026)
   Apare cât timp butonul principal nu se vede și ia locul barei de jos (fără 130 px de bare suprapuse).
   ═══════════════════════════════════════════════════════════════════ */

.pps-bara-cumparare { display: none; }
@media (max-width: 759px) {
	.pps-bara-cumparare {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 81;
		display: flex; align-items: center; gap: 12px;
		padding: 8px 16px calc(8px + env(safe-area-inset-bottom));
		background: var(--pps-alb); border-top: 1px solid var(--pps-linie);
		box-shadow: 0 -8px 20px -12px rgba(12, 35, 64, .3);
		transform: translateY(110%); visibility: hidden;
		transition: transform .22s ease, visibility 0s linear .22s;
	}
	.pps-bara-cumparare--vizibila { transform: none; visibility: visible; transition: transform .22s ease; }
	.pps-bara-cumparare__pret { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
	.pps-bara-cumparare__principal {
		font-family: var(--pps-display); font-weight: 700; font-size: var(--pps-fs-accent); line-height: 1.2; color: var(--pps-ink);
		white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums;
	}
	.pps-bara-cumparare__tva {
		font-size: var(--pps-fs-detaliu); line-height: 1.3; color: var(--pps-text);
		white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums;
	}
	.pps-bara-cumparare__buton { flex: 0 0 auto; min-height: 48px; padding: 12px 18px; font-size: var(--pps-fs-text); }
	.pps-bara-cumparare__buton .pps-ico { font-size: 18px; }

	.pps-bara-mobil { transition: transform .22s ease, visibility 0s linear 0s; }
	body.pps-cu-bara-cumparare .pps-bara-mobil { transform: translateY(100%); visibility: hidden; transition: transform .22s ease, visibility 0s linear .22s; }
}
@media (max-width: 759px) and (prefers-reduced-motion: reduce) {
	.pps-bara-cumparare, .pps-bara-cumparare--vizibila, .pps-bara-mobil, body.pps-cu-bara-cumparare .pps-bara-mobil { transition: none; }
}
/* Runda v2, reparații 3 (ER3-01): bara fișei vine tipărită de server, vizibilă de la prima afișare (inc/b2b-bara-cumparare.php).
   Fără JavaScript butonul ei n-ar face nimic: rămâne bara de navigare. */
@media (scripting: none) {
	.pps-bara-cumparare { display: none !important; }
	body.pps-cu-bara-cumparare .pps-bara-mobil { transform: none; visibility: visible; }
}

/* ═══════════════════════════════════════════════════════════════════
   26. Butonul de fișier în română (Comandă rapidă, 23.09.2026)
   Browserul scria „Choose File / No file chosen”. Câmpul real rămâne accesibil, doar ascuns vizual.
   ═══════════════════════════════════════════════════════════════════ */
.pps-fisier { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin-top: 8px; }
.pps-fisier__input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.pps-fisier__input:focus-visible + .pps-fisier__buton { outline: 2px solid var(--pps-ink); outline-offset: 2px; }
.pps-fisier__buton { cursor: pointer; min-height: 44px; }
.pps-fisier__nume { font-size: var(--pps-fs-detaliu, 13px); color: var(--pps-text); overflow-wrap: anywhere; }

/* ═══════════════════════════════════════════════════════════════════
   27. Listări pe telefon: rând lipicios „Filtrează · Sortează · N produse” și foaia de filtre (23.09.2026)
   ═══════════════════════════════════════════════════════════════════ */

.pps-ico--sortare { --pps-ico: url("assets/icons/sortare.svg"); }
.pps-ico--inapoi { --pps-ico: url("assets/icons/inapoi.svg"); }

/* Fără JavaScript și pe desktop (panoul lateral), rândul și foaia nu există. */
.pps-filtre-bara, .pps-filtre-pastile { display: none; }
/* Rândul (ascuns pe desktop) stă înaintea panoului; marginea „flow” dintre frați nu are voie să coboare panoul. */
.pps-split--filtre > .pps-filtre { margin-block-start: 0; }

/* Foaia de jos: aceeași componentă pentru filtre, sortare și confirmarea din coș. */
.pps-foaie { position: fixed; inset: 0; z-index: 95; display: flex; flex-direction: column; justify-content: flex-end; }
.pps-foaie[hidden] { display: none; }
.pps-foaie__fundal { position: absolute; inset: 0; background: rgba(12, 35, 64, .48); opacity: 0; transition: opacity .2s ease; }
.pps-foaie__panou {
	position: relative; display: flex; flex-direction: column; min-height: 0; max-height: min(88vh, 760px); max-height: min(88dvh, 760px);
	margin: 0; background: var(--pps-alb); color: var(--pps-ink);
	border-radius: var(--pps-raza-mare) var(--pps-raza-mare) 0 0; box-shadow: 0 -12px 40px -12px rgba(12, 35, 64, .35);
	transform: translateY(100%); transition: transform .24s cubic-bezier(.2, .8, .2, 1);
}
.pps-foaie--deschisa .pps-foaie__fundal { opacity: 1; }
.pps-foaie--deschisa .pps-foaie__panou { transform: none; }
.pps-foaie__antet {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 8px 8px 8px 16px; border-bottom: 1px solid var(--pps-linie); flex: none;
}
.pps-foaie__titlu { margin: 0; font-family: var(--pps-display); font-size: var(--pps-fs-h2, 1.25rem); line-height: 1.25; font-weight: 700; color: var(--pps-ink); }
.pps-foaie__titlu:focus { outline: none; }
.pps-foaie__inchide {
	width: 44px; height: 44px; border: 0; border-radius: 50%; background: none; color: var(--pps-ink); cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center; font-size: 22px;
}
@media (hover: hover) { .pps-foaie__inchide:hover { background: var(--pps-pal); } }
.pps-foaie__corp { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 4px 16px 16px; -webkit-overflow-scrolling: touch; }
.pps-foaie__corp[aria-busy="true"] .pps-foaie__numar { opacity: .45; }
.pps-foaie__subsol {
	display: flex; gap: 10px; align-items: center; flex: none;
	padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--pps-linie); background: var(--pps-alb);
}
.pps-foaie__subsol .pps-btn { min-height: 48px; font-size: var(--pps-fs-text, 1rem); }
.pps-foaie__reset { flex: none; }
.pps-foaie__aplica { flex: 1 1 auto; }
.pps-foaie__aplica[disabled] { background: var(--pps-linie); border-color: var(--pps-linie); color: var(--pps-text); cursor: not-allowed; }
.pps-foaie__grup { border: 0; margin: 0; padding: 16px 0 8px; min-width: 0; }
.pps-foaie__grup + .pps-foaie__grup { box-shadow: inset 0 1px 0 var(--pps-linie); }
/* Legenda plutește, ca să stea în grup ca un titlu obișnuit (altfel se așază peste marginea de sus a fieldsetului). */
.pps-foaie__grup > legend { float: left; width: 100%; }
.pps-foaie__grup > legend + * { clear: both; }
.pps-foaie__titlu-grup { padding: 0; margin: 0 0 4px; font-family: var(--pps-display); font-size: var(--pps-fs-text, 1rem); font-weight: 700; line-height: 1.3; color: var(--pps-ink); }
.pps-foaie__optiuni { list-style: none; margin: 0; padding: 0; }
.pps-foaie__optiune { display: flex; align-items: center; gap: 12px; position: relative; }
.pps-foaie__optiune[hidden] { display: none; }
.pps-foaie__optiune input { flex: none; width: 20px; height: 20px; margin: 0; accent-color: var(--pps-ink); }
.pps-foaie__optiune label {
	flex: 1 1 auto; min-width: 0; min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 12px;
	margin: 0; padding: 0; font-size: var(--pps-fs-text, 1rem); line-height: 1.3; color: var(--pps-ink); cursor: pointer;
}
/* Toată lățimea rândului se poate atinge, nu doar bifa. */
.pps-foaie__optiune label::before { content: ""; position: absolute; inset: 0; }
.pps-foaie__optiune input:checked + label { font-weight: 600; }
.pps-foaie__optiune input:focus-visible + label { outline: 2px solid var(--pps-ink); outline-offset: 2px; border-radius: var(--pps-raza-mic); }
.pps-foaie__optiune--sub { padding-left: 28px; }
.pps-foaie__numar { flex: none; font-size: var(--pps-fs-detaliu, .8125rem); color: var(--pps-text); font-variant-numeric: tabular-nums; }
.pps-foaie__toate {
	margin: 4px 0 0; padding: 10px 0; min-height: 44px; border: 0; background: none; cursor: pointer;
	font-family: var(--pps-font); font-size: var(--pps-fs-ui, .9375rem); font-weight: 600; color: var(--pps-rosu-inchis); text-decoration: underline; text-underline-offset: 3px;
}
.pps-foaie__pret { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; margin-top: 8px; }
.pps-foaie__pret .pps-camp > span { font-size: var(--pps-fs-detaliu, .8125rem); color: var(--pps-text); }
.pps-foaie__eroare { margin: 12px 0 0; }
@media (prefers-reduced-motion: reduce) {
	.pps-foaie__fundal, .pps-foaie__panou { transition: none; }
}
/* Pe ecranele late, foaia devine o fereastră la mijloc (confirmarea din coș o folosește și pe desktop). */
@media (min-width: 760px) {
	.pps-foaie { justify-content: center; align-items: center; padding: 24px; }
	.pps-foaie__panou { width: min(520px, 100%); border-radius: var(--pps-raza-mare); transform: translateY(16px); opacity: 0; transition: transform .2s ease, opacity .2s ease; }
	.pps-foaie--deschisa .pps-foaie__panou { opacity: 1; }
}

@media (max-width: 959px) {
	/* Rândul lipicios rămâne sub antet pe toată lista. Grila devine bloc, ca rândul să aibă unde „curge”:
	   un element lipicios dintr-o celulă de grilă nu se poate mișca în afara celulei. */
	html.pps-filtre-js .pps-split--filtre { display: block; }
	html.pps-filtre-js .pps-split--filtre > .pps-filtre,
	html.pps-filtre-js .pps-split--filtre .pps-rand--intre { display: none; }
	html.pps-filtre-js .pps-filtre-bara {
		--pps-gutter: clamp(1rem, 4vw, 2rem);
		display: flex; align-items: center; gap: 8px;
		position: sticky; top: var(--pps-antet-real, 119px); z-index: 50;
		margin: 0 calc(-1 * var(--pps-gutter)); padding: 8px var(--pps-gutter);
		background: var(--pps-alb); border-bottom: 1px solid var(--pps-linie);
	}
	.admin-bar.pps-filtre-js .pps-filtre-bara { top: calc(var(--pps-antet-real, 119px) + var(--pps-toolbar-height, 0px)); }
	.pps-filtre-bara__buton {
		display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 14px;
		border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-pila); background: var(--pps-alb); color: var(--pps-ink); cursor: pointer;
		font-family: var(--pps-font); font-size: var(--pps-fs-ui, .9375rem); font-weight: 600; line-height: 1.2; white-space: nowrap;
	}
	.pps-filtre-bara__buton .pps-ico { font-size: 18px; }
	.pps-filtre-bara__buton .pps-filtre-numar { margin-left: 0; }
	.pps-filtre-bara__buton:active { background: var(--pps-pal); }
	/* Numărul se poate rupe pe două rânduri la 360 px („121 de / produse”), ca butoanele să rămână întregi. */
	.pps-filtre-bara__total { margin-left: auto; min-width: 0; font-size: var(--pps-fs-detaliu, .8125rem); line-height: 1.25; color: var(--pps-text); text-align: right; font-variant-numeric: tabular-nums; }
	html.pps-filtre-js .pps-filtre-pastile {
		--pps-gutter: clamp(1rem, 4vw, 2rem);
		display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
		margin: 0 calc(-1 * var(--pps-gutter)); padding: 12px var(--pps-gutter) 0;
	}
	html.pps-filtre-js .pps-filtre-pastile::-webkit-scrollbar { display: none; }
	.pps-pastila {
		flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 8px 14px;
		border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-pila); background: var(--pps-fundal); color: var(--pps-ink);
		font-family: var(--pps-font); font-size: var(--pps-fs-ui, .9375rem); font-weight: 600; line-height: 1.2; text-decoration: none; white-space: nowrap; cursor: pointer;
	}
	.pps-pastila:active { background: var(--pps-pal); }
	.pps-pastila--activa { background: var(--pps-ink); border-color: var(--pps-ink); color: #fff; padding-right: 10px; }
	.pps-pastila--activa:active { background: #17395f; }
	.pps-pastila__x { width: 16px; height: 16px; background: currentColor; -webkit-mask: url("assets/icons/inchide.svg") center / contain no-repeat; mask: url("assets/icons/inchide.svg") center / contain no-repeat; }
	.pps-pastila__sageata { width: 14px; height: 14px; background: currentColor; transform: rotate(90deg); -webkit-mask: url("assets/icons/sageata.svg") center / contain no-repeat; mask: url("assets/icons/sageata.svg") center / contain no-repeat; }
	html.pps-filtre-js .pps-split--filtre > .wp-block-group .pps-lista-produse { margin-block-start: 12px; }
	html.pps-filtre-js .pps-split--filtre > .wp-block-group { margin-block-start: 0; }
}

/* ═══════════════════════════════════════════════════════════════════
   28. Confirmarea după „Adaugă în coș” pe fișa produsului, fără reîncărcare (23.09.2026)
   Foaie de jos pe telefon, fereastră la mijloc pe desktop (componenta din secțiunea 27).
   ═══════════════════════════════════════════════════════════════════ */
.pps-foaie--cos .pps-foaie__titlu { display: flex; align-items: center; gap: 10px; }
.pps-foaie--cos .pps-foaie__titlu .pps-ico { flex: none; font-size: 24px; color: var(--pps-verde); }
/* `div`: aceeași clasă o primește 2,2 s și butonul de pe card, după adăugare (app.js), care devenea grilă (24.09, design-qa). */
div.pps-adaugat { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 12px; align-items: start; padding: 16px 0 12px; }
.pps-adaugat__poza { width: 72px; height: 72px; object-fit: contain; border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-mic); background: var(--pps-fundal); }
.pps-adaugat__nume { margin: 0; font-family: var(--pps-font); font-size: var(--pps-fs-ui, .9375rem); font-weight: 600; line-height: var(--pps-lh-ui, 1.35); color: var(--pps-ink); }
.pps-adaugat__detalii { margin: 4px 0 0; font-size: var(--pps-fs-detaliu, .8125rem); line-height: 1.45; color: var(--pps-text); }
.pps-adaugat__linie { margin: 6px 0 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; font-size: var(--pps-fs-ui, .9375rem); line-height: 1.35; color: var(--pps-ink); }
.pps-adaugat__linie strong { font-family: var(--pps-display); font-variant-numeric: tabular-nums; }
.pps-adaugat__cos { margin: 0; padding: 12px 0 0; border-top: 1px solid var(--pps-linie); display: flex; justify-content: space-between; gap: 12px; font-size: var(--pps-fs-ui, .9375rem); line-height: 1.35; color: var(--pps-text); }
.pps-adaugat__cos strong { color: var(--pps-ink); font-family: var(--pps-display); font-variant-numeric: tabular-nums; white-space: nowrap; }
.pps-adaugat__nota { margin: 12px 0 4px; padding: 10px 12px; border-radius: var(--pps-raza-mic); display: flex; gap: 8px; align-items: flex-start; font-size: var(--pps-fs-ui, .9375rem); line-height: 1.35; background: var(--pps-fundal); color: var(--pps-ink); }
.pps-adaugat__nota .pps-ico { flex: none; margin-top: 1px; font-size: 18px; color: var(--pps-verde); }
.pps-adaugat__nota--minim { background: var(--pps-rosu-pal); }
.pps-adaugat__nota--minim .pps-ico { color: var(--pps-rosu-inchis); }
.pps-foaie__subsol--coloana { flex-direction: column; align-items: stretch; }
.pps-foaie__subsol--coloana .pps-btn { width: 100%; }
/* Mesajul de eroare de lângă buton (stoc, variantă, preț), în locul reîncărcării cu mesaj sus. */
.pps-cos-eroare { margin: 10px 0 0; padding: 10px 12px; border-radius: var(--pps-raza-mic); background: var(--pps-rosu-pal); color: var(--pps-rosu-inchis); font-size: var(--pps-fs-ui, .9375rem); line-height: 1.35; }
.pps-cos-eroare[hidden] { display: none; }
form.cart .single_add_to_cart_button.pps-se-adauga { opacity: .75; cursor: progress; }
/* D91: coșul are deja tot stocul alegerii (fișa și alegerea variantei de pe card). Butonul rămâne focalizabil (aria-disabled),
   dar arată oprit; nota de sub el e o informație, nu o eroare. */
.single_add_to_cart_button.pps-btn--tot-in-cos,
.pps-varianta__adauga.pps-btn--tot-in-cos,
.pps-bara-cumparare__buton.pps-btn--tot-in-cos { opacity: .5; cursor: not-allowed; box-shadow: none; }
.pps-cos-tot { margin: 10px 0 0; padding: 10px 12px; border-radius: var(--pps-raza-mic); background: var(--pps-pal); color: var(--pps-ink); font-size: var(--pps-fs-ui, .9375rem); line-height: 1.35; }
.pps-cos-tot[hidden] { display: none; }

/* ═══════════════════════════════════════════════════════════════════
   29. Prețul pentru firme legate de BOCP: „Prețul tău”, „Preț de listă”, preț vechi (23.09.2026)
   Doar prezentare; datele vin din integrarea BOCP (inc/pret-firma.php).
   ═══════════════════════════════════════════════════════════════════ */
.pps-pret__eticheta {
	align-self: flex-start; margin-bottom: 2px; padding: 2px 8px; border-radius: var(--pps-raza-pila);
	font-family: var(--pps-font); font-size: var(--pps-fs-eticheta, .75rem); font-weight: 700; line-height: 1.3; letter-spacing: .02em;
	background: #e6f3ee; color: var(--pps-verde);
}
.pps-pret--lista .pps-pret__eticheta { background: var(--pps-pal); color: var(--pps-ink); }
.pps-pret__lista { margin-left: 6px; font-family: var(--pps-font); font-size: var(--pps-fs-detaliu, .8125rem); font-weight: 400; color: var(--pps-text); white-space: nowrap; }
.pps-pret__de-la { margin: 0 4px 0 0 !important; }
.pps-pret__nota {
	margin-top: 6px; padding: 8px 10px; border-radius: var(--pps-raza-mic);
	background: #fdf3e7; color: #7a3d06; font-size: var(--pps-fs-detaliu, .8125rem); line-height: 1.4;
}

/* ═══════════════════════════════════════════════════════════════════
   30. Unitatea de vânzare la preț: „0,18 lei/buc · cutie 100 buc = 18,00 lei” (23.09.2026)
   Apare doar când unitatea e verificată în catalogul BOCP (inc/unitate.php).
   ═══════════════════════════════════════════════════════════════════ */
.pps-unitate { margin: 0; font-size: var(--pps-fs-detaliu, .8125rem); line-height: 1.45; color: var(--pps-ink); font-variant-numeric: tabular-nums; }
.pps-unitate[hidden] { display: none; }
.pps-card__unitate { color: var(--pps-text); }
.pps-cos__unitate { display: block; margin-top: 2px; color: var(--pps-text); }
/* Calculul liniei sub valoarea ei, când prețul unitar cu TVA rotunjit × cantitatea nu dă linia (C2-6, inc/vitrina.php). */
.pps-cos__calcul { display: block; margin-top: 2px; font-family: var(--pps-font); font-size: var(--pps-fs-detaliu, .8125rem); font-weight: 400; line-height: 1.4; color: var(--pps-text); font-variant-numeric: tabular-nums; }
.pps-sug__unitate { display: block; font-size: var(--pps-fs-detaliu, .8125rem); color: var(--pps-text); }
@media (max-width: 759px) {
	.pps-produs__cumpara > .pps-unitate--fisa { order: -1; }
}

/* ═══════════════════════════════════════════════════════════════════
   31. Căutarea pe tot ecranul, pe telefon (23.09.2026)
   Săgeată înapoi, căutări recente, sugestii, categorii, produse cu „Adaugă în coș”, „Vezi toate rezultatele” fix jos.
   Comportamentul e în pps-features.js; pe desktop rămâne lista de sub câmp.
   ═══════════════════════════════════════════════════════════════════ */
html.pps-cautare-deschisa { overflow: hidden; }
/* Căutarea stă în antetul lipicios (context de suprapunere propriu): antetul urcă peste bara de jos cât e deschisă. */
html.pps-cautare-deschisa .pps-antet-lipicios { z-index: 97; }
html.pps-cautare-deschisa .pps-antet__cautare { min-height: 50px; }
@media (max-width: 759px) {
	/* Două clase: pps-features.css (încărcat după temă) pune `.pps-cautare { position: relative }`. */
	.pps-cautare.pps-cautare--ecran {
		position: fixed; inset: 0; z-index: 97; display: flex; flex-direction: column;
		background: var(--pps-alb); height: 100vh; height: 100dvh;
	}
	.pps-cautare--ecran .pps-cautare__form { flex: none; align-items: center; gap: 4px; padding: 8px 16px 8px 4px; border-bottom: 1px solid var(--pps-linie); background: var(--pps-alb); }
	.pps-cautare__inapoi {
		flex: none; width: 44px; height: 44px; border: 0; border-radius: 50%; background: none; color: var(--pps-ink); cursor: pointer;
		display: inline-flex; align-items: center; justify-content: center; font-size: 24px;
	}
	.pps-cautare__inapoi:active { background: var(--pps-pal); }
	.pps-cautare--ecran .pps-cautare__input { min-height: 48px; }
	.pps-cautare--ecran .pps-cautare__buton { align-self: stretch; }
	.pps-cautare--ecran .pps-cautare__panou {
		position: static; flex: 1 1 auto; min-height: 0; max-height: none; overflow-y: auto; overscroll-behavior: contain;
		margin: 0; padding: 4px 16px 24px; border: 0; border-radius: 0; box-shadow: none; -webkit-overflow-scrolling: touch;
	}
	.pps-cautare--ecran .pps-cautare__panou[hidden] { display: block; }
	.pps-cautare--ecran .pps-cautare__grup { padding: 12px 0 4px; margin: 0; border: 0; }
	.pps-cautare--ecran .pps-cautare__grup + .pps-cautare__grup { border-top: 1px solid var(--pps-linie); margin-top: 8px; }
	.pps-cautare--ecran .pps-cautare__grup-titlu { margin: 0 0 6px; font-family: var(--pps-font); font-size: var(--pps-fs-eticheta, .75rem); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--pps-text); }
	.pps-cautare--ecran .pps-sug { padding: 10px 0; border-radius: 0; min-height: 48px; }
	.pps-cautare--ecran .pps-sug--termen { gap: 12px; }
	.pps-cautare--ecran .pps-sug--termen .pps-sug__titlu { font-size: var(--pps-fs-text, 1rem); font-weight: 400; }
	.pps-cautare--ecran .pps-sug--recent .pps-ico { font-size: 18px; color: var(--pps-text); flex: none; }
	.pps-sug__iconita { width: 28px; height: 28px; flex: none; object-fit: contain; }
	.pps-cautare__sugestii { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 8px; }
	.pps-cautare__sugestie {
		min-height: 40px; padding: 8px 14px; border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-pila);
		background: var(--pps-fundal); color: var(--pps-ink); cursor: pointer;
		font-family: var(--pps-font); font-size: var(--pps-fs-ui, .9375rem); font-weight: 600; line-height: 1.2;
	}
	.pps-cautare__sugestie:active { background: var(--pps-pal); }
	/* Rândul de produs: poza, numele pe două rânduri, codul și stocul, apoi prețul pe un rând; butonul de coș în dreapta. */
	.pps-sug-rand { display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--pps-linie); }
	.pps-sug-rand:last-child { border-bottom: 0; }
	.pps-cautare--ecran .pps-sug--produs {
		flex: 1 1 auto; min-width: 0; display: grid; grid-template-columns: 56px minmax(0, 1fr); column-gap: 12px; row-gap: 2px; align-items: start; flex-wrap: nowrap;
	}
	.pps-cautare--ecran .pps-sug--produs .pps-sug__poza { grid-row: 1 / span 2; width: 56px; height: 56px; flex-basis: 56px; }
	.pps-cautare--ecran .pps-sug--produs .pps-sug__titlu { font-size: var(--pps-fs-ui, .9375rem); }
	.pps-cautare--ecran .pps-sug__meta { font-size: var(--pps-fs-detaliu, .8125rem); }
	.pps-cautare--ecran .pps-sug--produs .pps-sug__pret {
		grid-column: 2; width: auto; padding: 0; flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 0 8px; text-align: left; white-space: normal;
	}
	.pps-cautare--ecran .pps-sug__pret-principal { font-family: var(--pps-display); font-size: var(--pps-fs-ui, .9375rem); }
	.pps-cautare--ecran .pps-sug__pret-tva { font-size: var(--pps-fs-detaliu, .8125rem); }
	.pps-sug__adauga {
		flex: none; width: 44px; height: 44px; border: 1px solid var(--pps-rosu); border-radius: var(--pps-raza-card);
		background: var(--pps-alb); color: var(--pps-rosu); cursor: pointer; font-size: 20px;
		display: inline-flex; align-items: center; justify-content: center; transition: background-color .15s ease, color .15s ease;
	}
	.pps-sug__adauga:active { background: var(--pps-rosu-pal); }
	.pps-sug__adauga[aria-busy="true"] { opacity: .6; }
	.pps-sug__adauga--ok { background: var(--pps-verde); border-color: var(--pps-verde); color: #fff; }
	.pps-sug__adauga--eroare { border-color: var(--pps-rosu-inchis); color: var(--pps-rosu-inchis); background: var(--pps-rosu-pal); }
	.pps-cautare__subsol { flex: none; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid var(--pps-linie); background: var(--pps-alb); }
	.pps-cautare__subsol[hidden] { display: none; }
	.pps-cautare__subsol .pps-btn { width: 100%; min-height: 48px; font-size: var(--pps-fs-text, 1rem); }
	.pps-cautare--ecran .pps-cautare__gol { padding: 24px 0; }
}
@media (min-width: 760px) {
	.pps-cautare__inapoi, .pps-cautare__subsol, .pps-sug__adauga { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════
   32. Finalizarea comenzii pe telefon, concentrată (23.09.2026)
   Antet simplu (marca și „Înapoi la coș”), fără bara de jos, câmpurile opționale după „Adaugă”,
   totalul și „Plasează comanda” fixe jos. Validările și bifele legale rămân cele ale WooCommerce.
   ═══════════════════════════════════════════════════════════════════ */
.pps-antet__inapoi-cos { display: none; }
.pps-camp-optional--ascuns { display: none !important; }
.pps-adauga-camp { margin: 0 0 12px; }
.pps-adauga-camp[style*="display: none"] { display: none; }
.pps-adauga-camp__buton {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 0; border: 0; background: none; cursor: pointer;
	font-family: var(--pps-font); font-size: var(--pps-fs-ui, .9375rem); font-weight: 600; color: var(--pps-rosu-inchis);
}
.pps-adauga-camp__buton .pps-ico { font-size: 18px; }
.pps-adauga-camp__buton span:last-child { text-decoration: underline; text-underline-offset: 3px; }
/* Țara, când magazinul vinde într-o singură țară: WooCommerce o scrie ca text; rândul nu mai are rost. */
.woocommerce-checkout .form-row:has(> .woocommerce-input-wrapper > input[type="hidden"][name$="_country"]) { display: none; }
.pps-finalizare-nota { margin: 8px 0 0; font-size: var(--pps-fs-detaliu, .8125rem); color: var(--pps-rosu-inchis); }
@media (max-width: 759px) {
	body.pps-finalizare .pps-bara-utilitate,
	body.pps-finalizare .pps-antet__cautare,
	body.pps-finalizare .pps-antet__actiuni > :not(.pps-antet__inapoi-cos),
	body.pps-finalizare .pps-bara-mobil { display: none !important; }
	body.pps-finalizare .pps-antet__int { flex-wrap: nowrap; min-height: 56px; }
	body.pps-finalizare .pps-antet__inapoi-cos {
		display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 0 8px 8px;
		font-family: var(--pps-font); font-size: var(--pps-fs-ui, .9375rem); font-weight: 600; color: var(--pps-ink); text-decoration: none; white-space: nowrap;
	}
	body.pps-finalizare .pps-antet__inapoi-cos .pps-ico { font-size: 18px; }
	body.pps-finalizare { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
	.pps-bara-cumparare--finalizare .pps-bara-cumparare__buton { min-width: 0; }
	body.pps-finalizare.pps-camp-activ .pps-bara-cumparare--finalizare { transform: translateY(110%); visibility: hidden; }
}

/* ═══════════════════════════════════════════════════════════════════
   33. Contul pe telefon: meniul ca pastile orizontale și „Comandă din nou” pe fiecare comandă (23.09.2026)
   ═══════════════════════════════════════════════════════════════════ */
.woocommerce-orders-table__cell-order-actions .woocommerce-button.pps-din-nou { background: var(--pps-rosu); border-color: var(--pps-rosu); color: #fff; }
@media (max-width: 759px) {
	/* Meniul contului: un rând de pastile care se derulează orizontal (era o listă de 10 rânduri, 300 px). */
	.woocommerce-account .woocommerce-MyAccount-navigation {
		--pps-gutter: clamp(1rem, 4vw, 2rem);
		margin: 0 calc(-1 * var(--pps-gutter)); overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
	}
	.woocommerce-account .woocommerce-MyAccount-navigation::-webkit-scrollbar { display: none; }
	.woocommerce-account .woocommerce-MyAccount-navigation ul { flex-direction: row; flex-wrap: nowrap; gap: 8px; padding: 0 var(--pps-gutter) 4px; width: max-content; }
	.woocommerce-account .woocommerce-MyAccount-navigation li { flex: none; }
	.woocommerce-account .woocommerce-MyAccount-navigation a {
		display: inline-flex; align-items: center; min-height: 40px; padding: 8px 14px; margin: 0;
		border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-pila); background: var(--pps-alb);
		font-family: var(--pps-font); font-size: var(--pps-fs-ui, .9375rem); font-weight: 600; line-height: 1.2; white-space: nowrap; color: var(--pps-ink);
	}
	.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { background: var(--pps-ink); border-color: var(--pps-ink); color: #fff; }
	.woocommerce-account .woocommerce { gap: 16px; }
	/* Numărul comenzii: WooCommerce ascunde celula pe ecrane mici; o clinică se orientează după el. Devine titlul cardului. */
	.woocommerce .woocommerce-orders-table tbody th.woocommerce-orders-table__cell-order-number {
		display: block; padding: 12px 12px 8px; text-align: left; background: var(--pps-fundal);
		font-family: var(--pps-display); font-size: var(--pps-fs-text, 1rem); font-weight: 700; color: var(--pps-ink);
	}
	.woocommerce .woocommerce-orders-table tbody th.woocommerce-orders-table__cell-order-number::before { content: "Comanda "; float: none; font-weight: 700; }
	.woocommerce .woocommerce-orders-table tbody th.woocommerce-orders-table__cell-order-number a { color: var(--pps-ink); }
	/* Comenzile: două butoane pe un rând, „Comandă din nou” primul. */
	.woocommerce-orders-table__cell-order-actions { display: flex !important; flex-wrap: wrap; gap: 8px; }
	.woocommerce-orders-table__cell-order-actions::before { display: none !important; }
	.woocommerce-orders-table__cell-order-actions .woocommerce-button {
		flex: 1 1 140px; min-height: 44px; margin: 0 !important; display: inline-flex; align-items: center; justify-content: center; text-align: center;
		font-size: var(--pps-fs-ui, .9375rem);
	}
	/* Regula generală `.woocommerce a.button` are !important (roșu); „Vezi comanda” devine buton secundar. */
	.woocommerce .woocommerce-orders-table__cell-order-actions a.button.view { background: var(--pps-alb) !important; color: var(--pps-ink) !important; border: 1px solid var(--pps-linie); }
}

/* ═══════════════════════════════════════════════════════════════════
   34. Cardul: termenul de livrare lângă stoc și cantitatea (− 1 +) la produsele simple (23.09.2026)
   ═══════════════════════════════════════════════════════════════════ */
.pps-card__stare { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; }
.pps-livrare-scurt { display: inline-flex; align-items: center; gap: 6px; font-size: var(--pps-fs-detaliu, .8125rem); line-height: 1.35; color: var(--pps-text); }
.pps-livrare-scurt .pps-ico { font-size: 15px; color: var(--pps-verde); }
.pps-livrare-scurt[hidden] { display: none; }
.pps-card__cumpara { display: flex; align-items: stretch; gap: 8px; margin: 0; }
.pps-card__cumpara .pps-btn { flex: 1 1 auto; min-width: 0; }
.pps-card__cantitate { flex: none; height: 44px; }
.pps-card__cantitate button { width: 36px; height: 42px; font-size: var(--pps-fs-ui, .9375rem); }
.pps-card__cantitate input.qty {
	width: 40px; height: 42px; padding: 0; border: 0; border-inline: 1px solid var(--pps-linie); border-radius: 0; text-align: center;
	font-family: var(--pps-display); font-size: 16px; font-weight: 600; -moz-appearance: textfield; appearance: textfield;
}
.pps-card__cantitate input.qty::-webkit-outer-spin-button, .pps-card__cantitate input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pps-card__cumpara .pps-btn { white-space: nowrap; }
/* Cardurile medii (desktop, trei coloane): textul întreg pe un rând, fără iconiță. */
@container ppscard (min-width: 231px) and (max-width: 300px) {
	.pps-card--produs .pps-card__subsol .pps-card__cumpara .pps-btn { padding-inline: 8px; }
	.pps-card--produs .pps-card__subsol .pps-card__cumpara .pps-btn .pps-ico { display: none; }
	.pps-card__cantitate button { width: 32px; }
}
/* Cardurile înguste (două coloane pe telefon): butonul rămâne o iconiță de coș, textul e citit de cititoarele de ecran. */
@container ppscard (max-width: 230px) {
	.pps-card__cumpara .pps-card__buton-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
	.pps-card__cumpara .pps-btn { padding-inline: 0; }
	.pps-card--produs .pps-card__subsol .pps-card__cumpara .pps-btn .pps-ico { font-size: 20px; }
	.pps-card__cantitate button { width: 34px; }
	.pps-card__cantitate input.qty { width: 32px; }
}
/* Pe fișă, lângă „În stoc”. */
.pps-produs__cumpara .pps-stoc + .pps-livrare-scurt { margin-left: 14px; }

/* Fișa cu variante, înainte de alegerea mărimii: butonul rămâne acțiune reală (duce la mărimi, cu mesaj),
   deci nu arată inactiv; opacitatea .5 din WooCommerce îi scădea contrastul sub AA. Varianta indisponibilă rămâne estompată. */
.woocommerce div.product form.cart button.single_add_to_cart_button.disabled.wc-variation-selection-needed,
.woocommerce div.product form.cart button.single_add_to_cart_button.disabled.wc-variation-selection-needed:hover { opacity: 1; cursor: pointer; }

/* ═══════════════════════════════════════════════════════════════════
   35. Slideshow pe prima pagină (24.09.2026)
   Markupul: inc/slideshow.php; JS: assets/js/slideshow.js. Bannerele sunt imagini cu textul inclus.
   Calculator: un banner pe lățimea containerului, raport 3:1, colțuri rotunjite, săgeți la hover și la focus,
   puncte dedesubt. Telefon: raport 2:1, 16 px margine, se glisează cu degetul și se vede o fâșie din următorul.
   Cadrul are raport fix, deci imaginile nu mută pagina când se încarcă.
   ═══════════════════════════════════════════════════════════════════ */

/* Bara de derulare verticală (Windows) apare abia când pagina crește peste ecran; locul ei rezervat de la început
   ține conținutul centrat pe loc, inclusiv bannerul (PSI desktop măsura o deplasare de 7 px, 24.09). */
html { scrollbar-gutter: stable; }
.pps-slideshow { --pps-ss-margine: clamp(1rem, 4vw, 2rem); display: flex; flex-direction: column; padding-block: 20px 16px; background: var(--pps-alb); }
main > .pps-slideshow { margin-block-start: 0; }
.pps-slideshow__cadru { position: relative; width: 100%; max-width: var(--pps-lat); margin-inline: auto; padding-inline: var(--pps-ss-margine); }
.pps-slideshow__pista {
	display: flex; aspect-ratio: 3 / 1; overflow-x: auto; overflow-y: hidden;
	scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none;
	border-radius: var(--pps-raza-mare); background: var(--pps-pal);
	box-shadow: 0 1px 2px rgba(12, 35, 64, .06), 0 18px 36px -24px rgba(12, 35, 64, .45);
}
.pps-slideshow__pista::-webkit-scrollbar { display: none; }
.pps-slideshow__slide { position: relative; flex: 0 0 100%; min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.pps-slideshow__slide picture,
.pps-slideshow__link { display: block; width: 100%; height: 100%; }
.pps-slideshow__slide img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 50%; }
/* Focusul stă în interiorul bannerului (pista taie tot ce iese în afară): contur bleumarin cu un inel alb. */
.pps-slideshow__link:focus-visible { outline: 3px solid var(--pps-ink); outline-offset: -3px; box-shadow: inset 0 0 0 6px #fff; border-radius: inherit; }
.pps-slideshow__link:focus-visible img { opacity: .94; }

/* Săgețile: pe calculator, la hover sau când focusul e în slideshow. */
.pps-slideshow__sageata {
	position: absolute; top: 50%; z-index: 2; display: grid; place-items: center;
	width: 48px; height: 48px; margin-top: -24px; padding: 0; border: 0; border-radius: 50%;
	background: rgba(255, 255, 255, .94); color: var(--pps-ink); cursor: pointer;
	box-shadow: 0 1px 2px rgba(12, 35, 64, .12), 0 8px 22px -8px rgba(12, 35, 64, .45);
	opacity: 0; transition: opacity var(--pps-tranzitie), transform var(--pps-tranzitie), background-color var(--pps-tranzitie);
}
.pps-slideshow__sageata--inapoi { left: calc(var(--pps-ss-margine) + 16px); }
.pps-slideshow__sageata--inainte { right: calc(var(--pps-ss-margine) + 16px); }
.pps-slideshow__sageata svg { width: 22px; height: 22px; }
.pps-slideshow:focus-within .pps-slideshow__sageata { opacity: 1; } @media (hover: hover) { .pps-slideshow__cadru:hover .pps-slideshow__sageata { opacity: 1; } }
@media (hover: hover) { .pps-slideshow__sageata:hover { background: #fff; transform: scale(1.06); } }
.pps-slideshow__sageata:active { transform: scale(.97); }
.pps-slideshow__sageata:focus-visible { outline: 2px solid var(--pps-ink); outline-offset: 2px; border-radius: 50%; }
@media (hover: none) {
	.pps-slideshow:not(:focus-within) .pps-slideshow__sageata { visibility: hidden; }
}

/* Butonul de pauză și punctele, sub banner (în DOM sunt înainte, ca pauza să fie primul control la Tab).
   Punctul activ e o pastilă care se umple în 6 s. Punctele au contrast de cel puțin 3:1 față de alb (WCAG 1.4.11). */
.pps-slideshow__control { order: 2; display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 12px; min-height: 32px; }
/* Runda v2 (fără salt la încărcare): controlul stă în HTML înaintea cadrului (ordinea Tab: pauza înaintea caruselului), iar
   prima pagină are ~570 KB înaintea slideshow-ului. Când prima afișare venea înainte ca parserul să ajungă la cadru,
   controlul apărea sus, apoi cobora 405 px (CLS 0,020). Controlul se arată abia când cadrul e în pagină. */
.pps-slideshow__control:not(:has(+ .pps-slideshow__cadru)) { display: none; }
.pps-slideshow__pauza {
	display: grid; place-items: center; width: 32px; height: 32px; padding: 0; flex: none;
	border: 1px solid var(--pps-linie); border-radius: 50%; background: var(--pps-alb); color: var(--pps-ink); cursor: pointer;
	transition: border-color var(--pps-tranzitie), background-color var(--pps-tranzitie);
}
@media (hover: hover) { .pps-slideshow__pauza:hover { border-color: var(--pps-ink); } }
.pps-slideshow__pauza:focus-visible { outline: 2px solid var(--pps-ink); outline-offset: 2px; border-radius: 50%; }
.pps-slideshow__pauza svg { width: 16px; height: 16px; display: block; }
/* Pauza nu se vede (cererea lui Radu, 24.09): rotirea se oprește la hover, la atingere, la glisare și la un clic pe
   puncte sau săgeți. Pentru tastatură și cititoarele de ecran rămâne primul control la Tab și apare doar cu focus
   de la tastatură (WCAG 2.2.2 și 2.4.7). */
.pps-slideshow__pauza:not(:focus-visible) {
	position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
	clip: rect(0 0 0 0); clip-path: inset(50%); border: 0; white-space: nowrap;
}
.pps-slideshow__ico-porneste,
.pps-slideshow__pauza.is-oprit .pps-slideshow__ico-pauza { display: none; }
.pps-slideshow__pauza.is-oprit .pps-slideshow__ico-porneste { display: block; }
.pps-slideshow__puncte { display: flex; align-items: center; }
.pps-slideshow__punct {
	display: grid; place-items: center; width: 24px; height: 32px; padding: 0; border: 0; background: none; cursor: pointer;
	transition: width var(--pps-tranzitie);
}
.pps-slideshow__punct span {
	position: relative; display: block; width: 8px; height: 8px; overflow: hidden; border-radius: var(--pps-raza-pila);
	background: #7d8a99; transition: width var(--pps-tranzitie), background-color var(--pps-tranzitie);
}
@media (hover: hover) { .pps-slideshow__punct:hover span { background: var(--pps-ink); } }
.pps-slideshow__punct[aria-current="true"] { width: 40px; }
.pps-slideshow__punct[aria-current="true"] span { width: 30px; background: #7d8a99; }
.pps-slideshow__punct[aria-current="true"] span::after {
	content: ""; position: absolute; inset: 0; border-radius: inherit; background: var(--pps-rosu);
	transform-origin: left center;
}
/* Progresul rulează și cu „reduce motion” (regula globală de la începutul foii ar umple bara instantaneu). */
.pps-slideshow.is-ruleaza .pps-slideshow__punct[aria-current="true"] span::after { animation: pps-ss-progres var(--pps-ss-durata, 6s) linear both !important; }
.pps-slideshow.is-pauza .pps-slideshow__punct[aria-current="true"] span::after { animation-play-state: paused !important; }
.pps-slideshow .pps-slideshow__punct, .pps-slideshow .pps-slideshow__punct span { transition-duration: .25s !important; }
.pps-slideshow__punct:focus-visible { outline: 2px solid var(--pps-ink); outline-offset: -2px; border-radius: var(--pps-raza-pila); }
@keyframes pps-ss-progres { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* Un singur banner: fără săgeți și puncte. */
.pps-slideshow--unic { padding-bottom: 20px; }

/* Tabletă: săgețile rămân în interiorul bannerului, mai mici. */
@media (max-width: 1023px) and (min-width: 760px) {
	.pps-slideshow__sageata { width: 40px; height: 40px; margin-top: -20px; }
	.pps-slideshow__sageata--inapoi { left: calc(var(--pps-ss-margine) + 10px); }
	.pps-slideshow__sageata--inainte { right: calc(var(--pps-ss-margine) + 10px); }
}

@media (max-width: 759px) {
	.pps-slideshow { padding-block: 12px 4px; }
	.pps-slideshow--unic { padding-bottom: 16px; }
	.pps-slideshow__cadru { padding-inline: 0; }
	/* Fiecare banner e un card 2:1; pista se vede pe toată lățimea, cu 16 px margine și o fâșie din următorul. */
	.pps-slideshow__pista {
		aspect-ratio: auto; gap: 8px; padding-inline: 16px; scroll-padding-inline: 16px;
		border-radius: 0; background: none; box-shadow: none;
	}
	.pps-slideshow__slide {
		flex-basis: calc(100% - 16px); aspect-ratio: 2 / 1; overflow: hidden;
		border-radius: var(--pps-raza-card); background: var(--pps-pal);
		box-shadow: 0 1px 2px rgba(12, 35, 64, .08), 0 10px 22px -18px rgba(12, 35, 64, .5);
	}
	.pps-slideshow--unic .pps-slideshow__slide { flex-basis: 100%; }
	.pps-slideshow__sageata { display: none; }
	.pps-slideshow__control { margin-top: 6px; }
}

/* ═══════════════════════════════════════════════════════════════════
   36. QA de design înainte de prototipul pentru client (24.09.2026)
   Raport: build/design-qa-2026-09-24/RAPORT.md. Doar defecte vizuale: aliniere, componente care arătau
   diferit în locuri diferite, culori din afara paletei, mărimi din afara scării, focus acoperit pe telefon.
   ═══════════════════════════════════════════════════════════════════ */

/* 36.1 Culorile implicite WooCommerce (mov, gri-liliachiu, albastru, chenar aproape negru) trec pe paleta temei.
   Variabilele sunt citite de plata de la finalizare, de câmpurile select2 și de notificări. */
body {
	--wc-primary: var(--pps-rosu);
	--wc-primary-text: #fff;
	--wc-secondary: var(--pps-fundal);
	--wc-secondary-text: var(--pps-text);
	--wc-subtext: var(--pps-text);
	--wc-form-border-color: var(--pps-linie-camp);
	--wc-form-border-radius: var(--pps-raza-mic);
	--wc-green: var(--pps-verde);
	--wc-red: var(--pps-rosu-inchis);
	--wc-blue: var(--pps-ink);
}
/* Radio și bife în culoarea mărcii (radio-ul de la plată era albastrul browserului, bifele erau deja bleumarin). */
input[type="radio"], input[type="checkbox"] { accent-color: var(--pps-ink); }

/* 36.2 Listări pe calculator: coloana cu produse începe la aceeași înălțime cu panoul de filtre.
   Marginile de „flow” o coborau cu 48 px, iar rândul „Afișez… / Sortare” avea 80 px în loc de 42.
   Sub 900 px regula exista deja (secțiunea 21.1). */
@media (min-width: 900px) {
	.pps-split--filtre > .wp-block-group,
	.pps-split--filtre .pps-rand--intre { margin-block-start: 0; }
	.pps-split--filtre .pps-rand--intre > * { margin-block: 0; }
	.pps-split--filtre .pps-rand--intre .woocommerce-ordering { margin: 0; }
}
/* Panoul de filtre de pe calculator se derulează, iar butoanele lipite jos acopereau prețul și bifele fără
   niciun semn că mai e ceva dedesubt: o umbră scurtă deasupra butoanelor. */
@media (min-width: 960px) {
	.pps-filtre-actions { box-shadow: 0 -10px 14px -12px rgba(12, 35, 64, .28); }
}

/* 36.3 Cantitatea (− 1 +) pe fișă și în coș arată ca pe card: cifra centrată, fără chenar propriu în chenar,
   aceeași literă (în coș cifra stătea la stânga, cu 13 px). */
form.cart .pps-stepper,
.woocommerce-cart-form .pps-stepper { align-items: stretch; }
form.cart .pps-stepper button,
.woocommerce-cart-form .pps-stepper button { height: auto; min-height: 40px; }
form.cart .pps-stepper input.qty,
.woocommerce form.cart .pps-stepper input.qty,
.woocommerce-cart-form .pps-stepper input.qty,
.woocommerce .woocommerce-cart-form .pps-stepper input.qty {
	height: auto; min-height: 40px; padding: 0; border: 0; border-inline: 1px solid var(--pps-linie); border-radius: 0;
	text-align: center; font-family: var(--pps-display); font-size: 16px; font-weight: 600; color: var(--pps-ink);
	-moz-appearance: textfield; appearance: textfield;
}
form.cart .pps-stepper input.qty::-webkit-outer-spin-button, form.cart .pps-stepper input.qty::-webkit-inner-spin-button,
.woocommerce-cart-form .pps-stepper input.qty::-webkit-outer-spin-button, .woocommerce-cart-form .pps-stepper input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Câmpul de cupon din coș avea colțuri drepte și literă de 13 px, spre deosebire de celelalte câmpuri. */
.woocommerce-cart-form .coupon input#coupon_code {
	border: 1px solid var(--pps-linie-camp); border-radius: var(--pps-raza-mic); min-height: 44px; padding: 0 14px;
	font-family: var(--pps-font); font-size: 16px; color: var(--pps-ink);
}

/* 36.4 „Anulează” lângă mărimi apărea la încărcare: materialul, pudrarea și culoarea unice sunt alese automat
   (21.3), iar WooCommerce arată legătura la orice alegere. Rămâne vizibil doar după o alegere reală. */
.pps-variatii:not(:has(.pps-variatii__grup:not(.pps-variatii__grup--fix) .pps-chip--activ)) .reset_variations { visibility: hidden !important; }

/* 36.5 Notificările WooCommerce (coș gol, „Ai un cupon?”, produs adăugat, comanda minimă) pe paleta temei.
   Primesc focus din cod ca să fie citite; conturul gros de focus nu are rost pe un text care nu se apasă. */
body .wc-block-components-notice-banner { border-radius: var(--pps-raza-mic); color: var(--pps-ink); }
body .wc-block-components-notice-banner.is-info { background: var(--pps-fundal); border-color: var(--pps-linie); }
body .wc-block-components-notice-banner.is-info > svg { background-color: var(--pps-ink); }
body .wc-block-components-notice-banner.is-success { background: #eef7f3; border-color: rgba(14, 124, 90, .35); }
body .wc-block-components-notice-banner.is-success > svg { background-color: var(--pps-verde); }
body .wc-block-components-notice-banner.is-error { background: var(--pps-rosu-pal); border-color: rgba(169, 18, 26, .35); }
body .wc-block-components-notice-banner.is-error > svg { background-color: var(--pps-rosu-inchis); }
body .wc-block-components-notice-banner.is-warning { background: #fdf4e7; border-color: rgba(180, 83, 9, .35); }
body .wc-block-components-notice-banner.is-warning > svg { background-color: var(--pps-portocaliu); }
body .wc-block-components-notice-banner:focus,
body .wc-block-components-notice-banner:focus-visible,
.woocommerce-notices-wrapper:focus, .woocommerce-notices-wrapper:focus-visible { outline: none; }
/* Pe telefon, butonul plutitor din notificare („Confirmă adresa de email”) rupea fraza în două. */
@media (max-width: 759px) {
	body .wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward { float: none; display: table; margin: 0 0 6px; }
}

/* 36.6 Finalizarea: plata pe fundalul temei (era mov-gri WooCommerce), fără triunghiul colorat. */
body.woocommerce-checkout #payment { background: var(--pps-fundal); border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-card); }
body.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--pps-linie); }
body.woocommerce-checkout #payment div.payment_box { background: var(--pps-alb); color: var(--pps-text); border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-mic); }
body.woocommerce-checkout #payment div.payment_box::before { display: none; }
/* „Livrezi la o altă adresă?” e o bifă, nu un titlu: avea 28 px, cât titlurile de secțiune. */
body.woocommerce-checkout #ship-to-different-address {
	font-family: var(--pps-font); font-size: var(--pps-fs-text, 1rem); font-weight: 600; line-height: 1.35; letter-spacing: 0; margin: 8px 0 12px;
}

/* 36.7 Coșul: iconița plină de camion de lângă „Modifică adresa” (font WooCommerce, singura iconiță plină). */
body.woocommerce-cart .cart-collaterals .shipping-calculator-button::after,
body.woocommerce-checkout .cart-collaterals .shipping-calculator-button::after,
body .woocommerce-shipping-calculator .shipping-calculator-button::after { display: none; }

/* 36.8 Contul: titlurile din pagina comenzii aveau 36 px, cât titlul paginii, iar „Adresă de facturare/livrare” era subțire. */
/* Foaia WooCommerce pentru teme de blocuri (încărcată după temă) le pune 300 și mărimea „large”: `body` în față. */
body .woocommerce-order-details__title,
body.woocommerce-page .woocommerce-customer-details .woocommerce-column__title,
body.woocommerce-page .woocommerce-order .woocommerce-column__title {
	font-family: var(--pps-display); font-size: 1.5rem; font-weight: 700; line-height: 1.25; letter-spacing: -.01em; color: var(--pps-ink); margin: 32px 0 16px;
}
@media (max-width: 759px) {
	body .woocommerce-order-details__title,
	body.woocommerce-page .woocommerce-customer-details .woocommerce-column__title,
	body.woocommerce-page .woocommerce-order .woocommerce-column__title { font-size: var(--pps-fs-h2); margin: 24px 0 12px; }
}
/* Capul tabelului de comenzi: „comandă” cu literă mică, lângă „Dată”, „Stare”. */
.woocommerce-orders-table th.woocommerce-orders-table__header-order-number::first-letter { text-transform: uppercase; }
/* „Vezi comanda” e acțiune secundară și pe calculator (pe telefon era deja; pe calculator erau patru butoane roșii mari). */
.woocommerce .woocommerce-orders-table__cell-order-actions a.button.view {
	background: var(--pps-alb) !important; color: var(--pps-ink) !important; border: 1px solid var(--pps-linie);
	padding: 9px 16px; font-size: var(--pps-fs-ui, .9375rem); white-space: nowrap;
}
@media (hover: hover) { .woocommerce .woocommerce-orders-table__cell-order-actions a.button.view:hover { background: var(--pps-fundal) !important; } }

/* 36.9 (scos la 24.09) „Uncategorized” ascuns din CSS: pagina /categorii/ are acum șablonul ei (37.5), fără categoria implicită în HTML. */

/* 36.10 Umbra de derulare a filelor se vedea ca o pată gri la capătul barei, și fără nimic de derulat. */
.pps-taburi__nav {
	background:
		linear-gradient(to left, var(--pps-alb) 14px, rgba(255, 255, 255, 0)) right center / 32px 100% no-repeat local,
		radial-gradient(farthest-side at 100% 50%, rgba(12, 35, 64, .16), rgba(12, 35, 64, 0)) right center / 14px 100% no-repeat scroll;
}

/* 36.11 Varianta de pe card („2 dimensiuni 5 × 5 cm, 10 × 10 cm”) era tăiată la margine, fără puncte de suspensie. */
/* Rândul se poate rupe; al doilea rând începe după punctul separator (indentare agățată), nu sub marginea tăiată. */
.pps-card__detalii-int > .pps-card__variante { white-space: normal; padding-left: 14px; text-indent: -14px; }

/* 36.12 Pagini de conținut: introducerea stătea mai la dreapta decât restul coloanei (lățime proprie, centrată),
   iar lista de după „Metode de plată” se lipea de titlu. */
.wp-block-post-content > .pps-lead { max-width: none; }
.wp-block-post-content > h2 + .pps-lista-bifata,
.wp-block-post-content > h3 + .pps-lista-bifata { margin-block-start: var(--wp--style--block-gap, 24px); }

/* 36.13 Telefon: mărimile rămase în afara scării (19,3 / 18,4 / 17,1 / 14,7 / 14 / 13,3 px). */
@media (max-width: 759px) {
	h1.pps-gol__titlu { font-size: var(--pps-fs-h1); line-height: var(--pps-lh-titlu); }
	p.pps-gol__titlu { font-size: var(--pps-fs-h2); line-height: 1.25; }
	/* Foile de stil încărcate după temă (descrierea produsului, conținutul de încredere) au aceeași specificitate: „body” în față. */
	body .pps-product-description h3,
	body .pps-taburi__panou h3 { font-size: var(--pps-fs-accent); line-height: 1.3; }
	/* Titlurile de articol vin cu presetul fluid „md” al editorului (17,1 px, cu !important). */
	.pps-card--articol .pps-card__titlu.has-md-font-size { font-size: var(--pps-fs-accent) !important; line-height: 1.3; }
	.pps-caseta > p.has-lg-font-size { font-size: var(--pps-fs-accent) !important; }
	.woocommerce div.product p.stock.out-of-stock,
	p.stock.out-of-stock { font-size: var(--pps-fs-ui); font-weight: 600; color: var(--pps-ink); }
	body .pps-camp--acord .pps-eticheta { font-size: var(--pps-fs-detaliu); line-height: 1.45; }
	.pps-tabel td, .pps-tabel th { font-size: var(--pps-fs-ui); }
	body .pps-cert-gallery__archive > p { font-size: var(--pps-fs-detaliu); }
	.pps-compliance-note button { font-family: var(--pps-font); font-size: var(--pps-fs-ui); }
}

/* 36.14 Telefon, tastatură (WCAG 2.2, 2.4.11): barele fixe de jos (meniul de jos, bara de cumpărare, bara din coș)
   acopereau complet elementul primit prin Tab. La focus, pagina se oprește cu elementul deasupra barei.
   Ca la antet (secțiunea 20), pe elemente, nu pe pagină; elementele din bare și din foi nu primesc marginea. */
@media (max-width: 759px) {
	:where(a, button, input, select, textarea, summary, [tabindex]) { scroll-margin-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
	.pps-bara-mobil :where(a, button, input, select, textarea, summary, [tabindex]),
	.pps-bara-cumparare :where(a, button, input, select, textarea, summary, [tabindex]),
	.pps-antet-lipicios :where(a, button, input, select, textarea, summary, [tabindex]),
	.pps-meniu-mobil :where(a, button, input, select, textarea, summary, [tabindex]),
	.pps-foaie :where(a, button, input, select, textarea, summary, [tabindex]),
	.select2-container:not(.select2) :where(a, button, input, select, textarea, summary, [tabindex]) { scroll-margin-bottom: 0; }
	/* QA 24.09: caseta selectWoo din pagină (Județ, Țară, filtre) are clasa „select2” și primește marginea ca orice câmp;
	   fără ea, la Tab rămânea sub bara de cumpărare de la finalizare. Numai lista deschisă (fără „select2”) e scutită. */
	/* În listări, sub antet stă și rândul lipicios „Filtrează · Sortează” (57 px): focusul urcat nu intră sub el. */
	html.pps-filtre-js .pps-lista-produse :where(a, button, input, select, textarea, summary, [tabindex]) { scroll-margin-top: calc(var(--pps-antet-real, 119px) + 57px + 16px); }
}

/* 36.15 Pagina unei comenzi: „Comandă din nou” apărea de două ori (rândul „Acțiuni” din tabel și butonul de sub el),
   iar în tabel, pe telefon, butonul rupt pe două rânduri își tăia fundalul roșu. Rândul dispare când singura lui acțiune
   e repetarea (rămâne butonul de sub tabel); celelalte acțiuni din rând (plată, anulare) devin butoane întregi. */
.woocommerce-table--order-details tfoot tr:has(.order-actions-button.pps-din-nou):not(:has(.order-actions-button:not(.pps-din-nou))) { display: none; }
.woocommerce-table--order-details .order-actions-button {
	display: inline-flex; align-items: center; justify-content: center; text-align: center; white-space: normal;
	padding: 8px 14px; font-size: var(--pps-fs-ui, .9375rem); line-height: 1.25; margin: 2px 6px 2px 0;
}

/* 36.16 Legătura WhatsApp din bara roșie de pe telefon avea 12 × 12 px (WCAG 2.2, 2.5.8: minimum 24 px). */
@media (max-width: 759px) {
	.pps-bara-utilitate__wa { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; min-height: 24px; margin: -6px -6px -6px 0; }
}

/* 36.17 Cu „reduce motion”, pastila „Produs salvat în Lista mea” sărea direct la cadrul final (invizibil).
   Fără animație: apare, iar app.js o ascunde după 2,8 s. */
@media (prefers-reduced-motion: reduce) {
	.pps-card__media .pps-lista-feedback.pps-toast { animation: none !important; opacity: 1; }
}

/* ═══════════════════════════════════════════════════════════════════
   37. Runda „vitrina” (24.09.2026). Raport: build/runda-design-2026-09-24/vitrina/RAPORT.md
   Propunerile P7–P20 din build/design-qa-2026-09-24/RAPORT.md care țin de vitrină, plus marginile câmpurilor.
   Niciun stil nou: aceleași variabile --pps-*, aceeași scară tipografică și de spațiere, aplicate consecvent.
   Hover-ul (P20) și marginile câmpurilor sunt schimbate la locul lor, în secțiunile de mai sus.
   ═══════════════════════════════════════════════════════════════════ */

/* 37.1 (P7) Densitatea pe calculator. Pe telefon ritmul era deja 24/48; pe calculator era de broșură:
   72 sus + 24 margine de bloc + 72 jos = 168 px între secțiunile primei pagini, 32 px de la titlu la conținut.
   Acum 64–80 px între secțiuni (32–40 sus și jos) și 24 px de la titlu la conținut. */
:root { --pps-sp-sectiune-d: clamp(2rem, 3.2vw, 2.5rem); } /* 32 la 1000 px, 40 de la 1250 px */
@media (min-width: 760px) {
	.pps-section { padding-block: var(--pps-sp-sectiune-d); }
	.pps-section--stramt { padding-block: var(--wp--preset--spacing--40, 1.5rem); }
	.pps-section--fara-sus { padding-top: 0; }
	.pps-section--fara-jos { padding-bottom: 0; }
	.pps-antet-sectiune { margin-bottom: var(--wp--preset--spacing--40, 1.5rem); }
	/* Caseta de cumpărare de pe fișă: 16 px între elemente (erau 40–53 din marginile proprii adunate cu gap-ul). */
	.pps-produs__sus .pps-produs__cumpara > * { margin-block: 0; }
	.pps-produs__cumpara > .wp-block-add-to-cart-form,
	.pps-produs__cumpara > .pps-produs__livrare { margin-top: 8px; }
	.pps-produs__jos { margin-top: 40px; }
}
/* Secțiunile primei pagini nu mai primesc și marginea de 24 px dintre blocuri (pe telefon era deja așa). */
.pps-home-section + .pps-home-section,
.pps-banda + .pps-home-section,
main > .pps-home-section { margin-block-start: 0; }
/* Butonul de sub conținutul unei secțiuni („Vezi toate …”): centrat, 24 px (era 32 în stil inline, în patru locuri). */
.pps-sectiune__actiune { justify-content: center; margin: var(--wp--preset--spacing--40, 1.5rem) 0 0; }

/* 37.2 (P8) Coșul. */
/* Eticheta de TVA de lângă fiecare preț (coș și sumarul finalizării): „cu TVA” pentru persoane fizice, „fără TVA” pentru firme. */
.pps-tva { font-family: var(--pps-font); font-size: var(--pps-fs-detaliu, .8125rem); font-weight: 400; color: var(--pps-text); white-space: nowrap; }
/* Cuponul: o legătură care deschide câmpul, cu buton secundar (era buton roșu plin, cât butonul principal). */
.pps-cupon > summary {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; list-style: none;
	color: var(--pps-ink); font-size: var(--pps-fs-ui, .9375rem); font-weight: 600;
	text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--pps-linie-camp);
}
.pps-cupon > summary::-webkit-details-marker { display: none; }
.pps-cupon > summary::after {
	content: ""; width: 7px; height: 7px; margin-top: -4px;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg);
}
.pps-cupon[open] > summary::after { margin-top: 4px; transform: rotate(-135deg); }
.woocommerce table.shop_table.pps-cos td.actions { text-align: left !important; }
.pps-cupon .coupon { display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px; padding: 4px 0 8px; }
.woocommerce .pps-cupon .coupon input.input-text { flex: 1 1 180px; max-width: 280px; min-width: 0; }
.woocommerce button.button.pps-cupon__buton,
.woocommerce .pps-cupon button.button {
	background: var(--pps-alb) !important; color: var(--pps-ink) !important;
	border: 1px solid var(--pps-linie) !important; min-height: 44px;
}
@media (hover: hover) {
	.woocommerce button.button.pps-cupon__buton:hover,
	.woocommerce .pps-cupon button.button:hover { background: var(--pps-pal) !important; color: var(--pps-ink) !important; }
}
@media (max-width: 759px) {
	/* Rândul cuponului nu mai e un card cu margine: e doar legătura (și câmpul, după deschidere). */
	.woocommerce table.shop_table.pps-cos tr.pps-cos__actiuni td.actions { padding: 0 4px; border: 0; background: none; }
	.pps-cos__actiuni .pps-cupon .coupon { margin-bottom: 0; }
	.woocommerce .pps-cupon .coupon input.input-text { max-width: none; }
}
/* Pe calculator: produsele în stânga, totalurile și „Finalizează comanda” în dreapta, lipite la derulare
   (înainte coșul ocupa 1032 din 1216 px, cu totalurile sub tabel). Doar când coșul are produse. */
@media (min-width: 1000px) {
	.woocommerce-cart main .woocommerce:has(> .cart-collaterals) {
		max-width: none; display: grid; grid-template-columns: minmax(0, 1fr) 380px;
		grid-template-rows: repeat(6, auto) 1fr; column-gap: 32px; align-items: start;
	}
	.woocommerce-cart main .woocommerce:has(> .cart-collaterals) > * { grid-column: 1; min-width: 0; }
	.woocommerce-cart main .woocommerce:has(> .cart-collaterals) > .cart-collaterals {
		grid-column: 2; grid-row: 1 / -1; position: sticky; top: calc(var(--pps-antet-real, 130px) + 16px);
	}
	.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: 100%; }
	.woocommerce-cart .cart-collaterals .cart_totals > h2 { margin-top: 0; }
}

/* 37.3 (P9) Finalizarea. */
/* Pașii: pe telefon un singur rând (se rupeau pe două); cifrele, cu eticheta doar la pasul curent.
   Etichetele celorlalți pași rămân pentru cititoarele de ecran. */
@media (max-width: 759px) {
	.pps-pasi { flex-wrap: nowrap; align-items: center; gap: 8px; }
	.pps-pasi__pas { flex: none; gap: 8px; }
	.pps-pasi__pas + .pps-pasi__pas::before { content: ""; width: 20px; height: 1px; background: var(--pps-linie-camp); }
	.pps-pasi__pas:not(.pps-pasi__pas--activ) .pps-pasi__text {
		position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
	}
}
/* Autentificarea și cuponul: un rând cu două legături, în locul celor două casete de informare pe toată lățimea. */
.pps-finalizare-optiuni {
	display: flex; flex-wrap: wrap; align-items: center; gap: 4px 24px; margin: 0 0 var(--wp--preset--spacing--40, 1.5rem);
	font-size: var(--pps-fs-ui, .9375rem); line-height: var(--pps-lh-text, 1.5); color: var(--pps-text);
}
.pps-finalizare-optiuni p { margin: 0; }
@media (max-width: 759px) { .pps-finalizare-optiuni { margin-bottom: 8px; } }
.pps-finalizare-optiuni a { color: var(--pps-rosu-inchis); font-weight: 600; text-underline-offset: 3px; }
.woocommerce form.checkout_coupon,
.woocommerce form.woocommerce-form-login {
	margin: 0 0 var(--wp--preset--spacing--40, 1.5rem); padding: 16px;
	border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-card); background: var(--pps-alb);
}

/* 37.4 (P10) Prima pagină: un singur model de antet de secțiune (supratitlu, titlu și text centrate; butonul sub conținut).
   Certificatele (templates: patterns/certificari.php) îl folosesc acum și ele. „Cont de firmă”: coloanele 7/5
   (coloana stângă era pe jumătate goală, iar tabelul „Reguli de comandă” înghesuit în 280 px). */
#pps-section-certificari .pps-cert-gallery > .pps-nota { margin: 12px 0 0; text-align: center; }
@media (min-width: 900px) {
	.pps-split--cta { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; }
}

/* 37.5 (P14) „Toate categoriile”: grilă cu iconițele din meniu, numărul de produse și subcategoriile
   (era o listă de legături subliniate, cu „Uncategorized” ascuns doar din CSS). Coloane de ziar: cardurile au
   înălțimi foarte diferite (0–16 subcategorii), așa că nu rămân goluri mari sub cele scurte. */
.pps-categorii-grila { columns: 3 300px; column-gap: 24px; }
.pps-categorii-grila__card {
	break-inside: avoid; display: flex; flex-direction: column; gap: 12px; margin: 0 0 24px; padding: 20px;
	background: var(--pps-alb); border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-card);
}
.pps-categorii-grila__cap { display: flex; align-items: center; gap: 12px; color: var(--pps-ink); text-decoration: none; }
.pps-categorii-grila__cap img { width: 40px; height: 40px; flex: none; }
.pps-categorii-grila__cap > span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pps-categorii-grila__nume { font-family: var(--pps-display); font-size: var(--pps-fs-accent, 1.125rem); font-weight: 700; line-height: 1.25; }
.pps-categorii-grila__numar { font-size: var(--pps-fs-detaliu, .8125rem); color: var(--pps-text); }
.pps-categorii-grila__sub { list-style: none; margin: 0; padding: 12px 0 0; border-top: 1px solid var(--pps-linie); columns: 2; column-gap: 16px; }
.pps-categorii-grila__sub li { break-inside: avoid; }
.pps-categorii-grila__sub a {
	display: flex; align-items: center; min-height: 32px; padding: 4px 0;
	color: var(--pps-ink); font-size: var(--pps-fs-ui, .9375rem); line-height: var(--pps-lh-ui, 1.35); text-decoration: none;
}
@media (hover: hover) {
	.pps-categorii-grila__cap:hover .pps-categorii-grila__nume,
	.pps-categorii-grila__sub a:hover { color: var(--pps-rosu-inchis); text-decoration: underline; }
}
@media (max-width: 759px) {
	.pps-categorii-grila { columns: 1; }
	.pps-categorii-grila__card { margin-bottom: 12px; padding: 16px; }
}

/* 37.6 (P15) Stările goale utile: coșul gol și căutarea fără rezultate (pagina și panoul din antet). */
.pps-gol--sugestii { gap: 16px; padding: 40px 24px; }
h2.pps-gol__titlu { font-size: var(--wp--preset--font-size--lg, 1.375rem); line-height: 1.25; }
.pps-gol__actiuni { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.pps-gol .pps-btn .pps-ico, .pps-gol__toate .pps-ico { font-size: 18px; color: currentColor; }
.pps-gol__subtitlu {
	margin: 8px 0 0 !important; font-size: var(--pps-fs-eticheta, .75rem); font-weight: 700; letter-spacing: .06em;
	text-transform: uppercase; color: var(--pps-ink) !important;
}
.pps-gol__categorii { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-width: 760px; }
.pps-gol__categorii a {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 14px 6px 8px;
	border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-pila); background: var(--pps-alb);
	color: var(--pps-ink); font-size: var(--pps-fs-ui, .9375rem); font-weight: 600; line-height: 1.2; text-decoration: none;
}
.pps-gol__categorii img { width: 28px; height: 28px; flex: none; }
.pps-gol__toate a, .pps-gol__nota a { color: var(--pps-rosu-inchis); font-weight: 600; }
.pps-gol__toate a { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; }
.pps-gol .pps-gol__nota { font-size: var(--pps-fs-ui, .9375rem); max-width: 60ch; }
@media (hover: hover) {
	.pps-gol__categorii a:hover { border-color: var(--pps-pal); background: var(--pps-fundal); }
}
@media (max-width: 759px) {
	.pps-gol--sugestii { padding: 24px 16px; text-align: left; align-items: stretch; }
	.pps-gol--sugestii p { max-width: none; }
	.pps-gol__actiuni { flex-direction: column; align-items: stretch; }
	/* Categoriile, pe două coloane: pastilele late (până la 240 px) stăteau câte una pe rând. */
	.pps-gol__categorii { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pps-gol__categorii a { width: 100%; min-height: 48px; padding: 6px 10px 6px 6px; border-radius: var(--pps-raza-mic); }
	h2.pps-gol__titlu { font-size: var(--pps-fs-h2); }
}
/* Panoul căutării fără rezultate: „Comandă rapidă după cod” și „Cere produsul la comandă”, ca rânduri cu iconiță. */
.pps-sug--iesire .pps-ico { font-size: 18px; color: var(--pps-rosu-inchis); flex: none; }
/* Termenii din „Încearcă”, și în lista de sub câmp de pe calculator (pe telefon îi stilează 32.x, pe tot ecranul). */
@media (min-width: 760px) {
	.pps-cautare__sugestii { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 8px 8px; }
	.pps-cautare__sugestie {
		min-height: 32px; padding: 4px 12px; border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-pila);
		background: var(--pps-fundal); color: var(--pps-ink); cursor: pointer;
		font-family: var(--pps-font); font-size: var(--pps-fs-ui, .9375rem); font-weight: 600; line-height: 1.2;
	}
	@media (hover: hover) { .pps-cautare__sugestie:hover { background: var(--pps-pal); } }
}

/* 37.7 (P16) Mega-meniul: categoriile fără subcategorii arată până la 4 produse (panoul din mijloc era gol, cu o frază). */
.pps-mega__produse { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; max-width: 640px; }
.pps-mega__produse a {
	display: flex; align-items: center; gap: 12px; padding: 8px; min-height: 72px;
	background: var(--pps-alb); border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-mic);
	color: var(--pps-ink); font-size: var(--pps-fs-ui, .9375rem); font-weight: 600; line-height: 1.3; text-decoration: none;
}
.pps-mega__produse img { width: 56px; height: 56px; flex: none; object-fit: contain; background: var(--pps-fundal); border-radius: var(--pps-raza-mic); }
.pps-mega__produse span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (hover: hover) {
	.pps-mega__produse a:hover { border-color: var(--pps-pal); box-shadow: var(--pps-umbra-card); color: var(--pps-rosu-inchis); }
}

/* 37.8 (P17) Cardurile pe telefon. */
/* Prețul „de la”: cuvintele mici, ca „cu TVA”, suma întreagă pe rândul ei (inc/vitrina.php pune `.pps-pret__de-la`). */
.pps-pret__de-la { font-family: var(--pps-font); font-size: var(--pps-fs-detaliu, .8125rem); font-weight: 400; color: var(--pps-text); letter-spacing: 0; }
@container ppscard (max-width: 220px) {
	.pps-card--produs .pps-pret__principal { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 4px; }
	.pps-card--produs .pps-pret__principal small { white-space: nowrap; }
	.pps-card--produs .pps-pret__de-la { flex-basis: 100%; line-height: 1.2; }
	/* Stocul și livrarea pe un rând: „În stoc · 24–48h”; „Livrare în” rămâne pentru cititoarele de ecran (cere markupul din inc/produse.php). */
	.pps-card__stare { column-gap: 8px; }
	.pps-card__stare .pps-livrare-scurt__et {
		position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
	}
}
/* Articolele pe telefon: un card pe rând, cu poza la stânga (erau două coloane de 165 px, „Citește articolul” rupt,
   al treilea card singur pe rând). */
@media (max-width: 759px) {
	.pps-grid:has(.pps-card--articol) { grid-template-columns: minmax(0, 1fr); }
	.pps-card--articol { flex-direction: row; }
	.pps-card--articol .pps-card__media { flex: 0 0 112px; aspect-ratio: auto; min-height: 112px; }
	.pps-card--articol .pps-card__corp { padding: 12px 14px; gap: 4px; }
	.pps-card--articol .pps-card__text { display: none; }
	.pps-card--articol .pps-card__subsol { padding-top: 4px; }
	.pps-card--articol .pps-card__subsol .pps-btn--link { padding: 4px 0; justify-content: flex-start; }
	/* Insignele de pe poza cardului nu mai intră sub iconița listei (la 393 px „Direct importator” era tăiat). */
	.pps-card--produs .pps-badge-stiva { right: 52px; }
	.pps-card--produs .pps-badge-stiva .pps-badge { max-width: 100%; white-space: normal; line-height: 1.2; }
}

/* 37.9 (P19) Subsolul: aceeași distanță între toate legăturile unei coloane (legăturile adăugate de module
   după meniu, „Toate categoriile” și „Setări cookies” aveau 41–123 px, față de 32 între celelalte). */
.pps-subsol__grila > div + div { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.pps-subsol__grila > div + div > * { margin: 0; }
.pps-subsol__grila > div + div > .pps-subsol__titlu { margin-bottom: 5px; }
.pps-subsol__grila > div + div > .pps-subsol__insigne { margin-top: 7px; }
.pps-subsol__extra a, .pps-subsol__grila p > a { display: inline-block; }

/* 37.10 Câmpurile de formular: marginea la cel puțin 3:1 față de fundal (WCAG 1.4.11, era 1,29:1).
   Variabila --pps-linie-camp (secțiunea 0) e pusă la locul ei pe câmpurile temei; aici rămân câmpurile altor module
   (select2, filtre, formulare) și stările de focus și de eroare. */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple,
.woocommerce form .form-row .select2-container--default .select2-selection--single { border-color: var(--pps-linie-camp); }
input.pps-input, select.pps-select, textarea.pps-textarea,
.pps-filtre-form input:not([type="checkbox"]):not([type="radio"]),
.pps-filtre-form select,
.woocommerce form.checkout_coupon input.input-text,
.woocommerce form.woocommerce-form-login input.input-text { border-color: var(--pps-linie-camp); }
/* Filtrele (select2 din mu-plugins/pps-commerce/commerce.css, #d8e2ef) și câmpul de căutare din lista select2 (#b9c7d8). */
body .pps-filtre-form .select2-container .select2-selection.select2-selection--single,
body .select2-container.select2-container--open .select2-search--dropdown .select2-search__field { border-color: var(--pps-linie-camp); }
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce .quantity input.qty:focus,
.select2-container--open .select2-selection { border-color: var(--pps-ink); }
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select,
.woocommerce form .form-row.woocommerce-invalid .select2-selection,
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: var(--pps-rosu-inchis); }

/* ═══════════════════════════════════════════════════════════════════
   38. Navigarea: feedback la atingere și schelete în pagină (25.09.2026, runda „navigare-instant”; runda v2:
   build/navigare-instant-2026-09-25/v2/IMPLEMENTARE.md). Scriptul: assets/js/navigare.js; cardul-schelet: inc/navigare.php.
   Runda v2: fără strat peste pagină și fără tranziție între documente; pagina veche rămâne vizibilă și derulabilă până vine
   cea nouă, iar scheletele stau doar în zonele care se încarcă singure (grila listelor).
   Regula de mișcare: tot ce e aici schimbă doar culori și opacitate, deci merge și cu „reduce motion” (Radu îl are pornit);
   singura mișcare în spațiu (bara de progres care crește) e doar fără „reduce motion”.
   ═══════════════════════════════════════════════════════════════════ */

:root {
	--pps-os-culoare: #e1e7ef;   /* barele: mai deschise decât linia (#dce3ec), ca să nu pară conținut */
	--pps-os-media: #eaeff5;     /* locul pozelor și al câmpurilor */
	--pps-apasat: #e3eaf3;       /* fundalul unui rând sau tab apăsat */
}

/* 38.1 Feedback la atingere, din primul cadru, fără JavaScript (`:active`) și păstrat până pleacă pagina (`.pps-atins`,
   pus de navigare.js). Pe telefon, scalarea din 21.9 rămâne doar fără „reduce motion”; conturul și culoarea, mereu. */
.pps-card--hover:active, a.pps-card:active, .pps-card.pps-atins {
	border-color: var(--pps-ink); box-shadow: 0 0 0 1px var(--pps-ink);
}
.pps-card--hover:active .pps-card__media, .pps-card.pps-atins .pps-card__media { background: var(--pps-pal); }
.pps-card--hover:active .pps-card__media img, .pps-card.pps-atins .pps-card__media img { opacity: .82; }
.pps-card.pps-atins .pps-card__titlu a { color: var(--pps-rosu-inchis); }
/* Butoanele: culoarea „apăsat” a fiecărui tip (până acum doar hover, invizibil pe telefon). */
.pps-btn--primar:active, .pps-btn--primar.pps-atins { background: var(--pps-rosu-inchis); border-color: var(--pps-rosu-inchis); color: #fff; }
.pps-btn--secundar:active, .pps-btn--secundar.pps-atins { background: var(--pps-apasat); border-color: #b8c6d6; color: var(--pps-ink); }
.pps-btn--ink:active, .pps-btn--ink.pps-atins { background: #17395f; }
.pps-btn--fantoma:active, .pps-btn--fantoma.pps-atins { background: var(--pps-rosu-pal); }
/* Rândurile de meniu (telefon și mega-meniu), sugestiile de căutare, filele contului, paginarea, firul de navigare. */
.pps-meniu-mobil details a:active, .pps-meniu-mobil details a.pps-atins,
.pps-meniu-mobil__linkuri a:active, .pps-meniu-mobil__linkuri a.pps-atins,
.pps-meniu-mobil summary:active,
.pps-mega__cat:active, .pps-mega__cat.pps-atins,
.pps-mega__sub a:active, .pps-mega__sub a.pps-atins,
.pps-nav__lista a:active, .pps-nav__lista a.pps-atins,
.pps-sug:active, .pps-sug.pps-atins,
.pps-foaie__optiune label:active,
.woocommerce-MyAccount-navigation a:active, .woocommerce-MyAccount-navigation a.pps-atins { background: var(--pps-apasat); color: var(--pps-rosu-inchis); }
.pps-meniu-mobil__scurtatura.pps-atins, .pps-mega__nevoi a:active, .pps-mega__nevoi a.pps-atins { background: var(--pps-apasat); border-color: #b8c6d6; }
.wp-block-query-pagination a.page-numbers:active, .wp-block-query-pagination a.page-numbers.pps-atins,
.wp-block-query-pagination a:active, .wp-block-query-pagination a.pps-atins { background: var(--pps-apasat); border-color: var(--pps-ink); }
.pps-pastila.pps-atins { background: var(--pps-pal); }
.pps-breadcrumb a:active, .pps-breadcrumb a.pps-atins { color: var(--pps-rosu-inchis); text-decoration: underline; }
/* Subsolul e bleumarin: legătura apăsată rămâne albă, subliniată (roșul închis pe bleumarin avea contrast 1,9:1; runda v3). */
.pps-subsol a:active, .pps-subsol a.pps-atins { color: #fff; text-decoration: underline; }
.pps-categorii-grila__cap:active, .pps-categorii-grila__cap.pps-atins { color: var(--pps-rosu-inchis); }
.pps-categorii-grila__card:has(.pps-atins, :active) { border-color: var(--pps-ink); }
/* Bara de jos: tabul atins se colorează imediat; `aria-current` trece pe destinație din același cadru (navigare.js). */
.pps-bara-mobil a, .pps-bara-mobil button { border-radius: var(--pps-raza-card); }
.pps-bara-mobil a:active, .pps-bara-mobil button:active, .pps-bara-mobil a.pps-atins { background: var(--pps-fundal); color: var(--pps-rosu-inchis); }
.pps-bara-mobil a:active .pps-ico, .pps-bara-mobil button:active .pps-ico, .pps-bara-mobil a.pps-atins .pps-ico { color: var(--pps-rosu); }

/* 38.2 Butoanele care trimit o cerere: cerc de progres în buton din primul cadru, lățimea butonului păstrată
   (textul devine transparent, cercul stă peste el). Fără „reduce motion” cercul se rotește; cu el, pulsează încet. */
.pps-btn.pps-btn--ocupat, .pps-btn.add_to_cart_button.loading, .single_add_to_cart_button.pps-se-adauga,
.pps-sug__adauga[aria-busy="true"], .pps-filtre-form[aria-busy="true"] .pps-filtre-actions .pps-btn,
.pps-foaie__aplica[aria-busy="true"] {
	position: relative; color: transparent !important; pointer-events: none; opacity: 1;
}
.pps-btn.pps-btn--ocupat > *, .pps-btn.add_to_cart_button.loading > *, .single_add_to_cart_button.pps-se-adauga > *,
.pps-sug__adauga[aria-busy="true"] > *, .pps-filtre-form[aria-busy="true"] .pps-filtre-actions .pps-btn > *, .pps-foaie__aplica[aria-busy="true"] > * { visibility: hidden; }
.pps-btn.pps-btn--ocupat::after, .pps-btn.add_to_cart_button.loading::after, .single_add_to_cart_button.pps-se-adauga::after,
.pps-sug__adauga[aria-busy="true"]::after, .pps-filtre-form[aria-busy="true"] .pps-filtre-actions .pps-btn::after, .pps-foaie__aplica[aria-busy="true"]::after {
	content: ""; position: absolute; left: 50%; top: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px;
	border-radius: 50%; border: 2px solid currentColor; border-color: #fff #fff rgba(255, 255, 255, .35) rgba(255, 255, 255, .35);
	animation: pps-rotire .7s linear infinite;
}
.pps-btn--secundar.pps-btn--ocupat::after, .pps-sug__adauga[aria-busy="true"]::after { border-color: var(--pps-ink) var(--pps-ink) rgba(12, 35, 64, .25) rgba(12, 35, 64, .25); }
@keyframes pps-rotire { to { transform: rotate(360deg); } }
@keyframes pps-os-puls { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }

/* Barele de schelet (un rând de text al elementului real) și câmpurile-schelet. */
.pps-os {
	display: inline-block; vertical-align: middle; width: var(--l, 60%); max-width: 100%; height: .62em; min-height: 8px;
	border-radius: 4px; background: var(--pps-os-culoare); animation: pps-os-puls 1.8s ease-in-out infinite;
}
.pps-os-input, .pps-os-input:disabled { background: var(--pps-os-media) !important; border-color: transparent !important; color: transparent !important; box-shadow: none !important; opacity: 1 !important; animation: pps-os-puls 1.8s ease-in-out infinite; pointer-events: none; }
.pps-os-input > * { visibility: hidden; }
.pps-os-firma { display: none; }
html.pps-firma .pps-os-firma { display: block; width: max-content; background: none; }
.pps-card--schelet .pps-card__media { background: var(--pps-os-media); animation: pps-os-puls 1.8s ease-in-out infinite; }
/* Cardul-schelet al listelor (inc/navigare.php): o bară care ține locul unui rând întreg într-un container flex (stocul,
   prețul, codul), cu înălțimea rândului real; rândurile care există doar pe telefon (unitatea pe 2 rânduri). */
.pps-os--rand { display: block; margin-block: calc((1lh - max(.62em, 8px)) / 2); }
.pps-card--schelet { border-color: var(--pps-linie); }
.pps-card--schelet .pps-stoc::before { background: var(--pps-os-media); }
@media (min-width: 760px) { .pps-card--schelet .pps-os-mobil { display: none; } }
.pps-antet__contor.pps-contor--asteapta { animation: pps-os-puls 1s ease-in-out infinite; }

/* 38.3 Bara de progres, sub antetul pe care îl vede clientul. Crește încet spre 85% cât așteaptă. */
.pps-nav-progres {
	position: fixed; left: 0; right: 0; height: 3px; z-index: 96; pointer-events: none;
	background: var(--pps-rosu); transform-origin: 0 50%; transform: scaleX(.06);
	transition: transform 4s cubic-bezier(.08, .7, .3, 1);
}
.pps-nav-progres--merge { transform: scaleX(.85); }
/* Căutarea pe tot ecranul stă peste antet (z-index 97): bara trece deasupra ei. */
html.pps-cautare-deschisa .pps-nav-progres { z-index: 98; }

/* Mesajul după 5 s fără pagină nouă, deasupra barei de jos. Mic și fix, nu acoperă pagina. */
.pps-nav-lent {
	position: fixed; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 99;
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; width: min(calc(100% - 32px), 520px); box-sizing: border-box;
	padding: 12px 16px; border-radius: var(--pps-raza-card); background: var(--pps-alb); border: 1px solid var(--pps-linie);
	box-shadow: 0 8px 24px rgba(12, 35, 64, .16); font-size: var(--pps-fs-ui, .9375rem); color: var(--pps-ink);
}
.pps-nav-lent p { flex: 1 1 100%; margin: 0; }
@media (max-width: 759px) { .pps-nav-lent { bottom: calc(81px + env(safe-area-inset-bottom, 0px)); } }

@media (prefers-reduced-motion: reduce) {
	.pps-os, .pps-os-input, .pps-card--schelet .pps-card__media { animation: pps-os-puls 2.4s ease-in-out infinite !important; }
	.pps-antet__contor.pps-contor--asteapta { animation: pps-os-puls 1.6s ease-in-out infinite !important; }
	.pps-nav-progres, .pps-nav-progres--merge { transform: none; transition: none !important; animation: pps-os-puls 2.4s ease-in-out infinite !important; }
	.pps-btn.pps-btn--ocupat::after, .pps-btn.add_to_cart_button.loading::after, .single_add_to_cart_button.pps-se-adauga::after,
	.pps-sug__adauga[aria-busy="true"]::after, .pps-filtre-form[aria-busy="true"] .pps-filtre-actions .pps-btn::after, .pps-foaie__aplica[aria-busy="true"]::after {
		animation: pps-os-puls 1.6s ease-in-out infinite !important; border-color: #fff;
	}
	.pps-btn--secundar.pps-btn--ocupat::after, .pps-sug__adauga[aria-busy="true"]::after { border-color: var(--pps-ink); }
}

/* 38.4 Runda v2: tranziția între documente (View Transitions) a ieșit odată cu stratul de schelet. Estompa scheletul peste
   pagina reală, iar la administrator lăsa 1-3 cadre albe (bara de administrare nu intra în captură). Pagina nouă apare
   direct, la prima ei afișare. */

/* Ținta „Deschide cont de firmă” (/contul-meu/#inregistrare): ancora e în formular, sub titlul „Înregistrare”; lăsăm și titlul la vedere. */
#inregistrare { display: block; scroll-margin-top: calc(var(--pps-antet-real, 130px) + 96px); }

/* ═══════════════════════════════════════════════════════════════════
   39. Runda v2, reparații 1 (25.09.2026; raportul build/navigare-instant-2026-09-25/v2/reparari-runda-1.md)
   ═══════════════════════════════════════════════════════════════════ */

/* 39.1 Tot cardul de produs deschide fișa (ER-07). Legătura titlului se întinde peste corpul cardului (stoc, preț, unitate,
   cod, spațiul liber), deci clicul nu mai cade în gol și starea apăsată apare pe tot cardul; formularul de cumpărare
   (cantitate, „Adaugă în coș”, „Alege varianta”) rămâne deasupra ei. Poza are legătura ei, iar insignele de pe poză lasă
   atingerea să treacă la ea (CLIC-01). */
.pps-card--produs .pps-card__corp { position: relative; }
.pps-card--produs .pps-card__titlu a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pps-card--produs .pps-card__subsol { position: relative; z-index: 2; }
.pps-badge-stiva { pointer-events: none; }

/* 39.2 Sesiunea s-a schimbat cât pagina stătea în bfcache (autentificare, delogare; MP-01): navigare.js ascunde conținutul
   în același cadru și ia pagina din nou de la server. Rămân antetul și bara de progres; niciun preț vechi nu se vede. */
.pps-stare-schimbata main, .pps-stare-schimbata .pps-bara-cumparare { visibility: hidden; }

/* 39.3 Rândul de căutare din antet are aceeași înălțime cu fontul de rezervă și cu Source Sans 3 (CLS-03): câmpul avea
   44 px până sosea fontul și 48 px după, iar pe telefon toată pagina cobora 4 px la prima vizită. */
.pps-cautare__form .pps-cautare__input { height: 48px; box-sizing: border-box; }

/* 39.4 Fonturile de rezervă au metricile fonturilor web (CLS-03, ER-06): până sosesc Source Sans 3 și Archivo, textul se
   așază cu Arial redimensionat (lățimea medie și înălțimea rândului măsurate în Chrome, tools/font-metrici.mjs), deci
   schimbarea fontului nu mai rupe rânduri și nu mai mută pagina. Unde Arial lipsește (Android), rămâne fontul sistemului. */
@font-face { font-family: "Source Sans 3 Rezerva"; font-weight: 100 500; src: local("Arial"), local("ArialMT"); size-adjust: 92.5%; ascent-override: 110.7%; descent-override: 43.2%; line-gap-override: 0%; }
@font-face { font-family: "Source Sans 3 Rezerva"; font-weight: 600 900; src: local("Arial Bold"), local("Arial-BoldMT"); size-adjust: 91%; ascent-override: 112.5%; descent-override: 44%; line-gap-override: 0%; }
@font-face { font-family: "Archivo Rezerva"; font-weight: 100 500; src: local("Arial"), local("ArialMT"); size-adjust: 98%; ascent-override: 89.6%; descent-override: 21.4%; line-gap-override: 0%; }
@font-face { font-family: "Archivo Rezerva"; font-weight: 600 900; src: local("Arial Bold"), local("Arial-BoldMT"); size-adjust: 97%; ascent-override: 90.5%; descent-override: 21.6%; line-gap-override: 0%; }
/* Android nu are Arial: acolo rezerva e Roboto, cu aceleași ținte (Roboto e cu ~0,8% mai lat decât Arial, în medie). */
@font-face { font-family: "Source Sans 3 Rezerva R"; font-weight: 100 500; src: local("Roboto"), local("Roboto-Regular"), local("Roboto Regular"); size-adjust: 91.8%; ascent-override: 111.5%; descent-override: 43.6%; line-gap-override: 0%; }
@font-face { font-family: "Source Sans 3 Rezerva R"; font-weight: 600 900; src: local("Roboto Bold"), local("Roboto-Bold"); size-adjust: 90.3%; ascent-override: 113.4%; descent-override: 44.3%; line-gap-override: 0%; }
@font-face { font-family: "Archivo Rezerva R"; font-weight: 100 500; src: local("Roboto"), local("Roboto-Regular"), local("Roboto Regular"); size-adjust: 97.2%; ascent-override: 90.3%; descent-override: 21.6%; line-gap-override: 0%; }
@font-face { font-family: "Archivo Rezerva R"; font-weight: 600 900; src: local("Roboto Bold"), local("Roboto-Bold"); size-adjust: 96.2%; ascent-override: 91.3%; descent-override: 21.8%; line-gap-override: 0%; }

/* 39.5 Zoom 200-400 % pe calculator și telefonul culcat (fereastra sub 500 px înălțime; BA-03): bara de jos acoperea
   câmpul care primea focusul, iar cu antetul lipicios ocupa jumătate din ecran. Acolo nu se mai afișează; aceleași
   legături sunt în antet (meniul, contul, coșul). */
@media (max-width: 759px) and (max-height: 500px) {
	.pps-bara-mobil { display: none !important; }
	body { padding-bottom: env(safe-area-inset-bottom, 0px); }
	.pps-nav-lent { bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
	/* Marginea de jos de la focus (secțiunea 36, 88 px) rămâne: pe fișă o folosește bara de cumpărare. */
}

/* 39.6 Antetul lipicios cu „reduce motion” (ER-04, WebKit și Firefox): regula generală din secțiunea 20 dă tuturor
   proprietăților o tranziție de .001 ms, iar acolo înălțimea antetului compact se schimba abia în cadrul următor, deci
   distanțierul din app.js măsura 0 și conținutul urca 14 px. Antetul nu are tranziții de păstrat (umbra e deja oprită). */
@media (prefers-reduced-motion: reduce) {
	.pps-antet-lipicios, .pps-antet-lipicios * { transition-property: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   40. Runda v2, reparații 2 (25.09.2026; raportul build/navigare-instant-2026-09-25/v2/reparari-runda-2.md)
   ═══════════════════════════════════════════════════════════════════ */

/* 40.1 Bara de progres stă în antetul lipicios, lipită de marginea lui de jos (ER2-03): omul derulează cât așteaptă, antetul
   se compactează sau bara roșie de sus iese din ecran, iar bara îl urmează; înainte rămânea o linie roșie peste carduri. */
.pps-nav-progres.pps-nav-progres--antet { position: absolute; top: calc(100% + 1px); z-index: 2; }

/* 40.2 Pagina se reîncarcă pentru că sesiunea s-a schimbat (MP-01, MP2-05, BA2-03): conținutul vechi rămâne ascuns, iar
   până vine pagina nouă se văd antetul, bara de progres și un rând scurt, fără JavaScript (Firefox arăta 2 s doar antetul,
   iar Chrome ținea pe ecran ultima imagine a paginii anterioare). Bara din CSS lipsește când navigare.js a pus-o pe a lui. */
html.pps-stare-schimbata .pps-antet-lipicios:not(:has(> .pps-nav-progres))::after {
	content: ""; position: absolute; left: 0; right: 0; top: calc(100% + 1px); height: 3px; z-index: 2; pointer-events: none;
	background: var(--pps-rosu); transform-origin: 0 50%; transform: scaleX(.6); animation: pps-os-puls 1.6s ease-in-out infinite;
}
/* Documentul vechi din cache poate avea bannerul de cookie-uri al vizitatorului; pagina reîncărcată decide dacă apare. */
html.pps-stare-schimbata #pps-consent { visibility: hidden; }
html.pps-stare-schimbata main::before {
	content: "Se încarcă pagina…"; visibility: visible; display: block; padding: 48px 16px; text-align: center;
	font-size: var(--pps-fs-ui, .9375rem); color: var(--pps-text); animation: pps-os-puls 2.4s ease-in-out infinite;
}

/* 40.3 Grila listei cât se încarcă filtrul sau sortarea (SCH-R2-02): grila își păstrează înălțimea (min-height), iar rândurile
   nu se mai întind pe toată înălțimea ei. Cardurile-schelet au înălțimea lor naturală, nu dublul ei. */
.pps-split--filtre .pps-grid { align-content: start; }

/* 40.4 Textul alternativ al pozelor nu se mai desenează în cutia pozei cât se încarcă (BA2-02, Firefox): un rând roșu peste
   insigne, în fiecare card, 80-160 ms. Textul rămâne pentru cititoarele de ecran; cutia păstrează fundalul pal. */
.pps-card__media img, .woocommerce-product-gallery img, .pps-sug__poza img, .pps-lista__poza img, .pps-galerie img { color: transparent; }

/* 40.5 Antetul compact pe calculator (observația 13:35, CLS-R2-06): doar umbra, fără schimbarea înălțimii. Rândul de sus și
   bara de navigare se mutau 7-14 px la fiecare trecere a pragului (layout shift, adunat la derularea dus-întors). Pe telefon
   antetul compact rămâne mai scund (acolo nu mișcă nimic din pagină). */
@media (min-width: 1024px) {
	.pps-antet-lipicios--compact .pps-antet__int { --pps-antet-h: var(--wp--custom--antet--inaltime, 72px); }
}

/* ═══════════════════════════════════════════════════════════════════
   41. Runda v2, reparații 3 (26.09.2026; raportul build/navigare-instant-2026-09-25/v2/reparari-runda-3.md)
   ═══════════════════════════════════════════════════════════════════ */

/* 41.1 „Reduce motion” (BA3-03): bara din CSS și „Se încarcă pagina…” ale stării pps-stare-schimbata pulsează prin opacitate,
   ca restul semnelor de încărcare (bara navigării, scheletele). Regula generală din secțiunea 20 (durata .001 ms, o singură
   repetare, !important) le oprea animația; aici specificitatea e mai mare. Bara rămâne fără mișcare (scaleX(.6) fix). */
@media (prefers-reduced-motion: reduce) {
	html.pps-stare-schimbata .pps-antet-lipicios:not(:has(> .pps-nav-progres))::after,
	html.pps-stare-schimbata main::before { animation: pps-os-puls 2.4s ease-in-out infinite !important; }
}

/* 41.2 Așteptarea pe calculator (ER3-04): cât pleacă pagina, cursorul arată „se lucrează” peste toată pagina (semnul obișnuit
   al sistemului), iar bara de sub antet are 4 px. Nimic nu acoperă pagina; derularea și clicurile rămân. */
@media (pointer: fine) {
	html.pps-pleaca, html.pps-pleaca body, html.pps-pleaca a, html.pps-pleaca button, html.pps-pleaca label, html.pps-pleaca summary { cursor: progress; }
}
@media (min-width: 1024px) { .pps-nav-progres { height: 4px; } }

/* 41.3 Cardurile de produs au pe calculator aceeași înălțime (SCH-R3-01): titlul rezervă două rânduri (cât îl taie), rândul
   unității există și când produsul nu are unitate verificată (gol, inc/produse.php), iar subsolul are înălțimea
   cantității cu „Adaugă în coș” și când e doar „Alege varianta”. Cardul-schelet al listelor (inc/navigare.php) primește
   aceleași rezervări, deci rândurile grilei nu mai sar cu 9-19 px la sosirea listei sortate sau filtrate. Pe telefon
   înălțimea rămâne a conținutului (titlul până la 4 rânduri, prețul pe 2-3 rânduri; decizia rămâne la Radu). */
.pps-card__unitate--gol { display: none; }
@media (min-width: 760px) {
	.pps-card--produs .pps-card__titlu { min-height: calc(2em * 1.35); }
	.pps-card--produs .pps-card__unitate--gol { display: block; min-height: calc(1em * 1.45); }
	.pps-card--produs .pps-card__subsol { min-height: 56px; box-sizing: border-box; }
}

/* 41.5 Sesiunea s-a schimbat în altă filă, dar pagina are un formular început (MP3-02): prețurile se estompează, iar bara
   „Reîncarcă pagina” stă fixă, jos (aceeași cutie ca mesajul navigării lente), fără să mute pagina. */
html.pps-preturi-vechi .pps-pret, html.pps-preturi-vechi .pps-rapid__stare, html.pps-preturi-vechi .pps-bara-cumparare__pret { opacity: .4; }

/* 41.4 Iconițele primului ecran vin cu foaia de stil (ER3-07): „Filtrează”, „Sortează”, antetul, bara de jos și cantitatea
   de pe card nu mai apar după ~1 s la prima vizită (fiecare mască SVG era o cerere separată). Fișierele din assets/icons
   rămân sursa; aici aceleași desene, codificate. */
.pps-ico--filtru { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 5.5h17l-6.6 7.6V20l-3.8-2.4v-4.5Z'/%3E%3C/svg%3E"); }
.pps-ico--sortare { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 4.5v15'/%3E%3Cpath d='m4.5 8 3.5-3.5L11.5 8'/%3E%3Cpath d='M16 19.5v-15'/%3E%3Cpath d='m12.5 16 3.5 3.5 3.5-3.5'/%3E%3C/svg%3E"); }
.pps-ico--cautare { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.8' cy='10.8' r='6.8'/%3E%3Cpath d='m15.8 15.8 4.5 4.5'/%3E%3C/svg%3E"); }
.pps-ico--cos { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 3.5h2.6l2.4 11.2h10.3l2.2-8H6'/%3E%3Ccircle cx='9.4' cy='19' r='1.7'/%3E%3Ccircle cx='17.4' cy='19' r='1.7'/%3E%3C/svg%3E"); }
.pps-ico--meniu { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 6.5h17M3.5 12h17M3.5 17.5h17'/%3E%3C/svg%3E"); }
.pps-ico--cont { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='3.7'/%3E%3Cpath d='M4.6 20.5a7.6 7.6 0 0 1 14.8 0'/%3E%3C/svg%3E"); }
.pps-ico--acasa { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 10.5 12 3.5l8.5 7'/%3E%3Cpath d='M5.5 9.2V20.5h13V9.2'/%3E%3Cpath d='M9.8 20.5v-6h4.4v6'/%3E%3C/svg%3E"); }
.pps-ico--lista { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.5 3.5h7a1.5 1.5 0 0 1 1.5 1.5v.5h1.5a1.5 1.5 0 0 1 1.5 1.5v12a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 4 19V7a1.5 1.5 0 0 1 1.5-1.5H7V5a1.5 1.5 0 0 1 1.5-1.5Z'/%3E%3Cpath d='M8 11.5h8M8 15.5h5'/%3E%3C/svg%3E"); }
.pps-ico--telefon { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 3.5h3l1.5 4-2 1.4a12 12 0 0 0 6.1 6.1l1.4-2 4 1.5v3a2 2 0 0 1-2.2 2A17.5 17.5 0 0 1 4.5 5.7 2 2 0 0 1 6.5 3.5Z'/%3E%3C/svg%3E"); }
.pps-ico--whatsapp { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.8 20.2 5 16.6a8 8 0 1 1 3 3l-4.2.6Z'/%3E%3Cpath d='M9 9.2c.2 1 .7 2 1.5 2.8s1.8 1.3 2.8 1.5l.9-1.1 1.9.8v1.2c0 .6-.5 1.1-1.1 1a8 8 0 0 1-6.9-6.9c-.1-.6.4-1.1 1-1.1h1.2l.8 1.9L9 9.2Z'/%3E%3C/svg%3E"); }
.pps-ico--scut { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.8 4.8 5.6v5.5c0 4.5 3 8.2 7.2 10.1 4.2-1.9 7.2-5.6 7.2-10.1V5.6Z'/%3E%3Cpath d='m9 11.8 2.2 2.2 4-4.2'/%3E%3C/svg%3E"); }
.pps-ico--camion { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.5h11v10h-11z'/%3E%3Cpath d='M13.5 9.5h3.7l3.3 3.2v3.8h-7z'/%3E%3Ccircle cx='7' cy='18' r='1.8'/%3E%3Ccircle cx='17' cy='18' r='1.8'/%3E%3C/svg%3E"); }
.pps-ico--sageata { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12h14'/%3E%3Cpath d='m13 6.5 5.5 5.5-5.5 5.5'/%3E%3C/svg%3E"); }
.pps-ico--plus { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E"); }
.pps-ico--minus { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E"); }
.pps-ico--inchide { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5.5 5.5 13 13M18.5 5.5l-13 13'/%3E%3C/svg%3E"); }
.pps-ico--bifa { --pps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4.5 12.5 5 5 10-11'/%3E%3C/svg%3E"); }
.pps-cautare__input { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.8' cy='10.8' r='6.8'/%3E%3Cpath d='m15.8 15.8 4.5 4.5'/%3E%3C/svg%3E"); }
.pps-lista-bifata li::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4.5 12.5 5 5 10-11'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4.5 12.5 5 5 10-11'/%3E%3C/svg%3E"); }
.pps-pastila__sageata { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12h14'/%3E%3Cpath d='m13 6.5 5.5 5.5-5.5 5.5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12h14'/%3E%3Cpath d='m13 6.5 5.5 5.5-5.5 5.5'/%3E%3C/svg%3E"); }

/* ═══════════════════════════════════════════════════════════════════
   42. Notificarea UE privind garanția legală (29.09.2026; Reg. (UE) 2025/1960, mu-plugins/pps-compliance/garantie.php)
   ═══════════════════════════════════════════════════════════════════ */

/* Legătura din condițiile fișei și de la finalizare (și perechea ei din schelet): ca „condiții”, roșul închis subliniat. */
.pps-garantie-deschide { color: var(--pps-rosu-inchis); text-decoration: underline; text-underline-offset: 3px; }
@media (hover: hover) { a.pps-garantie-deschide:hover { color: var(--pps-ink); } }
/* Conturile de firmă nu primesc rândul (garantie.php, pps_garantie_pe_fisa); scheletul îl ascunde la fel. */
html.pps-firma .pps-b2b-conditii li:has(.pps-garantie-deschide) { display: none; }
.pps-garantie-finalizare { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; align-items: start; margin: 0 0 16px; font-size: var(--pps-fs-detaliu); line-height: 1.45; }
.pps-garantie-finalizare > .pps-ico { font-size: 16px; margin-top: 2px; color: var(--pps-ink); }

/* Fereastra: notificarea întreagă, la cel mult 760 px, derulabilă; antetul cu „Închide” rămâne sus. */
.pps-garantie-dialog { width: min(760px, calc(100vw - 24px)); max-width: none; max-height: calc(100dvh - 24px); margin: auto; padding: 0; border: 0; border-radius: var(--pps-raza-card); background: var(--pps-alb); color: var(--pps-text); box-shadow: var(--pps-umbra-panou); overscroll-behavior: contain; }
.pps-garantie-dialog::backdrop { background: rgba(12, 35, 64, .6); }
.pps-garantie-dialog__antet { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 8px 8px 20px; background: var(--pps-alb); border-bottom: 1px solid var(--pps-linie); }
.pps-garantie-dialog__titlu { margin: 0; font-family: var(--pps-display); font-size: var(--pps-fs-accent); line-height: 1.3; color: var(--pps-ink); }
.pps-garantie-dialog__inchide { display: inline-grid; place-items: center; flex: none; width: 44px; height: 44px; padding: 0; border: 0; border-radius: var(--pps-raza-pila); background: transparent; color: var(--pps-ink); cursor: pointer; }
.pps-garantie-dialog__inchide .pps-ico { font-size: 22px; }
@media (hover: hover) { .pps-garantie-dialog__inchide:hover { background: var(--pps-pal); } }
.pps-garantie-dialog__corp { padding: 16px 20px 20px; }
@media (max-width: 559px) { .pps-garantie-dialog__corp { padding: 12px; } .pps-garantie-dialog__antet { padding-left: 12px; } }

/* Notificarea (în fereastră și pe pagina garanției): imaginea oficială, nemodificată, la lățimea casetei. */
.pps-garantie { margin-block: 32px; }
.pps-garantie__notificare { margin: 0; max-width: 720px; }
.pps-garantie__notificare img { display: block; width: 100%; height: auto; border: 1px solid var(--pps-linie); }
.pps-garantie__legaturi { margin: 12px 0 0; font-size: var(--pps-fs-detaliu); line-height: 1.6; }
/* Fiecare legătură pe rândul ei are cel puțin 24 px înălțime (WCAG 2.2, 2.5.8; axe target-size la 412 px). */
.pps-garantie__legaturi a { display: inline-block; min-height: 24px; line-height: 24px; color: var(--pps-rosu-inchis); text-underline-offset: 3px; }
.pps-garantie__text { margin-top: 12px; font-size: var(--pps-fs-detaliu); }
.pps-garantie__text summary { cursor: pointer; color: var(--pps-ink); font-weight: 600; min-height: 24px; }
.pps-garantie__text > div { margin-top: 8px; }
.pps-garantie__text p, .pps-garantie__text ul, .pps-garantie__text ol { margin: 0 0 8px; }

/* 42.2 Focusul în zonele închise la culoare (WCAG 2.4.7 și 1.4.11; testul ac-29-accesibilitate-criterii, 29.09.2026): conturul
   bleumarin al temei avea 1:1 pe subsol (bleumarin pe bleumarin, focusul nu se vedea) și 2,1:1 pe banda roșie. Aici e alb:
   15,9:1 pe bleumarin, 6,6:1 pe roșul închis, 4,6:1 pe roșul barei de sus. */
:is(.pps-subsol, .pps-section--ink, .pps-caseta--ink, .pps-banda--rosie, .pps-banda--ink, .pps-bara-utilitate, .pps-hero, .pps-video) :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline-color: #fff; }

/* 42.3 Finalizarea pe telefon cu spațierea textului mărită (WCAG 1.4.12): „Înapoi la coș” și butonul din bara de jos ieșeau
   din ecran (6 px la 412 px, 48 px la 360 px). Legătura pierde spațiul din stânga (8 px) și se rupe pe două rânduri, iar
   butonul la fel, numai când nu au loc: prețul ia doar ce rămâne (bază 0). Fără spațiere mărită, la 320-412 px, arată ca înainte. */
@media (max-width: 759px) {
	body.pps-finalizare .pps-antet__actiuni { min-width: 0; }
	body.pps-finalizare .pps-antet__inapoi-cos { padding-left: 0; white-space: normal; text-align: right; }
	.pps-bara-cumparare--finalizare .pps-bara-cumparare__pret { flex: 1 1 0; }
	.pps-bara-cumparare--finalizare .pps-bara-cumparare__buton { flex: 0 1 auto; white-space: normal; text-align: center; }
}

/* 47. Newsletter pe prima pagină (F06, D52; mu-plugins/pps-newsletter, patterns/newsletter.php). Caseta rece a secțiunii
   „Cont de firmă”, deasupra subsolului: textul în stânga, formularul în dreapta; pe telefon unul sub altul, butonul pe toată
   lățimea. Mesajul de după trimitere înlocuiește câmpurile (pps-nl--trimis); capcana pentru roboți e scoasă din ecran. */
.pps-nl__caseta { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 24px 48px; align-items: center; padding: 32px; }
.pps-nl__text { display: flex; flex-direction: column; gap: 8px; }
.pps-nl__text .pps-h2, .pps-nl__text .pps-lead { margin: 0; }
.pps-nl__formular .pps-camp + .pps-camp { margin-top: 14px; }
.pps-nl__rand { display: flex; gap: 8px; align-items: stretch; }
.pps-nl__rand .pps-input { flex: 1 1 auto; min-width: 0; }
.pps-nl__rand .pps-btn { flex: 0 0 auto; white-space: nowrap; }
.pps-nl .pps-camp--acord .pps-eticheta { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; line-height: 1.5; color: var(--pps-text); }
.pps-nl .pps-camp--acord input { flex: 0 0 auto; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--pps-ink); }
.pps-nl .pps-camp--acord a { color: var(--pps-ink); text-underline-offset: 3px; }
.pps-nl .pps-input[aria-invalid="true"], .pps-nl .pps-camp--acord input[aria-invalid="true"] { border-color: var(--pps-rosu-inchis); outline: 2px solid var(--pps-rosu-inchis); outline-offset: 1px; }
.pps-nl .pps-eroare[hidden] { display: none; }
.pps-nl .pps-formular__mesaj { margin: 14px 0 0; font-size: 15px; line-height: 1.5; }
.pps-nl .pps-formular__mesaj:empty { display: none; }
.pps-nl .pps-formular__mesaj:focus { outline: none; }
.pps-nl .pps-formular__mesaj--ok { padding: 14px 16px; border: 1px solid #b8dfc3; border-radius: var(--pps-raza-mic); background: #edf7f0; color: var(--pps-verde); font-weight: 600; }
.pps-nl .pps-formular__mesaj--eroare { padding: 12px 14px; border: 1px solid #efb8b8; border-radius: var(--pps-raza-mic); background: var(--pps-rosu-pal); color: var(--pps-rosu-inchis); }
.pps-nl--trimis .pps-nl__campuri, .pps-nl--ascuns { display: none; }
.pps-nl--trimis .pps-formular__mesaj { margin-top: 0; }
.pps-nl__panou { padding: 20px; border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-card); background: var(--pps-alb); }
.pps-nl__panou p { margin: 0 0 12px; }
.pps-nl__panou p:last-child { margin-bottom: 0; }
.pps-nl__hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 899px) {
	.pps-nl__caseta { grid-template-columns: minmax(0, 1fr); padding: 24px 20px; }
}
@media (max-width: 559px) {
	.pps-nl__rand { flex-direction: column; }
	.pps-nl__rand .pps-btn { width: 100%; justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════════════
   44. Pagini de conținut și subsol (feedback testare 19.10.2026, pachetul P1: F05, F02, F03, F04)
   ═══════════════════════════════════════════════════════════════════ */

/* 44.1 Textele din carduri încep la aceeași înălțime pe un rând (F05). Pașii de pe SEAP/SICAP și de pe Cont de firmă și casetele
   de pe Despre noi și Certificate: caseta împarte rândurile grilei (subgrid), deci titlul are înălțimea celui mai lung titlu din
   rând, iar când toate încap pe un rând nu se adaugă spațiu. Numai grilele în care TOATE casetele au aceeași formă (supratitlu,
   titlu, un bloc; sau titlu, un bloc): o casetă cu alt conținut în aceeași grilă (ex. „Date de identificare” lângă „Contact
   pentru achiziții publice” pe SEAP) ar întinde rândul titlului. Pe telefon casetele sunt una sub alta și rămân ca acum.
   Distanțele dintre supratitlu, titlu și text rămân marginile de până acum (row-gap 0). */
@supports (grid-template-rows: subgrid) {
	@media (min-width: 760px) {
		.pps-grid:not(:has(> :not(.pps-caseta), > .pps-caseta > :nth-child(4), > .pps-caseta > :last-child:nth-child(-n + 2), > .pps-caseta > :first-child:not(.pps-eyebrow), > .pps-caseta > :nth-child(2):not(h2, h3))) > .pps-caseta { display: grid; grid-template-rows: subgrid; grid-row: span 3; row-gap: 0; align-content: start; }
		.pps-grid:not(:has(> :not(.pps-caseta), > .pps-caseta > :nth-child(3), > .pps-caseta > :only-child, > .pps-caseta > :first-child:not(h2, h3))) > .pps-caseta { display: grid; grid-template-rows: subgrid; grid-row: span 2; row-gap: 0; align-content: start; }
	}
}
/* Cardurile de articol (Informații utile, prima pagină, arhivele, căutarea): titlul e tăiat la două rânduri, deci rezervă două
   rânduri (ca 41.3 la cardurile de produs) și rezumatul începe la aceeași înălțime. */
@media (min-width: 760px) {
	.pps-grid > .wp-block-post > .pps-card:not(.pps-card--produs) .pps-card__titlu,
	.pps-grid > .pps-card--articol .pps-card__titlu { min-height: calc(2em * 1.35); }
}
/* Galeria de certificate (bandă derulabilă): pe telefon unele titluri au două rânduri. Cardurile împart rândurile benzii
   (imagine, titlu, notă, sursă), la aceleași lățimi ca înainte (4 / 3 / 78% din bandă, minimum 220 px). */
@supports (grid-template-rows: subgrid) {
	.pps-cert-gallery .pps-cert-gallery__track { display: grid; grid-auto-flow: column; grid-template-rows: repeat(4, auto); grid-auto-columns: max(220px, calc((100% - 60px) / 4)); column-gap: 20px; row-gap: 0; }
	.pps-cert-gallery__track > .pps-cert-gallery__card { display: grid; grid-row: span 4; grid-template-rows: subgrid; }
	.pps-cert-gallery__card > .pps-cert-gallery__body { display: grid; grid-row: span 3; grid-template-rows: subgrid; align-content: start; }
	.pps-cert-gallery__body > a { justify-self: start; }
	@media (max-width: 1000px) { .pps-cert-gallery .pps-cert-gallery__track { grid-auto-columns: max(220px, calc((100% - 40px) / 3)); } }
	@media (max-width: 767px) { .pps-cert-gallery .pps-cert-gallery__track { grid-auto-columns: max(220px, 78%); } }
}

/* 44.2 Harta de pe Contact umple chenarul (F02). Învelișul de consimțământ nu avea înălțime, iar cadrul cu height:100% cădea
   la 150 px. Chenarul e grilă, deci învelișul și cadrul iau toată înălțimea. overflow: clip (nu hidden) păstrează colțurile
   rotunjite, dar lasă chenarul să crească dacă mesajul de dinaintea acordului e mai înalt (pe telefon butonul era tăiat).
   Pe telefon chenarul e 4:3 (16:7 lăsa o fâșie de 166 px). */
.pps-harta { display: grid; overflow: clip; }
.pps-harta > .pps-consent-embed { display: grid; min-width: 0; }
.pps-harta iframe { height: 100%; min-height: 0; }
.pps-harta .pps-compliance-note { margin: 0; border: 0; border-radius: 0; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 8px; }
@media (max-width: 759px) { .pps-harta { aspect-ratio: 4 / 3; } }

/* 44.3 Despărțirea paginii de subsol (F03): când pagina se termină cu o bandă bleumarin (cifrele de pe SEAP/SICAP), între ea
   și subsolul de aceeași culoare rămâne spațiul obișnuit dintre secțiuni. */
.wp-block-post-content:has(> :is(.pps-section--ink, .pps-banda--ink):last-child) { padding-bottom: clamp(3rem, 6vw, 4.5rem); }
/* Pe SEAP/SICAP banda cu cifre a urcat sub introducere (F03b, Irina 13:05; scripts/continut/2026-10-19-seap-banda-sus.php).
   O bandă bleumarin pusă imediat după antetul paginii se lipește de el, fără fâșia albă de 24 px a layoutului „flow”;
   până la pași rămâne spațiul de sus al secțiunii (64 px pe calculator, 48 px pe telefon). */
.wp-block-post-content > .pps-antet-pagina + :is(.pps-section--ink, .pps-banda--ink) { margin-block-start: 0; }

/* 44.4 Insigna ANPC SAL fără marginile albe (F04). Facsimilul oficial (Ordinul 270/2026, consumer.php) are pastila pe un
   dreptunghi negru cu margini albe. Fișierul rămâne neschimbat; legătura arată numai pastila, cu colțurile ei, la 250 px
   lățime (cât avea toată imaginea). Decupajul: x 34-322, y 3-71 din 355 x 76. Tăierea e cu clip-path, nu cu overflow:
   o legătură cu overflow ascuns și conținut mai mare apare ca text tăiat în AC-29 (WCAG 1.4.12). Insigna SOL nu se adaugă (AC-26). */
.pps-subsol__insigne a:has(> img.pps-sal-official) { display: block; width: 250px; max-width: 100%; aspect-ratio: 289 / 69; min-height: 0; border-radius: 5.6% / 23.5%; clip-path: inset(0 round 5.6% / 23.5%); }
.pps-subsol .pps-subsol__insigne a > img.pps-sal-official { width: calc(100% * 355 / 289); max-width: none; height: auto; margin: calc(-100% * 3 / 289) 0 0 calc(-100% * 34 / 289); padding: 0; background: none; border-radius: 0; }
/* Pe calculatoarele înguste (1024-1130 px) coloana Contact a subsolului avea ~225 px: rămâne cel puțin 250 px, cât insigna. */
@media (min-width: 1024px) { .pps-subsol__grila { grid-template-columns: 1.4fr 1fr 1fr minmax(250px, 1.2fr); } }

/* ═══════════════════════════════════════════════════════════════════
   45. Feedbackul testării din 19.10.2026, pachetul P2: contul de firmă și pagina de după comandă (F08, F09, F07)
   ═══════════════════════════════════════════════════════════════════ */

/* 45.1 Contul > Adrese (F08): „Editează Adresă de facturare/livrare” stătea în dreapta coloanei (`float: right` din
   woocommerce.css), departe de titlu și de adresă. Acum e sub titlu, la stânga, iar titlul are mărimea titlurilor din pagina
   comenzii (36.8; avea 36 px, cât titlul paginii). Adresa fără italic, ca în pagina comenzii. */
body.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title {
	display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin: 0 0 12px;
}
/* Clearfix-ul WooCommerce (`content: " "; display: table`) ar fi devenit un rând gol în coloană. */
body.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title::before,
body.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title::after { content: none; display: none; }
body.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title h2 {
	font-family: var(--pps-display); font-size: 1.5rem; font-weight: 700; line-height: 1.25; letter-spacing: -.01em; color: var(--pps-ink); margin: 0;
}
body.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title .edit {
	float: none; margin: 0; min-height: 24px; line-height: 24px; color: var(--pps-rosu-inchis); text-underline-offset: 3px;
}
body.woocommerce-account .woocommerce-Addresses address { font-style: normal; }
@media (max-width: 759px) {
	body.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title h2 { font-size: var(--pps-fs-h2); }
	body.woocommerce-account .woocommerce-Addresses .woocommerce-Address + .woocommerce-Address { margin-top: 24px; }
}

/* 45.2 „Am primit comanda” și Contul > Comenzi > comanda (F09): chenarul „Adresă de livrare” era mai scurt decât cel de
   facturare (facturarea are în plus telefonul și e-mailul), iar marginea lui de jos (2 px, din woocommerce.css) se vedea ca o
   linie în plus deasupra unui rând gol. Nu e niciun câmp gol: reprodus pe copia izolată (comanda P01), chenarul se termină
   după codul poștal. Acum cele două coloane sunt o grilă, chenarele au aceeași înălțime și aceeași margine de 1 px, cu
   colțurile cardurilor temei. Pe telefon coloanele stau una sub alta, ca înainte. `body` în față: foaia WooCommerce pentru
   teme de blocuri e încărcată după temă. */
body.woocommerce-page .woocommerce-customer-details .woocommerce-columns--addresses {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 4%; row-gap: 0; align-items: stretch;
}
body.woocommerce-page .woocommerce-customer-details .woocommerce-columns--addresses::before,
body.woocommerce-page .woocommerce-customer-details .woocommerce-columns--addresses::after { content: none; display: none; }
body.woocommerce-page .woocommerce-customer-details .woocommerce-columns--addresses > .woocommerce-column {
	float: none; width: auto; display: flex; flex-direction: column; min-width: 0;
}
body.woocommerce-page .woocommerce-customer-details .woocommerce-columns--addresses address {
	flex: 1 1 auto; width: 100%; border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-card);
}
@media (max-width: 759px) {
	body.woocommerce-page .woocommerce-customer-details .woocommerce-columns--addresses { grid-template-columns: minmax(0, 1fr); }
}

/* 45.3 Telefonul din „Adresă de livrare” pe aceeași linie cu cel din „Adresă de facturare” (Irina, 13:09, după colajul F09).
   Livrarea are mai puține rânduri (fără firmă), deci telefonul ei urca. Rândurile adresei (`.pps-adresa__linii`, puse de
   theme/functions.php numai în acest șablon) cresc cât rămâne din chenar, așa că telefonul și e-mailul stau la baza
   chenarului; în chenarul de livrare, `.pps-adresa__rezerva` (copia ascunsă a e-mailului) ține locul rândului de e-mail al facturării. Merge oricâte
   rânduri are adresa, fără firmă la facturare și fără telefon la livrare (atunci nu se rezervă nimic). Pe telefon chenarele
   stau unul sub altul: fără rezervă, fără spațiu gol. */
body.woocommerce-page .woocommerce-customer-details .woocommerce-columns--addresses address { display: flex; flex-direction: column; }
body.woocommerce-page .woocommerce-customer-details .woocommerce-columns--addresses .pps-adresa__linii { display: block; flex: 1 0 auto; margin-bottom: 16px; }
body.woocommerce-page .woocommerce-customer-details .woocommerce-columns--addresses .pps-adresa__linii:last-child { margin-bottom: 0; }
body.woocommerce-page .woocommerce-customer-details .woocommerce-columns--addresses address > p { margin: 0; line-height: 24px; }
body.woocommerce-page .woocommerce-customer-details .woocommerce-columns--addresses address > p + p { margin-top: 16px; }
/* Rezerva e o copie ascunsă a e-mailului facturării, cu aceeași indentare: ocupă aceleași rânduri, și când e-mailul se rupe. */
body.woocommerce-page .woocommerce-customer-details .woocommerce-columns--addresses .pps-adresa__rezerva { visibility: hidden; padding-left: 1.5em; }
@media (max-width: 759px) {
	body.woocommerce-page .woocommerce-customer-details .woocommerce-columns--addresses .pps-adresa__rezerva { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════
   43. Cererile clientului din 19.10.2026 (Irina, grupul „SITE PPS 2026”; build/feedback-irina-2026-10-19/)
   ═══════════════════════════════════════════════════════════════════ */

/* 43.1 Bara roșie de sus: iconițele mai mari, iar WhatsApp în varianta originală (cercul verde cu receptorul alb), ușor de
   recunoscut. Inelul alb desparte verdele de roșul barei. Desenul e în assets/icons/whatsapp-brand.svg; aici, codificat,
   ca celelalte iconițe ale primului ecran (41.4: fără cerere separată). Înălțimea barei rămâne 40 px (34 px pe telefon). */
.pps-bara-utilitate__pila .pps-ico { font-size: 16px; }
.pps-bara-utilitate__tel .pps-ico { font-size: 18px; }
.pps-bara-utilitate__wa .pps-ico--whatsapp {
	font-size: 22px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='16' fill='%23fff'/%3E%3Ccircle cx='16' cy='16' r='14.6' fill='%2325D366'/%3E%3Cpath fill='%23fff' transform='translate(6.6 6.4) scale(.8)' d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 0 1-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 0 1-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 0 1 2.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0 0 12.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 0 0 5.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 0 0-3.48-8.413Z'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: none; mask: none;
}
@media (max-width: 759px) {
	.pps-bara-utilitate__pila .pps-ico { font-size: 15px; }
	.pps-bara-utilitate__tel .pps-ico { font-size: 17px; }
	.pps-bara-utilitate__wa .pps-ico--whatsapp { font-size: 26px; }
	/* Iconița umple acum zona de atingere (36.16): fără marginea negativă din dreapta, stă pe marginea paginii, ca restul. */
	.pps-bara-utilitate__wa { margin-right: 0; }
}

/* 43.2 Butoanele fără text de pe card spun ce fac: eticheta lor (textul ascuns vizual, același cu numele citit de cititoarele de
   ecran) apare ca indiciu la trecerea cursorului și la focusul din tastatură. Pe ecranele tactile nu există trecerea cursorului
   (hover: hover), iar atingerea nu dă :focus-visible, deci după o atingere nu rămâne nimic afișat. Cât e deschisă alegerea
   listei, indiciul se ascunde. */
.pps-card__lista .pps-buton-lista__text {
	top: calc(100% - 2px); right: 2px; z-index: 4;
	width: auto; height: auto; overflow: visible; clip: auto; clip-path: none;
	padding: 5px 9px; border-radius: var(--pps-raza-mic);
	background: var(--pps-ink); color: #fff; box-shadow: 0 2px 6px rgba(12, 35, 64, .24);
	font-family: var(--pps-font); font-size: var(--pps-fs-eticheta, 12px); font-weight: 600; line-height: 1.3; letter-spacing: 0; text-transform: none;
	opacity: 0; visibility: hidden; transform: translateY(-3px);
	transition: opacity .12s ease, transform .12s ease, visibility 0s linear .12s;
}
/* Săgeata spre cercul butonului (cercul are centrul la 22 px de marginea din dreapta). */
.pps-card__lista .pps-buton-lista__text::before {
	content: ""; position: absolute; bottom: 100%; right: 15px;
	border: 5px solid transparent; border-bottom-color: var(--pps-ink);
}
.pps-card__lista:focus-visible .pps-buton-lista__text { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
@media (hover: hover) {
	.pps-card__lista:hover .pps-buton-lista__text { opacity: 1; visibility: visible; transform: none; transition-delay: .25s, .25s, .25s; }
}
.pps-card__lista[aria-expanded="true"] .pps-buton-lista__text { opacity: 0; visibility: hidden; transition: none; }
/* WCAG 1.4.13: indiciul e în buton, deci cursorul poate trece pe el fără să dispară (stă lipit de buton, fără spațiu între ele),
   iar Esc îl ascunde până când cursorul sau focusul pleacă de pe buton (app.js, indiciiCarduri). */
.pps-fara-indiciu .pps-buton-lista__text, .pps-fara-indiciu .pps-card__buton-text { opacity: 0 !important; visibility: hidden !important; transition: none !important; }

/* Pe cardurile înguste (două coloane pe telefon) și „Adaugă în coș” rămâne doar iconiță: același indiciu, deasupra butonului. */
@container ppscard (max-width: 230px) {
	.pps-card__cumpara .pps-btn { position: relative; }
	.pps-card__cumpara .pps-card__buton-text {
		bottom: calc(100% + 7px); right: 0; z-index: 4;
		width: auto; height: auto; overflow: visible; clip: auto; clip-path: none;
		padding: 5px 9px; border-radius: var(--pps-raza-mic);
		background: var(--pps-ink); color: #fff; box-shadow: 0 2px 6px rgba(12, 35, 64, .24);
		font-family: var(--pps-font); font-size: var(--pps-fs-eticheta, 12px); font-weight: 600; line-height: 1.3;
		opacity: 0; visibility: hidden;
		transition: opacity .12s ease, visibility 0s linear .12s;
	}
	.pps-card__cumpara .pps-card__buton-text::after {
		content: ""; position: absolute; top: 100%; right: 14px;
		border: 5px solid transparent; border-top-color: var(--pps-ink);
	}
	.pps-card__cumpara .pps-btn:focus-visible .pps-card__buton-text { opacity: 1; visibility: visible; transition-delay: 0s; }
	@media (hover: hover) {
		.pps-card__cumpara .pps-btn:hover .pps-card__buton-text { opacity: 1; visibility: visible; transition-delay: .25s; }
	}
}
@media (prefers-reduced-motion: reduce) {
	.pps-card__lista .pps-buton-lista__text, .pps-card__cumpara .pps-card__buton-text { transition: none !important; transform: none; }
}

/* 43.3 Alegerea variantei de pe card (cererea din 19.10.2026, 10:38): produsele cu variante aveau pe card doar „Vezi produsul”.
   „Adaugă în coș” deschide foaia de jos (fereastră la mijloc pe calculator, componenta din secțiunea 27): pastile mari cu
   numele variantei, prețul și starea stocului, cantitatea și adăugarea; după adăugare, confirmarea fișei (secțiunea 28).
   Variantele fără preț sau fără stoc rămân în listă, inactive, cu textul existent („Preț indisponibil…”, „Indisponibil”). */
.pps-varianta__produs { margin: 12px 0 0; font-family: var(--pps-font); font-size: var(--pps-fs-ui, .9375rem); font-weight: 600; line-height: var(--pps-lh-ui, 1.35); color: var(--pps-ink); }
.pps-varianta__grup { border: 0; margin: 0; padding: 12px 0 0; min-width: 0; }
.pps-varianta__grup > legend { float: left; width: 100%; padding: 0; }
.pps-varianta__grup > legend + * { clear: both; }
.pps-varianta__optiuni { display: grid; grid-template-columns: repeat(auto-fill, minmax(124px, 1fr)); gap: 8px; margin-top: 6px; }
.pps-varianta__opt {
	position: relative; display: flex; flex-direction: column; gap: 3px; min-width: 0; min-height: 44px; margin: 0;
	padding: 10px 12px; border: 1px solid var(--pps-linie-camp); border-radius: var(--pps-raza-mic); background: var(--pps-alb); cursor: pointer;
	transition: border-color var(--pps-tranzitie), box-shadow var(--pps-tranzitie);
}
/* Bifa radio acoperă toată pastila (clic oriunde), invizibilă; săgețile mută alegerea, ca la orice grup de opțiuni. */
.pps-varianta__radio { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.pps-varianta__nume { font-family: var(--pps-display); font-size: 16px; font-weight: 700; line-height: 1.25; color: var(--pps-ink); overflow-wrap: anywhere; }
.pps-varianta__pret { font-size: var(--pps-fs-detaliu, .8125rem); line-height: 1.35; color: var(--pps-ink); font-variant-numeric: tabular-nums; }
.pps-varianta__pret .pps-pret__principal { display: inline; margin: 0; font: inherit; color: inherit; letter-spacing: 0; }
.pps-varianta__pret small { font-size: inherit; font-weight: inherit; }
.pps-varianta__pret .pps-pret__lista { margin-left: 4px; color: var(--pps-text); white-space: nowrap; }
.pps-varianta__stoc .pps-stoc { font-size: 12px; gap: 6px; }
@media (hover: hover) { .pps-varianta__opt:hover { border-color: var(--pps-ink); } }
.pps-varianta__opt:has(.pps-varianta__radio:checked) { border-color: var(--pps-ink); box-shadow: inset 0 0 0 1px var(--pps-ink); background: var(--pps-fundal); }
.pps-varianta__opt:has(.pps-varianta__radio:focus-visible) { outline: 2px solid var(--pps-ink); outline-offset: 2px; }
.pps-varianta__opt--inactiv { cursor: not-allowed; border-style: dashed; background: var(--pps-fundal); }
.pps-varianta__opt--inactiv .pps-varianta__radio { cursor: not-allowed; }
.pps-varianta__opt--inactiv .pps-varianta__nume, .pps-varianta__opt--inactiv .pps-varianta__pret { color: var(--pps-text); }
@media (hover: hover) { .pps-varianta__opt--inactiv:hover { border-color: var(--pps-linie-camp); } }
.pps-varianta__grup--lipsa .pps-varianta__opt:not(.pps-varianta__opt--inactiv) { border-color: var(--pps-rosu-inchis); box-shadow: inset 0 0 0 1px var(--pps-rosu-inchis); }
.pps-varianta__opt--schelet { cursor: default; gap: 8px; }
.pps-varianta__opt--schelet .pps-os { display: block; height: 10px; width: var(--l, 60%); }
.pps-varianta__rezumat { margin-top: 12px; padding: 10px 12px; border-radius: var(--pps-raza-mic); background: var(--pps-fundal); }
.pps-varianta__rezumat[hidden] { display: none; }
.pps-varianta__rezumat .pps-pret { margin: 0; }
.pps-varianta__detalii { margin: 4px 0 0; font-size: var(--pps-fs-detaliu, .8125rem); line-height: 1.45; color: var(--pps-text); }
.pps-varianta__cantitate { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; }
.pps-varianta__cantitate[hidden] { display: none; }
.pps-varianta__cantitate-et { margin: 0; font-size: var(--pps-fs-ui, .9375rem); font-weight: 600; line-height: 1.3; color: var(--pps-ink); }
.pps-varianta__cantitate .pps-stepper button { width: 44px; height: 44px; }
.pps-varianta__cantitate .pps-stepper input { width: 56px; height: 44px; -moz-appearance: textfield; appearance: textfield; }
.pps-varianta__cantitate .pps-stepper input::-webkit-outer-spin-button, .pps-varianta__cantitate .pps-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pps-varianta__adauga .pps-ico { font-size: 20px; }
@media (max-width: 759px) {
	.pps-varianta__optiuni { grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); }
}

/* ═══════════════════════════════════════════════════════════════════
   46. „Ofertă” pe card și pe fișă (F01, 19.10.2026; D44)
   Produsele din „Oferte active” au poziția din lista site-ului sub prețul fișei; prețul vechi nu se arată tăiat (Omnibus),
   deci insigna spune de ce produsul e în oferte. Contur roșu pe alb: se vede pe orice poză și nu concurează cu „-N%”
   (roșu plin, numai după o reducere observată), cu NOU (bleumarin) sau „Direct importator” (roz pal). Cel mult două
   insigne pe card (produse.php, pps_badges_html).
   ═══════════════════════════════════════════════════════════════════ */
.pps-badge--oferta { background: var(--pps-alb); border-color: var(--pps-rosu); color: var(--pps-rosu-inchis); }
/* Pe fișă, chiar deasupra prețului (pe telefon, în grupul prețului: style.css 1412). */
.pps-produs__cumpara > .pps-pret-oferta { margin: 0 0 -8px; line-height: 1; }
.pps-pret-oferta .pps-badge { font-size: var(--pps-fs-eticheta, .75rem); padding: 4px 10px; }
@media (max-width: 759px) {
	.pps-produs__cumpara > .pps-pret-oferta { order: -1; margin-bottom: -4px; }
}

/* ═══════════════════════════════════════════════════════════════════
   43. Conținut SEO (agenția SEO, Basecamp „AUDIT TEHNIC”, 17.10.2026): titlul principal al primei pagini și textul SEO
       al categoriilor
   ═══════════════════════════════════════════════════════════════════ */

/* 43.1 H1-ul primei pagini, deasupra slideshow-ului (inc/slideshow.php, pps_acasa_titlu_html()), aliniat cu marginea bannerului,
   cu sloganul alături pe calculator și dedesubt pe telefon. Același HTML e în scheletul navigării, deci bannerul nu sare. */
main > .pps-acasa-titlu { margin-block: 0; }
.pps-acasa-titlu { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 16px; padding-top: clamp(18px, 2.5vw, 28px); }
.pps-acasa-titlu__h1 {
	margin: 0; font-family: var(--pps-display); font-weight: 700; color: var(--pps-ink);
	font-size: clamp(1.375rem, 1.05rem + 1.1vw, 1.875rem); line-height: 1.15; letter-spacing: -.02em;
}
.pps-acasa-titlu__slogan { margin: 0; color: var(--pps-text); font-size: clamp(.9375rem, .88rem + .25vw, 1.0625rem); line-height: 1.4; }
.pps-acasa-titlu + .pps-slideshow { padding-top: 14px; }
/* Bannerul de rezervă (fără slideshow): H1-ul stă deasupra sloganului, care păstrează aspectul titlului mare. */
.pps-hero__h1 { margin: 0; font-family: var(--pps-display); font-weight: 600; color: #fff; font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); line-height: 1.3; }
p.pps-hero__titlu { text-wrap: balance; }

/* 43.2 Textul SEO al categoriei, sub lista de produse (mu-plugins/pps-seo/text-categorie.php): lățime de lectură, titlurile ca
   pe site, legăturile subliniate. Un text lung se restrânge la 300 px, cu „Citește mai mult” (app.js, textSeo()); fără
   JavaScript rămâne întreg. */
.pps-text-seo { margin-top: clamp(2rem, 4vw, 3rem); padding-top: clamp(1.5rem, 3vw, 2rem); border-top: 1px solid var(--pps-linie); }
.pps-text-seo__corp { max-width: 72ch; color: var(--pps-text); font-size: 1rem; line-height: 1.65; }
.pps-text-seo__corp > :first-child { margin-top: 0; }
.pps-text-seo__corp > :last-child { margin-bottom: 0; }
.pps-text-seo__corp h2 {
	font-family: var(--pps-display); font-weight: 700; color: var(--pps-ink);
	font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); line-height: 1.25; letter-spacing: -.01em; margin: 1.6em 0 .5em;
}
.pps-text-seo__corp h3, .pps-text-seo__corp h4 { font-family: var(--pps-display); font-weight: 700; color: var(--pps-ink); font-size: 1.0625rem; line-height: 1.35; margin: 1.4em 0 .4em; }
.pps-text-seo__corp p, .pps-text-seo__corp ul, .pps-text-seo__corp ol { margin: 0 0 .9em; }
.pps-text-seo__corp ul, .pps-text-seo__corp ol { padding-left: 1.25em; }
.pps-text-seo__corp li + li { margin-top: .3em; }
.pps-text-seo__corp strong { color: var(--pps-ink); }
.pps-text-seo__corp a { color: var(--pps-rosu-inchis); text-decoration: underline; text-underline-offset: 3px; }
@media (hover: hover) { .pps-text-seo__corp a:hover { color: var(--pps-ink); } }
.pps-text-seo__corp table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; margin: 0 0 1em; font-size: 15px; }
.pps-text-seo__corp th, .pps-text-seo__corp td { border: 1px solid var(--pps-linie); padding: 6px 10px; text-align: left; vertical-align: top; }
.pps-text-seo__corp.is-restrans {
	max-height: 300px; overflow: hidden;
	-webkit-mask-image: linear-gradient(#000 55%, transparent); mask-image: linear-gradient(#000 55%, transparent);
}
.pps-text-seo__comuta { margin-top: 16px; }
.pps-text-seo__comuta[hidden] { display: none; }
.pps-text-seo__comuta[aria-expanded="true"] .pps-text-seo__mai-mult,
.pps-text-seo__comuta[aria-expanded="false"] .pps-text-seo__mai-putin { display: none; }

/* ═══════════════════════════════════════════════════════════════════
   46. Plata cu cardul în subsol (D59, condițiile e-commerce Raiffeisen / PlatiOnline): bannerul e-commerce al băncii și siglele
   procesatorului, pe plăci albe ca insignele ANPC, numai cât cardul e disponibil (patterns/subsol.php). Bannerul se micșorează
   proporțional (cel mult 640 px pe calculator, toată lățimea pe telefon); legătura lui rămâne cea din codul oficial.
   ═══════════════════════════════════════════════════════════════════ */
.pps-subsol__plati { margin-top: 32px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.pps-subsol__plati-titlu { flex-basis: 100%; margin: 0; font-family: var(--pps-display); font-size: 13px; font-weight: 700; color: #fff; text-transform: uppercase; letter-spacing: .06em; }
.pps-subsol__plati-banca { display: block; flex: 0 1 640px; min-width: 0; padding: 4px 8px; background: #fff; border-radius: 6px; }
.pps-subsol__plati-banca img { display: block; width: 100%; height: auto; }
.pps-subsol .pps-subsol__plati-procesator { display: block; flex: 0 1 230px; width: 230px; max-width: 100%; height: auto; padding: 6px 10px; background: #fff; border-radius: 6px; box-sizing: border-box; }

/* Verified discounts and the offer fallback share a larger, dedicated sale style. */
.pps-badge.pps-badge--reducere { font-size: 16px; font-weight: 800; line-height: 1.2; }
.pps-card--produs .pps-badge-stiva .pps-badge--reducere { white-space: nowrap; }
.pps-produs__sus .onsale.pps-badge--reducere,
.pps-pret-oferta .pps-badge--reducere { font-size: 18px; padding: 6px 12px; }
.pps-pret__economie { display: none; }
.pps-produs__cumpara > .pps-pret .pps-pret__economie {
 display: block; margin-top: 6px; font-size: 18px; font-weight: 700;
 line-height: 1.4; color: var(--pps-rosu-inchis); font-variant-numeric: tabular-nums;
}
.pps-produs__cumpara > .pps-pret-oferta[hidden] { display: none; }

/* ═══════════════════════════════════════════════════════════════════
   47. Pagina „Branduri” (D91, feedback Bogdan Andronache, 29.10.2026; theme/inc/branduri.php): mărcile cu produse, ca plăci cu
   sigla (sau inițialele), numele și numărul de produse; fiecare duce la produsele mărcii. Două coloane pe telefon (412 px).
   ═══════════════════════════════════════════════════════════════════ */
.pps-branduri { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 16px; }
.pps-brand__link { display: flex; align-items: center; gap: 14px; height: 100%; box-sizing: border-box; padding: 16px; border: 1px solid var(--pps-linie); border-radius: var(--pps-raza-card); background: var(--pps-alb); color: var(--pps-ink); text-decoration: none; box-shadow: var(--pps-umbra-card); transition: border-color var(--pps-tranzitie), box-shadow var(--pps-tranzitie); }
.pps-brand__sigla { flex: none; display: grid; place-items: center; width: 56px; height: 56px; border-radius: var(--pps-raza-mic); background: var(--pps-alb); overflow: hidden; }
.pps-brand__sigla--initiale { background: var(--pps-pal); font-family: var(--pps-display); font-size: 18px; font-weight: 800; letter-spacing: .02em; color: var(--pps-ink); }
.pps-brand__img { display: block; width: 100%; height: 100%; object-fit: contain; }
.pps-brand__text { display: grid; gap: 2px; min-width: 0; }
.pps-brand__nume { font-family: var(--pps-display); font-size: var(--pps-fs-ui, .9375rem); font-weight: 700; line-height: 1.25; overflow-wrap: anywhere; }
.pps-brand__numar { font-size: var(--pps-fs-detaliu, .8125rem); line-height: 1.35; color: var(--pps-text); }
.pps-branduri__tot { margin: 32px 0 0; text-align: center; }
@media (hover: hover) { .pps-brand__link:hover { border-color: var(--pps-ink); box-shadow: var(--pps-umbra-ridicat); } }
@media (max-width: 600px) {
	.pps-branduri { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.pps-brand__link { flex-direction: column; align-items: flex-start; gap: 10px; padding: 12px; }
	.pps-brand__sigla { width: 44px; height: 44px; }
	.pps-brand__sigla--initiale { font-size: 15px; }
}
