/**
 * pps-features — stilurile componentelor proprii plugin-ului.
 *
 * Tot ce e aici e specific funcțiilor: panoul de sugestii, rândurile listei de cumpărături,
 * tabelul de comandă rapidă, overlay-ul de video, pașii de checkout, formularele.
 * Clasele de bază (pps-btn, pps-card, pps-input, pps-fisa, pps-pret) sunt ale temei și nu
 * se redefinesc aici. Se încarcă după CSS-ul temei, deci nu e nevoie de `!important`.
 */

:root {
	--pps-f-raza: var( --wp--custom--raza--card, 12px );
	--pps-f-raza-mic: var( --wp--custom--raza--mic, 6px );
	--pps-f-linie: var( --wp--preset--color--linie, #dce3ec );
	--pps-f-text: var( --wp--preset--color--text, #4a5a70 );
	--pps-f-ink: var( --wp--preset--color--bleumarin, #0c2340 );
	--pps-f-rosu: var( --wp--preset--color--rosu, #e01b22 );
	--pps-f-rosu-inchis: var( --wp--preset--color--rosu-inchis, #a9121a );
	--pps-f-verde: var( --wp--preset--color--verde, #0e7c5a );
	--pps-f-fundal: var( --wp--preset--color--fundal, #f4f7fb );
	--pps-f-alb: var( --wp--preset--color--alb, #fff );
	--pps-f-panou: var( --wp--preset--shadow--panou, 0 18px 40px rgba( 12, 35, 64, .16 ) );
	--pps-f-tranzitie: var( --wp--custom--tranzitie, 160ms cubic-bezier( .2, 0, .2, 1 ) );
}

.pps-blocat {
	overflow: hidden;
}

/* --------------------------------------------------------------------------
 * Căutare
 * ----------------------------------------------------------------------- */

.pps-cautare {
	position: relative;
	width: 100%;
}

.pps-cautare__form {
	display: flex;
	gap: 0;
	align-items: stretch;
}

.pps-cautare__form .pps-cautare__input {
	flex: 1;
	min-width: 0;
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

.pps-cautare__buton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	flex: 0 0 48px;
	border: 0;
	cursor: pointer;
	color: #fff;
	background: var( --pps-f-rosu );
	border-radius: 0 var( --pps-f-raza-mic ) var( --pps-f-raza-mic ) 0;
	transition: background var( --pps-f-tranzitie );
}

.pps-cautare__buton:focus-visible {
	background: var( --pps-f-rosu-inchis );
} @media (hover: hover) { .pps-cautare__buton:hover {
	background: var( --pps-f-rosu-inchis );
} }

.pps-cautare__buton .pps-ico {
	width: 20px;
	height: 20px;
}

.pps-cautare__panou {
	position: absolute;
	z-index: 60;
	top: calc( 100% + 6px );
	left: 0;
	right: 0;
	max-height: min( 70vh, 520px );
	overflow-y: auto;
	padding: 8px;
	background: var( --pps-f-alb );
	border: 1px solid var( --pps-f-linie );
	border-radius: var( --wp--custom--raza--mare, 18px );
	box-shadow: var( --pps-f-panou );
}

.pps-cautare__grup + .pps-cautare__grup {
	margin-top: 6px;
	padding-top: 6px;
	border-top: 1px solid var( --pps-f-linie );
}

.pps-cautare__grup-titlu {
	margin: 4px 8px 6px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var( --pps-f-text );
}

.pps-sug {
	display: flex;
	gap: 12px;
	align-items: center;
	padding: 8px;
	border-radius: var( --pps-f-raza-mic );
	color: inherit;
	text-decoration: none;
	transition: background var( --pps-f-tranzitie );
}

.pps-sug:focus-visible, .pps-sug--activ {
	background: var( --pps-f-fundal );
} @media (hover: hover) { .pps-sug:hover {
	background: var( --pps-f-fundal );
} }

/* Contrast WCAG 2.1 AA (AC-29 pe telefon): WooCommerce scrie notele mici din totalurile coșului („(fără TVA)”) cu
   #767676, iar pe telefon rândurile tabelului sunt dungate cu #f9f9f9: 4,31:1, sub pragul de 4,5:1. */
body.woocommerce-cart .cart-collaterals .cart_totals table small,
body.woocommerce-checkout .cart-collaterals .cart_totals table small {
	color: var( --pps-f-text );
}

/* Opțiunile-buton din căutarea pe tot ecranul (sugestiile rapide, „Adaugă în coș”), alese cu săgețile (#3). */
.pps-cautare__sugestie.pps-sug--activ,
.pps-sug__adauga.pps-sug--activ {
	outline: 2px solid var( --pps-f-rosu );
	outline-offset: 2px;
}

.pps-sug__poza {
	width: 48px;
	height: 48px;
	flex: 0 0 48px;
	object-fit: contain;
	background: var( --pps-f-fundal );
	border-radius: var( --pps-f-raza-mic );
}

.pps-sug__corp {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.pps-sug__titlu {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	color: var( --pps-f-ink );
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.pps-sug__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	font-size: 12px;
	color: var( --pps-f-text );
}

.pps-sug__cod {
	font-variant-numeric: tabular-nums;
}

.pps-sug__stoc {
	color: var( --pps-f-verde );
}

.pps-sug__stoc--nu {
	color: var( --pps-f-text );
}

.pps-sug__numar {
	margin-left: auto;
	font-size: 12px;
	color: var( --pps-f-text );
	white-space: nowrap;
}

.pps-sug__pret {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	text-align: right;
	white-space: nowrap;
}

.pps-sug__pret-principal {
	font-size: 15px;
	font-weight: 700;
	color: var( --pps-f-ink );
	font-variant-numeric: tabular-nums;
}

.pps-sug__pret-tva {
	font-size: 12px;
	color: var( --pps-f-text );
	font-variant-numeric: tabular-nums;
}

.pps-cautare__toate {
	display: block;
	margin-top: 6px;
	padding: 10px;
	text-align: center;
	font-weight: 600;
	color: var( --pps-f-rosu-inchis );
	border-top: 1px solid var( --pps-f-linie );
	text-decoration: none;
}

.pps-cautare__gol {
	padding: 16px 8px;
}

.pps-cautare__gol-titlu {
	margin: 0 0 4px;
	font-weight: 600;
	color: var( --pps-f-ink );
}

@media ( max-width: 560px ) {
	.pps-sug__pret {
		align-items: flex-start;
		text-align: left;
	}

	.pps-sug--produs {
		flex-wrap: wrap;
	}

	.pps-sug__pret {
		width: 100%;
		flex-direction: row;
		gap: 8px;
		align-items: baseline;
		padding-left: 60px;
	}
}

/* --------------------------------------------------------------------------
 * Buton „Adaugă în listă”
 * ----------------------------------------------------------------------- */

.pps-buton-lista {
	cursor: pointer;
}

.pps-buton-lista--activ {
	color: var( --pps-f-rosu-inchis );
	border-color: currentColor;
}

.pps-buton-lista[disabled] {
	opacity: .6;
	cursor: progress;
}

/* --------------------------------------------------------------------------
 * Lista de cumpărături
 * ----------------------------------------------------------------------- */

.pps-lista__randuri {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.pps-lista__rand {
	display: grid;
	grid-template-columns: 72px 1fr auto auto;
	gap: 16px;
	align-items: center;
	padding: 12px;
	background: var( --pps-f-alb );
	border: 1px solid var( --pps-f-linie );
	border-radius: var( --pps-f-raza );
}

.pps-lista__poza {
	width: 72px;
	height: 72px;
	object-fit: contain;
	background: var( --pps-f-fundal );
	border-radius: var( --pps-f-raza-mic );
}

.pps-lista__date {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.pps-lista__titlu {
	font-weight: 600;
	color: var( --pps-f-ink );
	text-decoration: none;
}

@media (hover: hover) { .pps-lista__titlu:hover {
	text-decoration: underline;
} }

.pps-lista__actiuni {
	display: flex;
	align-items: center;
	gap: 8px;
}

.pps-lista__sterge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1px solid var( --pps-f-linie );
	border-radius: var( --pps-f-raza-mic );
	background: transparent;
	color: var( --pps-f-text );
	cursor: pointer;
	transition: color var( --pps-f-tranzitie ), border-color var( --pps-f-tranzitie );
}

@media (hover: hover) { .pps-lista__sterge:hover {
	color: var( --pps-f-rosu-inchis );
	border-color: currentColor;
} }

.pps-lista__subsol {
	gap: 12px;
	padding-top: 16px;
	border-top: 1px solid var( --pps-f-linie );
}

/* Stepper: dacă tema nu l-a definit încă, arată corect și așa. */
.pps-lista .pps-stepper,
.pps-rapid .pps-stepper {
	display: inline-flex;
	align-items: center;
}

.pps-stepper__buton {
	width: 40px;
	height: 40px;
	border: 1px solid var( --pps-f-linie );
	background: var( --pps-f-alb );
	color: var( --pps-f-ink );
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
}

.pps-stepper__buton:first-child {
	border-radius: var( --pps-f-raza-mic ) 0 0 var( --pps-f-raza-mic );
}

.pps-stepper__buton:last-child {
	border-radius: 0 var( --pps-f-raza-mic ) var( --pps-f-raza-mic ) 0;
}

.pps-stepper__camp {
	width: 56px;
	height: 40px;
	padding: 0 4px;
	text-align: center;
	font-variant-numeric: tabular-nums;
	border: 1px solid var( --pps-f-linie );
	border-left: 0;
	border-right: 0;
	background: var( --pps-f-alb );
	color: var( --pps-f-ink );
	font-size: 16px;
	-moz-appearance: textfield;
}

.pps-stepper__camp::-webkit-outer-spin-button,
.pps-stepper__camp::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

@media ( max-width: 760px ) {
	.pps-lista__rand {
		grid-template-columns: 64px 1fr;
		grid-template-areas:
			"poza date"
			"stepper actiuni";
		gap: 12px;
	}

	.pps-lista__poza {
		grid-area: poza;
		width: 64px;
		height: 64px;
	}

	.pps-lista__date {
		grid-area: date;
	}

	.pps-lista__rand > .pps-stepper {
		grid-area: stepper;
	}

	.pps-lista__actiuni {
		grid-area: actiuni;
		justify-content: flex-end;
	}

	.pps-lista__subsol {
		flex-direction: column;
		align-items: stretch;
	}

	.pps-lista__subsol .pps-btn {
		width: 100%;
		justify-content: center;
	}
}

/* --------------------------------------------------------------------------
 * Certificate în cont
 * ----------------------------------------------------------------------- */

.pps-certificate__lista {
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.pps-certificate__rand {
	display: grid;
	grid-template-columns: 72px 1fr auto;
	gap: 16px;
	align-items: center;
	padding: 12px;
	background: var( --pps-f-alb );
	border: 1px solid var( --pps-f-linie );
	border-radius: var( --pps-f-raza );
}

.pps-certificate__poza {
	width: 72px;
	height: 72px;
	object-fit: contain;
	background: var( --pps-f-fundal );
	border-radius: var( --pps-f-raza-mic );
}

.pps-certificate__nume {
	font-weight: 600;
	color: var( --pps-f-ink );
	text-decoration: none;
}

@media ( max-width: 760px ) {
	.pps-certificate__rand {
		grid-template-columns: 56px 1fr;
	}

	.pps-certificate__poza {
		width: 56px;
		height: 56px;
	}

	.pps-certificate__actiune {
		grid-column: 1 / -1;
	}

	.pps-certificate__actiune .pps-btn {
		width: 100%;
		justify-content: center;
	}
}

/* --------------------------------------------------------------------------
 * Comandă rapidă
 * ----------------------------------------------------------------------- */

/* Fără overflow: hidden (D92): lista de sugestii a ultimului rând iese sub tabel. Colțurile antetului le rotunjește antetul. */
.pps-rapid__tabel {
	margin: 16px 0;
	border: 1px solid var( --pps-f-linie );
	border-radius: var( --pps-f-raza );
}

.pps-rapid__cap,
.pps-rapid__rand {
	display: grid;
	grid-template-columns: minmax( 140px, 1fr ) 110px minmax( 160px, 1.4fr ) 44px;
	gap: 12px;
	align-items: center;
	padding: 10px 12px;
}

.pps-rapid__cap {
	border-radius: calc( var( --pps-f-raza ) - 1px ) calc( var( --pps-f-raza ) - 1px ) 0 0;
	background: var( --wp--preset--color--bleumarin-pal, #e8eef6 );
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var( --pps-f-ink );
}

.pps-rapid__rand {
	position: relative;
}

.pps-rapid__rand + .pps-rapid__rand {
	border-top: 1px solid var( --pps-f-linie );
}

.pps-rapid__cant {
	font-variant-numeric: tabular-nums;
}

.pps-rapid__stare {
	margin: 0;
	font-size: 13px;
	color: var( --pps-f-text );
	overflow: hidden;
	text-overflow: ellipsis;
}

.pps-rapid__stare--ok {
	color: var( --pps-f-verde );
}

.pps-rapid__stare--eroare {
	color: var( --pps-f-rosu-inchis );
}

.pps-rapid__sterge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1px solid var( --pps-f-linie );
	border-radius: var( --pps-f-raza-mic );
	background: transparent;
	color: var( --pps-f-text );
	cursor: pointer;
}

.pps-rapid__actiuni {
	gap: 12px;
}

.pps-rapid__mesaj {
	min-height: 1.4em;
	margin: 12px 0 0;
	font-size: 14px;
}

.pps-rapid__mesaj--ok {
	color: var( --pps-f-verde );
}

.pps-rapid__mesaj--eroare {
	color: var( --pps-f-rosu-inchis );
}

.pps-rapid__mesaj p {
	margin: 0;
}

/* Comanda rapidă, feedbackul din 29.10 (D92): produsul ales pe rând, sugestiile câmpului de cod, lista din Excel. */
.pps-rapid__stare--produs {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	text-overflow: clip;
}

.pps-rapid__poza {
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	object-fit: contain;
	background: var( --pps-f-fundal );
	border-radius: var( --pps-f-raza-mic );
}

.pps-rapid__info {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	line-height: 1.35;
}

.pps-rapid__nume {
	font-weight: 600;
	color: var( --pps-f-ink );
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.pps-rapid__detalii {
	color: var( --pps-f-text );
}

.pps-rapid__pret {
	font-weight: 600;
	color: var( --pps-f-ink );
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.pps-rapid__detalii .pps-stoc {
	gap: 5px;
	font-size: inherit;
	white-space: nowrap;
}

.pps-rapid__detalii .pps-stoc::before {
	width: 7px;
	height: 7px;
}

.pps-rapid__problema {
	font-weight: 600;
	color: var( --pps-f-rosu-inchis );
}

.pps-rapid__sugestii {
	position: absolute;
	z-index: 30;
	left: 12px;
	width: min( 640px, calc( 100% - 24px ) );
	max-height: min( 60vh, 432px );
	overflow-y: auto;
	padding: 6px;
	background: var( --pps-f-alb );
	border: 1px solid var( --pps-f-linie );
	border-radius: var( --pps-f-raza );
	box-shadow: var( --pps-f-panou );
}

.pps-rapid__sug {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	padding: 8px;
	border-radius: var( --pps-f-raza-mic );
	font-size: 13px;
	cursor: pointer;
}

.pps-rapid__sug--activ,
.pps-rapid__sug:focus-visible {
	background: var( --pps-f-fundal );
	box-shadow: inset 0 0 0 2px var( --pps-f-ink );
}

.pps-rapid__sug:focus {
	outline: none;
}

@media (hover: hover) { .pps-rapid__sug:hover {
	background: var( --pps-f-fundal );
} }

.pps-rapid__sug .pps-rapid__nume {
	font-size: 14px;
}

.pps-rapid__sug-cod {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.pps-rapid__erori {
	margin: 6px 0 0;
	padding-left: 20px;
}

.pps-rapid__eroare-cod {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.pps-rapid__inteles {
	margin: 0 0 12px;
	font-size: 13px;
}

.pps-rapid__inteles-rezumat {
	margin: 0 0 6px;
	color: var( --pps-f-ink );
}

.pps-rapid__inteles-lista {
	max-height: 184px;
	margin: 0;
	padding: 6px 12px;
	overflow-y: auto;
	list-style: none;
	background: var( --pps-f-alb );
	border: 1px solid var( --pps-f-linie );
	border-radius: var( --pps-f-raza-mic );
	font-variant-numeric: tabular-nums;
}

.pps-rapid__inteles-lista li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 3px 0;
}

.pps-rapid__inteles-lista li + li {
	border-top: 1px solid var( --pps-f-linie );
}

.pps-rapid__inteles-cod {
	min-width: 0;
	overflow-wrap: anywhere;
}

.pps-rapid__inteles-cant {
	white-space: nowrap;
}

.pps-rapid__inteles--problema {
	color: var( --pps-f-rosu-inchis );
	font-weight: 600;
}

.pps-rapid__csv {
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid var( --pps-f-linie );
}

.pps-rapid__csv > label {
	font-weight: 600;
	color: var( --pps-f-ink );
}

.pps-rapid__csv .pps-nota {
	margin: 8px 0 0;
}

.pps-rapid__lipire {
	margin-top: 20px;
	padding: 16px;
	background: var( --pps-f-fundal );
	border-radius: var( --pps-f-raza );
}

.pps-rapid__lipire summary {
	cursor: pointer;
	font-weight: 600;
	color: var( --pps-f-ink );
}

.pps-rapid__lipire .pps-textarea {
	width: 100%;
	margin-bottom: 12px;
}

@media ( max-width: 760px ) {
	.pps-rapid__cap {
		display: none;
	}

	.pps-rapid__rand {
		grid-template-columns: 1fr 90px 44px;
		grid-template-areas:
			"cod cant sterge"
			"stare stare stare";
		row-gap: 6px;
	}

	.pps-rapid__cod {
		grid-area: cod;
	}

	.pps-rapid__cant {
		grid-area: cant;
	}

	.pps-rapid__sterge {
		grid-area: sterge;
	}

	.pps-rapid__stare {
		grid-area: stare;
	}

	.pps-rapid__actiuni {
		flex-direction: column;
		align-items: stretch;
	}

	.pps-rapid__actiuni .pps-btn {
		width: 100%;
		justify-content: center;
	}
}

/* --------------------------------------------------------------------------
 * Video de produs
 * ----------------------------------------------------------------------- */

.pps-video[data-pps-video] {
	position: relative;
	display: block;
	min-height: 0;
	margin: 0;
	background: transparent;
	border-radius: 12px;
	overflow: hidden;
	color: #18324b;
}
.pps-video[data-pps-video]::after { content: none; }
.pps-video[data-pps-video][hidden],
.pps-video[data-pps-video] [hidden] { display: none !important; }
.pps-video__surface { position: relative; aspect-ratio: 16 / 9; background: #102738; border-radius: 12px; overflow: hidden; }
.pps-video .pps-video__buton {
	position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
	width: 100%; height: 100%; margin: 0; padding: 20px; border: 0; border-radius: inherit;
	background: #102738; color: #fff; cursor: pointer; overflow: hidden;
}
.pps-video__buton::after { content: ''; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent,rgba(0,0,0,.5)); pointer-events: none; }
.pps-video .pps-video__poster-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 1; }
.pps-video__play { position: relative; z-index: 1; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: rgba(255,255,255,.95); color: #c51b28; box-shadow: 0 3px 20px rgba(0,0,0,.16); transition: transform .15s ease; }
.pps-video__play svg { width: 28px; height: 28px; }
.pps-video__cta { position: absolute; z-index: 1; bottom: 16px; left: 18px; font: 600 14px/1.4 var(--pps-font, sans-serif); color: #fff; }
.pps-video[data-pps-video] .pps-video__titlu { margin: 12px 0 0; font-size: 15px; line-height: 1.5; font-weight: 600; color: #18324b; text-shadow: none; overflow-wrap: anywhere; }
.pps-video__nota { margin: 8px 0 0; font-size: 12px; line-height: 1.45; color: #536476; }
.pps-video__player, .pps-video__cadru { position: absolute; inset: 0; width: 100%; height: 100%; }
.pps-video__cadru { background: transparent; }
.pps-video__cadru iframe, .pps-video__cadru video { display: block; width: 100%; height: 100%; border: 0; background: #102738; object-fit: contain; }
.pps-video--loading .pps-video__cadru > * { visibility: hidden; }
/* Same colour and pulse as the existing page skeleton; dimensions never change. */
.pps-video__loading, .pps-video__eroare { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 48px 20px 20px; background: var(--pps-os-media, #edf0f2); color: #18324b; text-align: center; font-size: 14px; }
.pps-video__loading { pointer-events: none; }
.pps-video__skeleton { position: absolute; inset: 0; background: var(--pps-os-culoare, #dce2e7); animation: pps-os-puls 1.8s ease-in-out infinite; }
.pps-video__loading > :not(.pps-video__skeleton) { position: relative; }
.pps-video__eroare p { margin: 0; }
.pps-video__eroare button { min-height: 44px; }
.pps-video--poster-loading .pps-video__buton { background: var(--pps-os-media, #edf0f2); }
.pps-video--poster-loading .pps-video__buton::before { content: ''; position: absolute; inset: 0; background: var(--pps-os-culoare, #dce2e7); animation: pps-os-puls 1.8s ease-in-out infinite; }
.pps-video--poster-loading .pps-video__poster-image { opacity: 0; }
.pps-video__player { z-index: 2; pointer-events: none; }
.pps-video__cadru > *, .pps-video .pps-video__inchide { pointer-events: auto; }
@media (prefers-reduced-motion: reduce) { .pps-video__skeleton, .pps-video--poster-loading .pps-video__buton::before { animation: none; } }
.pps-video .pps-video__inchide { position: absolute; z-index: 2; top: 8px; right: 8px; padding: 8px 12px; min-height: 36px; border: 0; border-radius: 6px; background: rgba(16,39,56,.9); color: #fff; font-size: 12px; cursor: pointer; }
.pps-video__acord { padding: 14px; background: #f2f5f8; color: #18324b; font-size: 14px; }
.pps-video__acord p { margin: 0 0 10px; }
.pps-video__acord button { color: #18324b; }
@media (hover: hover) { .pps-video__buton:hover .pps-video__play { transform: scale(1.08); } }
@media (prefers-reduced-motion: reduce) { .pps-video__play { transition: none; } }

/* The extra video control shares Woo's thumbnail row; native image indices stay intact. */
.woocommerce div.product div.images.pps-video-gallery { position: relative; padding-bottom: 88px; aspect-ratio: auto; }
.woocommerce div.product .pps-video-gallery .flex-control-thumbs { height: 72px; gap: 10px; }
.woocommerce div.product .pps-video-gallery .flex-control-thumbs li { flex: 0 0 72px; width: 72px; height: 72px; position: relative; }
.pps-video-gallery .pps-video-thumb button, .pps-video-gallery .pps-video-photo-thumb { display: block; position: relative; padding: 0; width: 100%; height: 100%; background: #f3f5f6; border: 1px solid #d9e1e7; border-radius: 7px; overflow: hidden; cursor: pointer; }
.pps-video-gallery .pps-video-thumb img { width: 100%; height: 100%; object-fit: cover; opacity: 1 !important; }
.pps-video-gallery .pps-video-thumb button[aria-pressed="true"] { border: 2px solid #c51b28; }
.pps-video-thumb__play { position: absolute; inset: 0; margin: auto; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: rgba(255,255,255,.96); color: #c51b28; box-shadow: 0 1px 6px rgba(0,0,0,.12); pointer-events: none; }
.pps-video-thumb__play svg { width: 17px; height: 17px; }
.pps-video-gallery > .pps-video[data-pps-video] { position: absolute; inset: 0 0 auto; height: var(--pps-video-gallery-height, 100%); z-index: 3; display: flex; flex-direction: column; border-radius: 8px; background: #fff; }
.pps-video-gallery > .pps-video .pps-video__surface { flex: 1; min-height: 0; aspect-ratio: auto; }
.pps-video-gallery > .pps-video .pps-video__titlu { flex: 0 0 auto; margin: 8px 0; }
.pps-video-gallery > .pps-video .pps-video__nota { margin: 4px 0; }
.pps-video-gallery--active > .flex-viewport, .pps-video-gallery--active > .woocommerce-product-gallery__wrapper { visibility: hidden; }
.pps-video-gallery--active .woocommerce-product-gallery__trigger { visibility: hidden; pointer-events: none; }
.pps-video-gallery--active .flex-control-thumbs img.flex-active { opacity: .5; }
@media (max-width: 759px) {
	.woocommerce.single-product div.product div.images.pps-video-gallery { padding-bottom: 66px; }
	.woocommerce.single-product div.product .pps-video-gallery .flex-control-thumbs { height: 56px; gap: 8px; }
	.woocommerce.single-product div.product .pps-video-gallery .flex-control-thumbs li { flex-basis: 56px; width: 56px; height: 56px; }
	.pps-video .pps-video__inchide { min-height: 44px; }
}

/* --------------------------------------------------------------------------
 * Checkout: pași și câmpuri de firmă
 * ----------------------------------------------------------------------- */

.pps-pasi {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	margin: 0 0 28px;
	padding: 0;
	list-style: none;
	counter-reset: pps-pas;
}

.pps-pasi__pas {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: var( --pps-f-text );
}

.pps-pasi__numar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	flex: 0 0 28px;
	border-radius: 999px;
	background: var( --wp--preset--color--bleumarin-pal, #e8eef6 );
	color: var( --pps-f-ink );
	font-weight: 700;
	font-size: 14px;
}

.pps-pasi__pas--activ {
	color: var( --pps-f-ink );
	font-weight: 600;
}

.pps-pasi__pas--activ .pps-pasi__numar {
	background: var( --pps-f-rosu );
	color: #fff;
}

.pps-camp-firma[style*="none"] {
	display: none;
}

/* --------------------------------------------------------------------------
 * Progres livrare gratuită
 * ----------------------------------------------------------------------- */

.pps-progres {
	margin: 0 0 20px;
}

.pps-progres__text {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 8px;
	font-size: 13px;
	color: var( --pps-f-text );
}

.pps-progres__bara {
	height: 8px;
	border-radius: 999px;
	background: var( --wp--preset--color--bleumarin-pal, #e8eef6 );
	overflow: hidden;
}

.pps-progres__umplere {
	display: block;
	height: 100%;
	background: var( --pps-f-verde );
	transition: width 300ms ease;
}

@media ( prefers-reduced-motion: reduce ) {
	.pps-progres__umplere {
		transition: none;
	}
}

/* --------------------------------------------------------------------------
 * Formulare
 * ----------------------------------------------------------------------- */

.pps-formular .pps-input,
.pps-formular .pps-textarea {
	width: 100%;
}

.pps-camp--acord .pps-eticheta {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.5;
}

.pps-formular__mesaj {
	min-height: 1.4em;
	margin: 0;
	font-size: 14px;
}

.pps-formular__mesaj--ok {
	color: var( --pps-f-verde );
}

.pps-formular__mesaj--eroare {
	color: var( --pps-f-rosu-inchis );
}

.pps-formular .pps-eroare[hidden] {
	display: none;
}

/* Ultimul plan de rezervă: dacă tema nu a definit încă utilitarele de bază,
   formularele și listele plugin-ului rămân citibile. */
.pps-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect( 0 0 0 0 );
	white-space: nowrap;
	border: 0;
}

/* Butonul de listă adăugat în subsolul cardului de produs al temei. */
.pps-card--produs .pps-card__subsol .pps-buton-lista {
	width: 100%;
	justify-content: center;
	margin-top: 8px;
}

/* Butonul de listă de sub formularul de coș, pe pagina de produs. */
.pps-buton-lista--singur {
	margin-top: 12px;
}

/* ── Coș sub comanda minimă ───────────────────────────────────────── */
.pps-prag-minim { border: 1px solid var(--pps-linie, #dce3ec); border-left: 3px solid var(--pps-rosu, #e01b22); background: var(--pps-fundal, #f4f7fb); border-radius: 8px; padding: 14px 16px; margin: 0 0 14px; }
.pps-prag-minim__titlu { margin: 0 0 4px; font-weight: 700; color: var(--pps-ink, #0c2340); }
.pps-prag-minim__text { margin: 0; font-size: 14px; color: var(--pps-text, #4a5a70); }
.pps-btn--blocat { opacity: .5; cursor: not-allowed; pointer-events: none; width: 100%; justify-content: center; margin-bottom: 8px; }
.pps-prag-minim__inapoi { width: 100%; justify-content: center; }

/* Feedback adjacent to its product; an empty live region occupies no space. */
.pps-lista-feedback { margin: 0; font-size: 13px; line-height: 1.45; color: var(--pps-f-verde); overflow-wrap: anywhere; }
.pps-lista-feedback:not(:empty) { margin-top: 6px; }
.pps-lista-feedback--eroare { color: #a9121a; }

/* --------------------------------------------------------------------------
 * Scheletele zonelor care se încarcă separat (25.09.2026, runda „navigare-instant”)
 * Barele (`.pps-os`) și câmpurile-schelet (`.pps-os-input`) sunt în tema (style.css 38).
 * ----------------------------------------------------------------------- */

/* Căutarea: rândurile-schelet au înălțimea rândurilor reale; rezultatele vechi rămân, estompate, până vin cele noi. */
.pps-sug--schelet .pps-sug__poza { display: block; background: var( --pps-os-media, #eaeff5 ); animation: pps-os-puls 1.8s ease-in-out infinite; }
.pps-sug--schelet .pps-sug__meta .pps-os { width: var( --l ); }
.pps-sug-rand > .pps-sug__adauga.pps-os-input { display: block; width: 44px; height: 44px; flex: none; border-radius: var( --pps-f-raza-mic ); }
.pps-cautare__panou[aria-busy="true"] > :not( .pps-cautare__grup--schelet ) { opacity: .55; transition: opacity .15s ease; }

/* Lista mea: rândurile-schelet până vine lista (textul „Se încarcă lista.” nu mai clipește înaintea lor). */
.pps-lista__continut > .pps-nota:only-child { visibility: hidden; min-height: 96px; }
.pps-lista__poza.pps-os-media { display: block; background: var( --pps-os-media, #eaeff5 ); animation: pps-os-puls 1.8s ease-in-out infinite; }
.pps-lista__cant-schelet { display: block; width: 136px; height: 40px; border-radius: var( --pps-f-raza-mic ); }
.pps-lista__randuri--schelet .pps-lista__titlu { display: block; }

@media ( prefers-reduced-motion: reduce ) {
	.pps-sug--schelet .pps-sug__poza, .pps-lista__poza.pps-os-media { animation: pps-os-puls 2.4s ease-in-out infinite !important; }
	.pps-cautare__panou[aria-busy="true"] > :not( .pps-cautare__grup--schelet ) { transition: none; }
}

/* Lista mea pe telefon: cantitatea stătea în coloana pozei (64 px), cu butoanele „−” și „+” de 23 px și „+” ieșit din
   casetă. Rândul de jos e acum cantitatea în stânga și acțiunile în dreapta, pe toată lățimea cardului; sub 380 px,
   acțiunile coboară pe rândul lor. */
@media ( max-width: 760px ) {
	.pps-lista__rand > .pps-stepper { grid-column: 1 / -1; grid-row: 2; justify-self: start; }
	.pps-lista__rand > .pps-lista__actiuni { grid-column: 1 / -1; grid-row: 2; justify-self: end; }
}
@media ( max-width: 380px ) {
	.pps-lista__rand > .pps-lista__actiuni { grid-row: 3; }
}

/* Rândurile de produs din sugestii au aceeași înălțime ca rândurile-schelet (SCH-02, 25.09.2026): în lista de pe calculator
   numele stă pe un rând (tăiat cu „…”; numele întreg e pe fișă și în rezultate), pe tot ecranul rezervă două rânduri. */
.pps-cautare:not(.pps-cautare--ecran) .pps-sug--produs .pps-sug__titlu { -webkit-line-clamp: 1; }
.pps-cautare--ecran .pps-sug--produs .pps-sug__titlu { min-height: calc( 2 * 1.3em ); }

/* Lista mea: pe telefon numele rezervă două rânduri, ca rândul-schelet (SCH-03); pe calculator scheletul are un rând. */
@media ( max-width: 760px ) {
	.pps-lista__rand .pps-lista__titlu { min-height: 2lh; }
}
@media ( min-width: 761px ) {
	.pps-lista__randuri--schelet .pps-os-mobil { display: none; }
}

/* Runda v2, reparații 2 (CLS-R2-01): „Lista mea” pentru vizitator. Serverul tipărește, ascunse, starea goală, rândul-schelet
   și bara de acțiuni; scriptul de lângă container arată, înainte de prima afișare, ce se potrivește cu lista din browser. */
[data-pps-lista-continut] [hidden] { display: none !important; }
/* Caseta CSV a comenzii rapide vine de la server (CLS-R2-04); fără JavaScript nu face nimic, deci nu se afișează. */
@media (scripting: none) { .pps-rapid__csv { display: none; } }
/* Comanda rapidă: locul stării rezervat cât rândul are un cod (CLS-R2-05); înălțimea scheletului cu două bare. Runda v2,
   reparații 3 (SCH-R3-03): la toate lățimile, nu doar pe telefon. Pe calculator starea scurtă („Codul nu există în
   catalog”, un nume scurt) apărea centrată, cu 10 px mai jos decât prima bară; acum textul începe unde era bara. */
.pps-rapid__rand--cod .pps-rapid__stare { min-height: 43px; }

/* --------------------------------------------------------------------------
 * Alegerea listei (13.10.2026): clientul cu mai multe liste bifează în care listă intră produsul.
 * Panoul stă în body, poziționat sub buton; sub antetul lipicios (60), peste filtrele lipicioase (50).
 * ----------------------------------------------------------------------- */

.pps-lista-alege {
	position: absolute; z-index: 55; box-sizing: border-box;
	width: 248px; max-width: calc(100vw - 16px); padding: 10px 6px 6px;
	background: var(--pps-alb, #fff); color: var(--pps-ink, #0c2340);
	border: 1px solid var(--pps-linie, #dce3ec); border-radius: var(--pps-raza-card, 12px);
	box-shadow: var(--pps-umbra-panou, 0 18px 44px -14px rgba(12, 35, 64, .24));
	font-size: 14px; line-height: 1.35;
}
.pps-lista-alege__titlu { margin: 0 8px 4px; font-size: 13px; font-weight: 700; }
/* Două clase: `.woocommerce-page label` (margin-bottom .7em) altfel depărta rândurile. */
.pps-lista-alege .pps-lista-alege__rand {
	display: flex; align-items: center; gap: 10px; min-height: 44px; margin: 0; padding: 0 8px;
	border-radius: var(--pps-raza-mic, 6px); cursor: pointer;
}
@media (hover: hover) { .pps-lista-alege__rand:hover { background: var(--pps-pal, #e8eef6); } }
.pps-lista-alege__rand input { flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--pps-ink, #0c2340); cursor: pointer; }
.pps-lista-alege__rand[aria-busy="true"] { opacity: .6; cursor: progress; }
.pps-lista-alege__nume { overflow-wrap: anywhere; }
.pps-lista-alege__link {
	display: block; margin-top: 4px; padding: 10px 8px 6px; border-top: 1px solid var(--pps-linie, #dce3ec);
	color: var(--pps-ink, #0c2340); font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 2px;
}
