/* ══════════════════════════════════════════════════════════════════════════
   RePatriot 2.0 · biblioteca de componente
   Citește doar tokeni semantici.

   Două reguli care se verifică la review:
     · nicio componentă nu depinde de JavaScript ca să fie utilizabilă;
     · focusul de tastatură e un inel de 3px, offset 3px, vizibil pe orice fundal.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Reset ───────────────────────────────────────────────────────────────── */

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

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--color-bg-2);
  color: var(--color-text);
  font: 400 var(--text-body)/var(--lh-body) var(--font-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg, video { max-width: 100%; height: auto; display: block; }
[hidden] { display: none !important; }

::selection { background: var(--color-data); color: var(--color-text-on-yellow); }

h1, h2, h3, h4, h5, h6 { margin: 0; font-family: var(--font-ui); font-weight: 600; }
p, ul, ol, dl, figure, blockquote { margin: 0 0 var(--space-4); }
p:last-child { margin-bottom: 0; }

a { color: var(--color-link); text-decoration: underline; text-underline-offset: 2px; }
a:hover { color: var(--color-link-hover); }

/* Un singur inel de focus, peste tot. Nu se dezactivează niciodată. */
:focus-visible {
  outline: 3px solid var(--color-focus-ring);
  outline-offset: 3px;
  border-radius: var(--radius-1);
}

/* ── Utilitare de structură ──────────────────────────────────────────────── */

.u-container {
  max-width: var(--grid-max);
  margin-inline: auto;
  padding-inline: var(--grid-margin);
}

.u-measure { max-width: var(--measure); }
.u-visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.u-stack > * + * { margin-top: var(--space-4); }
.u-stack-lg > * + * { margin-top: var(--space-6); }

.u-skip-link {
  position: absolute; left: var(--space-4); top: -100px; z-index: var(--z-toast);
  background: var(--color-action); color: var(--color-action-fg);
  padding: var(--space-3) var(--space-4); border-radius: var(--radius-2);
  font: 600 var(--text-body-s)/1 var(--font-ui); text-decoration: none;
  transition: top var(--dur-fast) var(--ease-out);
}
.u-skip-link:focus { top: var(--space-4); color: var(--color-action-fg); }

/* ── Tipografie ──────────────────────────────────────────────────────────── */

.t-display-xl { font: 900 var(--text-display-xl)/var(--lh-display-xl) var(--font-display); letter-spacing: -.02em; }
.t-display-l  { font: 900 var(--text-display-l)/var(--lh-display-l) var(--font-display); letter-spacing: -.02em; }
.t-h1 { font: 600 var(--text-h1)/var(--lh-h1) var(--font-ui); letter-spacing: -.01em; }
.t-h2 { font: 600 var(--text-h2)/var(--lh-h2) var(--font-ui); letter-spacing: -.01em; }
.t-h3 { font: 600 var(--text-h3)/var(--lh-h3) var(--font-ui); }
.t-h4 { font: 600 var(--text-h4)/var(--lh-h4) var(--font-ui); }
.t-body-l { font-size: var(--text-body-l); line-height: var(--lh-body-l); }
.t-body-s { font-size: var(--text-body-s); line-height: var(--lh-body-s); }
.t-caption { font-size: var(--text-caption); line-height: var(--lh-caption); color: var(--color-text-secondary); }
.t-label {
  font: 600 var(--text-label)/var(--lh-label) var(--font-ui);
  color: var(--color-text-secondary);
}
.t-muted { color: var(--color-text-secondary); }

/* Cifrele mari sunt tabulare: altfel coloanele de numere tremură. */
.t-figure {
  font: 900 var(--text-display-l)/1 var(--font-display);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.02em;
}

@media (max-width: 767px) {
  .t-display-xl { font-size: 2.5rem; }
  .t-display-l  { font-size: 2rem; }
  .t-h1 { font-size: 1.75rem; }
  .t-h2 { font-size: 1.5rem; }
}

/* ── Buton ───────────────────────────────────────────────────────────────── */
/* component/button.html.twig · înălțime minimă 44px                          */
/* Etichetele lungi trec pe două rânduri; butoanele nu trunchiază niciodată.  */

.c-button {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  min-height: 44px; padding: var(--space-3) var(--space-5);
  border: 1px solid transparent; border-radius: var(--radius-2);
  font: 600 var(--text-body-s)/1.25 var(--font-ui);
  text-align: center; text-decoration: none; cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out),
              color var(--dur-fast) var(--ease-out);
}

.c-button--primary {
  background: var(--color-action);
  color: var(--color-action-fg);
}
.c-button--primary:hover { background: var(--color-action-hover); color: var(--color-action-fg); }
.c-button--primary:active { background: var(--color-action-active); }

.c-button--secondary {
  background: transparent;
  border-color: var(--color-border-strong);
  color: var(--color-secondary);
}
.c-button--secondary:hover { background: var(--color-bg-3); border-color: var(--color-secondary); color: var(--color-secondary); }

.c-button--ghost {
  background: transparent; color: var(--color-action); padding-inline: var(--space-3);
}
.c-button--ghost:hover { background: var(--color-action-subtle); color: var(--color-action-on-subtle); }

/* Singura acțiune distructivă din interfață. #BF292C nu apare nicăieri altundeva. */
.c-button--danger { background: var(--color-danger); color: #fff; }
.c-button--danger:hover { background: #9E2225; color: #fff; }

.c-button[disabled], .c-button[aria-disabled="true"] {
  background: var(--color-bg-3); border-color: var(--color-bg-3);
  color: var(--color-text-disabled); cursor: not-allowed; pointer-events: none;
}

.c-button--block { width: 100%; }
.c-button--small { min-height: 36px; padding: var(--space-2) var(--space-3); font-size: var(--text-caption); }

/* ── Formulare ───────────────────────────────────────────────────────────── */
/* _macros/form.html.twig · validare server-side, mesaj legat prin aria-describedby */

.c-field { margin-bottom: var(--space-5); }
.c-field__label {
  display: block; margin-bottom: var(--space-2);
  font: 600 var(--text-label)/var(--lh-label) var(--font-ui);
  color: var(--color-text);
}
.c-field__required { color: var(--color-action); margin-left: 2px; }

.c-input, .c-select, .c-textarea {
  display: block; width: 100%; min-height: 44px;
  padding: var(--space-3) var(--space-4);
  background: var(--color-bg-1); color: var(--color-text);
  border: 1px solid var(--color-border-strong); border-radius: var(--radius-2);
  font: 400 var(--text-body)/1.4 var(--font-text);
  transition: border-color var(--dur-fast) var(--ease-out);
}
.c-input:hover, .c-select:hover, .c-textarea:hover { border-color: var(--color-secondary); }
.c-input::placeholder, .c-textarea::placeholder { color: var(--color-text-disabled); }
.c-input[disabled], .c-select[disabled], .c-textarea[disabled] {
  background: var(--color-bg-3); color: var(--color-text-disabled); cursor: not-allowed;
}
.c-textarea { min-height: 120px; resize: vertical; line-height: var(--lh-body); }

.c-select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2355607A' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--space-4) center;
  padding-right: var(--space-7);
}

.c-field__hint { margin-top: var(--space-2); font-size: var(--text-caption); color: var(--color-text-secondary); }
.c-field__counter { float: right; font-variant-numeric: tabular-nums; }

.c-field--error .c-input,
.c-field--error .c-select,
.c-field--error .c-textarea { border-color: var(--color-danger); border-width: 2px; }

.c-field__error {
  margin-top: var(--space-2);
  font-size: var(--text-body-s); font-weight: 700;
  color: var(--color-danger);
}

.c-choice { display: flex; align-items: flex-start; gap: var(--space-3); margin-bottom: var(--space-3); }
.c-choice input { width: 20px; height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--color-action); }
.c-choice label { font-size: var(--text-body-s); line-height: var(--lh-body-s); }

.c-fieldset { border: 0; padding: 0; margin: 0 0 var(--space-5); }
.c-fieldset legend {
  padding: 0; margin-bottom: var(--space-3);
  font: 600 var(--text-label)/var(--lh-label) var(--font-ui);
  color: var(--color-text);
}

/* Sumarul de erori, în capul paginii, cu link către fiecare câmp greșit. */
.c-error-summary {
  border: 2px solid var(--color-danger); border-radius: var(--radius-2);
  background: var(--color-danger-bg); padding: var(--space-4) var(--space-5);
  margin-bottom: var(--space-6);
}
.c-error-summary h2 { font-size: var(--text-h4); color: var(--color-danger); margin-bottom: var(--space-2); }
.c-error-summary ul { margin: 0; padding-left: var(--space-5); }
.c-error-summary a { color: var(--color-danger); font-weight: 700; }

/* ── Chip de filtru ──────────────────────────────────────────────────────── */
/* Chipurile sunt <a> cu href care conține parametrii GET — merg fără JS.      */

.c-chip {
  display: inline-flex; align-items: center; gap: var(--space-2);
  min-height: 36px; padding: var(--space-2) var(--space-4);
  border: 1px solid var(--color-border-strong); border-radius: var(--radius-pill);
  background: var(--color-bg-1); color: var(--color-text);
  font: 600 var(--text-caption)/1 var(--font-ui); text-decoration: none;
  transition: background-color var(--dur-fast) var(--ease-out);
}
.c-chip:hover { background: var(--color-bg-3); color: var(--color-text); }
.c-chip--selected {
  background: var(--color-action-subtle);
  border-color: var(--color-action);
  color: var(--color-action-on-subtle);
}
.c-chip--selected::after { content: "×"; font-size: 16px; line-height: 1; }
.c-chip[aria-disabled="true"] { color: var(--color-text-disabled); background: var(--color-bg-2); pointer-events: none; }
.c-chip__count { color: var(--color-text-secondary); font-weight: 400; font-variant-numeric: tabular-nums; }

/* ── Badge ───────────────────────────────────────────────────────────────── */

.c-badge {
  display: inline-flex; align-items: center; gap: var(--space-1);
  padding: 3px var(--space-2); border-radius: var(--radius-1);
  font: 600 var(--text-caption)/1.3 var(--font-ui); white-space: nowrap;
}
/* Singura combinație permisă cu galben: #131A2B pe #FCB037, 11,40:1. */
.c-badge--laureat { background: var(--color-data); color: var(--color-text-on-yellow); }
/* Rolul ACTIV e magenta plin; alb pe #B81E4A dă 6,32:1, deci trece AA la
   orice dimensiune. */
.c-badge--role    { background: var(--color-action); color: var(--color-action-fg); }
.c-badge--role-subtle { background: var(--color-action-subtle); color: var(--color-action-on-subtle); }
.c-badge--outline { border: 1px solid var(--color-border-strong); color: var(--color-text-secondary); }
.c-badge--info    { background: var(--color-info-bg); color: var(--color-info); }
.c-badge--success { background: var(--color-success-bg); color: var(--color-success); }
.c-badge--warning { background: var(--color-warning-bg); color: var(--color-warning); }
.c-badge--danger  { background: var(--color-danger-bg); color: var(--color-danger); }

/* ── Avatar ──────────────────────────────────────────────────────────────── */
/* Fotografia e starea implicită. Fără ea: inițiale albe pe #203987, aceeași   */
/* formă și dimensiune, ca grila să nu se miște. Fără siluetă generică.        */

.c-avatar {
  display: grid; place-items: center; flex: none;
  width: 48px; height: 48px; border-radius: var(--radius-2);
  background: var(--color-secondary); color: var(--color-text-inverse);
  font: 900 var(--text-body-s)/1 var(--font-display);
  overflow: hidden;
}
.c-avatar img { width: 100%; height: 100%; object-fit: cover; }
.c-avatar--lg { width: 96px; height: 96px; font-size: var(--text-h3); }
.c-avatar--sm { width: 32px; height: 32px; font-size: var(--text-caption); }
/* Marcajul galben = laureat Top 100. */
.c-avatar--laureat { box-shadow: inset 0 0 0 3px var(--color-data); }

/* ── Tab-uri (sunt linkuri către adrese proprii, nu stare în JS) ─────────── */

.c-tabs { display: flex; gap: var(--space-1); border-bottom: 1px solid var(--color-border); overflow-x: auto; }
.c-tabs__item {
  padding: var(--space-3) var(--space-4);
  font: 600 var(--text-body-s)/1 var(--font-ui);
  color: var(--color-text-secondary); text-decoration: none; white-space: nowrap;
  border-bottom: 3px solid transparent; margin-bottom: -1px;
}
.c-tabs__item:hover { color: var(--color-text); background: var(--color-bg-2); }
.c-tabs__item[aria-current="page"] { color: var(--color-text); border-bottom-color: var(--color-brand-magenta); }
.c-tabs__item[aria-disabled="true"] { color: var(--color-text-disabled); pointer-events: none; }

/* ── Card ────────────────────────────────────────────────────────────────── */

.c-card {
  background: var(--color-bg-1);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-3);
  overflow: hidden;
}
.c-card__body { padding: var(--space-5); }

/* component/person-card.html.twig · variant: compact | standard | featured   */

.c-person { display: flex; flex-direction: column; height: 100%; }
/* Pătrat, decupat de sus: portretele vechi au formate de la 2:3 la 16:9,
   iar fața e aproape mereu în treimea de sus. Linkul acoperă zona absolut,
   ca imaginea să nu mai poată împinge înălțimea cardului. */
.c-person__media { aspect-ratio: 1 / 1; background: var(--color-bg-3); position: relative; overflow: hidden; }
.c-person__media img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.c-person__photo-link { position: absolute; inset: 0; display: block; }
a.c-person__media { display: block; }
a.c-avatar { text-decoration: none; }
.c-person__media .c-avatar { width: 100%; height: 100%; border-radius: 0; font-size: var(--text-h1); }
.c-person__badges { position: absolute; left: var(--space-3); top: var(--space-3); display: flex; gap: var(--space-2); }
/* Peste fotografie, eticheta cu contur n-are ce contrasta: primește fundal
   alb plin, ca oricare altă etichetă de pe card. */
.c-person__badges { z-index: 1; }
.c-person__badges .c-badge--outline { background: var(--color-bg-1); border-color: var(--color-bg-1); color: var(--color-text); }
.c-person__body { padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-1); flex: 1; }
.c-person__name { font: 600 var(--text-h4)/var(--lh-h4) var(--font-ui); }
.c-person__name a { color: var(--color-text); text-decoration: none; }
.c-person__name a:hover { color: var(--color-action); text-decoration: underline; }
.c-person__meta { font-size: var(--text-body-s); color: var(--color-text-secondary); }
/* Butonul se aliniază jos, ca rândul de carduri să fie egal. */
.c-person__action { margin-top: auto; padding-top: var(--space-4); }

/* Inițialele din linkul foto se subliniau: sublinierea vine de la <a> și nu
   se poate anula din copil, deci se scoate pe link. */
.c-person__photo-link, a.c-person__media, a.c-avatar, a:has(> .c-avatar) { text-decoration: none; }

/* Pe telefon, grila de oameni are două coloane: cu una singură, 24 de
   carduri cu foto pe toată lățimea însemnau ~14 000 px de scroll pe pagină. */
@media (max-width: 640px) {
  .c-grid:has(> .c-person:not(.c-person--compact):not(.c-person--featured)) { grid-template-columns: 1fr 1fr; gap: var(--space-3); }
  .c-person__body { padding: var(--space-3); }
  .c-person__name { font-size: var(--text-body); line-height: 1.3; }
  .c-person__meta { font-size: var(--text-caption); line-height: 1.4; }
  .c-person__media .c-avatar { font-size: var(--text-h3); }
  .c-person__badges { left: var(--space-2); top: var(--space-2); right: var(--space-2); gap: 4px; flex-wrap: wrap; }
  .c-person__badges .c-badge { font-size: 10px; padding: 2px 6px; }
  .c-person__action { padding-top: var(--space-3); }
  .c-person__action .c-button { padding-inline: var(--space-2); font-size: 12px; }
}

.c-person--compact { flex-direction: row; align-items: center; gap: var(--space-3); padding: var(--space-3); }
.c-person--compact .c-person__body { padding: 0; }
.c-person--compact .c-person__name { font-size: var(--text-body); }
.c-person--compact .c-person__action { margin-top: 0; padding-top: 0; }

.c-person--featured { flex-direction: row; gap: var(--space-5); align-items: center; padding: var(--space-4); height: auto; }
.c-person--featured .c-person__media { width: 144px; flex: none; aspect-ratio: 1 / 1; border-radius: var(--radius-2); }
.c-person--featured .c-person__body { padding: 0; gap: 2px; }
/* Paragrafele aveau marginile implicite ale browserului: patru rânduri de
   meta ieșeau cu goluri de câte un rând între ele. */
.c-person--featured .c-person__body p { margin: 0; }
.c-person--featured .c-person__name { margin: var(--space-2) 0 var(--space-1); }
.c-person--featured .c-person__action { margin-top: var(--space-3); padding-top: 0; }
.c-person--featured .c-badge--outline { background: var(--color-bg-2); border-color: var(--color-border); color: var(--color-text); }
@media (max-width: 560px) {
  .c-person--featured { flex-direction: column; align-items: flex-start; }
  .c-person--featured .c-person__media { width: 100%; }
}

/* ── Alertă ──────────────────────────────────────────────────────────────── */
/* Se randează server-side după redirect; toast-ul e progresiv, alerta rămâne */
/* fallback-ul.                                                               */

.c-alert {
  display: flex; gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-2);
  border-left: 4px solid;
  font-size: var(--text-body-s); line-height: var(--lh-body-s);
  margin-bottom: var(--space-5);
}
.c-alert--success { background: var(--color-success-bg); border-color: var(--color-success); color: #14532d; }
.c-alert--warning { background: var(--color-warning-bg); border-color: var(--color-data); color: var(--color-warning); }
.c-alert--error   { background: var(--color-danger-bg);  border-color: var(--color-danger); color: #7f1d1d; }
.c-alert--info    { background: var(--color-info-bg);    border-color: var(--color-info); color: #0c4a6e; }
.c-alert__title { font-weight: 700; display: block; margin-bottom: 2px; }

/* ── Toast (progresiv: apare doar cu JS, alerta rămâne fallback) ─────────── */

.c-toast-region {
  position: fixed; right: var(--space-5); bottom: var(--space-5);
  z-index: var(--z-toast); display: grid; gap: var(--space-3);
  max-width: min(400px, calc(100vw - var(--space-8)));
}
.c-toast {
  display: flex; align-items: center; gap: var(--space-3);
  background: var(--color-text); color: var(--color-text-inverse);
  padding: var(--space-4); border-radius: var(--radius-2);
  box-shadow: var(--shadow-3); font-size: var(--text-body-s);
}
.c-toast__close {
  margin-left: auto; background: none; border: 0; cursor: pointer;
  color: var(--color-rp-grey-light, #B2B8C4); font-size: 18px; line-height: 1;
}

/* ── Modal (focus prins, Esc închide; niciodată pentru conținut principal) ── */

.c-modal { border: 0; padding: 0; border-radius: var(--radius-3); box-shadow: var(--shadow-3); max-width: 520px; width: calc(100vw - var(--space-8)); }
.c-modal::backdrop { background: rgba(11, 27, 51, .6); }
.c-modal__body { padding: var(--space-6); }
.c-modal__actions { display: flex; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-5); }

/* ── Tabel (admin și oportunități; sortarea e link cu ?sort=) ────────────── */

.c-table-wrap { overflow-x: auto; }
.c-table { width: 100%; border-collapse: collapse; font-size: var(--text-body-s); }
.c-table th, .c-table td { padding: var(--space-3) var(--space-4); text-align: left; border-bottom: 1px solid var(--color-border); }
.c-table thead th {
  font: 600 var(--text-label)/var(--lh-label) var(--font-ui);
  color: var(--color-text-secondary); white-space: nowrap;
  background: var(--color-bg-2);
}
.c-table thead th a { color: inherit; text-decoration: none; }
.c-table thead th a:hover { color: var(--color-action); }
.c-table tbody tr:hover { background: var(--color-bg-2); }
.c-table td.is-numeric { text-align: right; font-variant-numeric: tabular-nums; }

/* Pe mobil tabelul devine listă compactă — nu se derulează orizontal. */
@media (max-width: 767px) {
  .c-table--stack thead { display: none; }
  .c-table--stack tr { display: block; border-bottom: 1px solid var(--color-border); padding: var(--space-3) 0; }
  .c-table--stack td { display: flex; justify-content: space-between; gap: var(--space-4); border: 0; padding: var(--space-1) 0; }
  .c-table--stack td::before { content: attr(data-label); font-weight: 700; color: var(--color-text-secondary); }
}

/* ── Breadcrumb ──────────────────────────────────────────────────────────── */

.c-breadcrumb { font-size: var(--text-caption); color: var(--color-text-secondary); margin-bottom: var(--space-4); }
.c-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0; padding: 0; }
.c-breadcrumb li + li::before { content: "/"; margin-right: var(--space-2); color: var(--color-border-strong); }
.c-breadcrumb a { color: var(--color-text-secondary); }
/* Pe profil și pe oportunitate breadcrumb-ul e primul lucru din pagină și
   stătea lipit de antet. */
.u-container > .c-breadcrumb:first-child { padding-top: var(--space-5); }

/* ── Paginare (clasică, nu infinite scroll) ─────────────────────────────── */

.c-pagination { display: flex; align-items: center; gap: var(--space-1); flex-wrap: wrap; justify-content: center; margin-top: var(--space-7); }
.c-pagination a, .c-pagination span {
  display: grid; place-items: center; min-width: 44px; height: 44px; padding-inline: var(--space-3);
  border-radius: var(--radius-2); text-decoration: none;
  font: 600 var(--text-body-s)/1 var(--font-ui); color: var(--color-text);
  font-variant-numeric: tabular-nums;
}
.c-pagination a:hover { background: var(--color-bg-3); }
.c-pagination [aria-current="page"] { background: var(--color-secondary); color: var(--color-text-inverse); }
.c-pagination__info { width: 100%; text-align: center; font-size: var(--text-caption); color: var(--color-text-secondary); margin-top: var(--space-3); }

/* ── Stare goală ─────────────────────────────────────────────────────────── */
/* Spune ce filtru să scoți și câte rezultate ai obține fără el.               */

.c-empty {
  text-align: center; padding: var(--space-8) var(--space-5);
  border: 1px dashed var(--color-border-strong); border-radius: var(--radius-3);
  background: var(--color-bg-1);
}
.c-empty h2 { font-size: var(--text-h3); margin-bottom: var(--space-3); }
.c-empty p { color: var(--color-text-secondary); max-width: 48ch; margin-inline: auto; }
.c-empty__actions { display: flex; gap: var(--space-3); justify-content: center; flex-wrap: wrap; margin-top: var(--space-5); }

/* Motivul de pătrate. Apare de maximum două ori pe pagină: antet de secțiune
   mare și stare goală. În rest, tăcere. */
.c-squares { display: grid; grid-template-columns: repeat(3, 8px); gap: 3px; }
.c-squares i { display: block; width: 8px; height: 8px; background: var(--color-brand-magenta); opacity: .25; }
.c-squares i:nth-child(3n+1) { opacity: .5; }
.c-squares i:first-child { opacity: 1; }

/* ── Antet de site ───────────────────────────────────────────────────────── */

.c-header {
  /* Deasupra barelor lipicioase ale paginii (sub-navigația Summit): meniul de
     mobil se deschide din antet, iar bara Summit, la același nivel și mai
     jos în DOM, îi fura click-urile („EN”, „Vreau o conexiune”; 27.09.2026). */
  position: sticky; top: 0; z-index: var(--z-dropdown);
  background: var(--color-bg-inverse); color: var(--color-text-inverse);
  border-bottom: 3px solid var(--color-data);
}
.c-header__inner { display: flex; align-items: center; gap: var(--space-5); min-height: 60px; }
.c-header a { color: var(--color-text-inverse); text-decoration: none; }

/* Logotipul oficial, ca imagine (600×113). Înălțimea decide mărimea; pe
   fond închis se albește, cum cere brandbook-ul. */
.c-logo { display: inline-flex; align-items: center; flex: none; line-height: 0; }
.c-logo__img { display: block; height: 30px; width: auto; }
.c-logo--mono .c-logo__img { filter: brightness(0) invert(1); }

.c-nav { display: flex; gap: var(--space-1); margin-left: auto; align-items: center; }
.c-nav__link {
  padding: var(--space-2) var(--space-3); border-radius: var(--radius-2);
  font: 600 var(--text-body-s)/1 var(--font-ui);
}
.c-nav__link:hover { background: var(--color-secondary-hover); }
.c-nav__link[aria-current="page"] { background: var(--color-secondary-hover); }

.c-lang { display: flex; gap: 2px; font: 600 var(--text-caption)/1 var(--font-ui); }
.c-lang a { padding: var(--space-2); border-radius: var(--radius-1); opacity: .65; }
.c-lang a[aria-current="true"] { opacity: 1; background: var(--color-secondary-hover); }

.c-header .c-button--primary:hover { color: var(--color-action-fg); }

/* Antetul public e alb, cu logoul color (machetele homepage-ului, 25.09.2026).
   Adminul rămâne pe bleumarin: se vede imediat în ce zonă ești. */
.c-header--light { background: rgba(255, 255, 255, .96); backdrop-filter: saturate(1.4) blur(8px); color: var(--color-text); border-bottom: 1px solid var(--color-border); }
.c-header--light .c-header__inner { min-height: 72px; }
.c-header--light a { color: var(--color-text); }
.c-header--light .c-nav__link:hover,
.c-header--light .c-nav__link[aria-current="page"] { background: var(--color-bg-2); color: var(--color-text); }
.c-header--light .c-nav__link[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--color-action); border-radius: var(--radius-2) var(--radius-2) 0 0; }
.c-header--light .c-lang a[aria-current="true"] { background: var(--color-bg-2); }
.c-header--light .c-burger { color: var(--color-text); }
.c-header--light .c-button--primary { color: var(--color-action-fg); }
.c-header--light .c-logo__img { height: 34px; }
@media (max-width: 640px) { .c-header--light .c-logo__img { height: 28px; } }

/* Meniul de mobil: <details> + <summary>, deschis fără JS. Panoul acoperă
   lățimea ecranului sub antet; fundalul paginii rămâne vizibil, estompat. */
.c-mnav { display: none; margin-left: auto; }
.c-burger {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; margin-right: calc(var(--space-2) * -1);
  border-radius: var(--radius-2); cursor: pointer; list-style: none;
  color: var(--color-text-inverse);
}
.c-burger::-webkit-details-marker { display: none; }
.c-burger::marker { content: ''; }
.c-burger:hover { background: var(--color-bg-2); }
.c-burger__close { display: none; }
.c-mnav[open] .c-burger__open { display: none; }
.c-mnav[open] .c-burger__close { display: block; }

.c-mnav__panel {
  position: absolute; left: 0; right: 0; top: 100%;
  max-height: calc(100vh - 72px); overflow-y: auto;
  background: var(--color-bg-1); border-bottom: 1px solid var(--color-border);
  /* Umbra de 100vmax estompează pagina de dedesubt; clip-path o taie în sus,
     ca antetul să rămână curat. */
  box-shadow: 0 0 0 100vmax rgba(15, 23, 42, .35);
  clip-path: inset(0 0 -100vmax 0);
  padding: var(--space-3) var(--space-4) var(--space-5);
}
.c-mnav__links { display: flex; flex-direction: column; }
.c-mnav__links .c-nav__link {
  display: flex; align-items: center; min-height: 52px; padding: 0 var(--space-2);
  font-size: var(--text-body); border-bottom: 1px solid var(--color-border); border-radius: 0;
}
.c-header--light .c-mnav__links .c-nav__link[aria-current="page"] {
  box-shadow: inset 3px 0 0 var(--color-action); background: var(--color-bg-2); border-radius: 0;
}
.c-mnav__foot {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-4);
  padding-top: var(--space-4);
}
.c-mnav__foot .c-lang a { padding: var(--space-3); font-size: var(--text-body-s); }
.c-mnav__foot .c-button { flex: 1; justify-content: center; }

/* Nouă intrări (28.09.2026): sub 1280 px nu încap lângă logo, limbă și
   butonul de conexiune, deci meniul trece în panoul de mobil. */
@media (max-width: 1279px) {
  .c-nav { display: none; }
  .c-mnav { display: block; }
}
/* Nouă intrări + limbă + buton: spațiere strânsă pe tot desktopul și fără
   rupere pe două rânduri („Contact și implicare” s-ar rupe la 1280 px). */
.c-header--light .c-nav__link,
.c-header .c-button { white-space: nowrap; }
@media (min-width: 1280px) {
  .c-header--light .c-nav { gap: 2px; }
  .c-header--light .c-nav__link { padding-inline: var(--space-2); }
}
/* Cele nouă intrări încap în grila de 1200 px doar cu text de 13 px și
   spații de 4–5 px (măsurat 28.09.2026: cu 14 px și 8 px lipseau ~165 px,
   deci mărimea normală nu încape la nicio lățime de desktop). */
@media (min-width: 1280px) {
  .c-header--light .c-header__inner { gap: var(--space-4); }
  .c-header--light .c-nav { gap: 0; }
  .c-header--light .c-nav__link { padding-inline: 5px; font-size: var(--text-caption); }
  .c-header--light .c-nav__group > .c-nav__link { gap: 3px; }
  .c-header--light .c-nav__chev { width: 8px; height: 8px; }
  .c-header--light .c-nav .c-lang { margin-inline: 2px; }
  .c-header--light .c-nav .c-lang a { padding-inline: 5px; }
  .c-header--light .c-nav .c-button--small { padding-inline: var(--space-3); font-size: var(--text-caption); margin-left: 2px; }
}

/* Submeniuri (meniul clientului, 28.09.2026). Apar la hover și la
   :focus-within: cu tastatura, Tab intră în grup și submeniul se deschide,
   fără JavaScript. Puntea ::before acoperă golul dintre link și panou, ca
   mouse-ul să nu-l închidă pe drum. */
.c-nav__group { position: relative; }
.c-nav__group > .c-nav__link { display: inline-flex; align-items: center; gap: 6px; }
.c-nav__chev { opacity: .6; transition: transform var(--dur-fast) var(--ease-out); }
.c-nav__drop {
  position: absolute; top: calc(100% + 8px); left: 0; z-index: var(--z-dropdown);
  min-width: 280px; padding: var(--space-3);
  background: var(--color-bg-1); border: 1px solid var(--color-border); border-radius: var(--radius-3);
  box-shadow: 0 16px 40px rgba(11, 27, 51, .14);
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), visibility 0s linear var(--dur-fast);
}
.c-nav__drop::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
.c-nav__group.has-drop:hover .c-nav__drop,
.c-nav__group.has-drop:focus-within .c-nav__drop {
  opacity: 1; visibility: visible; transform: none; transition-delay: 0s;
}
.c-nav__group.has-drop:hover .c-nav__chev,
.c-nav__group.has-drop:focus-within .c-nav__chev { transform: rotate(180deg); }
.c-nav__intro {
  margin: 0 0 var(--space-2); padding: var(--space-1) var(--space-3) var(--space-2);
  border-bottom: 1px solid var(--color-border);
  font: 600 var(--text-caption)/1.3 var(--font-ui); letter-spacing: .06em; text-transform: uppercase; color: var(--color-text-secondary);
}
.c-nav__drop ul { list-style: none; margin: 0; padding: 0; }
.c-nav__drop a {
  display: block; padding: var(--space-2) var(--space-3); border-radius: var(--radius-2);
  font: 400 var(--text-body)/1.35 var(--font-text); white-space: nowrap;
}
.c-header--light .c-nav__drop a:hover, .c-nav__drop a:focus-visible { background: var(--color-bg-2); color: var(--color-action); }
/* Ultimele grupuri (Resurse, Evenimente) își deschid submeniul spre stânga, ca să nu iasă din ecran. */
.c-nav__group:nth-last-child(-n+3) .c-nav__drop { left: auto; right: 0; }

/* Mobil: fiecare grup e un <details>; linkurile lui stau indentate. */
.c-mnav__group > summary { list-style: none; cursor: pointer; justify-content: space-between; }
.c-mnav__group > summary::-webkit-details-marker { display: none; }
.c-mnav__group > summary::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-right: var(--space-2); opacity: .6; }
.c-mnav__group[open] > summary::after { transform: rotate(-135deg); }
.c-mnav__group ul { list-style: none; margin: 0; padding: var(--space-1) 0 var(--space-3) var(--space-4); border-bottom: 1px solid var(--color-border); }
.c-mnav__group li a { display: block; padding: var(--space-3) var(--space-2); font: 400 var(--text-body)/1.3 var(--font-text); }

/* ── Subsol ──────────────────────────────────────────────────────────────── */
/* Același bleumarin ca antetul: sunt cele două capete ale aceleiași structuri. */

.c-footer {
  background: var(--color-bg-1); color: var(--color-text-secondary);
  border-top: 1px solid var(--color-border);
  padding-block: var(--space-4); margin-top: var(--space-8);
}
@media (max-width: 640px) {
  .c-footer { margin-top: var(--space-7); }
}
.c-footer a { color: var(--color-text-secondary); }
.c-footer a:hover { color: var(--color-action); }
.c-footer__inner { display: grid; gap: var(--space-2); }
.c-footer__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2) var(--space-6); }
/* Partenerul strategic e primul lucru din subsol, cum era pe site-ul vechi. */
.c-footer__partner { display: inline-flex; align-items: center; gap: var(--space-4); text-decoration: none; }
.c-footer__partner-label { font: 600 var(--text-caption)/1.3 var(--font-ui); color: var(--color-text-secondary); }
.c-footer__partner img { display: block; height: 26px; width: auto; }
.c-footer__legal { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); font-size: var(--text-caption); }
.c-footer__credit { margin-left: auto; }
.c-footer__social { display: inline-flex; flex-wrap: wrap; gap: var(--space-2); }
.c-footer__social a { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: var(--rp-blue-dark, #203987); }
.c-footer__social a:hover { background: var(--color-bg-2); color: var(--color-action); }

/* ── Banda „ai ajuns de la o adresă veche" ──────────────────────────────── */

.c-moved {
  background: var(--color-info-bg); border-bottom: 1px solid var(--color-info);
  padding: var(--space-3) 0; font-size: var(--text-body-s); color: #0c4a6e;
}
.c-moved__inner { display: flex; gap: var(--space-4); align-items: center; }
.c-moved button { margin-left: auto; background: none; border: 0; cursor: pointer; font-size: 18px; color: inherit; }

/* ── Secțiune ────────────────────────────────────────────────────────────── */

.c-section { padding-block: var(--space-8); }
.c-section--tight { padding-block: var(--space-7); }
/* Pe telefon, 64 px sus + 64 px jos între fiecare secțiune însemna un ecran
   gol la fiecare trei secțiuni (audit 26.09.2026). */
@media (max-width: 640px) {
  .c-section { padding-block: var(--space-6); }
  .c-section--tight { padding-block: var(--space-5); }
}
.c-section__head { display: flex; align-items: baseline; gap: var(--space-4); margin-bottom: var(--space-6); flex-wrap: wrap; }
.c-section__head h2 { flex: 1 1 auto; }
.c-section__more { font: 600 var(--text-body-s)/1 var(--font-ui); white-space: nowrap; }

/* ── Grilă de rezultate ──────────────────────────────────────────────────── */

.c-grid { display: grid; gap: var(--space-5); }
.c-grid--2 { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.c-grid--3 { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.c-grid--4 { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }

/* ══════════════════════════════════════════════════════════════════════════
   Ecrane: bibliotecă de profiluri, hartă, profil
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Bara de filtre ──────────────────────────────────────────────────────── */

.p-filters {
  background: var(--color-bg-1);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-3);
  padding: var(--space-4);
  margin-bottom: var(--space-5);
}

/* Toate controalele cresc egal: înainte selectoarele aveau lățime fixă,
   iar „Filtrează” rămânea singur pe al doilea rând pe desktop și selectoarele
   stăteau pe jumătate de ecran pe mobil (audit 26.09.2026). */
.p-filters__row { display: flex; gap: var(--space-3); flex-wrap: wrap; align-items: center; }
.p-filters__search { flex: 1.4 1 200px; min-width: 0; }
.p-filters__select { flex: 1 1 140px; min-width: 0; }
.p-filters__select .c-select { width: 100%; }
.p-filters__row > .c-button { flex: 0 0 auto; }
@media (max-width: 640px) {
  .p-filters { padding: var(--space-3); }
  .p-filters__row:has(.p-filters__select) .p-filters__search { flex-basis: 100%; }
  .p-filters__row:has(.p-filters__select) > .c-button { flex: 1 1 100%; }
  /* Pe două coloane, „Toate domeniile” se tăia la „Toate domeni”. */
  .p-filters .c-select { font-size: var(--text-body-s); padding-left: var(--space-3); }
}
.p-filters .c-input, .p-filters .c-select { min-height: 40px; padding-block: var(--space-2); }

/* Straturile: legenda E comutatorul, cu numărători pe filtrul curent.
   Forma pinului stă în etichetă — legenda nu e un bloc separat. */
.p-layers {
  display: flex; gap: var(--space-2); flex-wrap: wrap;
  border: 0; padding: var(--space-4) 0 0; margin: var(--space-4) 0 0;
  border-top: 1px solid var(--color-border);
}

.p-layer {
  display: inline-flex; align-items: center; gap: var(--space-2);
  min-height: 36px; padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-border-strong); border-radius: var(--radius-pill);
  font: 600 var(--text-caption)/1 var(--font-ui); cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease-out);
}
.p-layer:hover { background: var(--color-bg-2); }
.p-layer input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.p-layer:has(input:focus-visible) { outline: 3px solid var(--color-focus-ring); outline-offset: 3px; }
.p-layer.is-on,
.p-layer:has(input:checked) { background: var(--color-action-subtle); border-color: var(--color-action); color: var(--color-action-on-subtle); }
.p-layer__count { color: var(--color-text-secondary); font-weight: 400; font-variant-numeric: tabular-nums; }
.p-layer.is-on .p-layer__count { color: inherit; }

/* Forma poartă informația, culoarea o dublează. */
.p-layer__pin { width: 12px; height: 12px; flex: none; }
.p-layer--laureati   .p-layer__pin { background: var(--color-pin-laureat); border-radius: 50%; }
.p-layer--membri     .p-layer__pin { border: 3px solid var(--color-pin-diaspora); border-radius: 50%; }
.p-layer--ambasadori .p-layer__pin { background: var(--color-pin-romania); transform: rotate(45deg); }
.p-layer--echipa     .p-layer__pin { background: var(--color-pin-institutie); border-radius: 2px; }
.p-layer--cluburi    .p-layer__pin { background: var(--color-pin-oportunitate); border-radius: 999px; width: 18px; height: 10px; }

/* ── Bara de rezultate ───────────────────────────────────────────────────── */

.p-toolbar {
  display: flex; gap: var(--space-4); align-items: center; flex-wrap: wrap;
  margin-bottom: var(--space-5);
}
.p-chips { display: flex; gap: var(--space-2); flex-wrap: wrap; flex: 1 1 auto; }
.p-count { margin: 0; font-size: var(--text-body-s); color: var(--color-text-secondary); white-space: nowrap; }
.p-count strong { font-family: var(--font-display); font-weight: 900; color: var(--color-text); font-variant-numeric: tabular-nums; }

.p-views { display: flex; border: 1px solid var(--color-border-strong); border-radius: var(--radius-2); overflow: hidden; }
.p-views__item {
  padding: var(--space-2) var(--space-4); min-height: 40px; display: grid; place-items: center;
  font: 600 var(--text-caption)/1 var(--font-ui); color: var(--color-text-secondary); text-decoration: none;
}
.p-views__item + .p-views__item { border-left: 1px solid var(--color-border-strong); }
.p-views__item:hover { background: var(--color-bg-3); color: var(--color-text); }
.p-views__item[aria-current="page"] { background: var(--color-secondary); color: var(--color-text-inverse); }

/* ── Hartă ───────────────────────────────────────────────────────────────── */

/* Harta ocupă TOATĂ lățimea containerului. Panoul persoanei selectate stă
   DEASUPRA hărții, în dreapta, doar când e deschis; ca a doua coloană de
   grilă, rămânea rezervat și gol (o bandă închisă pe jumătate din hartă). */
.p-map {
  position: relative;
  border-radius: var(--radius-3);
  overflow: hidden;
  background: #E9EDF3;
  border: 1px solid var(--color-border);
  min-height: 600px;
}
/* Înălțime explicită, nu `position:absolute; inset:0`: MapLibre pune pe
   container `.maplibregl-map { position: relative }`, care anula poziționarea
   și lăsa harta cu înălțime 0 — invizibilă. */
.p-map__canvas { height: 600px; }
/* Pinii și controalele MapLibre își țin z-index-ul în interiorul hărții:
   altfel pinul selectat (z-index 3) ieșea peste panou (z-index 2). */
.p-map__canvas { isolation: isolate; }
.p-map--home { min-height: 520px; }
.p-map--home .p-map__canvas { height: 520px; }
.p-map__fallback { padding: var(--space-7); color: var(--color-text-secondary); text-align: center; }


.p-map__panel {
  position: absolute; top: var(--space-3); right: var(--space-3); bottom: var(--space-3);
  width: min(380px, calc(100% - 2 * var(--space-3))); z-index: 2;
  background: var(--color-bg-1); border-radius: var(--radius-2);
  box-shadow: 0 8px 30px rgba(11, 27, 51, .18);
  overflow-y: auto;
}
.p-map__panel[hidden] { display: none; }

.p-map__attribution {
  position: absolute; left: var(--space-3); bottom: var(--space-2); margin: 0; z-index: 1;
  font-size: 11px; color: var(--color-text-secondary); background: rgba(255, 255, 255, .85);
  padding: 2px 6px; border-radius: var(--radius-1);
}
.p-map__attribution a { color: var(--color-text-secondary); }
.p-map__fallback { position: relative; }

.h-mapsec__head { display: flex; gap: var(--space-5); align-items: flex-end; justify-content: space-between; flex-wrap: wrap; margin-bottom: var(--space-5); }
.h-mapsec__search { display: flex; gap: var(--space-3); flex: 0 1 460px; }
.h-mapsec__search .c-input { flex: 1 1 auto; }

.p-map__list { margin-top: var(--space-6); }
.p-map__list summary { cursor: pointer; font: 600 var(--text-body-s)/1.4 var(--font-ui); padding: var(--space-3) 0; }

.p-panel { padding: var(--space-5); position: relative; }
.p-panel__close {
  position: absolute; right: var(--space-3); top: var(--space-3);
  width: 32px; height: 32px; display: grid; place-items: center;
  border-radius: var(--radius-1); text-decoration: none; color: var(--color-text-secondary); font-size: 20px;
}
.p-panel__close:hover { background: var(--color-bg-3); }
.p-panel__head { display: flex; gap: var(--space-4); margin-bottom: var(--space-4); }
.p-panel__actions { display: flex; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-5); }
.p-panel__privacy { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-border); }

@media (max-width: 1023px) {
  .p-map { min-height: 65vh; }
  .p-map__canvas, .p-map--home .p-map__canvas { height: 65vh; }
  /* Pe mobil panoul acoperă harta de jos, pe toată lățimea. */
  .p-map__panel { top: auto; left: var(--space-2); right: var(--space-2); bottom: var(--space-2); width: auto; max-height: 70%; }
}

/* ── Profil ──────────────────────────────────────────────────────────────── */

.p-profile__header {
  display: grid; grid-template-columns: 320px 1fr; gap: var(--space-7);
  padding-block: var(--space-6) var(--space-7);
}
.p-profile__portrait {
  aspect-ratio: 4 / 5; border-radius: var(--radius-3); overflow: hidden; background: var(--color-bg-3);
}
.p-profile__portrait img { width: 100%; height: 100%; object-fit: cover; }
.p-profile__portrait .c-avatar {
  width: 100%; height: 100%; border-radius: 0; font-size: 72px;
}

.p-rolеband { display: flex; gap: var(--space-2); flex-wrap: wrap; margin-bottom: var(--space-4); }
.p-rolеband a.c-badge { text-decoration: none; }
.p-rolеband a.c-badge:hover { filter: brightness(.95); }

.p-profile__intro .t-h1 { margin-bottom: var(--space-3); }
.p-profile__actions { display: flex; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-6); }
.p-profile__privacy { margin-top: var(--space-3); max-width: 46ch; }

.p-profile__grid { display: grid; grid-template-columns: 1fr 320px; gap: var(--space-7); align-items: start; }
.p-profile__aside { position: sticky; top: calc(60px + var(--space-5)); }

.p-facts { display: grid; grid-template-columns: auto 1fr; gap: var(--space-2) var(--space-4); margin: 0; }
.p-facts dt { font: 600 var(--text-caption)/1.4 var(--font-ui); color: var(--color-text-secondary); }
.p-facts dd { margin: 0; font-size: var(--text-body-s); }

.p-minimap {
  display: grid; place-items: center; gap: var(--space-2);
  aspect-ratio: 16 / 9; text-decoration: none; position: relative;
}
.p-minimap__pin {
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--color-data); box-shadow: 0 0 0 6px rgba(252, 176, 55, .25);
}
.p-minimap__label { color: #C6CFE6; font: 600 var(--text-caption)/1 var(--font-ui); }

/* Cronologia: premiul e singurul eveniment cu punct plin. */
.p-timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.p-timeline::before {
  content: ""; position: absolute; left: 63px; top: 8px; bottom: 8px;
  width: 1px; background: var(--color-border);
}
.p-timeline__item { display: grid; grid-template-columns: 56px 1fr; gap: var(--space-5); padding-block: var(--space-3); position: relative; }
.p-timeline__year {
  font: 900 var(--text-body-s)/1.6 var(--font-display);
  font-variant-numeric: tabular-nums; color: var(--color-text-secondary); text-align: right;
}
.p-timeline__item::after {
  content: ""; position: absolute; left: 60px; top: 18px;
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--color-bg-1); box-shadow: 0 0 0 2px var(--color-border-strong);
}
.p-timeline__item.is-primary::after { background: var(--color-brand-magenta); box-shadow: 0 0 0 2px var(--color-brand-magenta); }
.p-timeline__item.is-primary .p-timeline__year { color: var(--color-text); }
.p-timeline__label { margin: 0; font-weight: 700; }
.p-timeline__body { padding-left: var(--space-3); }

.p-story-teaser { display: block; text-decoration: none; color: inherit; transition: border-color var(--dur-fast) var(--ease-out); }
.p-story-teaser:hover { border-color: var(--color-action); color: inherit; }

.p-siblings {
  display: grid; grid-template-columns: 1fr auto 1fr; gap: var(--space-4); align-items: center;
  padding-block: var(--space-6); border-top: 1px solid var(--color-border);
}
.p-siblings__link { display: grid; gap: 2px; text-decoration: none; color: var(--color-text); font-weight: 700; font-size: var(--text-body-s); }
.p-siblings__link:hover { color: var(--color-action); }
.p-siblings__link--next { text-align: right; }
.p-siblings__all { font-size: var(--text-caption); white-space: nowrap; }

@media (max-width: 1023px) {
  .p-profile__header { grid-template-columns: 1fr; gap: var(--space-5); }
  .p-profile__portrait { max-width: 240px; }
  .p-profile__grid { grid-template-columns: 1fr; }
  .p-profile__aside { position: static; }
  .p-siblings { grid-template-columns: 1fr; text-align: left; }
  .p-siblings__link--next { text-align: left; }
}

/* ── Top 100: statistici și navigarea între ediții ───────────────────────── */

.p-stats { display: flex; gap: var(--space-7); flex-wrap: wrap; margin-top: var(--space-6); }
.p-stat { display: grid; gap: var(--space-1); }
.p-stat__value {
  font: 900 var(--text-h1)/1 var(--font-display);
  font-variant-numeric: tabular-nums; letter-spacing: -.02em;
}
.p-stat__label { font-size: var(--text-caption); color: var(--color-text-secondary); }

.p-editions {
  display: flex; gap: var(--space-2); overflow-x: auto; padding-bottom: var(--space-2);
  margin-bottom: var(--space-5);
}
.p-editions__item {
  display: inline-flex; align-items: center; gap: var(--space-2);
  min-height: 40px; padding: var(--space-2) var(--space-4); white-space: nowrap;
  border: 1px solid var(--color-border-strong); border-radius: var(--radius-pill);
  background: var(--color-bg-1); color: var(--color-text); text-decoration: none;
  font: 600 var(--text-body-s)/1 var(--font-ui); font-variant-numeric: tabular-nums;
}
.p-editions__item:hover { background: var(--color-bg-3); color: var(--color-text); }
.p-editions__item[aria-current="page"] { background: var(--color-secondary); border-color: var(--color-secondary); color: var(--color-text-inverse); }
.p-editions__count { color: var(--color-text-secondary); font-weight: 400; font-size: var(--text-caption); }
.p-editions__item[aria-current="page"] .p-editions__count { color: #B6C0DA; }

@media (max-width: 767px) {
  .p-stats { gap: var(--space-5); }
  .p-stat__value { font-size: var(--text-h2); }
}

/* ── Pașii de așteptare (formular + confirmare) ──────────────────────────── */

.c-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); counter-reset: step; }
.c-steps__item { display: grid; grid-template-columns: 28px 1fr; gap: var(--space-3); align-items: start; }
.c-steps__marker {
  width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center;
  font: 600 var(--text-caption)/1 var(--font-ui);
  border: 2px solid var(--color-border-strong); color: var(--color-text-secondary);
  background: var(--color-bg-1);
}
/* Pasul curent e plin, restul conturate. */
.c-steps__item.is-current .c-steps__marker { background: var(--color-secondary); border-color: var(--color-secondary); color: #fff; }
.c-steps__item.is-done .c-steps__marker { background: var(--color-success); border-color: var(--color-success); color: #fff; }
.c-steps__label { margin: 0 0 2px; font-weight: 700; font-size: var(--text-body-s); }

/* ── Cererea de conexiune ────────────────────────────────────────────────── */

.p-request { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--space-7); padding-block: var(--space-6) var(--space-9); }
.p-request__main { max-width: 640px; }
.p-request__section { padding-block: var(--space-5); border-top: 1px solid var(--color-border); }
.p-request__section:first-of-type { border-top: 0; padding-top: 0; }
.p-request__section legend { padding: 0; margin-bottom: var(--space-4); }
.p-request__actions { display: flex; gap: var(--space-3); flex-wrap: wrap; align-items: center; margin-top: var(--space-6); }
.p-request__aside { position: sticky; top: calc(60px + var(--space-5)); align-self: start; }

.p-sent { max-width: 640px; padding-block: var(--space-6) var(--space-9); }
.p-sent__mark {
  width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center;
  background: var(--color-success-bg); color: var(--color-success);
  font-size: 28px; margin: var(--space-5) 0;
}
.p-sent__actions { display: flex; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-6); }

@media (max-width: 1023px) {
  .p-request { grid-template-columns: 1fr; }
  .p-request__aside { position: static; order: -1; }
}

/* ── Povești ─────────────────────────────────────────────────────────────── */

.p-story { max-width: 720px; padding-block: var(--space-6) var(--space-9); }
.p-story__quote {
  border-left: 4px solid var(--color-brand-magenta);
  padding-left: var(--space-5); margin: var(--space-7) 0;
  font: 400 var(--text-h3)/1.4 var(--font-text); font-style: italic;
}
.p-story__body p { max-width: var(--measure); }
.p-story__figures { display: flex; gap: var(--space-6); flex-wrap: wrap; padding-block: var(--space-5); border-block: 1px solid var(--color-border); margin-block: var(--space-6); }
.p-story-card__person {
  display: flex; align-items: center; gap: var(--space-3);
  padding-top: var(--space-4); margin-top: var(--space-4); border-top: 1px solid var(--color-border);
}

/* ── Pin-uri și clustere pe hartă ─────────────────────────────────────────
   Cinci tipuri, diferențiate prin FORMĂ înainte de culoare:
   funcționează și pentru daltonism, și pe print. Zona de atingere e minimum
   44px, indiferent de dimensiunea desenată.                                  */

.m-pin, .m-cluster {
  cursor: pointer; border: 0; padding: 0; background: none;
  display: grid; place-items: center;
  /* Zona de atingere, invizibilă, în jurul formei desenate. */
  position: relative;
}
.m-pin::before, .m-cluster::before {
  content: ""; position: absolute; inset: 50% auto auto 50%;
  width: 44px; height: 44px; transform: translate(-50%, -50%);
}

/* Butonul e doar zona de click; forma e pe <span>-ul din el. MapLibre
   poziționează butonul prin `transform` inline, iar `scale`/`rotate` pe buton
   se compuneau cu el: la hover punctul sărea cu 25% din distanța față de
   colțul hărții și fugea de sub cursor, deci click-ul nu mai ajungea
   (feedback 27.09.2026: „nu merge harta”). */
.m-pin { width: 26px; height: 26px; }
.m-pin > span { display: block; width: 18px; height: 18px; transition: transform var(--dur-fast) var(--ease-out); }
.m-pin:hover > span, .m-pin:focus-visible > span { transform: scale(1.25); }
.m-pin:hover, .m-pin:focus-visible { z-index: 2; }
/* Cu mouse, zona de 44 px a unui punct acoperea punctul vecin: click-ul pe un
   om deschidea pe altul. 44 px rămâne doar la atingere. */
@media (pointer: fine) {
  .m-pin::before { width: 26px; height: 26px; }
}
.m-pin:focus-visible { outline: 3px solid var(--color-focus-ring); outline-offset: 3px; }

/* Singurul pin cu halou. */
.m-pin--laureat > span {
  background: var(--color-pin-laureat); border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(252, 176, 55, .28);
}
/* Inel magenta, gol la mijloc. */
.m-pin--diaspora > span { border: 3px solid var(--color-pin-diaspora); border-radius: 50%; background: transparent; }
/* Romb albastru. */
.m-pin--romania > span { background: var(--color-pin-romania); transform: rotate(45deg); width: 15px; height: 15px; }
.m-pin--romania:hover > span, .m-pin--romania:focus-visible > span { transform: rotate(45deg) scale(1.25); }
/* Pătrat violet, colț mic. */
.m-pin--institutie > span { background: var(--color-pin-institutie); border-radius: 3px; }
/* Capsulă verde: loc, nu om. */
.m-pin--oportunitate > span { background: var(--color-pin-oportunitate); border-radius: 999px; width: 26px; height: 14px; }

.m-pin.is-selected > span {
  box-shadow: 0 0 0 3px var(--color-bg-map), 0 0 0 6px var(--color-brand-magenta);
}
.m-pin.is-selected { z-index: 3; }

.m-cluster {
  border-radius: 50%;
  background: var(--color-secondary);
  box-shadow: inset 0 0 0 2px var(--color-brand-magenta);
  color: #fff;
  /* Cifre tabulare Montserrat Black, niciodată sub 12px. */
  font: 900 13px/1 var(--font-display);
  font-variant-numeric: tabular-nums;
}
.m-cluster:hover { background: var(--color-secondary-hover); }
.m-cluster:focus-visible { outline: 3px solid var(--color-focus-ring); outline-offset: 3px; }

.p-panel__badges { display: flex; gap: var(--space-2); flex-wrap: wrap; margin-bottom: var(--space-2); }

/* Controalele MapLibre, aliniate la sistemul nostru. */
.maplibregl-ctrl-group { border-radius: var(--radius-2) !important; box-shadow: var(--shadow-2) !important; }

/* ══════════════════════════════════════════════════════════════════════════
   Rezultate
   Cele patru tipuri sunt distincte FĂRĂ patru culori de card: toate au același
   radius, aceeași bordură și același fundal alb. Diferă lățimea benzii din
   stânga, eticheta și structura internă — nu decorul.
   ══════════════════════════════════════════════════════════════════════════ */

.r-funnel {
  background: var(--color-bg-1); border: 1px solid var(--color-border);
  border-radius: var(--radius-3); padding: var(--space-6);
}
.r-funnel__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4); flex-wrap: wrap; margin-bottom: var(--space-6); }
.r-funnel__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
.r-funnel__note { margin-top: var(--space-6); padding-top: var(--space-4); border-top: 1px solid var(--color-border); max-width: var(--measure); }

.r-step { position: relative; padding: var(--space-4) var(--space-5); border-radius: var(--radius-2); overflow: hidden; }
.r-step__bar {
  position: absolute; inset: 0 auto 0 0;
  background: var(--color-bg-3); border-radius: var(--radius-2);
  transition: width var(--dur-slow) var(--ease-out);
}
.r-step--final .r-step__bar { background: var(--color-action-subtle); }
/* Pe telefon bara de 22 % are ~70 px, iar textul curgea în afara ei. Bara
   devine o linie sub pas, cu aceeași lungime proporțională. */
@media (max-width: 640px) {
  .r-step { background: var(--color-bg-2); padding: var(--space-4); padding-bottom: calc(var(--space-4) + 6px); }
  .r-step__bar { inset: auto auto 0 0; height: 6px; border-radius: 0 3px 3px 0; background: var(--rp-blue-dark); }
  .r-step--final .r-step__bar { background: var(--color-action); }
}
.r-step__content { position: relative; }
.r-step__value { margin: 0; font: 900 var(--text-h1)/1 var(--font-display); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.r-step--final .r-step__value { color: var(--color-action-on-subtle); }
.r-step__label { margin: var(--space-1) 0 0; font-weight: 700; }
.r-step__conversion { margin: 0; font-size: var(--text-caption); color: var(--color-text-secondary); font-variant-numeric: tabular-nums; }
.r-step__definition { max-width: 62ch; margin-top: var(--space-2); }

/* Cifră provizorie, de confirmat din baza de date. */
.r-prov { color: var(--color-brand-magenta); font-size: .5em; vertical-align: super; margin-left: 2px; }

.r-year { display: grid; grid-template-columns: 96px 1fr; gap: var(--space-5); padding-block: var(--space-5); }
.r-year__label {
  font: 900 var(--text-h2)/1 var(--font-display); color: var(--color-border-strong);
  font-variant-numeric: tabular-nums; position: sticky; top: calc(60px + var(--space-4)); align-self: start;
}
.r-year__entries { display: grid; gap: var(--space-5); min-width: 0; }

.r-entry {
  background: var(--color-bg-1);
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-border-strong);
  border-radius: var(--radius-3);
  padding: var(--space-5) var(--space-6);
}
/* Banda din stânga e singura diferență cromatică între tipuri. */
.r-entry--policy  { border-left-color: var(--color-secondary); }
.r-entry--program { border-left-color: var(--color-info); }
.r-entry--ask     { border-left-color: var(--color-data); }
.r-entry--case    { border-left-color: var(--color-brand-magenta); }
.r-entry--program.is-past { border-left-color: var(--color-border-strong); }

.r-entry__head { display: flex; gap: var(--space-3); align-items: center; flex-wrap: wrap; margin-bottom: var(--space-3); }

.r-policy, .r-program { display: grid; gap: var(--space-5); margin-top: var(--space-5); }
.r-policy { grid-template-columns: repeat(3, 1fr); }
.r-program { grid-template-columns: repeat(2, 1fr); }
/* „rezultatul" e singura coloană cu linie groasă deasupra și text mai închis. */
.r-policy__outcome { border-top: 3px solid var(--color-text); padding-top: var(--space-3); margin-top: -3px; }
.r-policy__outcome .t-body-s { color: var(--color-text); font-weight: 700; }

.r-ask { width: 100%; border-collapse: collapse; margin-top: var(--space-5); }
.r-ask th {
  text-align: left; padding: var(--space-2) var(--space-4) var(--space-3) 0;
  font: 600 var(--text-label)/var(--lh-label) var(--font-ui); color: var(--color-text-secondary);
  border-bottom: 1px solid var(--color-border); width: 33.33%;
}
.r-ask td { padding: var(--space-4) var(--space-4) var(--space-4) 0; vertical-align: top; border-bottom: 1px solid var(--color-border); font-size: var(--text-body-s); }
.r-ask__stat { display: block; font: 900 var(--text-h3)/1.1 var(--font-display); font-variant-numeric: tabular-nums; margin-bottom: var(--space-1); }

.r-metrics { display: flex; gap: var(--space-6); flex-wrap: wrap; margin-top: var(--space-5); padding-block: var(--space-4); border-block: 1px solid var(--color-border); }
.r-people { list-style: none; padding: 0; margin: var(--space-2) 0 0; display: grid; gap: var(--space-2); font-size: var(--text-body-s); }
.r-sources { margin: var(--space-5) 0 0; padding-top: var(--space-3); border-top: 1px solid var(--color-border); font-size: var(--text-caption); color: var(--color-text-secondary); }

@media (max-width: 1023px) {
  .r-year { grid-template-columns: 1fr; gap: var(--space-3); }
  .r-year__label { position: static; font-size: var(--text-h3); }
  .r-policy, .r-program { grid-template-columns: 1fr; }
  .r-policy__outcome { margin-top: 0; }
  /* Cele trei coloane devin trei rânduri. */
  .r-ask thead { display: none; }
  .r-ask tr { display: grid; gap: var(--space-3); padding-block: var(--space-4); border-bottom: 1px solid var(--color-border); }
  .r-ask td { display: grid; gap: var(--space-1); border: 0; padding: 0; }
  .r-ask td::before { content: attr(data-label); font: 600 var(--text-label)/1 var(--font-ui); color: var(--color-text-secondary); }
}

/* ══════════════════════════════════════════════════════════════════════════
   Prima pagină
   ══════════════════════════════════════════════════════════════════════════ */

.h-hero { padding-block: var(--space-9) var(--space-8); }
.h-hero__headline { max-width: 18ch; margin-bottom: var(--space-5); }
.h-hero__lede { max-width: var(--measure); color: var(--color-text-secondary); }
.h-hero__actions { display: flex; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-6); }

/* Trei carduri EGALE: aceeași lățime, aceeași înălțime de imagine, butonul jos. */
/* Numarul de carduri se citeste din clasa, nu se presupune: pe o instalare
   fara Top 100 raman doua, iar o grila de trei coloane ar lasa un gol in
   dreapta care arata a bucata lipsa, nu a alegere. */
.h-projects { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.h-projects--1 { grid-template-columns: minmax(0, 520px); }
.h-projects--2 { grid-template-columns: repeat(2, 1fr); }
.h-project { display: flex; flex-direction: column; }
.h-project__media { aspect-ratio: 16 / 9; background: var(--color-bg-3); }
.h-project__media--summit        { background: linear-gradient(135deg, #203987, #0472B9); }
.h-project__media--top100        { background: linear-gradient(135deg, #131A2B, #684199); }
.h-project__media--diaspora-days { background: linear-gradient(135deg, #0B1B33, #1F2C52); }
.h-project__body { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-5); flex: 1; }
.h-project__title { margin-block: var(--space-1); }
.h-project__action { margin-top: auto; padding-top: var(--space-5); }

/* Banda de cifre: primul din cele două fundaluri colorate ale paginii. */
.h-figures { background: var(--color-bg-inverse); color: var(--color-text-inverse); padding-block: var(--space-8); }
.h-figures__head { display: flex; align-items: baseline; gap: var(--space-4); flex-wrap: wrap; margin-bottom: var(--space-6); }
.h-figures__head h2 { flex: 1 1 auto; }
.h-figures__head .t-caption { color: #B6C0DA; }
.h-figures__head a { color: #DCE2F0; }
.h-figures__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-5); }
.h-figure__value {
  margin: 0; font: 900 var(--text-h1)/1 var(--font-display);
  font-variant-numeric: tabular-nums; letter-spacing: -.02em;
}
/* Ultima cifră e magenta de brand: text mare, deci 4,58:1 pe bleumarin. */
.h-figure--final .h-figure__value { color: var(--color-brand-magenta); }
.h-figure__label { margin: var(--space-2) 0 0; font-size: var(--text-body-s); color: #B6C0DA; }

/* Harta: singura secțiune care iese din grila de 1200px. */
.h-map { position: relative; background: var(--color-bg-map); color: var(--color-text-inverse); overflow: hidden; }
.h-map__bg { position: absolute; inset: 0; width: 100%; height: 100%; }
/* Textul stă în stânga, peste Atlantic: gradientul îl ține lizibil fără să
   ascundă Europa, unde sunt cifrele. */
.h-map::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, var(--color-bg-map) 0%, var(--color-bg-map) 18%, transparent 46%);
}
.h-map__blip circle { fill: var(--color-secondary); stroke: var(--color-brand-magenta); stroke-width: 2; }
.h-map__count { font: 900 14px/1 var(--font-display); font-variant-numeric: tabular-nums; fill: #fff; }
.h-map__country { font: 600 12px/1 var(--font-ui); fill: #B6C0DA; paint-order: stroke; stroke: var(--color-bg-map); stroke-width: 3px; }
.h-map__overlay { position: relative; z-index: 2; padding-block: var(--space-9); }
.h-map__lede { max-width: 48ch; color: #C6CFE6; margin-block: var(--space-4) var(--space-6); }
.h-map__search { display: flex; gap: var(--space-3); max-width: 520px; margin-bottom: var(--space-4); flex-wrap: wrap; }
.h-map__search .c-input { flex: 1 1 240px; }
.h-map__search .c-button--secondary { border-color: rgba(255,255,255,.3); color: #fff; }
.h-map__search .c-button--secondary:hover { background: rgba(255,255,255,.1); color: #fff; }
.h-map__attribution { z-index: 2; position: absolute; right: var(--grid-margin); bottom: var(--space-3); margin: 0; font-size: 11px; color: #55607A; }

/* Povești: al doilea și ultimul fundal colorat. */
.h-stories { background: var(--color-bg-3); padding-block: var(--space-8); }

.h-secondary { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-4); }
.h-secondary--1 { grid-template-columns: minmax(0, 320px); }
.h-secondary--2 { grid-template-columns: repeat(2, 1fr); }
.h-secondary--3 { grid-template-columns: repeat(3, 1fr); }
.h-secondary__item {
  display: grid; gap: var(--space-1); padding: var(--space-5);
  border: 1px solid var(--color-border); border-radius: var(--radius-2);
  background: var(--color-bg-1); text-decoration: none; color: var(--color-text);
  transition: border-color var(--dur-fast) var(--ease-out);
}
.h-secondary__item:hover { border-color: var(--color-action); color: var(--color-text); }

@media (max-width: 1023px) {
  .h-projects, .h-secondary { grid-template-columns: 1fr; }
  .h-figures__grid { grid-template-columns: repeat(2, 1fr); }
  /* Pe mobil textul acoperă toată lățimea: harta rămâne doar textură. */
  .h-map__bg { opacity: .35; }
  .h-map::before { background: rgba(8, 18, 33, .55); }
}

.m-defs { display: grid; gap: var(--space-5); margin: 0; }
.m-defs dt { font: 600 var(--text-h4)/var(--lh-h4) var(--font-ui); }
.m-defs dd { margin: var(--space-2) 0 0; padding-left: var(--space-4); border-left: 2px solid var(--color-border); }

/* ══════════════════════════════════════════════════════════════════════════
   Oportunități
   Listă, nu grilă: se scanează, nu se admiră.
   ══════════════════════════════════════════════════════════════════════════ */

.o-head { display: flex; gap: var(--space-5); align-items: flex-start; justify-content: space-between; flex-wrap: wrap; }

.o-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-3); }

.o-row {
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: var(--space-5);
  align-items: start;
  background: var(--color-bg-1);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-3);
  padding: var(--space-4) var(--space-5);
}

/* Coloana de termen e fixă, 120px, la stânga. */
.o-row__deadline { text-align: center; padding-top: 2px; }
.o-row__date {
  display: block;
  font: 900 var(--text-h4)/1.1 var(--font-display);
  font-variant-numeric: tabular-nums;
}
.o-row__date--none { font-size: var(--text-body-s); font-weight: 600; font-family: var(--font-ui); color: var(--color-text-secondary); }
.o-row__in { display: block; font-size: var(--text-caption); color: var(--color-text-secondary); margin-top: 2px; }

/* Termen apropiat: fundal cald FOARTE discret și eticheta pe galben cu text
   închis — #131A2B pe #FCB037, 11,40:1. Nu se folosește roșu: urgența nu e o
   eroare. Sortarea nu se schimbă; cine vrea urgențe filtrează. */
.o-row--soon { background: #FFFCF5; border-color: var(--color-data); }
.o-row--soon .o-row__in {
  background: var(--color-data); color: var(--color-text-on-yellow);
  border-radius: var(--radius-1); padding: 2px var(--space-2); font-weight: 700;
}
.o-row--expired { opacity: .72; }
.o-row--expired .o-row__date { color: var(--color-text-secondary); }

.o-row__tags { display: flex; gap: var(--space-3); align-items: center; flex-wrap: wrap; margin: 0 0 var(--space-2); }
.o-row__title { font: 600 var(--text-h4)/var(--lh-h4) var(--font-ui); margin: 0 0 var(--space-2); }
.o-row__title a { color: var(--color-text); text-decoration: none; }
.o-row__title a:hover { color: var(--color-action); text-decoration: underline; }
.o-row__verified {
  margin: var(--space-3) 0 0; font-size: var(--text-caption); color: var(--color-text-secondary);
  display: flex; gap: var(--space-2); align-items: center; flex-wrap: wrap;
}
.o-row__actions { display: grid; gap: var(--space-2); justify-items: stretch; min-width: 160px; }

/* Marcajul de sursă: aceeași componentă în listă și în detaliu.
   FORMA poartă informația, nu culoarea — spune de unde vine, nu cât e de bun. */
.o-source { display: inline-flex; align-items: center; gap: var(--space-2); }
.o-source__mark { width: 10px; height: 10px; flex: none; background: var(--color-text-secondary); }
.o-source--auto      .o-source__mark { border-radius: 50%; }                       /* cerc  */
.o-source--community .o-source__mark { transform: rotate(45deg); }                 /* romb  */
.o-source--partner   .o-source__mark { border-radius: 2px; }                       /* pătrat */
.o-source.is-on .o-source__mark { background: var(--color-action-on-subtle); }

.o-detail { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--space-7); align-items: start; padding-block: var(--space-5) var(--space-8); }
.o-detail__aside { position: sticky; top: calc(60px + var(--space-5)); }
.o-detail__date { margin: var(--space-2) 0 0; font: 900 var(--text-h3)/1.1 var(--font-display); font-variant-numeric: tabular-nums; }
.o-detail__in { margin: var(--space-1) 0 0; font-size: var(--text-body-s); color: var(--color-text-secondary); }
.o-detail__in--soon { color: var(--color-warning); font-weight: 700; }
.o-detail__in--expired { color: var(--color-text-secondary); }

@media (max-width: 1023px) {
  /* Pe mobil termenul urcă în capul rândului. */
  .o-row { grid-template-columns: 1fr; gap: var(--space-3); }
  .o-row__deadline { display: flex; gap: var(--space-3); align-items: baseline; text-align: left; }
  .o-row__actions { grid-auto-flow: column; justify-content: start; }
  .o-detail { grid-template-columns: 1fr; }
  .o-detail__aside { position: static; order: -1; }
}

/* ══════════════════════════════════════════════════════════════════════════
   Radar de știri
   ══════════════════════════════════════════════════════════════════════════ */

.n-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-5); }
.n-list > li { padding-bottom: var(--space-5); border-bottom: 1px solid var(--color-border); }
.n-list > li:last-child { border-bottom: 0; padding-bottom: 0; }

.n-row { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: var(--space-5); align-items: start; }
/* „Programe guvernamentale” e mai lat decât coloana și intra peste titlu. */
.n-row__meta .c-badge { max-width: 100%; white-space: normal; text-align: left; }
.n-row__meta { display: flex; gap: var(--space-3); align-items: center; flex-wrap: wrap; font-size: var(--text-caption); color: var(--color-text-secondary); }
.n-row__title { font: 600 var(--text-h3)/var(--lh-h3) var(--font-ui); margin: 0 0 var(--space-3); }
.n-row__title a { color: var(--color-text); text-decoration: none; }
.n-row__title a:hover { color: var(--color-action); text-decoration: underline; }

/* Caseta „pentru tine, asta înseamnă": câmp obligatoriu, nu stil de redactare.
   E primul lucru care se citește, deci stă înaintea corpului. */
.n-means {
  background: var(--color-action-subtle);
  border-left: 4px solid var(--color-brand-magenta);
  border-radius: var(--radius-2);
  padding: var(--space-4) var(--space-5);
}
.n-means .t-label { color: var(--color-action-on-subtle); margin-bottom: var(--space-2); }
.n-means__body { font-size: var(--text-body-l); line-height: var(--lh-body-l); }
.n-means--compact { padding: var(--space-3) var(--space-4); }
.n-means--compact .n-means__body,
.n-means--compact .t-body-s { font-size: var(--text-body-s); }

.n-detail { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--space-7); align-items: start; padding-block: var(--space-5) var(--space-8); }
.n-detail__aside { position: sticky; top: calc(60px + var(--space-5)); }

/* Sursele nu sunt notă de subsol: fac parte din articol. */
.n-sources {
  margin-top: var(--space-7); padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}
.n-sources ul { list-style: none; padding: 0; margin: var(--space-3) 0 0; display: grid; gap: var(--space-2); font-size: var(--text-body-s); }

.n-guide-links { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-3); }
.n-guide-links li { display: flex; gap: var(--space-3); align-items: center; flex-wrap: wrap; }

.n-distribution { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-2); font-size: var(--text-body-s); }
.n-distribution li { display: flex; justify-content: space-between; gap: var(--space-3); }
.n-distribution li.is-sent, .n-distribution li.is-posted { color: var(--color-success); }

.n-newsletter {
  background: var(--color-bg-1); border: 1px solid var(--color-border);
  border-radius: var(--radius-3); margin-block: var(--space-8);
}
/* În interiorul unei secțiuni, padding-ul secțiunii dă deja spațiul de jos. */
.c-section .n-newsletter:last-child { margin-bottom: 0; }
@media (max-width: 640px) { .n-newsletter { margin-block: var(--space-6); } }
.n-newsletter--compact { margin: 0; padding: var(--space-5); }
.n-newsletter__form { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.n-newsletter__form .c-input { flex: 1 1 220px; }

@media (max-width: 1023px) {
  .n-row { grid-template-columns: 1fr; gap: var(--space-3); }
  .n-detail { grid-template-columns: 1fr; }
  .n-detail__aside { position: static; }
}

/* ══════════════════════════════════════════════════════════════════════════
   Ghidul de întoarcere
   Vechimea e element de interfață de PRIM RANG, nu o linie de metadate.
   ══════════════════════════════════════════════════════════════════════════ */

/* Semaforul: verde în interval, galben peste, gri retras. Culoarea nu e
   niciodată singură — textul spune de când. */
.g-fresh {
  display: inline-flex; align-items: center; gap: var(--space-2);
  font: 600 var(--text-caption)/1.3 var(--font-ui); white-space: nowrap;
}
.g-fresh__dot { width: 8px; height: 8px; border-radius: 50%; flex: none; background: var(--color-border-strong); }
.g-fresh--ok      { color: var(--color-success); }
.g-fresh--ok      .g-fresh__dot, .g-fresh__dot.g-fresh--ok      { background: var(--color-success); }
.g-fresh--due     { color: var(--color-warning); }
.g-fresh--due     .g-fresh__dot, .g-fresh__dot.g-fresh--due     { background: var(--color-data); }
.g-fresh--retired { color: var(--color-text-secondary); }
.g-fresh--retired .g-fresh__dot, .g-fresh__dot.g-fresh--retired { background: var(--color-border-strong); }

.g-search { display: flex; gap: var(--space-3); flex-wrap: wrap; max-width: 560px; margin-top: var(--space-6); }
.g-search .c-input { flex: 1 1 260px; }

.g-results { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-3); }
.g-results li { display: flex; gap: var(--space-3); align-items: baseline; flex-wrap: wrap; padding-bottom: var(--space-3); border-bottom: 1px solid var(--color-border); }
.g-results li a { font-weight: 700; }

/* „Primii pași" e un traseu, nu o categorie: bloc propriu în capul cuprinsului. */
.g-pathway {
  display: flex; gap: var(--space-5); align-items: center; justify-content: space-between; flex-wrap: wrap;
  background: var(--color-bg-inverse); color: var(--color-text-inverse);
  border-radius: var(--radius-3); padding: var(--space-6);
}
.g-pathway .t-label { color: #B6C0DA; }
.g-pathway .t-muted { color: #C6CFE6; }

.g-card { text-decoration: none; color: inherit; transition: border-color var(--dur-fast) var(--ease-out); }
.g-card:hover { border-color: var(--color-action); color: inherit; }
.g-card__meta { display: flex; gap: var(--space-3); align-items: center; flex-wrap: wrap; margin: var(--space-3) 0 0; font-size: var(--text-caption); color: var(--color-text-secondary); }

.g-tally { display: flex; gap: var(--space-4); flex-wrap: wrap; align-items: center; }

.g-detail { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: var(--space-7); align-items: start; padding-block: var(--space-5) var(--space-8); }
.g-nav { position: sticky; top: calc(60px + var(--space-5)); }
.g-nav__list { list-style: none; padding: 0; margin: var(--space-3) 0 0; display: grid; gap: var(--space-2); font-size: var(--text-body-s); }
.g-nav__list a { display: flex; gap: var(--space-2); align-items: baseline; text-decoration: none; color: var(--color-text); }
.g-nav__list a:hover { color: var(--color-action); }
.g-nav__list a[aria-current="page"] { font-weight: 700; color: var(--color-action); }
.g-nav__list--plain a { color: var(--color-text-secondary); }

/* Banda de vechime stă DEASUPRA titlului. Text factual, fără scuze. */
.g-banner {
  border-radius: var(--radius-2); padding: var(--space-4) var(--space-5);
  font-size: var(--text-body-s); line-height: var(--lh-body-s);
  border-left: 4px solid;
}
.g-banner--due     { background: var(--color-warning-bg); border-color: var(--color-data); color: var(--color-warning); }
.g-banner--retired { background: var(--color-bg-3); border-color: var(--color-border-strong); color: var(--color-text-secondary); }

.g-meta { display: flex; gap: var(--space-6); flex-wrap: wrap; margin: 0 0 var(--space-6); padding-bottom: var(--space-4); border-bottom: 1px solid var(--color-border); }
.g-meta dt { font: 600 var(--text-caption)/1.3 var(--font-ui); color: var(--color-text-secondary); margin-bottom: 2px; }
.g-meta dd { margin: 0; font-size: var(--text-body-s); font-weight: 700; }

.g-points { background: var(--color-bg-3); border-radius: var(--radius-2); padding: var(--space-4) var(--space-5); margin-bottom: var(--space-6); }
.g-points ul { margin: var(--space-2) 0 0; padding-left: var(--space-5); display: grid; gap: var(--space-2); }

.g-body h2 { font: 600 var(--text-h3)/var(--lh-h3) var(--font-ui); margin-top: var(--space-6); }
.g-body h3 { font: 600 var(--text-h4)/var(--lh-h4) var(--font-ui); margin-top: var(--space-5); }
.g-body ol, .g-body ul { padding-left: var(--space-5); display: grid; gap: var(--space-2); }

.g-handoff { margin-top: var(--space-7); }

.g-articles { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-2); counter-reset: step; }
.g-articles a {
  display: flex; gap: var(--space-4); align-items: center; flex-wrap: wrap;
  background: var(--color-bg-1); border: 1px solid var(--color-border); border-radius: var(--radius-2);
  padding: var(--space-4) var(--space-5); text-decoration: none; color: var(--color-text);
}
.g-articles a:hover { border-color: var(--color-action); }
.g-articles__step {
  width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; flex: none;
  background: var(--color-secondary); color: #fff; font: 600 var(--text-caption)/1 var(--font-ui);
}
.g-articles__title { flex: 1 1 auto; font-weight: 700; }
.g-articles__meta { display: flex; gap: var(--space-3); align-items: center; flex-wrap: wrap; }

.g-report { margin-top: var(--space-8); padding-top: var(--space-4); border-top: 1px solid var(--color-border); }
.g-report summary { cursor: pointer; font-size: var(--text-caption); color: var(--color-text-secondary); }
.g-report form { max-width: 480px; margin-top: var(--space-4); }

@media (max-width: 1023px) {
  .g-detail { grid-template-columns: 1fr; }
  .g-nav { position: static; order: 1; padding-top: var(--space-6); border-top: 1px solid var(--color-border); }
  .g-article { order: 0; }
}

/* Știrile pe prima pagină: trei articole, unul dominant. */
.h-news { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--space-6); align-items: start; }
.h-news__featured { background: var(--color-bg-1); border: 1px solid var(--color-border); border-radius: var(--radius-3); padding: var(--space-5); }
.h-news__rest { display: grid; gap: var(--space-5); }
.h-news__rest article { padding-bottom: var(--space-5); border-bottom: 1px solid var(--color-border); }
.h-news__rest article:last-child { border-bottom: 0; padding-bottom: 0; }

@media (max-width: 1023px) { .h-news { grid-template-columns: 1fr; } }

/* ── Blocul din profil: prezența la Summit ───────────────────────────────── */

/* Banda celor 11 ani e răspunsul vizual la „de când vine": poziții fixe,
   plin = a fost, gol = nu. Anul viitor confirmat are CONTUR, nu umplere —
   încă nu s-a întâmplat. */
.s-years { display: flex; gap: 3px; list-style: none; margin: 0 0 var(--space-5); padding: 0; }
.s-year {
  display: grid; place-items: center;
  width: 100%; max-width: 44px; padding-block: var(--space-1);
  border-radius: var(--radius-1);
  font: 600 var(--text-caption)/1 var(--font-mono);
  font-variant-numeric: tabular-nums;
  text-decoration: none;
}
.s-year--absent { background: var(--color-bg-3); color: var(--color-text-disabled); }
.s-year--present { background: var(--color-secondary); color: #fff; }
.s-year--upcoming {
  background: transparent;
  border: 1.5px solid var(--color-brand-magenta);
  color: var(--color-brand-magenta);
}

.s-appearances { list-style: none; margin: 0; padding: 0; }
.s-appearance {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: var(--space-4);
  padding: var(--space-3) 0;
  border-top: 1px solid var(--color-border);
}
.s-appearance__year { margin: 0; font: 600 var(--text-body)/1.3 var(--font-mono); font-variant-numeric: tabular-nums; }
.s-appearance__what { margin: 0 0 2px; font-size: var(--text-body-s); }
.s-appearance__meta { margin: 0; font-size: var(--text-caption); color: var(--color-text-secondary); }

/* ── Pagina de proiecte ─────────────────────────────────────────
   Trei rânduri, nu trei carduri: proiectele nu concurează între ele, iar
   cardurile ar sugera că trebuie ales unul. */

.pr-page { padding-block: var(--space-6) var(--space-9); }
@media (max-width: 640px) { .pr-page { padding-block: var(--space-4) var(--space-6); } }

.pr-list { list-style: none; margin: var(--space-6) 0 0; padding: 0; }

.pr-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-6);
  align-items: start;
  padding: var(--space-6) 0;
  border-top: 1px solid var(--color-border);
}
.pr-item:last-child { border-bottom: 1px solid var(--color-border); }

.pr-item__title { margin: 0 0 var(--space-2); }
.pr-item__title a { color: inherit; text-decoration: none; }
.pr-item__title a:hover { color: var(--color-action); }

/* Starea e informația care decide dacă intri: stă deasupra descrierii, nu
   sub ea, și poartă culoarea de acțiune. */
.pr-item__state {
  margin: 0 0 var(--space-3);
  font: 600 var(--text-body-s)/1.4 var(--font-ui);
  color: var(--color-action);
}

.pr-item__side { display: grid; gap: var(--space-4); justify-items: end; text-align: right; }
.pr-item__count { display: grid; gap: 2px; margin: 0; justify-items: end; }

/* Proiectul care încă nu are pagină nu se ascunde și nu primește link mort:
   rămâne vizibil, estompat, cu starea reală scrisă. */
.pr-item--soon .pr-item__title { color: var(--color-text-secondary); }
.pr-item--soon .pr-item__state { color: var(--color-text-secondary); }

.pr-archive { margin-top: var(--space-7); }

@media (max-width: 767px) {
  .pr-item { grid-template-columns: minmax(0, 1fr); }
  .pr-item__side, .pr-item__count { justify-items: start; text-align: left; }
}

/* Pagină de text scrisă din administrare. Coloană îngustă, fără elemente
   laterale: textele juridice se citesc, nu se scanează. */
.pg-page { max-width: 720px; padding-block: var(--space-7) var(--space-9); }
.pg-page h1 { margin-bottom: var(--space-6); }
.pg-updated { margin-top: var(--space-8); padding-top: var(--space-4); border-top: 1px solid var(--color-border); }

/* ══════════════════════════════════════════════════════════════════════════
   Prima pagină, după machetele clientului (25.09.2026)
   Brandbook: Montserrat (titluri) + Lato (text), roșu / galben / albastru.
   ══════════════════════════════════════════════════════════════════════════ */

.h-icon { width: 22px; height: 22px; flex: none; vertical-align: -5px; }
.c-button .h-icon { width: 18px; height: 18px; margin-left: 4px; }

.h2-eyebrow { font: 600 var(--text-caption)/1.2 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--color-action); margin: 0 0 var(--space-4); }
.h2-title { font: 900 clamp(1.5rem, 2.4vw, 2rem)/1.2 var(--font-display); color: var(--color-text); margin: 0; }
.h2-subtitle { font: 900 var(--text-h4)/1.25 var(--font-display); margin: 0 0 var(--space-2); }
.h2-head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-5); }

/* ── Hero ── */
.h2-hero { background: linear-gradient(180deg, var(--color-bg-1) 0%, var(--color-bg-2) 100%); padding-block: var(--space-8) var(--space-7); overflow: hidden; }
.h2-hero__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-7); align-items: center; }
.h2-hero__title { font: 900 clamp(2.1rem, 3.6vw, 3.1rem)/1.06 var(--font-display); letter-spacing: -.02em; color: var(--rp-blue-dark); margin: 0; }
.h2-hero__title span { color: var(--color-action); }
.h2-hero__lede { font-size: var(--text-body-l); line-height: 1.6; color: var(--color-text-secondary); margin: var(--space-5) 0 0; max-width: 46ch; }
/* Distanța față de titlu stă pe butoane, nu pe lede: fără slogan, butoanele
   ajungeau lipite de titlu (feedback 28.09.2026). */
.h2-hero__actions { display: flex; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-7); }
.h2-hero__lede + .h2-hero__actions { margin-top: var(--space-6); }

.h2-hero__map { position: relative; border-radius: var(--radius-3); background: radial-gradient(120% 90% at 60% 40%, #16306A 0%, var(--rp-navy-deep) 70%); padding: var(--space-5); box-shadow: 0 24px 60px rgba(11, 27, 51, .25); }
.h2-world { display: block; width: 100%; height: auto; }
.h2-world__pt circle:not(.h2-world__halo) { stroke: #fff; stroke-width: 3; }
.h2-world__pt text { font: 900 21px/1 var(--font-display); fill: #fff; pointer-events: none; }
.h2-world__halo { opacity: .22; }
.h2-world__pt.is-c0 circle { fill: var(--rp-blue); }
.h2-world__pt.is-c1 circle { fill: var(--color-action); }
.h2-world__pt.is-c2 circle { fill: var(--rp-orange); }
.h2-world__pt.is-c3 circle { fill: var(--rp-violet); }
.h2-world__pt.is-home circle { fill: var(--rp-yellow); }
.h2-world__pt.is-home text { fill: var(--color-text); }

.h2-hero__card {
  position: absolute; right: var(--space-5); bottom: calc(-1 * var(--space-5));
  display: grid; gap: var(--space-2); padding: var(--space-4) var(--space-5);
  background: var(--color-bg-1); border-radius: var(--radius-2); box-shadow: 0 12px 30px rgba(11, 27, 51, .18);
  text-decoration: none; color: var(--color-text); min-width: 250px;
}
.h2-hero__card-row { display: flex; align-items: center; gap: var(--space-2); }
.h2-hero__card-row strong { font: 900 2rem/1 var(--font-display); color: var(--rp-blue-dark); }
.h2-faces { display: flex; margin-left: var(--space-3); align-items: center; }
.h2-faces img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; border: 2px solid #fff; margin-left: -8px; }
.h2-faces img:first-child { margin-left: 0; }
.h2-faces__more { margin-left: -8px; height: 32px; min-width: 32px; padding: 0 6px; border-radius: 16px; background: var(--rp-blue-dark); color: #fff; font: 600 11px/32px var(--font-ui); border: 2px solid #fff; text-align: center; }
.h2-hero__card-link { font: 600 var(--text-body-s)/1 var(--font-ui); color: var(--color-action); }

.h2-pillars { list-style: none; margin: var(--space-8) 0 0; padding: var(--space-5); display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-5); background: var(--color-bg-1); border: 1px solid var(--color-border); border-radius: var(--radius-3); box-shadow: 0 8px 24px rgba(11, 27, 51, .06); }
.h2-pillars li { display: flex; gap: var(--space-3); align-items: flex-start; }
.h2-pillars strong { display: block; font: 600 var(--text-body-s)/1.3 var(--font-ui); margin-bottom: 4px; }
/* Doar descrierea: cercul iconiței e tot un <span> și moștenea griul. */
.h2-pillars li > div > span { display: block; font-size: var(--text-caption); line-height: 1.5; color: var(--color-text-secondary); }
.h2-pillars__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; flex: none; color: #fff; }
.h2-pillars__icon .h-icon { vertical-align: 0; width: 24px; height: 24px; }
.h2-pillars__icon.is-blue { background: var(--rp-blue); }
.h2-pillars__icon.is-yellow { background: var(--rp-yellow); color: var(--color-text); }
.h2-pillars__icon.is-red { background: var(--color-action); }
.h2-pillars__icon.is-navy { background: var(--rp-blue-dark); }

/* ── Proiecte ── */
.h2-projects { display: grid; gap: var(--space-5); grid-template-columns: repeat(3, 1fr); }
.h2-projects--1 { grid-template-columns: minmax(0, 420px); }
.h2-projects--2 { grid-template-columns: repeat(2, 1fr); }
.h2-project { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: var(--space-2); min-height: 280px; padding: var(--space-6); border-radius: var(--radius-3); color: #fff; }
.h2-project--summit { background: linear-gradient(145deg, var(--rp-blue-dark), #122461); }
.h2-project--top100 { background: linear-gradient(145deg, var(--rp-red), #8F1D20); }
.h2-project--zd { background: linear-gradient(145deg, var(--rp-yellow), var(--rp-orange)); color: var(--color-text-on-yellow); }
.h2-project__eyebrow { font: 600 var(--text-caption)/1 var(--font-ui); text-transform: uppercase; letter-spacing: .08em; opacity: .85; margin: 0; }
.h2-project__title { font: 900 1.6rem/1.15 var(--font-display); margin: 0 0 var(--space-2); max-width: 14ch; }
.h2-project__meta { font: 600 var(--text-body-s)/1.4 var(--font-ui); margin: 0; }
.h2-project__meta .h-icon { width: 16px; height: 16px; vertical-align: -3px; }
.h2-project__blurb { font-size: var(--text-body-s); line-height: 1.5; opacity: .9; margin: 0; }
.h2-project__cta { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; border-radius: var(--radius-2); background: #fff; color: var(--color-text); font: 600 var(--text-body-s)/1 var(--font-ui); text-decoration: none; }
.h2-project--summit .h2-project__cta { color: var(--rp-blue-dark); }
.h2-project--top100 .h2-project__cta { color: var(--rp-red); }
.h2-project__cta .h-icon { width: 16px; height: 16px; }
/* Motivul de pătrate din brandbook, o singură dată pe card, în colț. */
.h2-project__squares { position: absolute; right: 0; top: 0; display: grid; grid-template-columns: repeat(2, 36px); opacity: .22; }
.h2-project__squares i { width: 36px; height: 36px; background: #fff; }
.h2-project__squares i:nth-child(2), .h2-project__squares i:nth-child(3) { background: transparent; }

/* ── Cifre ── */
.h2-stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); align-items: start; gap: var(--space-5) var(--space-4); padding: var(--space-6) var(--space-6) var(--space-5); margin-block: var(--space-4) var(--space-6); border-radius: var(--radius-3); background: linear-gradient(135deg, var(--rp-blue-dark), var(--rp-navy-deep)); color: #fff; }
/* Iconița sus, cifra pe aceeași linie la toate, eticheta sub ea: cu iconița
   lângă cifră și eticheta ruptă pe două rânduri, cifrele ieșeau la înălțimi
   diferite. */
.h2-stat { display: grid; grid-template-columns: auto 1fr; column-gap: var(--space-3); align-items: center; }
.h2-stat .h-icon { color: var(--rp-yellow); width: 28px; height: 28px; grid-row: 1; }
.h2-stat > div { display: contents; }
.h2-stat strong { grid-row: 1; grid-column: 2; font: 900 1.75rem/1 var(--font-display); white-space: nowrap; }
.h2-stat span { grid-row: 2; grid-column: 1 / -1; margin-top: var(--space-2); font-size: var(--text-caption); line-height: 1.35; color: #C6CFE6; }
.h2-stats__more { grid-column: 1 / -1; justify-self: end; margin-top: calc(-1 * var(--space-2)); padding-top: var(--space-3); color: #fff; font: 600 var(--text-caption)/1.3 var(--font-ui); text-decoration: none; white-space: nowrap; }
.h2-stats__more:hover { text-decoration: underline; }

/* ── Oportunități + știri ── */
.h2-band { background: var(--color-bg-2); }
.h2-split { display: grid; grid-template-columns: 1fr; gap: var(--space-8); }
.h2-opps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
.h2-opp { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4); background: var(--color-bg-1); border: 1px solid var(--color-border); border-radius: var(--radius-2); text-decoration: none; color: var(--color-text); min-height: 190px; transition: box-shadow .15s ease, transform .15s ease; }
.h2-opp:hover { box-shadow: 0 10px 24px rgba(11, 27, 51, .10); transform: translateY(-2px); }
.h2-opp strong { font: 600 var(--text-body-s)/1.35 var(--font-ui); }
.h2-opp__summary { font-size: var(--text-caption); line-height: 1.5; color: var(--color-text-secondary); }
.h2-opp__foot { margin-top: auto; display: flex; justify-content: space-between; gap: var(--space-2); font-size: var(--text-caption); color: var(--color-text-secondary); }
.h2-opp__foot .h-icon { width: 14px; height: 14px; vertical-align: -2px; }
.h2-opp__date { color: var(--color-action); font-weight: 700; }
.h2-opp--add { align-items: center; justify-content: center; text-align: center; border-style: dashed; }
.h2-opp__plus { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--color-border-strong); color: var(--rp-blue-dark); }
.h2-tag { align-self: flex-start; display: inline-block; padding: 3px 8px; border-radius: var(--radius-1); font: 600 10px/1.2 var(--font-ui); text-transform: uppercase; letter-spacing: .05em; background: var(--color-info-bg); color: var(--rp-blue-dark); }
.h2-tag--legislatie { background: #EEF0FF; color: #3A3F9A; }
.h2-tag--programe { background: #E7F4EE; color: var(--color-success); }
.h2-tag--cetatenie-fiscalitate { background: var(--color-action-subtle); color: var(--color-action-on-subtle); }
.h2-tag--economie { background: var(--color-warning-bg); color: var(--color-warning); }
.h2-tag--light { position: absolute; left: var(--space-3); bottom: var(--space-3); background: rgba(255, 255, 255, .92); }
.h2-news { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.h2-news > .h2-head { grid-column: 1 / -1; margin-bottom: 0; }
.h2-news__item { display: grid; gap: 6px; padding: var(--space-4); background: var(--color-bg-1); border: 1px solid var(--color-border); border-radius: var(--radius-2); text-decoration: none; color: var(--color-text); }
.h2-news__item strong { font: 600 var(--text-body-s)/1.35 var(--font-ui); }
.h2-news__item time { font-size: var(--text-caption); color: var(--color-text-secondary); }

/* ── Ghid · Povești ── */
.h2-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); margin-bottom: var(--space-7); }
.h2-guide { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-6); border-radius: var(--radius-3); background: linear-gradient(145deg, var(--rp-blue-dark), #122461); color: #fff; text-decoration: none; }
.h2-guide p { color: #C6CFE6; margin: 0; font-size: var(--text-body-s); }
.h2-guide ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px var(--space-4); font-size: var(--text-caption); }
.h2-guide li::before { content: "✓"; color: var(--rp-yellow); font-weight: 900; margin-right: 6px; }
.h2-guide__cta { margin-top: auto; align-self: flex-start; padding: 10px 16px; border-radius: var(--radius-2); background: #fff; color: var(--rp-blue-dark); font: 600 var(--text-body-s)/1 var(--font-ui); }
.h2-story { display: flex; flex-direction: column; gap: var(--space-2); text-decoration: none; color: var(--color-text); background: var(--color-bg-1); border: 1px solid var(--color-border); border-radius: var(--radius-3); overflow: hidden; padding-bottom: var(--space-4); }
.h2-story strong { font: 600 var(--text-body)/1.35 var(--font-ui); padding: 0 var(--space-4); }
.h2-story .t-caption { padding: 0 var(--space-4); }
.h2-story__img { position: relative; aspect-ratio: 4 / 3; background: var(--color-bg-3); overflow: hidden; }
.h2-story__img img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.h2-story__img .c-avatar { width: 100%; height: 100%; border-radius: 0; font-size: var(--text-h1); }

@media (max-width: 1100px) {
  .h2-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .h2-pillars { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .h2-hero__grid, .h2-split { grid-template-columns: 1fr; }
  .h2-hero__card { position: static; margin-top: var(--space-4); }
  .h2-projects, .h2-projects--2, .h2-trio, .h2-news { grid-template-columns: 1fr; }
  .h2-opps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  /* Pe telefon, două coloane de piloni și de oportunități lăsau ~150 px de
     text pe rând, cu un cuvânt pe linie (audit 26.09.2026). */
  .h2-pillars, .h2-opps { grid-template-columns: 1fr; }
  .h2-pillars { gap: var(--space-4); margin-top: var(--space-6); }
  .h2-opp { min-height: 0; }
  .h2-stats { grid-template-columns: 1fr 1fr; padding: var(--space-5); }
  .h2-head { flex-direction: column; align-items: flex-start; gap: var(--space-2); }
  .h2-hero { padding-block: var(--space-6) var(--space-6); }
  /* Pătratele decorative stăteau peste eticheta cardului. */
  .h2-project { min-height: 0; padding: var(--space-5); }
  .h2-project__eyebrow { padding-right: 64px; }
  .h2-project__squares { grid-template-columns: repeat(2, 24px); }
  .h2-project__squares i { width: 24px; height: 24px; }
  .h2-trio { margin-bottom: var(--space-5); }
  /* Trei carduri cu foto pătrată pe toată lățimea = trei ecrane de scroll.
     Pe telefon, oamenii recomandați devin rânduri: foto mică + nume. */
  .h2-people { grid-template-columns: 1fr !important; gap: var(--space-3); }
  .h2-people .c-person { flex-direction: row; }
  .h2-people .c-person__media { width: 112px; flex: none; aspect-ratio: auto; }
  .h2-people .c-person__media .c-avatar { font-size: var(--text-h3); }
  .h2-people .c-person__badges { display: none; }
  .h2-people .c-person__action { padding-top: var(--space-2); }
}

/* Cardurile întregi sunt linkuri: la hover NU preiau culoarea de link
   (textul devenea roșu pe bleumarin). Răspunsul la hover e ridicarea și
   umbra, iar pe cardul ghidului butonul alb se inversează. */
.h2-guide, .h2-guide:hover, .h2-guide:focus-visible { color: #fff; text-decoration: none; }
.h2-story:hover, .h2-opp:hover, .h2-news__item:hover, .h2-hero__card:hover { color: var(--color-text); text-decoration: none; }
.h2-guide, .h2-story, .h2-news__item { transition: box-shadow .15s ease, transform .15s ease; }
.h2-guide:hover, .h2-story:hover, .h2-news__item:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(11, 27, 51, .16); }
.h2-guide:hover .h2-guide__cta { background: var(--rp-yellow); color: var(--color-text-on-yellow); }
.h2-story:hover strong, .h2-news__item:hover strong, .h2-opp:hover strong { color: var(--rp-blue-dark); text-decoration: underline; text-underline-offset: 3px; }
.h2-hero__card:hover .h2-hero__card-link { text-decoration: underline; }

/* Top 100: faptele ediției (gală, supliment, filmare) și lista edițiilor. */
.p-edition-facts { list-style: none; margin: var(--space-4) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); font: 600 var(--text-body-s)/1.4 var(--font-ui); }
.p-edition-list { list-style: none; margin: 0; padding: 0; display: grid; }
.p-edition-list li { display: grid; grid-template-columns: 72px 1fr auto; gap: var(--space-4); align-items: baseline; padding: var(--space-3) 0; border-bottom: 1px solid var(--color-border); }
.p-edition-list__year { font: 900 var(--text-h4)/1 var(--font-display); text-decoration: none; }
.p-edition-list__links { display: flex; gap: var(--space-3); }
@media (max-width: 640px) { .p-edition-list li { grid-template-columns: 56px 1fr; } .p-edition-list__links { grid-column: 2; } }
.pg-archive { list-style: none; margin: var(--space-4) 0 0; padding: 0; display: grid; gap: var(--space-2); font-size: var(--text-body-s); }

/* Textul paginilor scrise (Despre, legale, Zilele Diasporei): stilul de
   proză stătea doar în summit.css, deci aici textul ieșea mic și lipit. */
.pg-page .s-prose { font-size: var(--text-body); line-height: 1.65; }
.pg-page .s-prose p, .pg-page .s-prose li { margin: 0 0 var(--space-3); }
.pg-page .s-prose h2 { font: 600 var(--text-h3)/var(--lh-h3) var(--font-ui); margin: var(--space-7) 0 var(--space-3); }
.pg-page .s-prose h3 { font: 600 var(--text-h4)/var(--lh-h4) var(--font-ui); margin: var(--space-5) 0 var(--space-2); }
.pg-page .s-prose h4 { font: 600 var(--text-body)/1.4 var(--font-ui); margin: var(--space-4) 0 var(--space-2); }
.pg-page .s-prose ul, .pg-page .s-prose ol { padding-left: var(--space-5); margin: 0 0 var(--space-4); }
.pg-page .s-prose blockquote { margin: var(--space-4) 0; padding-left: var(--space-4); border-left: 3px solid var(--color-action); color: var(--color-text-secondary); }

/* „Contact și implicare” (/contact/): datele de contact și formularul, apoi
   cele patru moduri de a susține RePatriot. */
.pg-page.iv-page { max-width: var(--grid-max); }
.iv-ways { list-style: none; margin: var(--space-6) 0 0; padding: 0; display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.iv-way { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-5); background: var(--color-bg-1); border: 1px solid var(--color-border); border-radius: var(--radius-3); }
.iv-way h2 { margin: 0; }
.iv-way .c-button { margin-top: auto; align-self: flex-start; }
.iv-form form { display: grid; gap: var(--space-2); margin-top: var(--space-4); }
.iv-form form .c-button { justify-self: start; margin-top: var(--space-3); }
.pg-lead { margin: calc(var(--space-4) * -1) 0 var(--space-6); }

/* „Vreau o conexiune” în galben (feedback client, 26.09.2026). Specific
   peste `c-button--primary`, deci și în antet, unde roșul era forțat. */
.c-button.c-button--connect,
.c-header--light .c-button.c-button--connect { background: var(--color-connect); border-color: var(--color-connect); color: var(--color-connect-fg); }
.c-button.c-button--connect:hover,
.c-header--light .c-button.c-button--connect:hover { background: var(--color-connect-hover); border-color: var(--color-connect-hover); color: var(--color-connect-fg); }
.c-button.c-button--connect:active { background: var(--color-connect-active); border-color: var(--color-connect-active); }


/* Echipa de pe „Despre”: exact trei pe rând (feedback client, 28.09.2026).
   Pe telefon rămân două, ca toate grilele de persoane (regula de la .c-grid:has). */
.pg-team .c-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .pg-team .c-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Contact și implicare: datele de contact lângă formular pe desktop, deasupra
   lui pe mobil (feedback client, 28.09.2026). */
.iv-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: var(--space-7); align-items: start; margin-top: var(--space-6); }
.iv-contact__details { padding: var(--space-5); background: var(--color-bg-1); border: 1px solid var(--color-border); border-radius: var(--radius-3); }
.iv-contact__details h2 { margin-top: 0; }
.iv-contact__details .s-prose ul { padding-left: 0; list-style: none; }
.iv-contact__details .s-prose li { margin-bottom: var(--space-2); }
@media (max-width: 900px) { .iv-contact { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); } }

/* Top 100: recomandarea stă înaintea listei de laureați (feedback client,
   28.09.2026). */
.t100-recommend {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap;
  margin: var(--space-5) 0 var(--space-6); padding: var(--space-5);
  background: var(--color-bg-1); border: 1px solid var(--color-border); border-left: 4px solid var(--color-data);
  border-radius: var(--radius-3);
}
.t100-recommend p { margin: 0; flex: 1 1 320px; }

/* Proiectele RBL de pe „Despre”: logourile aveau mărimi diferite (fișierele
   de pe site-ul vechi, de la 300 la 1200 px). Carduri egale, fiecare logo în
   aceeași casetă, încadrat fără tăiere (feedback client, 28.09.2026). */
.pg-page .s-prose ul:has(> li > img[src*="/media/pages/despre-rbl-"]) {
  list-style: none; padding: 0; margin: var(--space-4) 0 var(--space-6);
  display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--space-4);
}
.pg-page .s-prose li:has(> img[src*="/media/pages/despre-rbl-"]) {
  margin: 0; padding: var(--space-4); background: var(--color-bg-1);
  border: 1px solid var(--color-border); border-radius: var(--radius-3);
}
.pg-page .s-prose li > img[src*="/media/pages/despre-rbl-"] {
  display: block; width: 100%; height: 120px; object-fit: contain;
  padding: var(--space-3); background: #fff; border-radius: var(--radius-2);
}
.pg-page .s-prose li:has(> img[src*="/media/pages/despre-rbl-"]) h3 { margin-top: var(--space-3); }

/* ── Evenimente (28.09.2026) ─────────────────────────────────────────────
   Un rând: data mare în stânga, poza (dacă există), apoi organizatorul,
   locul și titlul. Evenimentele partenerilor au bordura neutră. */
.ev-page .p-editions { margin-bottom: var(--space-6); }
.ev-month { margin-bottom: var(--space-7); }
.ev-month__title { text-transform: capitalize; margin: 0 0 var(--space-3); }
.ev-list { list-style: none; margin: 0; padding: 0; }
.ev-row {
  display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: var(--space-5); align-items: start;
  padding: var(--space-4) 0; border-top: 1px solid var(--color-border);
}
.ev-row:has(.ev-row__img) { grid-template-columns: 120px 208px minmax(0, 1fr); }
.ev-row:last-child { border-bottom: 1px solid var(--color-border); }
.ev-row__date { margin: 0; display: grid; gap: var(--space-1); }
.ev-row__day { font: 900 var(--text-h2)/1 var(--font-display); color: var(--color-secondary); font-variant-numeric: tabular-nums; }
.ev-row__dates { font-size: var(--text-caption); color: var(--color-text-secondary); }
.ev-row__img { display: block; aspect-ratio: 16 / 9; border-radius: var(--radius-2); overflow: hidden; background: var(--color-bg-3); }
.ev-row__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ev-row__meta { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; margin: 0 0 var(--space-2); font-size: var(--text-caption); color: var(--color-text-secondary); }
.ev-row__title { margin: 0 0 var(--space-2); font: 600 var(--text-body-l)/1.35 var(--font-ui); }
.ev-row__title a { color: var(--color-text); text-decoration: none; }
.ev-row__title a:hover { color: var(--color-action); }
.ev-more { margin-top: var(--space-5); }
.ev-facts { list-style: none; padding: 0; margin: var(--space-3) 0 var(--space-5); display: grid; gap: var(--space-1); color: var(--color-text-secondary); }
.ev-banner { margin: 0 0 var(--space-5); max-width: 720px; }
.ev-banner img { width: 100%; height: auto; border-radius: var(--radius-3); display: block; }
.ev-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-6); }
/* Pe telefon data stă pe un rând, deasupra titlului: în coloana îngustă
   „4 septembrie 2026” se rupea pe trei rânduri. */
@media (max-width: 640px) {
  .ev-row, .ev-row:has(.ev-row__img) { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
  .ev-row__day, .ev-row__img { display: none; }
  .ev-row__dates { font: 600 var(--text-body-s)/1.3 var(--font-ui); color: var(--color-secondary); }
}
