/* ==========================================================================
   Pagini SEO: categorie și categorie × oraș
   ========================================================================== */

.jp-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--jp-s2);
	margin-bottom: var(--jp-s4);
	font-size: var(--jp-fs-caption);
	color: var(--jp-ink-500);
}

.jp-breadcrumbs a {
	color: var(--jp-ink-500);
	text-decoration: none;
}

.jp-breadcrumbs a:hover { color: var(--jp-primary-600); }

.jp-breadcrumbs [aria-current="page"] {
	color: var(--jp-ink-700);
	font-weight: 600;
}

.jp-catpage__head {
	max-width: var(--jp-measure);
	margin-bottom: var(--jp-s6);
}

/* ---------- Copertă (poză de fundal, per vertical de categorie) ---------- */
.jp-catpage--cover {
	position: relative;
	overflow: hidden;
	padding-top: var(--jp-s8);
	padding-bottom: var(--jp-s7);
}

.jp-catpage__cover {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.jp-catpage__cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.jp-catpage__cover::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(16, 24, 40, .78) 0%, rgba(16, 24, 40, .55) 60%, rgba(16, 24, 40, .82) 100%);
}

.jp-catpage--cover .jp-container {
	position: relative;
	z-index: 1;
}

.jp-catpage--cover .jp-breadcrumbs a,
.jp-catpage--cover .jp-breadcrumbs span:not([aria-hidden]) {
	color: var(--jp-ink-100);
}

.jp-catpage--cover .jp-breadcrumbs [aria-current="page"] {
	color: var(--jp-white);
}

.jp-catpage--cover .jp-catpage__title {
	color: var(--jp-white);
}

.jp-catpage--cover .jp-catpage__lead,
.jp-catpage--cover .jp-catpage__description {
	color: var(--jp-ink-100);
}

/* Bug real găsit 2026-09-16 (verificare vizuală): linkul pilon nou adăugat pe
   pagina de oraș moștenea `--jp-primary-600`, ilizibil peste poza de fundal
   întunecată — aceeași regulă de contrast ca lead/description de mai sus. */
.jp-catpage--cover .jp-catpage__pillar-link .jp-link-arrow {
	color: var(--jp-ink-100);
}

.jp-catpage--cover .jp-catpage__pillar-link .jp-link-arrow:hover {
	color: var(--jp-white);
}

.jp-catpage__title {
	margin: 0 0 var(--jp-s3);
	font-family: var(--jp-font-heading);
	font-size: var(--jp-fs-h1);
	font-weight: 800;
	line-height: var(--jp-lh-tight);
	color: var(--jp-ink-900);
}

.jp-catpage__lead {
	margin: 0 0 var(--jp-s5);
	color: var(--jp-ink-500);
	font-size: var(--jp-fs-body-l);
}

.jp-catpage__description {
	margin: 0 0 var(--jp-s5);
	max-width: 68ch;
	color: var(--jp-ink-700);
}

.jp-catpage__pillar-link {
	margin: var(--jp-s4) 0 0;
}

.jp-catpage__body {
	display: flex;
	flex-direction: column;
	gap: var(--jp-s7);
	padding-block: var(--jp-s7) var(--jp-s8);
}

/* Conținut real per categorie (audit SEO 2026-09-15) — descrierea nativă a
   termenului, scrisă direct ca HTML (H2/H3/paragrafe), randată prin
   `wp_kses_post()`. Ierarhie tipografică proprie, nu doar text în flux. */
.jp-catpage__body-text {
	max-width: 68ch;
	color: var(--jp-ink-700);
	font-size: var(--jp-fs-body);
	line-height: var(--jp-lh-base);
}

.jp-catpage__body-text > * + * {
	margin-top: var(--jp-s4);
}

.jp-catpage__body-text h2 {
	margin-top: var(--jp-s6);
	font-family: var(--jp-font-heading);
	font-size: var(--jp-fs-h2);
	font-weight: 700;
	color: var(--jp-ink-900);
}

.jp-catpage__body-text h3 {
	margin-top: var(--jp-s5);
	font-family: var(--jp-font-heading);
	font-size: var(--jp-fs-h3);
	font-weight: 700;
	color: var(--jp-ink-900);
}

.jp-catpage__body-text h4 {
	margin-top: var(--jp-s4);
	font-weight: 700;
	color: var(--jp-ink-900);
}

.jp-catpage__body-text ul,
.jp-catpage__body-text ol {
	padding-left: 1.25em;
}

.jp-catpage__body-text li + li {
	margin-top: var(--jp-s1);
}

.jp-catpage__body-text strong {
	color: var(--jp-ink-900);
}

.jp-catpage__section-title {
	margin: 0 0 var(--jp-s4);
	font-family: var(--jp-font-heading);
	font-size: var(--jp-fs-h2);
	font-weight: 700;
	color: var(--jp-ink-900);
}

.jp-catpage__empty {
	padding: var(--jp-s5);
	background: var(--jp-ink-50);
	border-radius: var(--jp-r-lg);
	color: var(--jp-ink-700);
}

/* `.jp-cat-grid` vine din `components/marketing.css` (nu se mai duplică aici).
   `.jp-pro-grid`/`.jp-pro-card` au fost eliminate — profilurile de profesioniști
   nu mai sunt conținut public (brief, secțiunea 5.2). */

/* ---------- FAQ, fără JavaScript ---------- */
.jp-faq {
	display: flex;
	flex-direction: column;
	gap: var(--jp-s2);
	max-width: var(--jp-measure);
}

.jp-faq__item {
	padding: var(--jp-s4);
	background: var(--jp-white);
	border: 1px solid var(--jp-ink-100);
	border-radius: var(--jp-r-md);
	transition: border-color var(--jp-t-base) var(--jp-ease), box-shadow var(--jp-t-base) var(--jp-ease);
}

/* Găsit în audit UX (2026-09-18): singurul element clar interactiv din pagină
   fără nicio reacție la atingere — arăta identic în repaus și la hover. */
.jp-faq__item:hover {
	border-color: var(--jp-primary-200, var(--jp-primary-300));
	box-shadow: var(--jp-sh-1);
}

.jp-faq__item:has(.jp-faq__q:focus-visible) {
	border-color: var(--jp-primary-500);
	box-shadow: 0 0 0 3px var(--jp-primary-100);
}

.jp-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--jp-s3);
	cursor: pointer;
	font-family: var(--jp-font-heading);
	font-weight: 700;
	color: var(--jp-ink-900);
	list-style: none;
}

.jp-faq__q:focus-visible { outline: none; }

.jp-faq__q::-webkit-details-marker { display: none; }

.jp-faq__q::after {
	content: "";
	flex-shrink: 0;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--jp-primary-600);
	border-bottom: 2px solid var(--jp-primary-600);
	transform: rotate(45deg);
	transition: transform var(--jp-t-base) var(--jp-ease);
}

.jp-faq__item[open] .jp-faq__q::after { transform: rotate(-135deg); }

.jp-faq__a {
	margin: var(--jp-s3) 0 0;
	color: var(--jp-ink-700);
	line-height: var(--jp-lh-base);
}

/* ---------- Layout pe două coloane: conținut + coloană de conversie ----------
   Design nou (2026-09-16, feedback direct al utilizatorului: conținutul „nu
   duce cu gândul la o pagină reală de conversie"). Coloana laterală rămâne
   vizibilă tot timpul cititului pe desktop (sticky); pe mobil trece înaintea
   conținutului (`order`), ca CTA-ul și motivele de încredere să se vadă din
   primul ecran, nu doar la finalul paginii. */
.jp-catpage__layout {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: var(--jp-s7);
}

.jp-catpage__main {
	flex: 1 1 480px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: var(--jp-s7);
}

.jp-catpage__aside {
	flex: 1 1 280px;
	max-width: 340px;
}

@media (min-width: 900px) {
	.jp-catpage__aside {
		/* Bug real (2026-09-16, semnalat de utilizator): `top: var(--jp-s6)`
		   (32px) e mai mic decât înălțimea antetului sticky (`--jp-header-h`,
		   64–76px, z-index 100) — coloana intra sub antet la scroll în loc să
		   se oprească sub el. Offset-ul trebuie să înceapă DUPĂ antet. */
		position: sticky;
		top: calc(var(--jp-header-h) + var(--jp-s5));
	}
}

@media (max-width: 767px) {
	.jp-catpage__layout { flex-direction: column; }
	.jp-catpage__aside { order: -1; max-width: none; }
}

.jp-catpage__aside-card {
	display: flex;
	flex-direction: column;
	gap: var(--jp-s5);
	padding: var(--jp-s6);
	background: var(--jp-white);
	border: 1px solid var(--jp-ink-100);
	border-radius: var(--jp-r-lg);
	box-shadow: var(--jp-sh-2);
}

.jp-catpage__aside-price {
	padding-bottom: var(--jp-s5);
	border-bottom: 1px solid var(--jp-ink-100);
}

.jp-catpage__aside-price-value {
	margin: 0 0 var(--jp-s1);
	font-family: var(--jp-font-heading);
	font-size: var(--jp-fs-h2);
	font-weight: 800;
	color: var(--jp-primary-700);
}

.jp-catpage__aside-price .jp-note { margin: 0; }

.jp-aside-trust {
	display: flex;
	flex-direction: column;
	gap: var(--jp-s4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.jp-aside-trust__item {
	display: flex;
	align-items: flex-start;
	gap: var(--jp-s3);
}

.jp-aside-trust__icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: var(--jp-r-md);
	background: var(--jp-primary-50);
	color: var(--jp-primary-600);
}

.jp-aside-trust__body {
	display: block;
	font-size: var(--jp-fs-small);
	color: var(--jp-ink-500);
	line-height: var(--jp-lh-base);
}

.jp-aside-trust__body strong {
	display: block;
	margin-bottom: 2px;
	font-size: var(--jp-fs-body);
	color: var(--jp-ink-900);
}

/* ---------- Orașe: primele 12 vizibile, restul în spatele unui `<details>` —
   fără JavaScript, aceeași filozofie ca FAQ-ul; ține pagina mai scurtă fără
   să ascundă linkurile interne de la Google (tot randate în HTML). ---------- */
.jp-cities-more {
	margin-top: var(--jp-s4);
}

.jp-cities-more summary {
	cursor: pointer;
	color: var(--jp-primary-600);
	font-weight: 600;
	font-size: var(--jp-fs-small);
	list-style: none;
}

.jp-cities-more summary::-webkit-details-marker { display: none; }

.jp-cities-more summary::after {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-left: var(--jp-s2);
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
}

.jp-cities-more[open] summary::after { transform: rotate(-135deg); }

.jp-cities-more .jp-chips { margin-top: var(--jp-s4); }
