/**
 * FDT A11y — stiluri de accesibilitate (WCAG 2.2 AA).
 * Regulă de aur: NIMIC de aici nu schimbă aspectul site-ului în repaus.
 * Tot ce e vizual apare doar la focus de tastatură sau sub setări de OS
 * (prefers-reduced-motion).
 */

/* Utilitar screen-reader (dublură a celui din block-library, ca să nu depindem de el). */
.fdt-sr-only {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	white-space: nowrap;
}

/* ── Skip link: invizibil până primește focus ───────────────────────────── */
.fdt-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	background: #1b4332;
	color: #ffffff;
	padding: 0.9rem 1.4rem;
	border-radius: 0 0 12px 0;
	font-weight: 700;
	text-decoration: none;
}
.fdt-skip-link:focus {
	left: 0;
	outline: 3px solid #ffffff;
	outline-offset: -6px;
}

/* Ținta skip link-ului nu are nevoie de outline propriu la focus programatic. */
#continut:focus {
	outline: none;
}

/* ── Focus vizibil, consecvent (WCAG 2.2: ≥2px, contrast 3:1) ───────────── */
/* Inel în două straturi: alb interior + verde închis exterior → vizibil pe
   ORICE fundal (crem, alb, verde, carduri colorate). Outline-ul transparent
   păstrează inelul nativ în modul Windows High Contrast / forced-colors.
   box-shadow urmează singur border-radius-ul elementului (pastile, inputuri).
   Vizibil DOAR la navigarea cu tastatura. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
	outline: 3px solid transparent;
	box-shadow: 0 0 0 3px #fffdfa, 0 0 0 6px #1b4332;
}

/* Formularul de contact: tema pune outline:none cu un halo de 10% opacitate
   (≈1.15:1 — practic invizibil). Îl întărim DOAR în starea de focus. */
.contact-form input:focus,
.contact-form textarea:focus {
	box-shadow: 0 0 0 4px rgba(45, 106, 79, 0.4);
}

/* ── Meniul mobil off-canvas: afară din ordinea de tabulare cât e închis ──
   Animația de slide rămâne identică; visibility comută abia după tranziție. */
@media (max-width: 768px) {
	.nav-links {
		visibility: hidden;
		transition: right 0.4s cubic-bezier(0.77, 0, 0.175, 1), visibility 0s 0.4s;
	}
	.nav-links.active {
		visibility: visible;
		transition-delay: 0s;
	}
	/* Tema forțează visibility:visible pe submeniuri la ≤768px — moștenim
	   starea meniului, altfel linkurile rămân focusabile off-screen. */
	.nav-links .dropdown-content {
		visibility: inherit;
	}
}

/* ── Dropdown-uri accesibile din tastatură (desktop) ─────────────────────
   Completează :hover-ul temei; nu îl înlocuiește. */
@media (min-width: 769px) {
	.dropdown.fdt-open .dropdown-content {
		visibility: visible;
		opacity: 1;
		transform: translateY(0);
	}
}

/* ── Ținte de atingere ≥24px ────────────────────────────────────────────── */
/* Bulinele Swiper: punctul vizibil rămâne 8px, aria de click devine 24×24.
   Marginile negative verticale anulează creșterea pe înălțime a rândului;
   pe orizontală bulinele se distanțează ușor (16→32px între centre) — necesar
   ca zonele de atingere de 24px să nu se suprapună (WCAG 2.5.8). */
.swiper-pagination-bullet {
	box-sizing: content-box;
	border: 8px solid transparent;
	background-clip: padding-box;
	margin-top: -8px;
	margin-bottom: -8px;
}
/* Hamburgerul (30×21 vizual): aria de atingere crește la ~54×45. */
.hamburger {
	position: relative;
}
.hamburger::after {
	content: '';
	position: absolute;
	inset: -12px;
}

/* ── Ancorele din hubul Oferte aterizează sub navbar + bara sticky ──────── */
.age-section[id] {
	scroll-margin-top: 140px;
}

/* ── Mesajul de stare al formularului (apare doar după trimitere) ───────── */
.fdt-form-status {
	margin: 0 0 1.2rem;
	padding: 0.9rem 1.2rem;
	border-radius: 12px;
	font-weight: 600;
}
.fdt-form-status--ok {
	background: rgba(45, 106, 79, 0.12);
	color: #1b4332;
	border: 1px solid rgba(45, 106, 79, 0.35);
}
.fdt-form-status--err {
	background: rgba(164, 38, 44, 0.1);
	color: #7a1c21;
	border: 1px solid rgba(164, 38, 44, 0.35);
}

/* ── Mișcare redusă (setare de OS): oprește toate animațiile/tranzițiile ── */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto !important;
	}
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		transition-delay: 0s !important;
		scroll-behavior: auto !important;
	}
}
