/*--------------------------------------------------------------
Yamato Romania — Homepage

Se încarcă doar pe front page (vezi yamato_romania_scripts() din functions.php).
Depinde de style.css pentru variabilele globale --yamato-*.

>>> CUPRINS:
# Hero slider
# Valori brand (Fiabilitate / Durabilitate / Rezistență)
# Din fabrică (text + indicatori, film)
# Produse carusel (carduri 3D + feed vertical pe mobil)
# Parteneri (banner „Devino partener”)
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Hero slider
--------------------------------------------------------------*/
#hero-slider {
	--hs-bg: var(--yamato-paper);
	--hs-surface: var(--yamato-surface);
	--hs-ink: var(--yamato-ink);
	--hs-muted: var(--yamato-muted);
	--hs-accent: var(--yamato-red);
	--hs-line: var(--yamato-line);
	--hs-panel: rgba(255, 255, 255, 0.86);
	--hs-dot: #cfcac5;

	position: relative;
	width: 100%;
	background-color: var(--hs-bg);
}

/* Slide-urile stau suprapuse în aceeași celulă de grid: înălțimea urmează
   cel mai înalt slide, fără position absolute pe mobil. */
.hs-track {
	display: grid;
}

.hs-slide {
	grid-area: 1 / 1;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.6s ease, visibility 0s linear 0.6s;
}

.hs-slide.is-active {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.6s ease, visibility 0s;
}

/* Mobil: imaginea sus, panoul dedesubt */
.hs-slide-bg {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.hs-slide-inner {
	padding: 1.5rem 1.25em 0;
}

.hs-panel {
	max-width: 36rem;
}

.hs-kicker {
	margin: 0 0 0.6rem;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--hs-accent);
}

.hs-title {
	margin: 0;
	font-size: clamp(1.6rem, 6vw, 2.15rem);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--hs-ink);
}

.hs-text {
	margin: 0.75rem 0 0;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--hs-muted);
}

.hs-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-top: 1.35rem;
}

#hero-slider .btn--outline {
	border-color: var(--hs-line);
}

#hero-slider .btn--outline:hover,
#hero-slider .btn--outline:focus {
	border-color: var(--hs-ink);
}

/* Controale — liniuțe stânga, săgeți dreapta */
.hs-controls-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 1.25rem 1.25em 1.5rem;
}

.hs-dots {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

/* Bara vizibilă are 4px; padding-ul transparent mărește zona de click */
.hs-dot {
	width: 14px;
	height: 20px;
	padding: 8px 0;
	border: 0;
	border-radius: 0;
	background-color: var(--hs-dot);
	background-clip: content-box;
	cursor: pointer;
	transition: width 0.3s ease, background-color 0.3s ease;
}

.hs-dot.is-active {
	width: 34px;
	background-color: var(--hs-accent);
}

.hs-arrows {
	display: flex;
	gap: 0.5rem;
}

.hs-arrow {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid var(--hs-line);
	border-radius: 0;
	background-color: var(--hs-surface);
	color: var(--hs-ink);
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.hs-arrow:hover,
.hs-arrow:focus-visible {
	border-color: var(--hs-ink);
	background-color: var(--hs-ink);
	color: var(--hs-surface);
}

@media (prefers-reduced-motion: reduce) {
	.hs-slide,
	.hs-slide.is-active,
	.hs-dot {
		transition: none;
	}
}

@media screen and (min-width: 1024px) {
	#hero-slider {
		--hs-dot: rgba(255, 255, 255, 0.85);
	}

	/* Desktop: raport fix 8:3, egal cu cel al pozei (2560×960), deci imaginea nu se taie
	   pe nicio lățime de ecran. Panoul translucid stă peste ea. */
	.hs-slide {
		position: relative;
		aspect-ratio: 8 / 3;
	}

	.hs-slide-bg {
		position: absolute;
		inset: 0;
		height: 100%;
		aspect-ratio: auto;
	}

	.hs-slide-inner {
		position: relative;
		display: flex;
		align-items: center;
		height: 100%;
		max-width: var(--container-max);
		margin: 0 auto;
		padding: 0 1.25em 3rem;
	}

	.hs-panel {
		max-width: 27rem;
		padding: 1.75rem 1.75rem 1.9rem;
		background-color: var(--hs-panel);
		-webkit-backdrop-filter: blur(6px);
		backdrop-filter: blur(6px);
	}

	.hs-title {
		font-size: clamp(1.75rem, 2.2vw, 2.15rem);
	}

	.hs-controls {
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		pointer-events: none;
	}

	.hs-controls-inner {
		padding: 0 1.25em 1.75rem;
	}

	.hs-dots,
	.hs-arrows {
		pointer-events: auto;
	}

	.hs-arrow {
		border-color: transparent;
	}
}

/*--------------------------------------------------------------
# Valori brand
--------------------------------------------------------------*/

/* Variabilele sunt scopate pe secțiune: se schimbă tema secțiunii
   dintr-un singur loc, fără să atingă restul paginii. */
#valori-brand {
	--vb-bg: var(--yamato-paper);
	--vb-surface: var(--yamato-surface);
	--vb-ink: var(--yamato-ink);
	--vb-muted: var(--yamato-muted);
	--vb-accent: var(--yamato-red);
	--vb-ring: #d9d5d1;
	--vb-shadow: 0 12px 32px rgba(28, 26, 25, 0.07);

	width: 100%;
	padding: 3.5rem 0;
	background-color: var(--vb-bg);
}

.vb-inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 1.25em;
}

/* Head — kicker + titlu + intro */
.vb-kicker {
	display: flex;
	align-items: center;
	gap: 0.85em;
	margin: 0 0 1.25rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--vb-ink);
}

.vb-kicker::before {
	content: "";
	flex: 0 0 auto;
	width: 34px;
	height: 2px;
	background-color: var(--vb-accent);
}

.vb-head {
	margin-bottom: 2.5rem;
}

.vb-head-grid {
	display: grid;
	gap: 1.5rem;
}

.vb-title {
	margin: 0;
	font-size: clamp(1.9rem, 5vw, 2.6rem);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -0.015em;
	color: var(--vb-ink);
}

.vb-intro {
	margin: 0;
	max-width: 46ch;
	font-size: 0.9375rem;
	line-height: 1.75;
	color: var(--vb-muted);
}

/* Carduri. minmax(0, 1fr): un cuvânt lung nu poate lărgi coloana peste ecran. */
.vb-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.25rem;
}

/* Cardul e container, ca titlul să se poată dimensiona după lățimea cardului (unități cqi) */
.vb-card {
	container-type: inline-size;
	display: flex;
	flex-direction: column;
	padding: 1.1rem 1.5rem 1.5rem;
	background-color: var(--vb-surface);
	box-shadow: var(--vb-shadow);
}

.vb-card-tag {
	margin: 0 0 0.5rem;
	text-align: right;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--vb-muted);
}

.vb-card-head {
	display: flex;
	align-items: center;
	gap: 1.1rem;
}

/* Cerc punctat exterior + disc plin interior, dintr-un singur element */
.vb-badge {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	padding: 8px;
	border: 1px dashed var(--vb-ring);
	border-radius: 50%;
	background-color: var(--vb-bg);
	background-clip: content-box;
	color: var(--vb-accent);
}

.vb-badge svg {
	width: 30px;
	height: 30px;
}

/* Mărimea urmează lățimea cardului, ca cele mai lungi cuvinte (ΑΝΘΕΚΤΙΚΟΤΗΤΑ, ДЪЛГОТРАЙНОСТ)
   să încapă lângă iconiță. Ruperea cuvântului rămâne doar ca plasă de siguranță pe ecrane foarte înguste. */
.vb-card-title {
	min-width: 0;
	margin: 0;
	font-size: clamp(1rem, 6cqi, 1.6rem);
	overflow-wrap: break-word;
	-webkit-hyphens: auto;
	hyphens: auto;
	font-weight: 700;
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--vb-ink);
}

.vb-card-lead {
	margin: 1.75rem 0 0;
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.45;
	color: var(--vb-accent);
}

.vb-card-text {
	margin: 1.25rem 0 1.75rem;
	font-size: 0.875rem;
	line-height: 1.75;
	color: var(--vb-muted);
}

/* Valoarea evidențiată — margin-top: auto o ține la baza cardului */
.vb-metric {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: auto 0 0;
	padding: 1rem;
	background-color: var(--vb-bg);
}

.vb-metric dt {
	font-size: 0.6875rem;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--vb-muted);
}

.vb-metric dd {
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.3;
	text-align: right;
	color: var(--vb-ink);
}

/* Footer — semnătură brand + CTA */
.vb-foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.25rem;
	margin-top: 2.5rem;
}

.vb-foot-brand {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin: 0 auto 0 0;
}

.vb-foot-name {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--vb-ink);
}

.vb-foot-name::after {
	content: "";
	width: 30px;
	height: 2px;
	background-color: var(--vb-accent);
}

.vb-foot-claim {
	font-size: 0.875rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--vb-muted);
}

@media screen and (min-width: 1024px) {
	#valori-brand {
		padding: 5.5rem 0;
	}

	.vb-head {
		margin-bottom: 3.5rem;
	}

	.vb-head-grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: end;
		gap: 3rem;
	}

	.vb-intro {
		justify-self: end;
	}

	.vb-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.5rem;
	}

	.vb-foot {
		margin-top: 3.5rem;
	}

	.vb-foot-name {
		font-size: 1.6rem;
		gap: 1.25rem;
	}

	.vb-foot-name::after {
		width: 34px;
	}

	.vb-foot-claim {
		font-size: 1.0625rem;
	}
}

/*--------------------------------------------------------------
# Din fabrică
--------------------------------------------------------------*/
#fabrica-video {
	--fv-bg: var(--yamato-surface);
	--fv-surface: var(--yamato-surface);
	--fv-ink: var(--yamato-ink);
	--fv-muted: var(--yamato-muted);
	--fv-accent: var(--yamato-red);
	--fv-accent-hover: var(--yamato-red-hover);
	--fv-line: var(--yamato-line);
	--fv-shadow: 0 24px 48px rgba(28, 26, 25, 0.14);

	width: 100%;
	padding: 3.5rem 0 4rem;
	background-color: var(--fv-bg);
}

.fv-inner {
	display: grid;
	gap: 3rem;
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 1.25em;
}

.fv-kicker {
	display: flex;
	align-items: center;
	gap: 0.85em;
	margin: 0 0 1.25rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--fv-ink);
}

.fv-kicker::before {
	content: "";
	flex: 0 0 auto;
	width: 34px;
	height: 2px;
	background-color: var(--fv-accent);
}

.fv-title {
	margin: 0;
	font-size: clamp(2rem, 5.5vw, 3.1rem);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.02em;
	color: var(--fv-ink);
}

.fv-text {
	max-width: 48ch;
	margin: 1.25rem 0 0;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--fv-muted);
}

.fv-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-top: 1.75rem;
}

/* Indicatori — cifra mare deasupra, eticheta dedesubt (în HTML eticheta e prima, pentru <dl>) */
.fv-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem 2.75rem;
	margin: 2rem 0 0;
	padding-top: 1.75rem;
	border-top: 1px solid var(--fv-line);
}

.fv-stat {
	display: flex;
	flex-direction: column-reverse;
}

.fv-stat dd {
	margin: 0;
	font-size: clamp(1.6rem, 4vw, 2rem);
	font-weight: 700;
	line-height: 1;
	color: var(--fv-accent);
}

.fv-stat dt {
	margin-top: 0.4rem;
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.4;
	color: var(--fv-muted);
}

/* Film — ramă albă cu umbră și colțuri roșii sus-stânga / jos-dreapta.
   Colțurile ies doar 4px în afara ramei, sub marginea laterală a paginii, deci nu creează scroll orizontal. */
.fv-frame {
	position: relative;
	padding: 5px;
	background-color: var(--fv-surface);
	box-shadow: var(--fv-shadow);
}

.fv-frame::before,
.fv-frame::after {
	content: "";
	position: absolute;
	width: 72px;
	height: 72px;
	pointer-events: none;
}

.fv-frame::before {
	top: -4px;
	left: -4px;
	border-top: 4px solid var(--fv-accent);
	border-left: 4px solid var(--fv-accent);
}

.fv-frame::after {
	right: -4px;
	bottom: -4px;
	border-right: 4px solid var(--fv-accent);
	border-bottom: 4px solid var(--fv-accent);
}

.fv-video {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	background-color: var(--fv-ink);
}

/* Butonul mare de play, cu un inel roșu care pulsează */
.fv-play {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	width: 88px;
	height: 88px;
	margin: auto;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: var(--fv-accent);
	box-shadow: 0 12px 30px rgba(235, 25, 35, 0.35);
	cursor: pointer;
	transition: transform 0.2s ease, background-color 0.2s ease, opacity 0.2s ease;
}

.fv-play::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background-color: var(--fv-accent);
	opacity: 0.35;
	animation: fv-pulse 2s ease-out infinite;
}

.fv-play:hover,
.fv-play:focus-visible {
	background-color: var(--fv-accent-hover);
	transform: scale(1.06);
}

.fv-play:focus-visible {
	outline: 3px solid var(--fv-surface);
	outline-offset: 4px;
}

/* Triunghi alb, ușor împins spre dreapta ca să pară centrat optic */
.fv-play-icon {
	position: relative;
	width: 0;
	height: 0;
	margin-left: 6px;
	border-style: solid;
	border-width: 15px 0 15px 25px;
	border-color: transparent transparent transparent #fff;
}

/* Două bare albe; lățimea include bordurile, spațiul dintre ele e ce rămâne la mijloc */
.fv-pause-icon {
	position: relative;
	display: none;
	width: 26px;
	height: 30px;
	border-right: 9px solid #fff;
	border-left: 9px solid #fff;
}

/* Cât timp filmul merge: butonul e ascuns, devine semn de pauză și apare doar la hover */
.fv-frame.is-playing .fv-play {
	opacity: 0;
	pointer-events: none;
}

.fv-frame.is-playing .fv-play::before {
	animation: none;
	opacity: 0;
}

.fv-frame.is-playing .fv-play-icon {
	display: none;
}

.fv-frame.is-playing .fv-pause-icon {
	display: block;
}

.fv-frame.is-playing .fv-play:focus-visible {
	opacity: 1;
	pointer-events: auto;
}

/* Doar pe dispozitive cu mouse; pe touch, hover-ul „lipicios” ar ține butonul peste film */
@media (hover: hover) and (pointer: fine) {
	.fv-frame.is-playing:hover .fv-play {
		opacity: 1;
		pointer-events: auto;
	}
}

@keyframes fv-pulse {
	from {
		transform: scale(1);
		opacity: 0.35;
	}

	to {
		transform: scale(1.6);
		opacity: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fv-play::before {
		animation: none;
	}
}

@media screen and (min-width: 1024px) {
	#fabrica-video {
		padding: 5.5rem 0 6rem;
	}

	.fv-inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
		align-items: center;
		gap: 4rem;
	}

	.fv-frame {
		padding: 10px;
	}

	.fv-play {
		width: 104px;
		height: 104px;
	}

	.fv-play-icon {
		margin-left: 8px;
		border-width: 18px 0 18px 30px;
	}

	.fv-pause-icon {
		width: 32px;
		height: 36px;
		border-right-width: 11px;
		border-left-width: 11px;
	}
}

/*--------------------------------------------------------------
# Produse carusel
--------------------------------------------------------------*/
#produse-carusel {
	--pc-bg: var(--yamato-paper);
	--pc-surface: var(--yamato-surface);
	--pc-ink: var(--yamato-ink);
	--pc-muted: var(--yamato-muted);
	--pc-accent: var(--yamato-red);
	--pc-line: var(--yamato-line);
	--pc-media-bg: var(--yamato-surface);
	--pc-inactive-bg: var(--yamato-line);
	--pc-shadow: 0 16px 32px rgba(28, 26, 25, 0.12);
	--pc-feed-bg: var(--yamato-ink);
	--pc-card-w: min(78vw, 320px);

	width: 100%;
	padding: 3.5rem 0 0;
	overflow: hidden;
	background-color: var(--pc-bg);
}

/* Head — același model ca la Valori (etichetă + titlu, aliniate la stânga), fără intro */
.pc-head {
	max-width: var(--container-max);
	margin: 0 auto 1rem;
	padding: 0 1.25em;
}

.pc-kicker {
	display: flex;
	align-items: center;
	gap: 0.85em;
	margin: 0 0 1.25rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pc-ink);
}

.pc-kicker::before {
	content: "";
	flex: 0 0 auto;
	width: 34px;
	height: 2px;
	background-color: var(--pc-accent);
}

.pc-title {
	margin: 0;
	font-size: clamp(1.9rem, 5vw, 2.6rem);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -0.015em;
	color: var(--pc-ink);
}

/* Rândul de carduri. Padding-ul lateral lasă primul și ultimul card să ajungă în centru.
   Padding-ul de jos (3.5rem) e spațiul pentru umbră: zona de scroll taie tot ce iese din ea.
   Mărimea/rotația fiecărui card sunt puse din JS pe .pc-card-inner. */
.pc-track {
	position: relative;
	display: flex;
	align-items: stretch;
	gap: 1.25rem;
	padding: 1rem calc(50% - var(--pc-card-w) / 2) 3.5rem;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	/* z-index-urile cardurilor (până la 100, din js/produse-carusel.js) rămân în interiorul rândului,
	   altfel cardul din centru trece peste header-ul lipit (care are tot z-index 100). */
	isolation: isolate;
}

.pc-track::-webkit-scrollbar {
	display: none;
}

.pc-track:focus-visible {
	outline: 2px solid var(--pc-accent);
	outline-offset: -2px;
}

.pc-track.is-dragging {
	scroll-snap-type: none;
	cursor: grabbing;
}

.pc-card {
	position: relative;
	flex: 0 0 var(--pc-card-w);
	scroll-snap-align: center;
}

/* Card în stilul celor de la Valori: colțuri drepte, fără chenar, doar umbră */
.pc-card-inner {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background-color: var(--pc-surface);
	box-shadow: var(--pc-shadow);
	will-change: transform;
}

.pc-card:not(.is-active) .pc-card-inner {
	cursor: pointer;
}

/* 5:3, ca pozele de produs (900 × 540); „contain” le arată întregi, fără tăiere */
.pc-card-media {
	aspect-ratio: 5 / 3;
	padding: 1.5rem 1.5rem 0;
	background-color: var(--pc-media-bg);
}

.pc-card-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	-webkit-user-drag: none;
}

.pc-card-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 1.25rem 1.5rem 0;
}

.pc-card-name {
	margin: 0 0 0.85rem;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.25;
	color: var(--pc-ink);
}

.pc-card-points {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pc-card-points li {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--pc-muted);
}

/* Bifă roșie desenată din borduri */
.pc-card-points li::before {
	content: "";
	flex: 0 0 auto;
	width: 0.7em;
	height: 0.38em;
	margin-top: 0.4em;
	border-bottom: 2px solid var(--pc-accent);
	border-left: 2px solid var(--pc-accent);
	transform: rotate(-45deg);
}

/* Butoanele stau jos; „Vezi detalii” aliniat la stânga, CTA-ul ocupă toată lățimea cardului */
.pc-card-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.85rem;
	margin-top: auto;
	padding-top: 1.25rem;
}

a.pc-details {
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--pc-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

a.pc-details:hover,
a.pc-details:focus {
	color: var(--pc-accent);
}

/* Iese din padding-ul lateral al cardului (1.5rem) ca să ajungă de la o margine la alta */
.pc-cta.btn {
	width: calc(100% + 3rem);
	margin: 0 -1.5rem;
	padding: 0.95rem 1rem;
	border-radius: 0;
	font-size: 1rem;
	transition: background-color 0.35s ease 0.1s, border-color 0.35s ease 0.1s, color 0.35s ease 0.1s;
}

/* CTA-ul e roșu doar pe cardul din centru; pe celelalte e gri deschis, ca un buton inactiv.
   Selectorul prinde doar cardurile din rând, nu și copiile din feed-ul de pe mobil. */
.pc-card:not(.is-active) .pc-cta.btn {
	border-color: var(--pc-inactive-bg);
	background-color: var(--pc-inactive-bg);
	color: var(--pc-muted);
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

@media (prefers-reduced-motion: reduce) {
	.pc-cta.btn,
	.pc-card:not(.is-active) .pc-cta.btn {
		transition: none;
	}
}

/* Feed vertical pe tot ecranul (mobil) */
.pc-feed {
	width: 100%;
	max-width: 100%;
	height: 100%;
	max-height: 100%;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 0;
	background-color: var(--pc-feed-bg);
	color: var(--pc-ink);
}

.pc-feed::backdrop {
	background-color: rgba(28, 26, 25, 1);
}

.pc-feed-close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.92);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
	color: var(--pc-ink);
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
}

.pc-feed-list {
	height: 100%;
	overflow-y: auto;
	overscroll-behavior: contain;
	scroll-snap-type: y mandatory;
	scrollbar-width: none;
}

.pc-feed-list::-webkit-scrollbar {
	display: none;
}

/* Un card = un ecran; scroll-snap-stop oprește la fiecare card, ca la TikTok */
.pc-feed-item {
	height: 100%;
	padding: 0.75rem;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

.pc-feed-item .pc-card-inner {
	box-shadow: none;
	cursor: auto;
}

/* În feed, poza ocupă tot spațiul rămas deasupra textului */
.pc-feed-item .pc-card-media {
	flex: 1 1 0;
	min-height: 0;
	aspect-ratio: auto;
}

.pc-feed-item .pc-card-body {
	flex: 0 0 auto;
}

html.pc-feed-open {
	overflow: hidden;
}

@media (hover: hover) and (pointer: fine) {
	.pc-track {
		cursor: grab;
		-webkit-user-select: none;
		user-select: none;
	}
}

@media screen and (min-width: 1024px) {
	#produse-carusel {
		--pc-card-w: clamp(280px, 24vw, 360px);

		padding: 5.5rem 0 0;
	}

	.pc-head {
		margin-bottom: 1.5rem;
	}

	.pc-track {
		padding-top: 1.5rem;
	}
}

/*--------------------------------------------------------------
# Parteneri
--------------------------------------------------------------*/
#parteneri-cta {
	--pt-ink: var(--yamato-ink);
	--pt-accent: var(--yamato-red);
	--pt-light: var(--yamato-surface);
	--pt-text: rgba(255, 255, 255, 0.8);
	/* Mobil: strat uniform, textul ocupă toată lățimea */
	--pt-overlay: linear-gradient(0deg, rgba(28, 26, 25, 0.86), rgba(28, 26, 25, 0.86));

	position: relative;
	width: 100%;
	overflow: hidden;
	background-color: var(--pt-ink);
	color: var(--pt-light);
}

/* Poza desaturată, ca albastrul puternic să nu se bată cu paleta Yamato */
.pt-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 55% center;
	filter: saturate(0.45);
}

#parteneri-cta::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--pt-overlay);
}

.pt-inner {
	position: relative;
	z-index: 1;
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 4rem 1.25em;
}

.pt-content {
	max-width: 34rem;
}

.pt-kicker {
	display: flex;
	align-items: center;
	gap: 0.85em;
	margin: 0 0 1.25rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pt-light);
}

.pt-kicker::before {
	content: "";
	flex: 0 0 auto;
	width: 34px;
	height: 2px;
	background-color: var(--pt-accent);
}

.pt-title {
	margin: 0;
	font-size: clamp(1.9rem, 5vw, 2.8rem);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -0.015em;
	color: var(--pt-light);
}

.pt-text {
	margin: 1rem 0 0;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--pt-text);
}

.pt-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-top: 2rem;
}

@media screen and (min-width: 1024px) {
	/* Desktop: întunecat în stânga, sub text; strângerea de mână din dreapta rămâne vizibilă */
	#parteneri-cta {
		--pt-overlay: linear-gradient(90deg, rgba(28, 26, 25, 0.94) 0%, rgba(28, 26, 25, 0.82) 38%, rgba(28, 26, 25, 0.35) 100%);
	}

	.pt-inner {
		padding-top: 6.5rem;
		padding-bottom: 6.5rem;
	}
}
