/* Stiluri implicite pentru widget-urile Elementor "Contul meu (NFS)".
   Controalele de stil din Elementor suprascriu aceste valori per-instanță. */

.nfs-ew-name-widget {
	font-size: 28px;
	font-weight: 800;
	color: #14284b;
	margin: 0;
}

.nfs-ew-name--highlight {
	box-shadow: 0 3px 0 0 #f6b41a;
	padding-bottom: 2px;
}

.nfs-ew-member-since,
.nfs-ew-email {
	font-size: 14px;
	color: #8a93a6;
}

.nfs-ew-email {
	text-decoration: none;
}

.nfs-ew-logout {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 20px;
	background: #ffffff;
	color: #14284b;
	border: 1px solid #eceef3;
	border-radius: 10px;
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
}

.nfs-ew-logout:hover {
	background: #f5f6fa;
	color: #14284b;
}

/* ---------- Widget "Coș + Contul meu" (header) ---------- */

.nfs-cw {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: 'Public Sans', sans-serif;
}

/* Pe desktop, coșul e pastila din design: iconiță + numărul alături, cu
   bulina aurie mică în colț. Varianta cu iconiță singură și bulină numerotată
   e doar pentru mobil (vezi blocul de sub 1024px). */
.nfs-cw__trigger {
	position: relative;
	display: flex;
	align-items: center;
	gap: 9px;
	height: 42px;
	padding: 0 16px;
	border: 1px solid #e3e8f0 !important;
	border-radius: 10px !important;
	background: #ffffff !important;
	color: #032657 !important;
	cursor: pointer;
	outline: none;
	box-shadow: none !important;
}

/* Contorul e o bulină absolută în colțul din dreapta sus al coșului, cum se
   practică. Cu coșul gol dispare complet. */
.nfs-cw__badge {
	display: inline-flex;
	align-items: center;
}

.nfs-cw__badge--empty {
	display: none;
}

/* Animație scurtă pe iconița de coș din header, la orice adăugare AJAX
   reușită în coș (oriunde pe site) — vezi listener-ul pe evenimentul
   jQuery 'added_to_cart' din elementor-widgets.js. */
@keyframes nfsCartBump {
	0% { transform: scale(1); }
	35% { transform: scale(1.18) rotate(-4deg); }
	60% { transform: scale(0.95) rotate(3deg); }
	100% { transform: scale(1) rotate(0); }
}

.nfs-cw__trigger--bump {
	animation: nfsCartBump 0.5s ease;
}

/* WooCommerce adaugă automat un link "Vezi coșul" lângă orice buton AJAX
   de add-to-cart (add-to-cart.js, nativ, independent de tema/markup-ul
   nostru) — pe tot site-ul preferăm feedback-ul vizual de pe iconița de
   coș din header (bump-ul de mai sus), nu un text separat sub buton. */
.added_to_cart.wc-forward {
	display: none !important;
}

.nfs-cw__count {
	font: 700 13.5px 'Public Sans', sans-serif;
}

.nfs-cw__dot {
	position: absolute;
	top: -5px;
	right: -5px;
	min-width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #ffce00;
	border: 2px solid #ffffff;
}

.nfs-cw__account {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	height: 42px;
	padding: 0 18px;
	background: #032657 !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 10px !important;
	font: 700 14px 'Public Sans', sans-serif;
	text-decoration: none !important;
	box-shadow: none !important;
	white-space: nowrap;
	transition: transform 0.15s ease;
}

.nfs-cw__account:hover {
	transform: translateY(-2px);
	background: #032657 !important;
	color: #ffffff !important;
}

.nfs-cw__overlay {
	position: fixed;
	inset: 0;
	background: rgba(3, 38, 87, 0.45);
	z-index: 999990;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.25s ease;
}

.nfs-cw__overlay.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.nfs-cw__panel {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(400px, 92vw);
	background: #ffffff;
	border-left: 1px solid #e3e8f0;
	box-shadow: -20px 0 50px -30px rgba(3, 38, 87, 0.6);
	z-index: 999991;
	transform: translateX(100%);
	transition: transform 0.28s ease;
	display: flex;
	flex-direction: column;
}

.nfs-cw__panel.is-open {
	transform: translateX(0);
}

.nfs-cw__panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 22px 26px;
	border-bottom: 1px solid #e3e8f0;
}

.nfs-cw__panel-title {
	font: 700 18px 'Sora', sans-serif;
	color: #032657;
}

.nfs-cw__panel-count {
	color: #7d8ea6;
	font: 600 14px 'Public Sans', sans-serif;
	margin-left: 4px;
}

/* 'button.' în față, din același motiv ca la burger: reset.css al temei
   declară display pe [type=button] și s-ar impune la egalitate de specificitate. */
button.nfs-cw__close {
	box-sizing: border-box;
	flex-shrink: 0;
	flex-grow: 0;
	width: 34px !important;
	height: 34px !important;
	min-width: 34px !important;
	min-height: 34px !important;
	max-width: 34px !important;
	max-height: 34px !important;
	aspect-ratio: 1 / 1;
	line-height: 1 !important;
	border-radius: 8px !important;
	border: 1px solid #e3e8f0 !important;
	background: #ffffff !important;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: #4a5f7d !important;
	padding: 0 !important;
	margin: 0 !important;
	outline: none;
	box-shadow: none !important;
}

.nfs-cw__close:hover {
	background: #f5f7fa !important;
	color: #032657 !important;
}

.nfs-cw__body {
	flex: 1;
	overflow-y: auto;
	padding: 22px 26px;
	display: flex;
	flex-direction: column;
}

.nfs-cw__empty {
	color: #7d8ea6;
	font: 500 14.5px 'Public Sans', sans-serif;
	text-align: center;
	padding: 30px 0;
	margin: 0;
}

.nfs-cw__item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 16px 0;
}

.nfs-cw__item:first-child {
	padding-top: 0;
}

.nfs-cw__item + .nfs-cw__item {
	border-top: 1px solid #eef1f6;
}

.nfs-cw__item.is-removing {
	opacity: 0.45;
	pointer-events: none;
}

.nfs-cw__item-thumb {
	width: 64px;
	height: 64px;
	border-radius: 10px;
	background: #032657;
	overflow: hidden;
	flex-shrink: 0;
}

.nfs-cw__item-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nfs-cw__item-info {
	min-width: 0;
	flex: 1;
}

.nfs-cw__item-name {
	font: 700 14.5px 'Sora', sans-serif;
	color: #032657;
	line-height: 1.35;
}

.nfs-cw__item-price {
	font: 800 15px 'Sora', sans-serif;
	color: #032657;
	white-space: nowrap;
	margin-top: 6px;
}

.nfs-cw__item-meta {
	font: 500 12px 'Public Sans', sans-serif;
	color: #a4afc1;
	margin-top: 4px;
}

button.nfs-cw__item-remove {
	box-sizing: border-box;
	flex-shrink: 0;
	flex-grow: 0;
	width: 30px !important;
	height: 30px !important;
	min-width: 30px !important;
	min-height: 30px !important;
	max-width: 30px !important;
	max-height: 30px !important;
	aspect-ratio: 1 / 1;
	line-height: 1 !important;
	border-radius: 8px !important;
	border: 1px solid transparent !important;
	background: transparent !important;
	color: #b3391f !important;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0 !important;
	margin: 0 !important;
	outline: none;
	box-shadow: none !important;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.nfs-cw__item-remove:hover {
	background: #fbe7e7 !important;
	border-color: #f3caca !important;
}

.nfs-cw__footer {
	border-top: 1px solid #e3e8f0;
	padding: 22px 26px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nfs-cw__total {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.nfs-cw__total > span:first-child {
	font: 700 14px 'Public Sans', sans-serif;
	color: #4a5f7d;
}

.nfs-cw__total-value {
	font: 800 22px 'Sora', sans-serif;
	color: #032657;
}

.nfs-cw__btn {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 14px 0;
	border-radius: 8px !important;
	font: 700 15px 'Public Sans', sans-serif;
	text-decoration: none !important;
	border: none;
	cursor: pointer;
	outline: none;
	box-shadow: none !important;
	transition: transform 0.15s ease;
}

.nfs-cw__btn:hover {
	transform: translateY(-2px);
}

.nfs-cw__btn--gold {
	background: #ffce00 !important;
	color: #032657 !important;
}

.nfs-cw__btn--outline {
	background: transparent !important;
	color: #032657 !important;
	border: 1px solid rgba(3, 38, 87, 0.25) !important;
	padding: 13px 0;
	font-size: 14px;
}

body.nfs-cw-lock {
	overflow: hidden;
}

@media (max-width: 480px) {
	.nfs-cw__account span {
		display: none;
	}

	.nfs-cw__account {
		padding: 0 12px;
	}
}

/* ================= ANTET DE PAGINĂ (widget "Antet pagină NFS")
   Aceeași înfățișare ca antetul paginii de seminar: breadcrumb, titlu,
   opțional o persoană, și un buton în dreapta.
   ================= */

.nfs-page-hero {
	font-family: var(--nfs-font);
	color: var(--nfs-text);
	box-sizing: border-box;
}

.nfs-page-hero *,
.nfs-page-hero *::before,
.nfs-page-hero *::after {
	box-sizing: border-box;
}

.nfs-page-hero__inner {
	min-width: 0;
}

/* Breadcrumb-ul se rupe pe mai multe rânduri la titluri lungi, în loc să
   împingă pagina lateral. */

.nfs-page-hero__breadcrumb {
	flex-wrap: wrap;
	row-gap: 4px;
	margin-bottom: 22px;
	min-width: 0;
}

.nfs-page-hero__breadcrumb .nfs-breadcrumb__current {
	min-width: 0;
	overflow-wrap: anywhere;
}

.nfs-page-hero__row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 30px;
	flex-wrap: wrap;
}

.nfs-page-hero__main {
	min-width: 0;
}

.nfs-page-hero__title {
	font-family: var(--nfs-font-heading);
	font-size: clamp(24px, 3.4vw, 30px);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.4px;
	color: var(--nfs-text);
	margin: 0;
	max-width: 760px;
	overflow-wrap: anywhere;
}

.nfs-page-hero__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 14px;
	min-width: 0;
}

.nfs-page-hero__photo {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	overflow: hidden;
	flex-shrink: 0;
	background: var(--nfs-navy);
}

.nfs-page-hero__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nfs-page-hero__meta-info {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.nfs-page-hero__meta-name {
	font-size: 16px;
	font-weight: 700;
	color: var(--nfs-text);
	overflow-wrap: anywhere;
}

.nfs-page-hero__btn {
	flex-shrink: 0;
}

/* Pe telefon butonul trece pe rând propriu, pe toată lățimea: la 360px un
   buton lipit lângă titlu ar rămâne cu 2-3 litere pe rând. */

@media (max-width: 640px) {
	.nfs-page-hero__row {
		align-items: stretch;
		gap: 22px;
	}

	.nfs-page-hero__btn {
		width: 100%;
	}

	.nfs-page-hero__breadcrumb {
		margin-bottom: 16px;
	}
}

/* Descrierea de sub titlu. */

.nfs-page-hero__text {
	font-size: 17px;
	line-height: 1.65;
	color: var(--nfs-text-muted);
	margin: 16px 0 0;
	max-width: 640px;
	text-wrap: pretty;
}

/* Butonul "Alb": outline-ul standard e transparent, iar pe banda gri a
   antetului asta înseamnă invizibil — aici primește fundal alb plin. */

.nfs-page-hero .nfs-btn--outline.nfs-page-hero__btn--white {
	background: #fff !important;
	color: var(--nfs-navy) !important;
	border: 1px solid rgba(3, 38, 87, 0.25) !important;
}

.nfs-page-hero .nfs-btn--outline.nfs-page-hero__btn--white:hover,
.nfs-page-hero .nfs-btn--outline.nfs-page-hero__btn--white:focus {
	background: #fff !important;
	color: var(--nfs-navy) !important;
	border-color: var(--nfs-navy) !important;
}

/* Cuvântul subliniat din titlu — aceeași linie aurie ca pe checkout. */

.nfs-page-hero__title-accent {
	border-bottom: 4px solid var(--nfs-gold);
}

/* ================= CARD MONOGRAFIE (widget "Card Monografie")
   Material PDF gratuit: antet navy cu o "copertă" de document desenată în
   CSS (fără imagine de încărcat), titlu, descriere, preț și buton.
   ================= */

.nfs-mono-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--nfs-card);
	border: 1px solid var(--nfs-border);
	border-radius: var(--nfs-radius);
	overflow: hidden;
	font-family: var(--nfs-font);
	color: var(--nfs-text);
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.nfs-mono-card,
.nfs-mono-card * {
	box-sizing: border-box;
}

.nfs-mono-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 36px -18px rgba(3, 38, 87, 0.3);
	border-color: var(--nfs-navy);
}

/* ---------- Antetul cu coperta ---------- */

.nfs-mono-card__head {
	position: relative;
	height: 150px;
	background: var(--nfs-navy);
	display: flex;
	align-items: flex-end;
	padding: 18px;
	overflow: hidden;
}

/* Cercul auriu difuz din colțul din dreapta sus. */

.nfs-mono-card__head::after {
	content: "";
	position: absolute;
	width: 180px;
	height: 180px;
	border-radius: 50%;
	background: rgba(255, 206, 0, 0.14);
	right: -60px;
	top: -70px;
}

.nfs-mono-card__badge {
	position: absolute;
	top: 14px;
	left: 18px;
	z-index: 2;
	background: var(--nfs-gold);
	color: var(--nfs-navy);
	font: 700 10px var(--nfs-font);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 5px 10px;
	border-radius: 4px;
}

/* Documentul alb care iese din marginea de jos a antetului. */

.nfs-mono-card__doc {
	position: absolute;
	right: 20px;
	bottom: -26px;
	z-index: 1;
	width: 78px;
	height: 100px;
	background: var(--nfs-card);
	border-radius: 6px;
	box-shadow: 0 10px 22px -10px rgba(0, 0, 0, 0.45);
	padding: 10px;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.nfs-mono-card__doc-mark {
	width: 20px;
	height: 20px;
	border-radius: 5px;
	background: var(--nfs-navy);
}

.nfs-mono-card__doc-line {
	height: 2px;
	background: var(--nfs-border);
}

.nfs-mono-card__doc-type {
	margin-top: auto;
	font: 800 8.5px var(--nfs-font);
	color: var(--nfs-text-label);
	letter-spacing: 0.1em;
}

.nfs-mono-card__stamp {
	position: relative;
	z-index: 1;
	font: 700 11px var(--nfs-font);
	color: rgba(255, 255, 255, 0.7);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* ---------- Corpul cardului ---------- */

.nfs-mono-card__body {
	padding: 26px 24px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.nfs-mono-card__title {
	font: 700 18px/1.35 var(--nfs-font-heading);
	color: var(--nfs-navy);
	margin: 0;
	overflow-wrap: anywhere;
}

.nfs-mono-card__text {
	font: 400 13.5px/1.6 var(--nfs-font);
	color: var(--nfs-text-muted);
	margin: 10px 0 0;
	text-wrap: pretty;
}

/* margin-top:auto împinge rândul cu preț și buton la baza cardului, ca toate
   cardurile din grilă să aibă butonul aliniat, indiferent cât e titlul. */

.nfs-mono-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: auto;
	padding-top: 20px;
	border-top: 1px solid var(--nfs-border);
}

.nfs-mono-card__price {
	font: 800 15px var(--nfs-font-heading);
	color: var(--nfs-navy);
}

.nfs-mono-card .nfs-mono-card__btn {
	padding: 10px 18px !important;
	font-size: 13px !important;
}

/* Fără link de descărcare (card neconfigurat), butonul nu pretinde că e activ. */

.nfs-mono-card__btn.is-disabled {
	opacity: 0.55;
	cursor: default;
	pointer-events: none;
}

/* ================= CARD ARTICOL (widget "Card Articol (Blog)")
   Aceeași ramă și același hover ca la cardul de monografie: imagine sus,
   categorie și dată, titlu, rezumat, iar jos timpul de citire și linkul.
   ================= */

.nfs-post-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--nfs-card);
	border: 1px solid var(--nfs-border);
	border-radius: var(--nfs-radius);
	overflow: hidden;
	font-family: var(--nfs-font);
	color: var(--nfs-text);
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.nfs-post-card,
.nfs-post-card * {
	box-sizing: border-box;
}

.nfs-post-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 36px -18px rgba(3, 38, 87, 0.3);
	border-color: var(--nfs-navy);
}

/* Proporție fixă, nu înălțime: imaginile articolelor au dimensiuni diferite,
   iar object-fit: cover le încadrează identic în același cadru. */

.nfs-post-card__thumb {
	display: block;
	width: 100%;
	flex: none;
	background: var(--nfs-bg);
	overflow: hidden;
}

.nfs-post-card__thumb--16-9 {
	aspect-ratio: 16 / 9;
}

.nfs-post-card__thumb--4-3 {
	aspect-ratio: 4 / 3;
}

.nfs-post-card__thumb--1-1 {
	aspect-ratio: 1 / 1;
}

.nfs-post-card__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.nfs-post-card:hover .nfs-post-card__thumb img {
	transform: scale(1.04);
}

.nfs-post-card__body {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 26px 30px 30px;
	flex: 1;
}

.nfs-post-card__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}
.nfs-post-card__meta {
	font: 600 12.5px var(--nfs-font);
	color: var(--nfs-text-label);
}

.nfs-post-card__title {
	font: 700 20px/1.3 var(--nfs-font-heading);
	color: var(--nfs-navy);
	margin: 0;
	overflow-wrap: anywhere;
}

.nfs-post-card__title a {
	color: inherit;
	text-decoration: none;
}

.nfs-post-card__title a:hover {
	color: var(--nfs-navy-light);
}

.nfs-post-card__text {
	font: 400 14.5px/1.65 var(--nfs-font);
	color: var(--nfs-text-muted);
	margin: 0;
	text-wrap: pretty;
}

/* margin-top:auto ține rândul de jos lipit de baza cardului, ca linkurile să
   fie aliniate pe tot rândul din grilă, oricât de lungi ar fi titlurile. */

.nfs-post-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid var(--nfs-border);
}

.nfs-post-card__link {
	font: 700 13.5px var(--nfs-font);
	color: var(--nfs-navy);
	text-decoration: none;
	white-space: nowrap;
}

.nfs-post-card__link:hover {
	color: var(--nfs-navy-light);
}

/* ---------- Carduri de aceeași înălțime în grilă ----------
   Cardul are height:100%, dar între el și celula din grilă stau două
   învelișuri Elementor (widget + widget-container) care, implicit, se
   opresc la înălțimea conținutului. Le întindem și pe ele, altfel
   rândul iese cu carduri de înălțimi diferite. */

.elementor-widget-nfs-post-card,
.elementor-widget-nfs-monografie-card,
.elementor-widget-nfs-product-card,
.elementor-widget-nfs-seminar-card {
	display: flex;
	align-self: stretch;
	height: 100%;
}

.elementor-widget-nfs-post-card > .elementor-widget-container,
.elementor-widget-nfs-monografie-card > .elementor-widget-container,
.elementor-widget-nfs-product-card > .elementor-widget-container,
.elementor-widget-nfs-seminar-card > .elementor-widget-container {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}

.elementor-widget-nfs-product-card .nfs-seminar-card,
.elementor-widget-nfs-seminar-card .nfs-seminar-card {
	height: 100%;
}

/* ================= BUTON ȘI LINK (widget-urile "Buton NFS" / "Link NFS")
   Variantele de bază (.nfs-btn, --gold, --outline) sunt în account.css, care
   se încarcă înaintea acestui fișier; aici adăugăm doar ce lipsea: albastru,
   alb, mărimile și linkul text.
   ================= */

.nfs-btn-wrap,
.nfs-textlink-wrap {
	font-family: var(--nfs-font);
}

/* Butonul e inline-flex, deci text-align pe înveliș îl aliniază. */

.nfs-btn-wrap .nfs-btn--block {
	display: flex;
	width: 100%;
}

/* "Pe toată lățimea": întindem elementul de widget, nu doar butonul din el.
   Într-un container flex, Elementor lasă widget-ul cât conținutul, așa că
   100% pe buton însemna 100% din lățimea textului. */
.elementor-widget-nfs-button.nfs-button--full {
	width: 100% !important;
	max-width: 100% !important;
	flex: 1 1 100%;
}

.elementor-widget-nfs-button.nfs-button--full > .elementor-widget-container,
.elementor-widget-nfs-button.nfs-button--full .nfs-btn-wrap {
	width: 100%;
}

/* =================
   HERO CU STATISTICI — poza cu cadru și cardul alb cu bare de procente
   ================= */

.nfs-hero-stats {
	display: flex;
	justify-content: center;
	font-family: 'Public Sans', sans-serif;
}

.nfs-hero-stats *,
.nfs-hero-stats *::before,
.nfs-hero-stats *::after {
	box-sizing: border-box;
}

/* Forma implicită e dată de proporție, nu de o înălțime fixă: așa poza rămâne
   la fel de lată/îngustă la orice lățime a coloanei, iar decuparea o face
   object-fit: cover. Modul "Înălțime fixă" din widget suprascrie aspect-ratio. */
.nfs-hero-stats__frame {
	position: relative;
	width: 100%;
	max-width: 380px;
	aspect-ratio: 19 / 23;
}

.nfs-hero-stats__backdrop {
	position: absolute;
	inset: 0;
	background: #e3e8f0;
	border-radius: 34px 34px 34px 100px;
}

/* Selectorul are nevoie de 'img' + două clase: Elementor declară
   ".elementor img { height: auto; max-width: 100% }" (specificitate 0,1,1),
   care bate o regulă scrisă doar ca ".nfs-hero-stats__image" (0,1,0). Din
   cauza asta poza își păstra înălțimea naturală, iar la schimbarea formei se
   redimensionau doar fundalul și cardul, nu și imaginea. */
.nfs-hero-stats img.nfs-hero-stats__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	max-width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	border-radius: 34px 34px 34px 100px;
}

/* Elementor își încarcă frontend.min.css DUPĂ fișierele noastre și declară
   ".elementor img { height: auto; max-width: 100%; border-radius: 0 }".
   Are (0,1,1), adică exact cât ".clasa img" — la egalitate câștigă cine vine
   ultimul, deci Elementor. Prefixul ".elementor" ne duce la (0,2,1) și ne
   redă înălțimea pozelor din componentele care umplu un container. */
.elementor .nfs-cw__item-thumb img,
.elementor .nfs-page-hero__photo img,
.elementor .nfs-post-card__thumb img,
.elementor .nfs-cat-card__thumb img {
	height: 100%;
}

.nfs-hero-stats__card {
	position: absolute;
	left: -36px;
	bottom: 36px;
	width: 230px;
	padding: 20px;
	background: #ffffff;
	border-radius: 16px;
	box-shadow: 0 20px 40px -14px rgba(3, 38, 87, 0.25);
	/* Intră odată cu barele, dinspre stânga-jos. */
	opacity: 0;
	transform: translate3d(-12px, 12px, 0);
	transition: opacity 0.5s ease, transform 0.5s ease;
}

.nfs-hero-stats.is-visible .nfs-hero-stats__card {
	opacity: 1;
	transform: none;
}

.nfs-hero-stats__row + .nfs-hero-stats__row {
	margin-top: 16px;
}

.nfs-hero-stats__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font: 600 12.5px 'Public Sans', sans-serif;
	color: #4a5f7d;
}

.nfs-hero-stats__value {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.nfs-hero-stats__track {
	height: 6px;
	margin-top: 8px;
	background: #e3e8f0;
	border-radius: 3px;
	overflow: hidden;
}

.nfs-hero-stats__fill {
	display: block;
	width: 0;
	height: 100%;
	border-radius: 3px;
	/* durata vine inline, din setarea widget-ului */
	transition-property: width;
	transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

/*
 * Pe ecrane mici cardul nu mai iese în afara pozei: ar depăși marginea
 * ecranului și ar tăia textul.
 *
 * De ce !important: decalajul și lățimea vin din controalele widget-ului,
 * iar Elementor le scrie ca ".elementor-element-XXX .nfs-hero-stats__card"
 * (specificitate 0,2,0), în fișierul lui, încărcat DUPĂ al nostru. O regulă
 * scrisă normal aici (0,1,0) pierde, iar cardul rămânea cu left: -36px și
 * ieșea din ecran cu tot cu text.
 */
@media (max-width: 767px) {
	.nfs-hero-stats__frame {
		max-width: 100%;
	}

	.nfs-hero-stats__card {
		left: 14px !important;
		right: 14px !important;
		width: auto !important;
		max-width: none !important;
		padding: 16px;
	}

	/* Eticheta poate trece pe două rânduri, procentul rămâne lipit la dreapta. */
	.nfs-hero-stats__head {
		align-items: flex-start;
		gap: 8px;
		font-size: 12px;
		line-height: 1.35;
	}

	.nfs-hero-stats__label {
		flex: 1 1 auto;
		min-width: 0;
	}

	.nfs-hero-stats__value {
		flex: 0 0 auto;
	}

	.nfs-hero-stats__row + .nfs-hero-stats__row {
		margin-top: 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nfs-hero-stats__card,
	.nfs-hero-stats__fill {
		transition: none !important;
	}
}

/* ---------- Variante de culoare ---------- */

a.nfs-btn--navy,
button.nfs-btn--navy {
	background: var(--nfs-navy) !important;
	color: #fff !important;
	border: 1px solid var(--nfs-navy) !important;
}

.nfs-btn--navy:hover,
.nfs-btn--navy:focus {
	background: var(--nfs-navy-light) !important;
	border-color: var(--nfs-navy-light) !important;
	color: #fff !important;
}

a.nfs-btn--white,
button.nfs-btn--white {
	background: #fff !important;
	color: var(--nfs-navy) !important;
	border: 1px solid rgba(3, 38, 87, 0.25) !important;
}

.nfs-btn--white:hover,
.nfs-btn--white:focus {
	background: #fff !important;
	border-color: var(--nfs-navy) !important;
	color: var(--nfs-navy) !important;
}

/* ---------- Mărimi ---------- */

a.nfs-btn--sm,
button.nfs-btn--sm {
	padding: 10px 18px !important;
	font-size: 13px !important;
}

a.nfs-btn--lg,
button.nfs-btn--lg {
	padding: 17px 34px !important;
	font-size: 16px !important;
}

/* ---------- Link text ---------- */

.nfs-textlink {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font: 700 13.5px var(--nfs-font);
	color: var(--nfs-navy);
	text-decoration: none !important;
	transition: color 0.15s ease, border-color 0.15s ease;
}

/* Săgeata e element separat tocmai ca să poată aluneca singură la hover;
   dacă ar face parte din text, s-ar mișca tot rândul. */

.nfs-textlink__arrow {
	transition: transform 0.18s ease;
}

.nfs-textlink:hover .nfs-textlink__arrow {
	transform: translateX(4px);
}

.nfs-textlink.is-underlined .nfs-textlink__text {
	border-bottom: 2px solid var(--nfs-gold);
	padding-bottom: 1px;
}

/* ---------- Culori ---------- */

.nfs-textlink--navy {
	color: var(--nfs-navy);
}

.nfs-textlink--navy:hover {
	color: var(--nfs-navy-light);
}

.nfs-textlink--gold {
	color: var(--nfs-gold-dark);
}

.nfs-textlink--gold:hover {
	color: var(--nfs-gold);
}

/* Varianta albă e pentru fundaluri închise (subsol, benzi navy). */

.nfs-textlink--white {
	color: #fff;
}

.nfs-textlink--white:hover {
	color: var(--nfs-gold);
}

.nfs-textlink--gray {
	font-weight: 600;
	color: var(--nfs-text-label);
}

.nfs-textlink--gray:hover {
	color: var(--nfs-navy);
}

/* ================= CARD CATEGORIE (widget "Card Categorie")
   Promovează o secțiune de site: imagine, titlu, descriere și, jos, linkul
   plus butonul rotund cu săgeată.
   ================= */

.nfs-cat-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--nfs-card);
	border: 1px solid var(--nfs-border);
	border-radius: var(--nfs-radius);
	overflow: hidden;
	font-family: var(--nfs-font);
	color: var(--nfs-text);
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.nfs-cat-card,
.nfs-cat-card * {
	box-sizing: border-box;
}

.nfs-cat-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 36px -18px rgba(3, 38, 87, 0.3);
	border-color: var(--nfs-navy);
}

.nfs-cat-card__thumb {
	display: block;
	width: 100%;
	flex: none;
	background: var(--nfs-bg);
	overflow: hidden;
}

.nfs-cat-card__thumb--16-9 {
	aspect-ratio: 16 / 9;
}

.nfs-cat-card__thumb--4-3 {
	aspect-ratio: 4 / 3;
}

.nfs-cat-card__thumb--1-1 {
	aspect-ratio: 1 / 1;
}

.nfs-cat-card__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.nfs-cat-card:hover .nfs-cat-card__thumb img {
	transform: scale(1.04);
}

.nfs-cat-card__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 26px 28px 28px;
	flex: 1;
}

.nfs-cat-card__title {
	font: 700 20px/1.3 var(--nfs-font-heading);
	color: var(--nfs-navy);
	margin: 0;
}

.nfs-cat-card__title a {
	color: inherit;
	text-decoration: none;
}

.nfs-cat-card__text {
	font: 400 14.5px/1.6 var(--nfs-font);
	color: var(--nfs-text-muted);
	margin: 0;
	text-wrap: pretty;
}

/* Rândul de jos e lipit de bază, ca butoanele rotunde să fie aliniate pe tot
   rândul din grilă, indiferent cât de lungi sunt descrierile. */

.nfs-cat-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: auto;
	padding-top: 22px;
}

.nfs-cat-card__link {
	font: 700 14px var(--nfs-font);
	color: var(--nfs-navy);
	text-decoration: none !important;
	transition: color 0.15s ease;
}

.nfs-cat-card:hover .nfs-cat-card__link {
	color: var(--nfs-navy-light);
}

/* Butonul rotund: la hover-ul pe ÎNTREG cardul se rotește doar săgeata.
   Culoarea e fixată cu !important pentru că tema are propria regulă pe
   a:hover, care altfel colora săgeata în negru (svg moștenește
   currentColor) — contrast prost pe cercul navy. */

.nfs-cat-card__circle,
.nfs-cat-card__circle:hover,
.nfs-cat-card__circle:focus,
.nfs-cat-card:hover .nfs-cat-card__circle {
	background: var(--nfs-navy);
	color: #fff !important;
}

.nfs-cat-card__circle {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	text-decoration: none !important;
	overflow: hidden;
}

.nfs-cat-card__circle svg {
	width: 18px;
	height: 18px;
	stroke: currentColor;
	transition: transform 0.22s ease;
}

.nfs-cat-card:hover .nfs-cat-card__circle svg {
	transform: rotate(-45deg);
}

/* Aceeași întindere ca la celelalte carduri, ca rândul să iasă egal. */

.elementor-widget-nfs-category-card {
	display: flex;
	align-self: stretch;
	height: 100%;
}

.elementor-widget-nfs-category-card > .elementor-widget-container {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}

/* ================= CURSURI FIZICE (widget "Cursuri fizice (carusel)")
   Turneul național: un card pe oraș, cu data, ora, prețul, selectorul de
   bilete și butonul de cumpărare. Peste 4 cursuri, rândul devine carusel.
   ================= */

.nfs-courses {
	font-family: var(--nfs-font);
	color: var(--nfs-text);
}

.nfs-courses,
.nfs-courses * {
	box-sizing: border-box;
}

.nfs-courses__head {
	max-width: 1400px;
	margin: 0 auto 36px;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 30px;
	flex-wrap: wrap;
}

.nfs-courses__pill {
	display: inline-flex;
	align-items: center;
	background: var(--nfs-card);
	color: var(--nfs-navy);
	border: 1px solid rgba(3, 38, 87, 0.1);
	border-radius: 999px;
	padding: 7px 15px;
	font: 700 11.5px var(--nfs-font);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.nfs-courses__title {
	font: 700 clamp(26px, 3.4vw, 34px) var(--nfs-font-heading);
	color: var(--nfs-navy);
	margin: 18px 0 0;
}

.nfs-courses__text {
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--nfs-text-muted);
	margin: 12px 0 0;
	max-width: 520px;
	text-wrap: pretty;
}

.nfs-courses__nav {
	display: flex;
	gap: 10px;
	flex-shrink: 0;
}

/* 'button.' în față: reset.css al temei se încarcă după noi și declară
   display pe [type=button], la aceeași specificitate ca o clasă. */
button.nfs-courses__arrow {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	border: none;
	background: var(--nfs-navy);
	color: var(--nfs-gold);
	font: 700 15px var(--nfs-font-heading);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: background-color 0.15s ease;
}

.nfs-courses__arrow:hover {
	background: var(--nfs-navy-light);
}

.nfs-courses__empty {
	max-width: 760px;
	margin: 0 auto;
	padding: 40px 32px;
	border: 1px dashed var(--nfs-border, #e7ebf3);
	border-radius: 18px;
	background: var(--nfs-bg, #f7f9fc);
	text-align: center;
	font-size: 15.5px;
	color: var(--nfs-text-muted, #5b6880);
}

.nfs-courses__empty-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin-bottom: 16px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--nfs-border, #e7ebf3);
	color: var(--nfs-navy, #032657);
}

.nfs-courses__empty-title {
	margin: 0;
	font-family: var(--nfs-font-heading, "Sora", sans-serif);
	font-size: 23px;
	font-weight: 800;
	line-height: 1.3;
	color: var(--nfs-navy, #032657);
	text-wrap: balance;
}

.nfs-courses__empty-text {
	margin: 12px auto 0;
	max-width: 56ch;
	font-size: 16px;
	line-height: 1.7;
	text-wrap: pretty;
}

.nfs-courses__empty-note {
	margin: 14px auto 0;
	max-width: 56ch;
	padding-top: 14px;
	border-top: 1px solid var(--nfs-border, #e7ebf3);
	font-size: 14.5px;
	line-height: 1.6;
}

a.nfs-courses__empty-button {
	margin-top: 18px;
}

@media (max-width: 640px) {
	.nfs-courses__empty {
		padding: 28px 18px;
		border-radius: 14px;
	}

	.nfs-courses__empty-title {
		font-size: 20px;
	}

	.nfs-courses__empty-text {
		font-size: 15px;
	}

	a.nfs-courses__empty-button {
		width: 100%;
		justify-content: center;
	}
}

/* Până la 4 cursuri e o grilă; de la 5 în sus, un rând care se derulează.
   scroll-snap face ca fiecare oprire să lase un card lipit de margine. */

.nfs-courses__track {
	max-width: 1400px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: 24px;
}

.nfs-courses.is-carousel .nfs-courses__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: 12px;
	scrollbar-width: thin;
	scrollbar-color: var(--nfs-border) transparent;
}

.nfs-courses.is-carousel .nfs-course-card {
	flex: 0 0 300px;
	scroll-snap-align: start;
}

/* ---------- Cardul unui curs ---------- */

.nfs-course-card {
	border: 1px solid var(--nfs-border);
	border-radius: 22px;
	padding: 26px;
	background: var(--nfs-card);
	display: flex;
	flex-direction: column;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.nfs-course-card:hover {
	transform: translateY(-8px);
	box-shadow: 0 24px 40px -20px rgba(3, 38, 87, 0.25);
	border-color: var(--nfs-gold);
}

.nfs-course-card__head {
	display: flex;
	align-items: center;
	gap: 14px;
}

/* Pătratul cu data — ziua mare, luna aurie dedesubt. */

.nfs-course-card__date {
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: var(--nfs-navy);
	color: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.nfs-course-card__day {
	font: 800 18px var(--nfs-font-heading);
	line-height: 1;
}

.nfs-course-card__month {
	font: 700 10.5px var(--nfs-font);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--nfs-gold);
}

.nfs-course-card__place {
	min-width: 0;
}

.nfs-course-card__city {
	font: 700 19px/1.25 var(--nfs-font-heading);
	color: var(--nfs-navy);
	margin: 0;
	overflow-wrap: anywhere;
}

.nfs-course-card__city a {
	color: inherit;
	text-decoration: none;
}

.nfs-course-card__city a:hover {
	color: var(--nfs-navy-light);
}

.nfs-course-card__venue {
	font-size: 13px;
	color: var(--nfs-text-muted);
	margin: 2px 0 0;
}

.nfs-course-card__meta {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 20px;
	font: 600 13.5px var(--nfs-font);
	color: var(--nfs-text-muted);
}

.nfs-course-card__time {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.nfs-course-card__time::before {
	content: "";
	width: 12px;
	height: 12px;
	border: 2px solid var(--nfs-text-label);
	border-radius: 50%;
	flex-shrink: 0;
}

/* Prețul se schimbă la fiecare apăsare pe + / −, deci îl ținem pe rândul lui,
   cu aceeași greutate ca ora, ca saltul de cifre să nu miște restul cardului. */

.nfs-course-card__price {
	font-weight: 700;
	color: var(--nfs-navy);
	white-space: nowrap;
}

.nfs-course-card__price del,
.nfs-course-card__price ins {
	text-decoration: none;
}

/* ---------- Selectorul de bilete ---------- */

.nfs-course-card__qty {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 22px;
	border: 1px solid var(--nfs-border);
	border-radius: 999px;
	padding: 6px 8px;
}

button.nfs-course-card__step {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: none;
	background: var(--nfs-bg);
	color: var(--nfs-navy);
	display: flex;
	align-items: center;
	justify-content: center;
	font: 700 15px var(--nfs-font);
	cursor: pointer;
	flex-shrink: 0;
	transition: background-color 0.15s ease;
}

.nfs-course-card__step:hover {
	background: var(--nfs-gold);
}

.nfs-course-card__qty-value {
	font: 700 14px var(--nfs-font);
	color: var(--nfs-navy);
}

.nfs-course-card__buy {
	margin-top: 16px;
	padding: 12px 0 !important;
}

/* Linkul "Vezi coșul" pe care WooCommerce îl adaugă după o cumpărare AJAX nu
   are ce căuta pe card — userul rămâne pe pagina principală. */

.nfs-course-card .added_to_cart {
	display: none !important;
}

@media (max-width: 640px) {
	.nfs-courses.is-carousel .nfs-course-card {
		flex-basis: 84%;
	}
}

/* ---------- Corecții pe cardul de curs ---------- */

/* Ceas în locul cercului gol: cercul era doar o bordură, fără sens propriu. */

.nfs-course-card__time::before {
	content: none;
}

.nfs-course-card__time svg {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	color: var(--nfs-text-label);
}

/* Prețul stă în dreapta, ca ochiul să-l găsească în același loc pe toate
   cardurile, și e mai mare pentru că se schimbă la fiecare bilet adăugat. */

.nfs-course-card__meta {
	justify-content: space-between;
}

.nfs-course-card__price {
	margin-left: auto;
	font: 800 20px var(--nfs-font-heading);
	color: var(--nfs-navy);
}

/* Butoanele − și + sunt <button>, deci le prind stilurile de buton ale temei
   și ale kitului Elementor (de unde roz-ul). Le rescriem complet, cu numele
   elementului în selector și !important pe proprietățile disputate. */

.nfs-course-card button.nfs-course-card__step,
.nfs-course-card button.nfs-course-card__step:hover,
.nfs-course-card button.nfs-course-card__step:focus,
.nfs-course-card button.nfs-course-card__step:active {
	width: 28px !important;
	height: 28px !important;
	min-height: 0 !important;
	min-width: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 50% !important;
	background-color: var(--nfs-bg) !important;
	background-image: none !important;
	color: var(--nfs-navy) !important;
	font: 700 15px/1 var(--nfs-font) !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-shadow: none !important;
	box-shadow: none !important;
	outline: none !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.nfs-course-card button.nfs-course-card__step:hover,
.nfs-course-card button.nfs-course-card__step:focus {
	background-color: var(--nfs-gold) !important;
}

/* Cu titlul secțiunii ascuns, săgețile rămân singure în antet — le ținem
   în dreapta, unde sunt și când titlul e afișat. */

.nfs-courses__nav {
	margin-left: auto;
}

/* ================= FILTRU ORAȘE (widget "Filtru orașe (cursuri fizice)")
   Pastile cu orașele turneului; cea activă e navy. Ascunde cardurile din
   widget-ul "Cursuri fizice" din aceeași pagină.
   ================= */

/* Eticheta stă deasupra, butoanele pe rândul de dedesubt. Alinierea din
   Elementor le mută pe amândouă: align-items pentru etichetă,
   justify-content pentru rândul de orașe. */

.nfs-city-filter {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	font-family: var(--nfs-font);
}

.nfs-city-filter__list {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	width: 100%;
}

.nfs-city-filter__label {
	font: 700 10.5px var(--nfs-font);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nfs-text-label);
}

/* Tot <button>-uri, deci aceeași apărare ca la − / + de pe card: tema și
   kitul Elementor au stiluri globale de buton care altfel ar câștiga. */

.nfs-city-filter button.nfs-city-filter__btn,
.nfs-city-filter button.nfs-city-filter__btn:focus,
.nfs-city-filter button.nfs-city-filter__btn:active {
	min-height: 0 !important;
	margin: 0 !important;
	padding: 9px 16px !important;
	border: 1px solid var(--nfs-border) !important;
	border-radius: 999px !important;
	background: var(--nfs-card) !important;
	background-image: none !important;
	color: var(--nfs-navy) !important;
	font: 600 13.5px/1.2 var(--nfs-font) !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-shadow: none !important;
	box-shadow: none !important;
	outline: none !important;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.nfs-city-filter button.nfs-city-filter__btn:hover {
	border-color: var(--nfs-navy) !important;
	background: var(--nfs-card) !important;
	color: var(--nfs-navy) !important;
}

.nfs-city-filter button.nfs-city-filter__btn.is-active,
.nfs-city-filter button.nfs-city-filter__btn.is-active:hover {
	background: var(--nfs-navy) !important;
	border-color: var(--nfs-navy) !important;
	color: #fff !important;
}

.nfs-city-filter button.nfs-city-filter__btn:focus-visible {
	box-shadow: 0 0 0 3px rgba(255, 206, 0, 0.55) !important;
}

/* Cardurile filtrate. Nu folosim atributul hidden: .nfs-course-card are
   display:flex, care ar anula regula implicită a browserului pentru hidden. */

.nfs-course-card.is-filtered-out {
	display: none !important;
}

.nfs-courses__nomatch {
	max-width: 1400px;
	margin: 0 auto;
	font-size: 15.5px;
	color: var(--nfs-text-muted);
}

.nfs-courses__nomatch[hidden] {
	display: none;
}


/* =================
   HEADER NFS — logo, meniu, coș + cont
   Sub pragul ales, meniul din mijloc dispare: rămân iconițele (fără fundal)
   și butonul burger albastru, care deschide meniul ca sidebar, ca la coș.
   ================= */

/* Header-ul trebuie să ocupe toată lățimea containerului în care e pus, ca
   bara lui interioară de 1400px să se alinieze cu restul paginilor.
   Într-un container flex, Elementor dă widget-ului o lățime calculată
   (--container-widget-width, adesea mai mică decât rândul), iar un container
   "boxed" îl mai poate limita încă o dată — le neutralizăm pe amândouă. */

.elementor-widget-nfs-header,
.elementor-widget-nfs-header > .elementor-widget-container {
	width: 100% !important;
	max-width: 100% !important;
}

.elementor-widget-nfs-header {
	flex: 1 1 100%;
}

/* Containerul boxed care conține doar header-ul nu trebuie să-l mai îngusteze:
   lățimea de 1400px o impune header-ul însuși, prin .nfs-hdr__inner. */
.e-con-inner:has(> .elementor-widget-nfs-header) {
	max-width: none !important;
}

.nfs-hdr {
	width: 100%;
	background: #ffffff;
	font-family: 'Public Sans', sans-serif;
}

.nfs-hdr--border {
	border-bottom: 1px solid #e3e8f0;
}

.nfs-hdr--sticky {
	position: sticky;
	top: 0;
	z-index: 999980;
}

.nfs-hdr *,
.nfs-hdr *::before,
.nfs-hdr *::after {
	box-sizing: border-box;
}

.nfs-hdr__inner {
	display: flex;
	align-items: center;
	gap: 28px;
	max-width: 1400px;
	margin: 0 auto;
	/* Fără padding lateral: altfel conținutul ar sta la 1400px minus padding și
	   nu s-ar alinia cu restul paginilor, care ajung fix la 1400px. */
	padding: 14px 0;
}

/* Sub 1460px, conținutul de 1400px ar atinge marginile ecranului: abia de
   acolo în jos adăugăm spațiu lateral. */

@media (max-width: 1460px) {
	.nfs-hdr__inner {
		padding-left: 24px;
		padding-right: 24px;
	}
}

.nfs-hdr__logo {
	display: block;
	flex: none;
	line-height: 0;
	text-decoration: none !important;
}

.nfs-hdr__logo img {
	display: block;
	width: 175px;
	height: auto;
	max-width: 100%;
}

.nfs-hdr__nav {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	justify-content: center;
}

.nfs-hdr--menu-left .nfs-hdr__nav {
	justify-content: flex-start;
}

.nfs-hdr--menu-right .nfs-hdr__nav {
	justify-content: flex-end;
}

.nfs-hdr ul.nfs-hdr__menu {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 30px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nfs-hdr ul.nfs-hdr__menu li {
	position: relative;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nfs-hdr ul.nfs-hdr__menu li::before {
	content: none;
}

.nfs-hdr ul.nfs-hdr__menu a {
	position: relative;
	display: inline-block;
	padding: 6px 0;
	font: 600 15px/1.3 'Public Sans', sans-serif;
	color: #032657 !important;
	text-decoration: none !important;
	white-space: nowrap;
}

/* Sublinierea aurie, aceeași ca pe restul site-ului. */
.nfs-hdr ul.nfs-hdr__menu a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2.5px;
	background: #ffce00;
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.18s ease;
}

.nfs-hdr ul.nfs-hdr__menu a:hover::after,
.nfs-hdr ul.nfs-hdr__menu .current-menu-item > a::after,
.nfs-hdr ul.nfs-hdr__menu .current-menu-ancestor > a::after {
	transform: scaleX(1);
}

/* Submeniu (nivelul 2), pe desktop. */
.nfs-hdr ul.nfs-hdr__menu ul {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 20;
	min-width: 220px;
	margin: 10px 0 0;
	padding: 8px;
	list-style: none;
	background: #ffffff;
	border: 1px solid #e3e8f0;
	border-radius: 12px;
	box-shadow: 0 18px 40px -24px rgba(3, 38, 87, 0.5);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 0.18s ease, transform 0.18s ease;
}

.nfs-hdr ul.nfs-hdr__menu li:hover > ul,
.nfs-hdr ul.nfs-hdr__menu li:focus-within > ul {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.nfs-hdr ul.nfs-hdr__menu ul a {
	display: block;
	width: 100%;
	padding: 9px 12px;
	border-radius: 8px;
	font-weight: 600;
	white-space: normal;
}

.nfs-hdr ul.nfs-hdr__menu ul a::after {
	content: none;
}

.nfs-hdr ul.nfs-hdr__menu ul a:hover {
	background: #f5f7fa;
}

.nfs-hdr__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-left: auto;
	flex: none;
}

.nfs-hdr__actions .nfs-cw {
	gap: 10px;
}

/* Butonul burger: singurul cu fundal, ca să se distingă de iconițe. */
/* 'display' stă SINGUR, în afara regulii grupate de mai jos: pus acolo, lângă
   :hover/:focus/:active, ar avea specificitate mai mare decât media query-ul
   care arată butonul pe mobil — butonul ar dispărea exact în timpul atingerii,
   iar apăsarea ar ajunge pe linkul de sub el. */
/* Selectorul are nevoie de 'button' + două clase: reset.css din tema
   hello-elementor se încarcă DUPĂ noi și declară
   "[type=button],[type=submit],button { display: inline-block }".
   '[type=button]' are aceeași specificitate ca o clasă, deci o regulă scrisă
   doar ca '.nfs-hdr__burger' rămâne la egalitate și pierde pe ordine —
   butonul apărea pe desktop. */
.nfs-hdr button.nfs-hdr__burger {
	display: none;
}

.nfs-hdr button.nfs-hdr__burger,
.nfs-hdr button.nfs-hdr__burger:hover,
.nfs-hdr button.nfs-hdr__burger:focus,
.nfs-hdr button.nfs-hdr__burger:active {
	align-items: center;
	touch-action: manipulation;
	justify-content: center;
	width: 42px !important;
	height: 42px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 10px !important;
	background: #032657 !important;
	background-image: none !important;
	color: #ffffff !important;
	box-shadow: none !important;
	outline: none !important;
	cursor: pointer;
}

.nfs-hdr__burger-bars,
.nfs-hdr__burger-bars::before,
.nfs-hdr__burger-bars::after {
	display: block;
	width: 18px;
	height: 2px;
	border-radius: 2px;
	background: #ffffff;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.nfs-hdr__burger-bars {
	position: relative;
}

.nfs-hdr__burger-bars::before,
.nfs-hdr__burger-bars::after {
	content: "";
	position: absolute;
	left: 0;
}

.nfs-hdr__burger-bars::before {
	top: -6px;
}

.nfs-hdr__burger-bars::after {
	top: 6px;
}

/* Burger deschis → X. */
.nfs-hdr__burger.is-open .nfs-hdr__burger-bars {
	background: transparent;
}

.nfs-hdr__burger.is-open .nfs-hdr__burger-bars::before {
	transform: translateY(6px) rotate(45deg);
}

.nfs-hdr__burger.is-open .nfs-hdr__burger-bars::after {
	transform: translateY(-6px) rotate(-45deg);
}

/* ---------- Sidebar-ul de meniu (ca mini-coșul) ---------- */

/* Gazda în care JS-ul mută sidebar-urile, la finalul paginii: păstrează clasa
   .nfs-hdr (deci și stilurile panourilor), dar nimic din aspectul header-ului. */
.nfs-hdr--drawer-host {
	position: static;
	width: auto;
	max-width: none;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
}

.nfs-hdr__overlay {
	position: fixed;
	inset: 0;
	background: rgba(3, 38, 87, 0.45);
	z-index: 999990;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.25s ease;
}

.nfs-hdr__overlay.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.nfs-hdr__panel {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(360px, 88vw);
	background: #ffffff;
	border-left: 1px solid #e3e8f0;
	box-shadow: -20px 0 50px -30px rgba(3, 38, 87, 0.6);
	z-index: 999991;
	transform: translateX(100%);
	transition: transform 0.28s ease;
	display: flex;
	flex-direction: column;
}

.nfs-hdr__panel.is-open {
	transform: translateX(0);
}

.nfs-hdr__panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 22px 24px;
	border-bottom: 1px solid #e3e8f0;
}

.nfs-hdr__panel-title {
	font: 700 18px 'Sora', sans-serif;
	color: #032657;
}

.nfs-hdr button.nfs-hdr__panel-close,
.nfs-hdr button.nfs-hdr__panel-close:hover,
.nfs-hdr button.nfs-hdr__panel-close:focus,
.nfs-hdr button.nfs-hdr__panel-close:active {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px !important;
	height: 34px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 1px solid #e3e8f0 !important;
	border-radius: 8px !important;
	background: #ffffff !important;
	background-image: none !important;
	color: #4a5f7d !important;
	box-shadow: none !important;
	outline: none !important;
	cursor: pointer;
}

.nfs-hdr button.nfs-hdr__panel-close:hover {
	background: #f5f7fa !important;
	color: #032657 !important;
}

.nfs-hdr__panel-body {
	flex: 1;
	overflow-y: auto;
	padding: 10px 24px 22px;
}

.nfs-hdr ul.nfs-hdr__panel-menu,
.nfs-hdr ul.nfs-hdr__panel-menu ul {
	display: block;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nfs-hdr ul.nfs-hdr__panel-menu li {
	margin: 0;
	padding: 0;
	list-style: none;
	border-bottom: 1px solid #eef1f6;
}

.nfs-hdr ul.nfs-hdr__panel-menu li::before {
	content: none;
}

.nfs-hdr ul.nfs-hdr__panel-menu li:last-child {
	border-bottom: none;
}

.nfs-hdr ul.nfs-hdr__panel-menu a {
	display: block;
	padding: 15px 0;
	font: 700 16px/1.35 'Public Sans', sans-serif;
	color: #032657 !important;
	text-decoration: none !important;
}

.nfs-hdr ul.nfs-hdr__panel-menu .current-menu-item > a {
	color: #0a4a8f !important;
}

/* Submeniul în sidebar: listă simplă, indentată. */
.nfs-hdr ul.nfs-hdr__panel-menu ul {
	padding: 0 0 10px 14px;
}

.nfs-hdr ul.nfs-hdr__panel-menu ul li {
	border-bottom: none;
}

.nfs-hdr ul.nfs-hdr__panel-menu ul a {
	padding: 9px 0;
	font-size: 14.5px;
	font-weight: 600;
	color: #4a5f7d !important;
}

.nfs-hdr__panel-foot {
	border-top: 1px solid #e3e8f0;
	padding: 20px 24px;
}

.nfs-hdr a.nfs-hdr__panel-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	width: 100%;
	padding: 14px 0;
	border-radius: 8px !important;
	background: #032657 !important;
	color: #ffffff !important;
	font: 700 15px 'Public Sans', sans-serif;
	text-decoration: none !important;
}

/* ---------- Praguri: meniul devine sidebar ---------- */

@media (max-width: 1200px) {
	.nfs-hdr--collapse-1200 .nfs-hdr__nav {
		display: none;
	}

	.nfs-hdr--collapse-1200 button.nfs-hdr__burger {
		display: inline-flex;
	}
}

@media (max-width: 1024px) {
	.nfs-hdr--collapse-1024 .nfs-hdr__nav {
		display: none;
	}

	.nfs-hdr--collapse-1024 button.nfs-hdr__burger {
		display: inline-flex;
	}
}

@media (max-width: 768px) {
	.nfs-hdr--collapse-768 .nfs-hdr__nav {
		display: none;
	}

	.nfs-hdr--collapse-768 button.nfs-hdr__burger {
		display: inline-flex;
	}
}

/* Pe mobil: iconițe fără fundal, doar burger-ul rămâne albastru. */
@media (max-width: 1024px) {
	.nfs-hdr__inner {
		gap: 14px;
		padding: 12px 18px;
	}

	.nfs-hdr__actions {
		gap: 2px;
	}

	.nfs-hdr .nfs-cw {
		gap: 2px;
	}

	.nfs-hdr .nfs-cw__trigger {
		height: 42px;
		padding: 0 8px;
		border-color: transparent !important;
		background: transparent !important;
	}

	.nfs-hdr .nfs-cw__trigger svg {
		width: 22px;
		height: 22px;
	}

	.nfs-hdr .nfs-cw__count {
		font-size: 12.5px;
	}

	.nfs-hdr .nfs-cw__account,
	.nfs-hdr .nfs-cw__account:hover {
		height: 42px;
		padding: 0 8px;
		background: transparent !important;
		color: #032657 !important;
		transform: none;
	}

	.nfs-hdr .nfs-cw__account svg {
		width: 22px;
		height: 22px;
	}

	.nfs-hdr .nfs-cw__account span {
		display: none;
	}

	/* Doar pe mobil coșul devine iconiță singură, iar numărul trece într-o
	   bulină absolută în colț. Pe desktop rămâne pastila din design. */
	.nfs-hdr .nfs-cw__trigger {
		width: 42px;
		padding: 0;
		justify-content: center;
		gap: 0;
	}

	.nfs-hdr .nfs-cw__badge {
		position: absolute;
		top: 0;
		right: 0;
		justify-content: center;
		/* box-sizing explicit: fără el, padding-ul și bordura s-ar aduna la
		   lățime, dar nu la înălțime, iar bulina ar ieși ovală. */
		box-sizing: border-box;
		min-width: 18px;
		height: 18px;
		padding: 0 4px;
		border-radius: 999px;
		background: #ffce00;
		border: 2px solid #ffffff;
		color: #032657;
		pointer-events: none;
	}

	.nfs-hdr .nfs-cw__count {
		font-size: 11px;
		line-height: 1;
	}

	/* Cu coșul gol, bulina dispare; punctul auriu e redundant lângă ea. */
	.nfs-hdr .nfs-cw__badge--empty {
		display: none;
	}

	.nfs-hdr .nfs-cw__dot {
		display: none;
	}
}

@media (max-width: 480px) {
	.nfs-hdr__inner {
		padding: 10px 14px;
	}

	.nfs-hdr__logo img {
		width: 140px !important;
	}
}

/* =================
   GRAFICĂ MONOGRAFII — ilustrația din secțiunea de monografii (homepage)
   Cerc auriu, foaie gri înclinată în spate, foaie albă cu titlul și bulina
   cu prețul. Pe ecrane înguste compoziția se micșorează proporțional.
   ================= */

.nfs-mono-graphic {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 420px;
	overflow: visible;
}

.nfs-mono-graphic *,
.nfs-mono-graphic *::before,
.nfs-mono-graphic *::after {
	box-sizing: border-box;
}

/* Scena are dimensiunea cercului; toate piesele se poziționează față de ea,
   ca la micșorare să rămână în aceleași raporturi. */
.nfs-mono-graphic__stage {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 330px;
	height: 330px;
	flex: none;
	transform-origin: center center;
}

.nfs-mono-graphic__circle {
	position: absolute;
	width: 320px;
	height: 320px;
	border-radius: 50%;
	background: #ffce00;
	opacity: 0.16;
}

.nfs-mono-graphic__back {
	position: absolute;
	width: 230px;
	height: 300px;
	border-radius: 18px;
	background: #e3e8f0;
	transform: rotate(-9deg) translate(-70px, 10px);
}

.nfs-mono-graphic__sheet {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 9px;
	width: 230px;
	height: 300px;
	padding: 24px;
	border-radius: 18px;
	background: #ffffff;
	box-shadow: 0 30px 60px -20px rgba(3, 38, 87, 0.35);
	transform: rotate(4deg);
}

.nfs-mono-graphic__icon {
	display: block;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: #032657;
}

.nfs-mono-graphic__title {
	display: block;
	margin-top: 6px;
	font: 700 14px/1.35 'Sora', sans-serif;
	color: #032657;
}

.nfs-mono-graphic__line {
	display: block;
	height: 2px;
	background: #e3e8f0;
}

.nfs-mono-graphic__line--1 {
	width: 75%;
}

.nfs-mono-graphic__line--2 {
	width: 90%;
}

.nfs-mono-graphic__line--3 {
	width: 60%;
}

.nfs-mono-graphic__footer {
	display: block;
	margin-top: auto;
	font: 600 10.5px 'Public Sans', sans-serif;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #8fa3bd;
}

/* În design bulina stă la 165px la dreapta centrului și 8px sub marginea de
   sus a zonei de 420px (adică 45px deasupra scenei de 330px). */
.nfs-mono-graphic__badge {
	position: absolute;
	top: -37px;
	left: calc(50% + 165px - 64px);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: #032657;
	color: #ffce00;
	box-shadow: 0 12px 24px -8px rgba(0, 0, 0, 0.35);
	font: 800 13px/1.1 'Sora', sans-serif;
}

.nfs-mono-graphic__currency {
	font-size: 9px;
	font-weight: 700;
}

@media (max-width: 767px) {
	.nfs-mono-graphic {
		height: 360px;
	}

	.nfs-mono-graphic__stage {
		transform: scale(0.85);
	}
}

@media (max-width: 400px) {
	.nfs-mono-graphic {
		height: 310px;
	}

	.nfs-mono-graphic__stage {
		transform: scale(0.72);
	}
}

/* =================
   ABONAMENTE (CARDURI) — casetele din secțiunea "Abonamente" a homepage-ului
   ================= */

/* Widget-ul stă într-un container flex Elementor, care îl face cât conținutul:
   fără asta grila nu are lățime pentru mai multe coloane și pune cardurile
   unul sub altul. */
.elementor-widget-nfs-plans {
	width: 100% !important;
	max-width: 100% !important;
	flex: 1 1 100%;
	align-self: stretch;
}

.elementor-widget-nfs-plans > .elementor-widget-container {
	width: 100%;
}

/* Desktop: toate cardurile pe un singur rând (numărul de coloane vine din
   widget, cât sunt planuri). Pe tabletă se rup după lățimea minimă, pe
   telefon unul sub altul. */
.nfs-plans {
	--nfs-plans-min: 260px;
	--nfs-plans-cols: 3;
	display: grid;
	grid-template-columns: repeat(var(--nfs-plans-cols), minmax(0, 1fr));
	gap: 24px;
	width: 100%;
	font-family: 'Public Sans', sans-serif;
}

@media (max-width: 1024px) {
	.nfs-plans {
		grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--nfs-plans-min)), 1fr));
	}
}

@media (max-width: 767px) {
	.nfs-plans {
		grid-template-columns: 1fr;
	}
}

.nfs-plans *,
.nfs-plans *::before,
.nfs-plans *::after {
	box-sizing: border-box;
}

.nfs-plans__card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 34px;
	background: #ffffff;
	border: 1px solid #e3e8f0;
	border-radius: 14px;
}

/* Bordura de 2px ar împinge conținutul cu 1px față de celelalte carduri:
   compensăm din padding, ca titlurile și prețurile să rămână aliniate. */
.nfs-plans__card.is-featured {
	padding: 33px;
	border: 2px solid #ffce00;
}

.nfs-plans__tag {
	position: absolute;
	top: -11px;
	left: 34px;
	padding: 5px 10px;
	border-radius: 4px;
	background: #ffce00;
	color: #032657;
	font: 700 10px/1.2 'Public Sans', sans-serif;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
}

.nfs-plans__name {
	font: 700 17px/1.3 'Sora', sans-serif;
	color: #032657;
}

.nfs-plans__price {
	margin-top: 16px;
	font: 800 34px/1.1 'Sora', sans-serif;
	color: #032657;
}

.nfs-plans .nfs-plans__price .woocommerce-Price-amount,
.nfs-plans .nfs-plans__price .woocommerce-Price-amount *,
.nfs-plans .nfs-plans__monthly .woocommerce-Price-amount,
.nfs-plans .nfs-plans__monthly .woocommerce-Price-amount * {
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
}

.nfs-plans__monthly {
	margin-top: 4px;
	font: 600 12.5px 'Public Sans', sans-serif;
	color: #7d8ea6;
}

.nfs-plans ul.nfs-plans__benefits {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 24px 0 26px;
	padding: 0;
	list-style: none;
}

.nfs-plans li.nfs-plans__benefit {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	padding: 0;
	font-size: 14.5px;
	line-height: 1.5;
	color: #4a5f7d;
}

.nfs-plans li.nfs-plans__benefit::before {
	content: none;
}

.nfs-plans__check {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #f5f7fa;
	color: #032657;
	font-size: 11px;
	line-height: 1;
}

.nfs-plans__card.is-featured .nfs-plans__check {
	background: #032657;
	color: #ffce00;
}

.nfs-plans a.nfs-plans__btn,
.nfs-plans a.nfs-plans__btn:hover,
.nfs-plans a.nfs-plans__btn:focus {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin-top: auto;
	padding: 12px 20px;
	border: 1px solid rgba(3, 38, 87, 0.25);
	border-radius: 8px;
	background: transparent;
	color: #032657;
	font: 700 14px/1 'Public Sans', sans-serif;
	text-decoration: none;
	white-space: nowrap;
	transition: transform 0.15s ease, background-color 0.15s ease;
}

.nfs-plans a.nfs-plans__btn:hover {
	transform: translateY(-2px);
}

.nfs-plans .nfs-plans__card.is-featured a.nfs-plans__btn,
.nfs-plans .nfs-plans__card.is-featured a.nfs-plans__btn:hover,
.nfs-plans .nfs-plans__card.is-featured a.nfs-plans__btn:focus {
	background: #ffce00;
	border-color: #ffce00;
	box-shadow: 0 1px 2px rgba(3, 38, 87, 0.12);
}

.nfs-plans .nfs-plans__card.is-featured a.nfs-plans__btn:hover {
	background: #f0c200;
	border-color: #f0c200;
}

@media (max-width: 767px) {
	.nfs-plans {
		gap: 20px;
	}

	.nfs-plans__card {
		padding: 26px 22px;
	}

	.nfs-plans__card.is-featured {
		padding: 25px 21px;
	}

	.nfs-plans__tag {
		left: 22px;
	}

	.nfs-plans__price {
		font-size: 30px;
	}

	/* Pe un singur rând, cardul evidențiat are nevoie de loc pentru eticheta
	   care iese deasupra lui. */
	.nfs-plans__card.is-featured {
		margin-top: 6px;
	}
}

/* ==========================================================================
   Secțiunile paginii "Despre" — bară de statistici, text+imagine, poveste pe
   etape, bloc evidențiat.

   Fonturile sunt scrise cu variabilă ȘI cu alternativă ("Sora", sans-serif):
   widget-urile pot ajunge pe pagini unde account.css (care definește
   variabilele) nu se încarcă, iar atunci ar cădea pe fontul temei.
   ========================================================================== */

.nfs-stats-row,
.nfs-text-media,
.nfs-timeline,
.nfs-callout {
	font-family: var(--nfs-font, "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
	color: var(--nfs-text, #1e2a3c);
}

.nfs-stats-row__value,
.nfs-text-media__title,
.nfs-timeline__title,
.nfs-timeline__step-title,
.nfs-callout__title {
	font-family: var(--nfs-font-heading, "Sora", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
	color: var(--nfs-navy, #032657);
}

/* ---------- Supratitluri, comune ---------- */

.nfs-text-media__eyebrow,
.nfs-timeline__eyebrow,
.nfs-callout__eyebrow,
.nfs-timeline__moment {
	display: block;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nfs-gold-dark, #b98900);
}

/* ---------- Bară statistici ---------- */

.nfs-stats-row {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 2px;
	border-radius: 16px;
	overflow: hidden;
}

.nfs-stats-row--card {
	background: var(--nfs-border, #e7ebf3);
	border: 1px solid var(--nfs-border, #e7ebf3);
}

.nfs-stats-row--card .nfs-stats-row__item {
	background: #fff;
}

.nfs-stats-row--navy {
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.14);
}

.nfs-stats-row--navy .nfs-stats-row__item {
	background: var(--nfs-navy, #032657);
}

.nfs-stats-row--navy .nfs-stats-row__value {
	color: var(--nfs-gold, #ffce00);
}

.nfs-stats-row--navy .nfs-stats-row__label {
	color: rgba(255, 255, 255, 0.82);
}

.nfs-stats-row--plain {
	gap: 18px;
}

.nfs-stats-row__item {
	padding: 22px 20px;
	text-align: center;
}

.nfs-stats-row__value {
	font-size: 44px;
	font-weight: 800;
	line-height: 1;
}

.nfs-stats-row__label {
	margin-top: 8px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--nfs-text-muted, #5b6880);
	text-wrap: pretty;
}

/* ---------- Text + imagine ---------- */

.nfs-text-media {
	--nfs-media-col: 40%;
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--nfs-media-col);
	align-items: center;
	gap: 40px;
}

.nfs-text-media--left {
	grid-template-columns: var(--nfs-media-col) minmax(0, 1fr);
}

.nfs-text-media--left .nfs-text-media__body {
	order: 2;
}

.nfs-text-media--left .nfs-text-media__media {
	order: 1;
}

.nfs-text-media__title {
	margin: 10px 0 0;
	font-size: 32px;
	font-weight: 800;
	line-height: 1.22;
	text-wrap: balance;
}

.nfs-text-media__text {
	margin-top: 14px;
	font-size: 16.5px;
	line-height: 1.75;
	color: var(--nfs-text-muted, #5b6880);
}

.nfs-text-media__text p {
	margin: 0 0 14px;
}

.nfs-text-media__text p:last-child {
	margin-bottom: 0;
}

.nfs-text-media__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.nfs-text-media__badge {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 14px;
	border: 1px solid var(--nfs-border, #e7ebf3);
	border-radius: 999px;
	background: #fff;
	font-size: 13.5px;
	font-weight: 700;
	color: var(--nfs-navy, #032657);
}

.nfs-text-media__badge svg {
	color: var(--nfs-gold-dark, #b98900);
	flex: 0 0 15px;
}

/* "img.nfs-x": .elementor img impune height:auto si ne-ar anula inaltimea. */
.elementor .nfs-text-media img.nfs-text-media__image,
.nfs-text-media img.nfs-text-media__image {
	display: block;
	width: 100%;
	height: 460px;
	object-fit: cover;
	object-position: top center;
	border-radius: 18px;
}

/* ---------- Poveste pe etape ---------- */

.nfs-timeline {
	--nfs-media-col: 38%;
	display: grid;
	grid-template-columns: var(--nfs-media-col) minmax(0, 1fr);
	column-gap: 64px;
	row-gap: 24px;
	/*
	 * FĂRĂ align-items: start.
	 *
	 * Cu el, coloana imaginii era înaltă exact cât imaginea, iar position:
	 * sticky din interior nu avea pe ce călători — imaginea rămânea pe loc.
	 * Lăsăm coloanele întinse pe toată înălțimea rândului, iar alinierea sus
	 * o face conținutul din fiecare coloană.
	 */
}

.nfs-timeline--media-right {
	grid-template-columns: minmax(0, 1fr) var(--nfs-media-col);
}

.nfs-timeline--media-right .nfs-timeline__media {
	order: 2;
}

.nfs-timeline__media {
	/* Grid item pe toată înălțimea rândului: spațiul pe care îl parcurge
	   imaginea lipită. */
	align-self: stretch;
}

.nfs-timeline__media-inner {
	position: relative;
}

.nfs-timeline--sticky .nfs-timeline__media-inner {
	position: sticky;
	top: 100px;
}

.elementor .nfs-timeline img.nfs-timeline__image,
.nfs-timeline img.nfs-timeline__image {
	display: block;
	width: 100%;
	height: 520px;
	object-fit: cover;
	object-position: top center;
	border-radius: 18px;
}

.nfs-timeline__badge {
	position: absolute;
	right: -14px;
	bottom: 24px;
	max-width: 200px;
	padding: 14px 18px;
	border-radius: 14px;
	background: var(--nfs-navy, #032657);
	color: #fff;
	box-shadow: 0 14px 30px rgba(3, 38, 87, 0.28);
}

.nfs-timeline__badge-value {
	display: block;
	font-family: var(--nfs-font-heading, "Sora", sans-serif);
	font-size: 22px;
	font-weight: 800;
	line-height: 1;
	color: var(--nfs-gold, #ffce00);
}

.nfs-timeline__badge-label {
	display: block;
	margin-top: 4px;
	font-size: 12.5px;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.85);
}

.nfs-timeline__title {
	margin: 10px 0 0;
	font-size: 34px;
	font-weight: 800;
	line-height: 1.2;
	text-wrap: balance;
}

.nfs-timeline__intro {
	margin: 14px 0 0;
	font-size: 17px;
	line-height: 1.7;
	color: var(--nfs-text-muted, #5b6880);
}

.nfs-timeline__steps {
	margin: 30px 0 0;
	padding: 0 0 0 30px;
	list-style: none;
	border-left: 2px solid var(--nfs-border, #e7ebf3);
}

.nfs-timeline__step {
	position: relative;
	padding-bottom: 30px;
}

.nfs-timeline__step:last-child {
	padding-bottom: 0;
}

/* Bulina de pe linie: desenata, ca sa ramana clara la orice zoom. */
.nfs-timeline__step::before {
	content: "";
	position: absolute;
	left: -39px;
	top: 3px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--nfs-gold, #ffce00);
	border: 3px solid #fff;
	box-shadow: 0 0 0 2px var(--nfs-gold, #ffce00);
}

.nfs-timeline__step-title {
	margin: 6px 0 0;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
}

.nfs-timeline__text {
	margin-top: 8px;
	font-size: 16px;
	line-height: 1.75;
	color: var(--nfs-text-muted, #5b6880);
}

.nfs-timeline__text p {
	margin: 0 0 12px;
}

.nfs-timeline__text p:last-child {
	margin-bottom: 0;
}

/* ---------- Bloc evidențiat ---------- */

.nfs-callout {
	padding: 30px 34px;
	border-radius: 18px;
}

.nfs-callout--soft {
	background: var(--nfs-bg, #f7f9fc);
	border: 1px solid var(--nfs-border, #e7ebf3);
	border-left: 4px solid var(--nfs-gold, #ffce00);
}

.nfs-callout--navy {
	background: var(--nfs-navy, #032657);
	color: #fff;
}

.nfs-callout--navy .nfs-callout__title {
	color: #fff;
}

.nfs-callout--navy .nfs-callout__text {
	color: rgba(255, 255, 255, 0.85);
}

.nfs-callout--navy .nfs-callout__eyebrow {
	color: var(--nfs-gold, #ffce00);
}

.nfs-callout--gold {
	background: var(--nfs-gold, #ffce00);
}

.nfs-callout--gold .nfs-callout__eyebrow {
	color: rgba(3, 38, 87, 0.7);
}

.nfs-callout--gold .nfs-callout__text {
	color: rgba(3, 38, 87, 0.86);
}

.nfs-callout__title {
	margin: 10px 0 0;
	font-size: 26px;
	font-weight: 800;
	line-height: 1.25;
	text-wrap: balance;
}

.nfs-callout__text {
	margin-top: 12px;
	font-size: 16.5px;
	line-height: 1.75;
	color: var(--nfs-text-muted, #5b6880);
}

.nfs-callout__text p {
	margin: 0 0 12px;
}

.nfs-callout__text p:last-child {
	margin-bottom: 0;
}

a.nfs-callout__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 20px;
	padding: 14px 28px;
	border-radius: 999px;
	background: var(--nfs-gold, #ffce00);
	color: var(--nfs-navy, #032657);
	font-family: var(--nfs-font-heading, "Sora", sans-serif);
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
}

.nfs-callout--gold a.nfs-callout__button {
	background: var(--nfs-navy, #032657);
	color: #fff;
}

a.nfs-callout__button:hover {
	filter: brightness(0.95);
	color: var(--nfs-navy, #032657);
}

.nfs-callout--gold a.nfs-callout__button:hover {
	color: #fff;
}

/* ==========================================================================
   Sub 1024px: coloanele se strang. Sub 767px devin una singura, iar imaginile
   urca deasupra textului — un portret dupa trei paragrafe nu mai ajuta.
   ========================================================================== */

@media (max-width: 1024px) {
	.nfs-text-media,
	.nfs-timeline {
		gap: 28px;
	}

	.nfs-text-media__title {
		font-size: 28px;
	}

	.nfs-timeline__title {
		font-size: 29px;
	}

	/*
	 * Sub 1024px povestea trece pe o singură coloană: poza sus, textul dedesubt.
	 * Pe două coloane înguste, eticheta "18+ ani" (poziționată în afara marginii
	 * pozei) intra peste text, iar lipirea la derulare urca poza peste paragrafe.
	 */
	.nfs-timeline,
	.nfs-timeline--media-right {
		grid-template-columns: minmax(0, 1fr);
	}

	.nfs-timeline__media,
	.nfs-timeline--media-right .nfs-timeline__media {
		order: 1;
	}

	.nfs-timeline__body {
		order: 2;
	}

	/*
	 * "!important" pe amândouă: distanța de lipire vine din controlul
	 * widget-ului, iar Elementor o scrie ca ".elementor-element-XXX
	 * .nfs-timeline__media-inner { top: 100px }", în fișierul lui, încărcat
	 * după al nostru. Pe position: relative, un "top" rămas activ nu lipește
	 * nimic — doar coboară poza vizual, peste titlul de dedesubt.
	 */
	.nfs-timeline--sticky .nfs-timeline__media-inner {
		position: relative !important;
		top: auto !important;
	}

	/* Eticheta rămâne în interiorul pozei, nu peste coloana de alături. */
	.nfs-timeline__badge {
		right: 16px;
		bottom: 16px;
	}
}

@media (max-width: 767px) {
	.nfs-text-media,
	.nfs-text-media--left,
	.nfs-timeline,
	.nfs-timeline--media-right {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
	}

	.nfs-text-media__body,
	.nfs-text-media--left .nfs-text-media__body,
	.nfs-timeline__body {
		order: 2;
	}

	.nfs-text-media__media,
	.nfs-text-media--left .nfs-text-media__media,
	.nfs-timeline__media,
	.nfs-timeline--media-right .nfs-timeline__media {
		order: 1;
	}

	/*
	 * Pe telefon, o imagine lipita de marginea de sus a ecranului la derulare
	 * ar acoperi jumatate din text, deci oprim lipirea.
	 *
	 * "relative", NU "static": eticheta "18+ ani" e pozitionata absolut fata
	 * de cutia asta. Pe static, cutia nu mai e reper si eticheta cadea la
	 * baza paginii, sub tot textul.
	 */
	.nfs-timeline--sticky .nfs-timeline__media-inner {
		position: relative !important;
		top: auto !important;
	}

	.nfs-stats-row__item {
		padding: 16px 12px;
	}

	.nfs-stats-row__label {
		font-size: 13px;
	}

	.nfs-text-media__title {
		font-size: 24px;
	}

	.nfs-text-media__text,
	.nfs-callout__text {
		font-size: 15.5px;
	}

	.nfs-timeline__title {
		font-size: 25px;
	}

	.nfs-timeline__intro {
		font-size: 15.5px;
	}

	.nfs-timeline__steps {
		margin-top: 22px;
		padding-left: 22px;
	}

	.nfs-timeline__step::before {
		left: -31px;
		width: 13px;
		height: 13px;
	}

	.nfs-timeline__step-title {
		font-size: 18px;
	}

	.nfs-timeline__text {
		font-size: 15.5px;
	}

	.nfs-timeline__badge {
		right: 12px;
		bottom: 12px;
		padding: 11px 14px;
	}

	.nfs-timeline__badge-value {
		font-size: 18px;
	}

	.nfs-callout {
		padding: 22px 20px;
	}

	.nfs-callout__title {
		font-size: 21px;
	}

	a.nfs-callout__button {
		width: 100%;
	}
}

/* ---------- Curs fără locuri ---------- */

/*
 * Cardul rămâne lizibil, doar pierde accentul: informația despre oraș, dată
 * și sală e utilă și celui care a ratat ediția. Nu îl estompăm de tot, ca să
 * nu pară dezactivat din greșeală.
 */
.nfs-course-card.is-sold-out {
	background: var(--nfs-bg, #f7f9fc);
	border-style: dashed;
}

.nfs-course-card.is-sold-out .nfs-course-card__price {
	color: var(--nfs-text-muted, #5b6880);
	text-decoration: line-through;
	text-decoration-thickness: 1px;
}


/*
 * Aceleasi dimensiuni cu selectorul de cantitate pe care il inlocuieste:
 * aceeasi distanta de sus (22px), aceeasi inaltime (28px continut + 6px
 * padding sus/jos + 1px chenar = 42px) si acelasi colt rotunjit. Asa
 * cardurile cu si fara locuri raman aliniate intre ele pe acelasi rand.
 */
.nfs-course-card__soldout {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	box-sizing: border-box;
	min-height: 42px;
	margin: 22px 0 0;
	padding: 6px 14px;
	border: 1px solid #f3d3cf;
	border-radius: 999px;
	background: #fdf4f3;
	color: #8f2018;
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.35;
	text-align: center;
}

/* Butonul de sub bandă: aceeași distanță ca "Cumpără bilet". */
.nfs-course-card__details {
	margin-top: 16px;
	padding: 12px 0 !important;
}

.nfs-course-card__soldout svg {
	flex: 0 0 16px;
	color: #b3261e;
}

@media (max-width: 640px) {
	.nfs-course-card__soldout {
		font-size: 13px;
	}
}

/* ==========================================================================
   Footer complet
   ========================================================================== */

.nfs-footer {
	--nfs-footer-accent: var(--nfs-gold, #ffce00);
	background: var(--nfs-navy, #032657);
	color: rgba(255, 255, 255, 0.78);
	font-family: var(--nfs-font, "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
	font-size: 15px;
	line-height: 1.6;
}

.nfs-footer__inner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 56px 24px 26px;
}

/* ---------- Partea de sus: brand + coloane ---------- */

.nfs-footer__top {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	gap: 48px;
	padding-bottom: 36px;
}

.elementor .nfs-footer img.nfs-footer__logo,
.nfs-footer img.nfs-footer__logo {
	display: block;
	width: auto;
	max-width: 210px;
	height: auto;
}

.nfs-footer__tagline {
	margin: 16px 0 0;
	max-width: 34ch;
	font-size: 15.5px;
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.72);
	text-wrap: pretty;
}

.nfs-footer__socials {
	display: flex;
	gap: 10px;
	margin-top: 20px;
}

a.nfs-footer__social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: #fff;
	text-decoration: none;
	transition: background .15s ease, border-color .15s ease, color .15s ease;
}

a.nfs-footer__social:hover,
a.nfs-footer__social:focus {
	background: var(--nfs-footer-accent);
	border-color: var(--nfs-footer-accent);
	color: var(--nfs-navy, #032657);
}

.nfs-footer__cols {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
}

.nfs-footer__col-title {
	margin: 0 0 14px;
	font-family: var(--nfs-font-heading, "Sora", sans-serif);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #fff;
}

.nfs-footer__links {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nfs-footer__links li {
	margin: 0 0 9px;
}

.nfs-footer__links a {
	color: rgba(255, 255, 255, 0.76);
	text-decoration: none;
	font-size: 14.5px;
	/* Ținta de atingere rămâne comodă pe telefon, fără să distanțeze lista. */
	display: inline-block;
	padding: 2px 0;
	transition: color .15s ease;
}

.nfs-footer__links a:hover,
.nfs-footer__links a:focus {
	color: var(--nfs-footer-accent);
}

/* ---------- Banda de contact ---------- */

.nfs-footer__contact {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	padding: 20px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

a.nfs-footer__contact-item,
.nfs-footer__contact-item {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

a.nfs-footer__contact-item:hover,
a.nfs-footer__contact-item:focus {
	color: var(--nfs-footer-accent);
}

.nfs-footer__contact-item.is-plain {
	font-weight: 500;
	color: rgba(255, 255, 255, 0.72);
}

.nfs-footer__contact-item svg {
	flex: 0 0 17px;
	color: var(--nfs-footer-accent);
}

/* ---------- Rândul de jos ---------- */

.nfs-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 24px;
	padding-top: 22px;
}

.nfs-footer__copy,
.nfs-footer__credit {
	margin: 0;
	font-size: 13.5px;
	color: rgba(255, 255, 255, 0.6);
}

.nfs-footer__credit a {
	color: rgba(255, 255, 255, 0.78);
	text-decoration: none;
}

.nfs-footer__credit a:hover {
	color: var(--nfs-footer-accent);
}

.nfs-footer__payments {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.nfs-footer__payments-note {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.55);
}

/* Logourile de plată vin pe fundaluri diferite; cutia albă le uniformizează. */
/* Logoul cu link: aceeași cutie, doar că răspunde la hover. */
a.nfs-footer__payment-link {
	display: inline-flex;
	border-radius: 7px;
	text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease;
}

a.nfs-footer__payment-link:hover,
a.nfs-footer__payment-link:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.28);
}

.elementor .nfs-footer img.nfs-footer__payment,
.nfs-footer img.nfs-footer__payment {
	height: 34px;
	width: auto;
	padding: 5px 9px;
	border-radius: 7px;
	background: #fff;
}

/* ==========================================================================
   Tabletă și telefon
   ========================================================================== */

@media (max-width: 1024px) {
	.nfs-footer__top {
		grid-template-columns: minmax(0, 1fr);
		gap: 34px;
	}

	.nfs-footer__inner {
		padding: 44px 20px 24px;
	}
}

@media (max-width: 640px) {
	.nfs-footer__cols {
		grid-template-columns: minmax(0, 1fr);
		gap: 26px;
	}

	.nfs-footer__inner {
		padding: 36px 20px 22px;
	}

	.nfs-footer__tagline {
		max-width: none;
	}

	.nfs-footer__contact {
		flex-direction: column;
		gap: 12px;
	}

	.nfs-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
	}

	.nfs-footer__payments {
		order: -1;
	}
}

/* ==========================================================================
   Ghid pas cu pas
   ========================================================================== */

.nfs-guide {
	max-width: 860px;
	margin: 0 auto;
	font-family: var(--nfs-font, "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
	color: var(--nfs-text, #1e2a3c);
}

.nfs-guide__intro {
	margin: 0 0 30px;
	font-size: 17px;
	line-height: 1.75;
	color: var(--nfs-text-muted, #5b6880);
	text-wrap: pretty;
}

.nfs-guide__category {
	margin: 34px 0 14px;
	font-family: var(--nfs-font-heading, "Sora", sans-serif);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--nfs-gold-dark, #b98900);
}

.nfs-guide__category:first-of-type {
	margin-top: 0;
}

.nfs-guide__group {
	border: 1px solid var(--nfs-border, #e7ebf3);
	border-radius: 14px;
	overflow: hidden;
	background: #fff;
}

.nfs-guide__item + .nfs-guide__item {
	border-top: 1px solid var(--nfs-border, #e7ebf3);
}

/* ---------- Întrebarea ---------- */

.nfs-guide__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 17px 20px;
	font-family: var(--nfs-font-heading, "Sora", sans-serif);
	font-size: 16.5px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--nfs-navy, #032657);
	cursor: pointer;
	list-style: none;
	transition: background .15s ease;
}

/* Săgeata implicită a browserului, scoasă în ambele dialecte. */
.nfs-guide__question::-webkit-details-marker {
	display: none;
}

.nfs-guide__question::marker {
	content: "";
}

.nfs-guide__question:hover {
	background: var(--nfs-bg, #f7f9fc);
}

.nfs-guide__question:focus-visible {
	outline: 2px solid var(--nfs-navy, #032657);
	outline-offset: -3px;
}

.nfs-guide__chevron {
	flex: 0 0 20px;
	color: var(--nfs-gold-dark, #b98900);
	transition: transform .2s ease;
}

.nfs-guide__item[open] .nfs-guide__question {
	background: var(--nfs-bg, #f7f9fc);
}

.nfs-guide__item[open] .nfs-guide__chevron {
	transform: rotate(180deg);
}

/* ---------- Răspunsul ---------- */

.nfs-guide__answer {
	padding: 2px 20px 20px;
	font-size: 16px;
	line-height: 1.75;
	color: var(--nfs-text-muted, #5b6880);
}

.nfs-guide__answer p {
	margin: 0 0 12px;
}

.nfs-guide__answer p:last-child {
	margin-bottom: 0;
}

.nfs-guide__answer strong {
	color: var(--nfs-navy, #032657);
	font-weight: 700;
}

.nfs-guide__answer ol,
.nfs-guide__answer ul {
	margin: 0 0 12px;
	padding-left: 22px;
}

.nfs-guide__answer li {
	margin-bottom: 8px;
}

.nfs-guide__answer li:last-child {
	margin-bottom: 0;
}

/* Pașii numerotați primesc cifre proprii, mai vizibile decât cele native. */
.nfs-guide__answer ol {
	list-style: none;
	padding-left: 0;
	counter-reset: nfs-step;
}

.nfs-guide__answer ol > li {
	position: relative;
	counter-increment: nfs-step;
	padding-left: 38px;
	min-height: 26px;
}

.nfs-guide__answer ol > li::before {
	content: counter(nfs-step);
	position: absolute;
	left: 0;
	top: 1px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--nfs-navy, #032657);
	color: #fff;
	font: 700 13px var(--nfs-font-heading, "Sora", sans-serif);
}

/* ---------- Caseta de final ---------- */

.nfs-guide__help {
	margin-top: 36px;
	padding: 28px 30px;
	border: 1px solid var(--nfs-border, #e7ebf3);
	border-radius: 16px;
	background: var(--nfs-bg, #f7f9fc);
	text-align: center;
}

.nfs-guide__help-title {
	margin: 0;
	font-family: var(--nfs-font-heading, "Sora", sans-serif);
	font-size: 21px;
	font-weight: 800;
	color: var(--nfs-navy, #032657);
}

.nfs-guide__help-text {
	margin: 10px auto 18px;
	max-width: 52ch;
	font-size: 15.5px;
	line-height: 1.7;
	color: var(--nfs-text-muted, #5b6880);
	text-wrap: pretty;
}

@media (max-width: 640px) {
	.nfs-guide__intro {
		font-size: 15.5px;
	}

	.nfs-guide__question {
		padding: 15px 16px;
		font-size: 15.5px;
	}

	.nfs-guide__answer {
		padding: 2px 16px 18px;
		font-size: 15.5px;
	}

	.nfs-guide__help {
		padding: 22px 18px;
	}

	.nfs-guide__help .nfs-btn {
		width: 100%;
		justify-content: center;
	}
}

/* ==========================================================================
   Pagina de prezentare a newsletterului
   Fără hero de temă: antetul promo e primul lucru din pagină, deci își poartă
   singur spațiul de sus.
   ========================================================================== */

/* Eticheta „Nou" de pe itemul din meniu. */
.nfs-menu-flag {
	display: inline-block;
	margin-left: 6px;
	padding: 2px 6px;
	border-radius: 4px;
	background: #ffce00;
	color: #032657;
	font: 700 10px/1.3 'Public Sans', sans-serif;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	vertical-align: 2px;
}

/* ---------- Antetul promo ---------- */

.nfs-nlhero {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	align-items: center;
	gap: 48px;
	/* Cât ține containerul părinte, dar nu mai lat decât conținutul
	   site-ului (1400px), ca rândurile de text să rămână citibile. */
	width: 100%;
	box-sizing: border-box;
	max-width: 1400px;
	margin: 0 auto;
	padding: 56px 0 40px;
	font-family: 'Public Sans', sans-serif;
	color: #1f2a44;
}

.nfs-nlhero__eyebrow {
	display: inline-block;
	margin-bottom: 14px;
	padding: 5px 12px;
	border-radius: 999px;
	background: #ffce00;
	color: #032657;
	font: 700 11px/1.3 'Public Sans', sans-serif;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.nfs-nlhero__title {
	margin: 0 0 16px;
	font: 800 clamp(30px, 4vw, 46px)/1.14 'Sora', sans-serif;
	color: #032657;
}

/* Accentul stă pe rândul lui, cu bara aurie sub el. */
.nfs-nlhero__accent {
	display: block;
	position: relative;
	width: fit-content;
	padding-bottom: 4px;
}

.nfs-nlhero__accent::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 6px;
	border-radius: 3px;
	background: #ffce00;
}

.nfs-nlhero__lead {
	margin: 0 0 20px;
	max-width: 46ch;
	font-size: 17px;
	line-height: 1.65;
	color: #5b6880;
	text-wrap: pretty;
}

.nfs-nlhero__list {
	margin: 0 0 26px;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}

.nfs-nlhero__list li {
	position: relative;
	margin: 0;
	padding-left: 28px;
	font-size: 15.5px;
	line-height: 1.5;
	color: #1f2a44;
}

/* Bifa desenată din două linii — nu depinde de un set de icoane. */
.nfs-nlhero__list li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 6px;
	width: 7px;
	height: 12px;
	border: solid #0d8a4f;
	border-width: 0 2.5px 2.5px 0;
	transform: rotate(45deg);
}

.nfs-nlhero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

/* ---------- Mostra din cont ----------
   Pagina de newsletter din cont, redesenată în mic, într-o fereastră de
   browser — capul de pagină arată ca al unei aplicații: ce primești, concret. */

.nfs-nlhero__sample {
	position: relative;
	z-index: 0;
	padding: 0 0 28px 28px;
}

/* Lumina din spatele ferestrei: auriu sus, navy jos. */
.nfs-nlhero__sample::before {
	content: "";
	position: absolute;
	inset: -40px -30px 0 -10px;
	z-index: -1;
	background:
		radial-gradient(closest-side at 70% 25%, rgba(255, 206, 0, 0.35), transparent),
		radial-gradient(closest-side at 30% 80%, rgba(3, 38, 87, 0.14), transparent);
	filter: blur(10px);
}

.nfs-nlapp {
	overflow: hidden;
	border-radius: 14px;
	background: #f5f7fa;
	border: 1px solid #dfe5ee;
	box-shadow: 0 2px 4px rgba(3, 38, 87, 0.06), 0 30px 60px -12px rgba(3, 38, 87, 0.28);
	transform: perspective(1800px) rotateY(-7deg) rotateX(2deg);
	transform-origin: left center;
}

.nfs-nlapp__bar {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px 14px;
	background: #fff;
	border-bottom: 1px solid #e3e8f0;
}

.nfs-nlapp__dots {
	display: flex;
	gap: 6px;
}

.nfs-nlapp__dots i {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #e3e8f0;
}

.nfs-nlapp__url {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	padding: 5px 12px;
	border-radius: 999px;
	background: #f5f7fa;
	font: 500 11.5px/1.3 'Public Sans', sans-serif;
	color: #5b6880;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.nfs-nlapp__body {
	display: grid;
	/* Fără minmax, coloana ia lățimea taburilor (nowrap) și lățește pagina pe mobil. */
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
	padding: 16px;
}

.nfs-nlapp__tabs {
	display: flex;
	gap: 4px;
	overflow: hidden;
	padding: 4px;
	border-radius: 10px;
	background: #fff;
	border: 1px solid #e3e8f0;
}

.nfs-nlapp__tabs span {
	flex: 0 0 auto;
	padding: 6px 10px;
	border-radius: 7px;
	font: 700 11.5px/1.3 'Public Sans', sans-serif;
	color: #5b6880;
	white-space: nowrap;
}

.nfs-nlapp__tabs .is-current {
	background: #032657;
	color: #fff;
}

.nfs-nlapp__tabs b {
	margin-left: 4px;
	padding: 1px 6px;
	border-radius: 999px;
	background: #f5f7fa;
	color: #032657;
	font-size: 10px;
}

/* Cardul navy al abonamentului, ca în cont. */
.nfs-nlapp__plan {
	position: relative;
	overflow: hidden;
	padding: 18px;
	border-radius: 12px;
	background: #032657;
	color: #b9c8dd;
	font: 500 12px/1.4 'Public Sans', sans-serif;
}

.nfs-nlapp__plan::after {
	content: "";
	position: absolute;
	width: 200px;
	height: 200px;
	right: -80px;
	top: -100px;
	border-radius: 50%;
	background: rgba(255, 206, 0, 0.12);
}

.nfs-nlapp__pill {
	display: inline-block;
	padding: 3px 9px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	background: rgba(255, 255, 255, 0.08);
	color: #ffce00;
	font: 700 9.5px/1.4 'Public Sans', sans-serif;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.nfs-nlapp__plan-title {
	margin: 10px 0 4px;
	font: 800 17px/1.25 'Sora', sans-serif;
	color: #fff;
}

.nfs-nlapp__days {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	margin-top: 14px;
}

.nfs-nlapp__days strong {
	font: 800 20px/1.2 'Sora', sans-serif;
	color: #ffce00;
}

.nfs-nlapp__progress {
	height: 6px;
	margin-top: 8px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.16);
}

.nfs-nlapp__progress i {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: #ffce00;
}

.nfs-nlapp__eds {
	padding: 14px 16px 6px;
	border-radius: 12px;
	background: #fff;
	border: 1px solid #e3e8f0;
}

.nfs-nlapp__eds-head {
	margin-bottom: 4px;
	font: 800 14px/1.3 'Sora', sans-serif;
	color: #032657;
}

.nfs-nlapp__ed {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0;
	border-top: 1px solid #eef1f7;
}

.nfs-nlapp__eds-head + .nfs-nlapp__ed {
	border-top: 0;
}

.nfs-nlapp__ed-icon {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 7px;
	background: #f5f7fa;
	border: 1px solid #e3e8f0;
	font: 800 8.5px 'Public Sans', sans-serif;
	color: #5b6880;
}

.nfs-nlapp__ed.is-new .nfs-nlapp__ed-icon {
	background: #fff;
	border-color: #032657;
	color: #032657;
}

.nfs-nlapp__ed-body {
	flex: 1;
	min-width: 0;
}

.nfs-nlapp__ed-date {
	display: block;
	font: 700 9.5px/1.4 'Public Sans', sans-serif;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #5b6880;
}

.nfs-nlapp__ed-date b {
	margin-left: 6px;
	padding: 1px 6px;
	border-radius: 999px;
	background: #ffce00;
	color: #032657;
	font-size: 8.5px;
	letter-spacing: 0.08em;
}

.nfs-nlapp__ed-title {
	display: block;
	overflow: hidden;
	font: 700 12.5px/1.4 'Sora', sans-serif;
	color: #032657;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.nfs-nlapp__ed-btn {
	flex: 0 0 auto;
	padding: 6px 10px;
	border-radius: 7px;
	border: 1px solid rgba(3, 38, 87, 0.25);
	font: 700 10.5px/1.3 'Public Sans', sans-serif;
	color: #1f2a44;
	white-space: nowrap;
}

/* Notificarea de vineri, peste colțul ferestrei. */
.nfs-nlapp__toast {
	position: absolute;
	left: 0;
	bottom: 70px;
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: 290px;
	padding: 12px 16px 12px 12px;
	border-radius: 12px;
	background: #fff;
	border: 1px solid #e3e8f0;
	box-shadow: 0 18px 40px -8px rgba(3, 38, 87, 0.3);
	font: 500 12px/1.4 'Public Sans', sans-serif;
	color: #5b6880;
	animation: nfs-nlapp-float 5s ease-in-out infinite;
}

.nfs-nlapp__toast strong {
	display: block;
	font: 700 13.5px/1.3 'Public Sans', sans-serif;
	color: #032657;
}

.nfs-nlapp__toast-icon {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: #ffce00;
	color: #032657;
}

@keyframes nfs-nlapp-float {
	50% { transform: translateY(-6px); }
}

@media (prefers-reduced-motion: reduce) {
	.nfs-nlapp__toast {
		animation: none;
	}
}

.nfs-nlhero__note {
	margin: 14px 2px 0;
	font-size: 13px;
	line-height: 1.5;
	color: #5b6880;
}

@media (max-width: 900px) {
	.nfs-nlhero {
		grid-template-columns: minmax(0, 1fr);
		gap: 34px;
		padding: 36px 0 28px;
	}

	.nfs-nlhero__sample {
		padding: 0;
	}

	.nfs-nlapp {
		transform: none;
	}

	/* Pe ecran îngust nu mai e loc lângă fereastră: notificarea intră sub ea,
	   urcând puțin peste marginea de jos. */
	.nfs-nlapp__toast {
		position: relative;
		left: auto;
		bottom: auto;
		width: fit-content;
		margin: -26px 0 0 12px;
	}
}

@media (max-width: 480px) {
	.nfs-nlapp__body {
		padding: 10px;
	}

	.nfs-nlapp__ed-btn {
		display: none;
	}
}

/* ---------- Beneficii / pași ---------- */

.nfs-nlben {
	width: 100%;
	box-sizing: border-box;
	max-width: 1400px;
	margin: 0 auto;
	padding: 44px 0;
	font-family: 'Public Sans', sans-serif;
	color: #1f2a44;
}

.nfs-nlben__title {
	margin: 0 0 10px;
	font: 800 clamp(24px, 2.6vw, 32px)/1.2 'Sora', sans-serif;
	color: #032657;
}

.nfs-nlben__intro {
	margin: 0 0 8px;
	max-width: 62ch;
	font-size: 16px;
	line-height: 1.65;
	color: #5b6880;
	text-wrap: pretty;
}

.nfs-nlben__grid {
	display: grid;
	gap: 18px;
	margin-top: 26px;
}

.nfs-nlben__grid--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nfs-nlben__grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nfs-nlben__grid--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nfs-nlben__card {
	padding: 24px 22px;
	border: 1px solid #e3e8f0;
	border-radius: 14px;
	background: #fff;
}

.nfs-nlben--steps .nfs-nlben__card {
	padding-top: 20px;
}

.nfs-nlben__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: #032657;
	color: #fff;
	font: 800 15px/1 'Sora', sans-serif;
}

.nfs-nlben__card-title {
	margin: 0 0 8px;
	font: 700 18px/1.3 'Sora', sans-serif;
	color: #032657;
}

.nfs-nlben__card-text {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: #5b6880;
	text-wrap: pretty;
}

@media (max-width: 900px) {
	.nfs-nlben__grid--3,
	.nfs-nlben__grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.nfs-nlben {
		padding: 32px 0;
	}

	.nfs-nlben__grid--2,
	.nfs-nlben__grid--3,
	.nfs-nlben__grid--4 {
		grid-template-columns: minmax(0, 1fr);
	}
}

/*
 * Marginile laterale apar abia când fereastra coboară sub lățimea
 * conținutului. Pe ecrane largi secțiunea stă deja centrată la 1400px, cu
 * spațiu de ambele părți — un padding în plus doar ar îngusta degeaba.
 * Pragul e 1448 (1400 + 2 × 24): exact punctul în care altfel s-ar lipi de
 * marginea ecranului.
 */
@media (max-width: 1448px) {
	.nfs-nlhero,
	.nfs-nlben {
		padding-left: 24px;
		padding-right: 24px;
	}
}

@media (max-width: 767px) {
	.nfs-nlhero,
	.nfs-nlben {
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* ---------- Planul pe care clientul îl are deja ---------- */

/* Navy, nu auriu: auriul e „cumpără asta", iar aici nu mai e nimic de cumpărat. */
.nfs-plans__tag--owned {
	background: #032657;
	color: #fff;
}

/* Auriu, culoarea noastră de „asta e al tău" — se vede din prima care card
   e al lui, printre cele gri. */
.nfs-plans__card.is-owned {
	border-color: #ffce00;
	box-shadow: inset 0 0 0 2px #ffce00;
}

.nfs-plans__btn--owned {
	background: transparent !important;
	color: #032657 !important;
	border: 1.5px solid #032657 !important;
}

/* ---------- Caseta „Ești deja abonat" de pe pagina produsului ---------- */

.nfs-owned-sub {
	margin: 18px 0 0;
	padding: 22px 24px;
	border: 1px solid #e3e8f0;
	border-left: 3px solid #ffce00;
	border-radius: 12px;
	background: #f7f9fc;
	font-family: 'Public Sans', sans-serif;
}

.nfs-owned-sub__title {
	margin: 0 0 8px;
	font: 800 19px/1.3 'Sora', sans-serif;
	color: #032657;
}

.nfs-owned-sub__text {
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 1.6;
	color: #5b6880;
	text-wrap: pretty;
}

.nfs-owned-sub__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

/* ---------- Pachete pe care abonatul nu le poate lua acum ----------
   Rămân vizibile: omul vede unde poate ajunge. Dar nu arată ca ceva de
   apăsat — gri, fără umbră, cu motivul scris sub buton. */

.nfs-plans__card.is-locked {
	background: #f7f9fc;
	border-color: #e3e8f0;
	box-shadow: none;
}

.nfs-plans__card.is-locked .nfs-plans__name,
.nfs-plans__card.is-locked .nfs-plans__price,
.nfs-plans__card.is-locked .nfs-plans__monthly,
.nfs-plans__card.is-locked .nfs-plans__benefits {
	color: #8a93a5;
}

.nfs-plans__card.is-locked .nfs-plans__price,
.nfs-plans__card.is-locked .nfs-plans__name {
	opacity: 0.75;
}

.nfs-plans__card.is-locked .nfs-plans__check {
	color: #b4bcca;
}

/*
 * Subsolul cardului: motivul deasupra, butonul dedesubt, tot blocul lipit de
 * marginea de jos. Așa rândul de butoane rămâne drept, indiferent câte
 * beneficii are fiecare plan sau dacă are sau nu explicație.
 */
.nfs-plans__foot {
	margin-top: auto;
	padding-top: 18px;
}

/*
 * Geometria butonului stă pe "a.nfs-plans__btn", iar ăsta e un <span> — nu
 * are unde duce, deci nu trebuie să poată fi apăsat sau ajuns cu tastatura.
 * Îi dăm aceleași dimensiuni, ca rândul să arate la fel.
 */
.nfs-plans span.nfs-plans__btn--locked {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 12px 20px;
	border: 1px solid #dde3ec;
	border-radius: 8px;
	background: #eef1f7;
	color: #8a93a5;
	font: 700 14px/1 'Public Sans', sans-serif;
	white-space: nowrap;
	cursor: not-allowed;
	user-select: none;
}

/* Butonul din subsol nu mai are nevoie de margin-top: îl ridică .nfs-plans__foot. */
.nfs-plans .nfs-plans__foot a.nfs-plans__btn {
	margin-top: 0;
}

.nfs-plans__locked-note {
	margin: 0 0 10px;
	font-size: 12.5px;
	line-height: 1.5;
	color: #8a93a5;
	text-align: center;
}

/* ==========================================================================
   Pagini legale (termeni, confidențialitate)
   Text lung, citit pe sărite: rândul scurt și cuprinsul cu ancore contează
   mai mult decât orice efect vizual.
   ========================================================================== */

.nfs-legal {
	width: 100%;
	box-sizing: border-box;
	max-width: 1400px;
	margin: 0 auto;
	padding: 48px 0 60px;
	font-family: 'Public Sans', sans-serif;
	color: #1f2a44;
}

.nfs-legal__title {
	margin: 0 0 8px;
	font: 800 clamp(28px, 3.4vw, 40px)/1.18 'Sora', sans-serif;
	color: #032657;
}

.nfs-legal__updated {
	margin: 0 0 28px;
	font-size: 14px;
	color: #5b6880;
}

.nfs-legal__toc {
	margin: 0 0 34px;
	padding: 20px 24px;
	border: 1px solid #e3e8f0;
	border-left: 3px solid #ffce00;
	border-radius: 12px;
	background: #f7f9fc;
}

.nfs-legal__toc-title {
	margin: 0 0 10px;
	font: 700 12px/1.3 'Public Sans', sans-serif;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #5b6880;
}

.nfs-legal__toc ol {
	margin: 0;
	padding-left: 20px;
	columns: 2;
	column-gap: 28px;
}

.nfs-legal__toc li {
	margin: 0 0 7px;
	break-inside: avoid;
	font-size: 14.5px;
	line-height: 1.45;
}

.nfs-legal__toc a {
	color: #032657;
	text-decoration: none;
}

.nfs-legal__toc a:hover {
	text-decoration: underline;
}

.nfs-legal__section {
	margin: 0 0 30px;
	/* Ținta ancorei nu intră sub antetul fix. */
	scroll-margin-top: 110px;
}

.nfs-legal__section-title {
	margin: 0 0 12px;
	font: 800 20px/1.35 'Sora', sans-serif;
	color: #032657;
}

.nfs-legal__num {
	color: #b9c3d4;
	margin-right: 6px;
}

.nfs-legal__text p,
.nfs-legal__text li {
	font-size: 15.5px;
	line-height: 1.75;
	color: #2b3850;
	text-wrap: pretty;
}

.nfs-legal__text p {
	margin: 0 0 14px;
}

.nfs-legal__text ul {
	margin: 0 0 16px;
	padding-left: 20px;
}

.nfs-legal__text li {
	margin: 0 0 8px;
}

.nfs-legal__table {
	width: 100%;
	margin: 6px 0 16px;
	border-collapse: collapse;
	font-size: 14.5px;
}

.nfs-legal__table th,
.nfs-legal__table td {
	padding: 10px 12px;
	border: 1px solid #e3e8f0;
	text-align: left;
	vertical-align: top;
	line-height: 1.55;
}

.nfs-legal__table th {
	background: #f7f9fc;
	font-weight: 700;
	color: #032657;
}

/* Câmpurile necompletate ale firmei — imposibil de publicat din greșeală. */
.nfs-legal__todo {
	background: #ffe9a8;
	color: #7a5c00;
	padding: 1px 6px;
	border-radius: 4px;
	font-weight: 700;
	font-size: 13px;
}

@media (max-width: 1448px) {
	.nfs-legal {
		padding-left: 24px;
		padding-right: 24px;
	}
}

@media (max-width: 700px) {
	.nfs-legal {
		padding: 32px 20px 48px;
	}

	.nfs-legal__toc ol {
		columns: 1;
	}

	.nfs-legal__table,
	.nfs-legal__table tbody,
	.nfs-legal__table tr,
	.nfs-legal__table td {
		display: block;
		width: 100%;
		box-sizing: border-box;
	}

	/* Capul de tabel nu are sens când rândurile devin blocuri. */
	.nfs-legal__table thead {
		display: none;
	}

	.nfs-legal__table tr {
		margin-bottom: 12px;
		border: 1px solid #e3e8f0;
		border-radius: 10px;
		overflow: hidden;
	}

	.nfs-legal__table td {
		border: 0;
		border-bottom: 1px solid #eef1f7;
	}

	.nfs-legal__table td:last-child {
		border-bottom: 0;
	}
}

/* ==========================================================================
   Articol de blog (pagina individuală)
   ========================================================================== */

.nfs-post {
	width: 100%;
	box-sizing: border-box;
	max-width: 1180px;
	margin: 0 auto;
	padding: 40px 0 64px;
	font-family: 'Public Sans', sans-serif;
	color: #1f2a44;
}

.nfs-post__head {
	max-width: 760px;
	margin: 0 auto 26px;
	text-align: center;
}

.nfs-post__cat {
	display: inline-block;
	margin-bottom: 14px;
	padding: 5px 12px;
	border-radius: 999px;
	background: #ffce00;
	color: #032657;
	font: 700 11px/1.3 'Public Sans', sans-serif;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
}

.nfs-post__title {
	margin: 0 0 14px;
	font: 800 clamp(28px, 3.6vw, 42px)/1.2 'Sora', sans-serif;
	color: #032657;
	text-wrap: balance;
}

.nfs-post__meta {
	display: flex;
	justify-content: center;
	gap: 10px;
	font-size: 14px;
	color: #5b6880;
}

.nfs-post__image {
	margin: 0 0 34px;
	border-radius: 16px;
	overflow: hidden;
}

.elementor .nfs-post__image img,
.nfs-post__image img {
	display: block;
	width: 100%;
	height: auto;
}

/* Cuprinsul în stânga, articolul în dreapta — lățimea coloanei de text
   rămâne sub 70 de caractere, cât se citește confortabil. */
.nfs-post__layout {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 48px;
	align-items: start;
}

.nfs-post__aside {
	position: sticky;
	top: 100px;
}

.nfs-post__toc {
	padding: 18px 20px;
	border: 1px solid #e3e8f0;
	border-radius: 12px;
	background: #f7f9fc;
}

.nfs-post__toc-title {
	margin: 0 0 10px;
	font: 700 11px/1.3 'Public Sans', sans-serif;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #5b6880;
}

.nfs-post__toc ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nfs-post__toc li {
	margin: 0 0 9px;
}

.nfs-post__toc a {
	font-size: 14px;
	line-height: 1.45;
	color: #032657;
	text-decoration: none;
}

.nfs-post__toc a:hover {
	text-decoration: underline;
}

.nfs-post__main {
	min-width: 0;
	max-width: 760px;
}

.nfs-post__content p,
.nfs-post__content li {
	font-size: 17px;
	line-height: 1.75;
	color: #2b3850;
	text-wrap: pretty;
}

.nfs-post__content p {
	margin: 0 0 18px;
}

.nfs-post__content h2 {
	margin: 34px 0 12px;
	font: 800 25px/1.3 'Sora', sans-serif;
	color: #032657;
	scroll-margin-top: 110px;
}

.nfs-post__content h3 {
	margin: 26px 0 10px;
	font: 700 20px/1.35 'Sora', sans-serif;
	color: #032657;
}

.nfs-post__content ul,
.nfs-post__content ol {
	margin: 0 0 18px;
	padding-left: 22px;
}

.nfs-post__content li {
	margin: 0 0 8px;
}

.nfs-post__content a {
	color: #032657;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.nfs-post__content blockquote {
	margin: 24px 0;
	padding: 16px 22px;
	border-left: 3px solid #ffce00;
	background: #f7f9fc;
	border-radius: 0 10px 10px 0;
}

.nfs-post__content blockquote p:last-child {
	margin-bottom: 0;
}

.elementor .nfs-post__content img,
.nfs-post__content img {
	max-width: 100%;
	height: auto;
	border-radius: 12px;
}

.nfs-post__content table {
	width: 100%;
	margin: 0 0 20px;
	border-collapse: collapse;
	font-size: 15px;
}

.nfs-post__content th,
.nfs-post__content td {
	padding: 10px 12px;
	border: 1px solid #e3e8f0;
	text-align: left;
}

.nfs-post__content th {
	background: #f7f9fc;
	color: #032657;
}

.nfs-post__author {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	margin-top: 36px;
	padding-top: 22px;
	border-top: 1px solid #e3e8f0;
}

.elementor .nfs-post__author img.nfs-post__avatar,
.nfs-post__author img.nfs-post__avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	flex: 0 0 56px;
}

.nfs-post__author-name {
	font: 700 16px/1.3 'Sora', sans-serif;
	color: #032657;
}

.nfs-post__author-bio {
	margin: 6px 0 0;
	font-size: 14.5px;
	line-height: 1.6;
	color: #5b6880;
}

.nfs-post__cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 22px;
	flex-wrap: wrap;
	margin-top: 32px;
	padding: 26px 28px;
	border-radius: 16px;
	background: #032657;
	color: #fff;
}

.nfs-post__cta-title {
	margin: 0 0 6px;
	font: 800 21px/1.3 'Sora', sans-serif;
	color: #fff;
}

.nfs-post__cta-text {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.82);
	max-width: 52ch;
}

.nfs-post__related {
	margin-top: 54px;
	padding-top: 32px;
	border-top: 1px solid #e3e8f0;
}

.nfs-post__related-title {
	margin: 0 0 20px;
	font: 800 24px/1.3 'Sora', sans-serif;
	color: #032657;
}

.nfs-post__related-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.nfs-post__card {
	display: block;
	padding: 0 0 16px;
	border: 1px solid #e3e8f0;
	border-radius: 14px;
	overflow: hidden;
	background: #fff;
	text-decoration: none;
	transition: border-color .15s ease, transform .15s ease;
}

.nfs-post__card:hover {
	border-color: #032657;
	transform: translateY(-2px);
}

.nfs-post__card-thumb {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #f2f5fa;
}

.elementor .nfs-post__card-thumb img,
.nfs-post__card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.nfs-post__card-date {
	display: block;
	margin: 14px 18px 4px;
	font: 700 11px/1.3 'Public Sans', sans-serif;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #8a93a5;
}

.nfs-post__card-title {
	display: block;
	margin: 0 18px;
	font: 700 16px/1.4 'Sora', sans-serif;
	color: #032657;
}

@media (max-width: 1448px) {
	.nfs-post {
		padding-left: 24px;
		padding-right: 24px;
	}
}

@media (max-width: 1024px) {
	/* Sub lățimea asta, cuprinsul lateral ar îngusta textul prea tare:
	   trece deasupra articolului, fără poziție fixă. */
	.nfs-post__layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	.nfs-post__aside {
		position: static;
	}

	.nfs-post__main {
		max-width: none;
	}

	.nfs-post__related-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.nfs-post {
		padding: 28px 20px 48px;
	}

	.nfs-post__content p,
	.nfs-post__content li {
		font-size: 16px;
	}

	.nfs-post__related-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.nfs-post__cta {
		padding: 22px 20px;
	}
}

/* ---------- Pagini legale: lățime mare, coloană de text citibilă ----------
   Pagina ține toată lățimea conținutului (1400px), dar rândul de text rămâne
   scurt: cuprinsul trece în stânga și ocupă restul spațiului. */

.nfs-legal__layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 56px;
	align-items: start;
}

.nfs-legal__layout--plain {
	grid-template-columns: minmax(0, 1fr);
}

.nfs-legal__aside {
	position: sticky;
	top: 100px;
}

/* În lateral, cuprinsul are o singură coloană — altfel titlurile se rup. */
.nfs-legal__aside .nfs-legal__toc {
	margin: 0;
	max-height: calc(100vh - 140px);
	overflow-y: auto;
}

.nfs-legal__aside .nfs-legal__toc ol {
	columns: 1;
}

.nfs-legal__body {
	min-width: 0;
	max-width: 820px;
}

@media (max-width: 1024px) {
	.nfs-legal__layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	.nfs-legal__aside {
		position: static;
	}

	.nfs-legal__aside .nfs-legal__toc {
		max-height: none;
		overflow: visible;
	}

	.nfs-legal__aside .nfs-legal__toc ol {
		columns: 2;
	}

	.nfs-legal__body {
		max-width: none;
	}
}

@media (max-width: 700px) {
	.nfs-legal__aside .nfs-legal__toc ol {
		columns: 1;
	}
}

/* ---------- Pagini legale: ies din lățimea containerului părinte ----------
 * Elementor pune widget-ul într-un container cu lățimea de conținut a temei
 * (de regulă 1140px), iar un max-width de 1400 nu poate depăși părintele.
 * Scoatem pagina din el: lățime cerută direct de la fereastră, plafonată la
 * 1400, și recentrată. Scădem 48px ca să rămână loc pentru bara de derulare
 * și pentru gutere, altfel apare derulare pe orizontală.
 */
.nfs-legal {
	width: min(1400px, calc(100vw - 48px));
	max-width: none;
	margin-left: 50%;
	transform: translateX(-50%);
}

@media (max-width: 767px) {
	.nfs-legal {
		width: calc(100vw - 32px);
	}
}

/* ---------- Articol de blog: aceeași ieșire din containerul părinte ----------
   Vezi explicația de la paginile legale: containerul Elementor are lățimea de
   conținut a temei, iar max-width nu poate trece de părinte. */

.nfs-post {
	width: min(1400px, calc(100vw - 48px));
	max-width: none;
	margin-left: 50%;
	transform: translateX(-50%);
}

@media (max-width: 767px) {
	.nfs-post {
		width: calc(100vw - 32px);
	}
}

/* Firul Ariadnei, deasupra titlului. */
.nfs-post__crumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
	font-size: 13.5px;
	color: #8a93a5;
}

.nfs-post__crumbs a {
	color: #5b6880;
	text-decoration: none;
}

.nfs-post__crumbs a:hover {
	color: #032657;
	text-decoration: underline;
}

.nfs-post__crumbs .is-current {
	color: #032657;
	font-weight: 600;
	/* Titlurile lungi n-au voie să rupă rândul în trei. */
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (max-width: 640px) {
	.nfs-post__crumbs {
		margin-bottom: 16px;
		font-size: 12.5px;
	}

	.nfs-post__crumbs .is-current {
		max-width: 100%;
	}
}

/* Fără cuprins, articolul ocupă toată lățimea — o singură coloană.
   (Clasa vine din PHP; selectorul cu :has e plasa de siguranță pentru
   șabloanele deja salvate, randate înainte de modificare.) */
.nfs-post__layout--plain,
.nfs-post__layout:not(:has(.nfs-post__aside)) {
	grid-template-columns: minmax(0, 1fr);
}

.nfs-post__layout--plain .nfs-post__main,
.nfs-post__layout:not(:has(.nfs-post__aside)) .nfs-post__main {
	max-width: 860px;
	margin: 0 auto;
}

/* Fără cuprins, textul începe imediat sub imagine: îi dăm aer deasupra și
   dedesubt, cât are și coloana cu cuprins în varianta pe două coloane. */
.nfs-post__layout--plain .nfs-post__main,
.nfs-post__layout:not(:has(.nfs-post__aside)) .nfs-post__main {
	padding-top: 40px;
	padding-bottom: 40px;
}

/* Colțurile rotunjite se scriu și pe <img>, nu doar pe <figure>: regula
   ".elementor img" a temei se încarcă după noi și le-ar anula. */
.elementor .nfs-post__image img,
.nfs-post__image img {
	border-radius: 16px;
}

@media (max-width: 640px) {
	.elementor .nfs-post__image img,
	.nfs-post__image img {
		border-radius: 12px;
	}
}

/* Logo-ul din subsol, pe telefon: aceeași dimensiune ca în antet (140px).
   Pe ecran mic, un logo de 210px arăta de două ori cât cel de sus.
   Selectorul include ".elementor" fiindcă regula de bază a fost nevoită să
   facă la fel — tema stilizează ".elementor img". */
@media (max-width: 767px) {
	.elementor .nfs-footer img.nfs-footer__logo,
	.nfs-footer img.nfs-footer__logo {
		max-width: 140px;
	}
}
