/*
  Summit — ediție, arhivă, sub-pagini.

  Se încarcă DOAR pe paginile de Summit. Restul site-ului nu plătește pentru
  antetul cu fundal bleumarin și pentru grila de galerie.
*/

/* ── Antetul ediției ─────────────────────────────────────────────────────── */

.s-hero {
  background: var(--color-bg-inverse);
  color: var(--color-text-inverse);
  padding-block: var(--space-8) var(--space-7);
}

.s-hero__flag {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0 0 var(--space-5);
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-pill);
  background: var(--color-brand-magenta);
  color: #fff;
  font: 600 var(--text-label)/var(--lh-label) var(--font-ui);
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* „În desfășurare" e singura stare care pulsează, și doar cu un punct. */
.s-hero__flag--live::before {
  content: "";
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #fff;
}

/* Starea liniștită nu folosește magenta: ar concura cu acțiunea primară. */
.s-hero__flag--quiet {
  background: rgba(255, 255, 255, .14);
  color: #fff;
}

.s-hero__title { margin: 0 0 var(--space-4); color: #fff; }
.s-hero__theme { margin: 0 0 var(--space-5); color: rgba(255, 255, 255, .84); }

.s-hero__when {
  margin: 0 0 var(--space-6);
  display: flex; flex-wrap: wrap; gap: var(--space-3);
  align-items: baseline;
  font-size: var(--text-body-l);
  color: rgba(255, 255, 255, .92);
}
.s-hero__when strong { font-family: var(--font-ui); font-weight: 600; }

.s-hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }

/* Pe fundal bleumarin, butonul secundar e conturat alb, nu bleumarin pe alb. */
.s-hero .c-button--secondary {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, .5);
}
.s-hero .c-button--secondary:hover { border-color: #fff; background: rgba(255, 255, 255, .08); }
.s-hero .c-button--ghost { color: #fff; }

/* ── Cifrele din antet ───────────────────────────────────────────────────── */

.s-figures {
  display: flex; flex-wrap: wrap; gap: var(--space-7);
  margin: var(--space-7) 0 0;
}
.s-figure { display: grid; gap: var(--space-1); }
/* Eticheta stă SUB cifră vizual, dar ÎNAINTE în DOM: <dt> apoi <dd> e
   ordinea corectă a unei liste de definiții, iar order o inversează. */
.s-figure__label {
  order: 2;
  font: 400 var(--text-caption)/var(--lh-caption) var(--font-text);
  color: rgba(255, 255, 255, .72);
}
.s-figure__value { order: 1; margin: 0; color: var(--color-data); }

/* ── Sub-navigația ───────────────────────────────────────────────────────── */

.s-subnav {
  background: var(--color-bg-1);
  border-bottom: 1px solid var(--color-border);
  position: sticky; top: 0; z-index: var(--z-sticky);
}
.s-subnav__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--space-4);
}
.s-subnav__list {
  display: flex; gap: var(--space-1);
  list-style: none; margin: 0; padding: 0;
  overflow-x: auto;
  scrollbar-width: none;
  /* Un copil de flex nu coboară sub lățimea conținutului fără asta, deci
     `overflow-x` n-ar face nimic: pe telefon derula PAGINA, nu banda. */
  min-width: 0;
}
.s-subnav__list::-webkit-scrollbar { display: none; }

.s-subnav__item {
  display: block;
  padding: var(--space-4) var(--space-3);
  border-bottom: 2px solid transparent;
  color: var(--color-text-secondary);
  text-decoration: none;
  white-space: nowrap;
  font: 600 var(--text-body-s)/1.2 var(--font-ui);
}
.s-subnav__item:hover { color: var(--color-text); }
.s-subnav__item--active {
  color: var(--color-action);
  border-bottom-color: var(--color-action);
}
/* Sub-pagina goală rămâne în navigație, estompată — lipsa e vizibilă, nu
   ascunsă. Nu e `disabled`: linkul funcționează și duce la invitație. */
.s-subnav__item--empty { color: var(--color-text-disabled); }
.s-subnav__item--empty:hover { color: var(--color-text-secondary); }

.s-switch { display: flex; gap: var(--space-2); align-items: center; flex: 0 0 auto; }
.c-select--compact { min-height: 36px; padding-block: var(--space-1); font-size: var(--text-body-s); }

/* ── Corpul paginii ──────────────────────────────────────────────────────── */

.s-page { padding-block: var(--space-7) var(--space-9); }
.s-page__foot { margin-top: var(--space-7); }

.s-subhead { padding-block: var(--space-6) var(--space-5); border-bottom: 1px solid var(--color-border); }
.s-subhead h1 { margin: var(--space-2) 0 var(--space-3); }

.s-more { font-size: var(--text-body-s); font-weight: 600; white-space: nowrap; }

.s-prose p { margin: 0 0 var(--space-4); font-size: var(--text-body-l); line-height: var(--lh-body-l); }
.s-prose p:last-child { margin-bottom: 0; }

/* ── Speakeri ────────────────────────────────────────────────────────────── */

.s-speakers, .s-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: var(--space-4);
}
.s-speakers { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
/* Numele nu se rupe în trei rânduri: compania coboară, numele rămâne întreg. */
.s-speakers .c-person__name { font-size: var(--text-body); line-height: 1.3; }
.s-speakers .c-person--compact { padding: var(--space-4); }
.s-speakers .c-person__body { min-width: 0; }
.s-speakers .c-person__meta { font-size: var(--text-caption); line-height: 1.4; }
/* Titlul secțiunii stătea lipit de carduri. */
.s-page .o-head { margin-bottom: var(--space-4); align-items: baseline; }
.s-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }

/* ── Agendă ──────────────────────────────────────────────────────────────── */

.s-days { display: flex; gap: var(--space-2); flex-wrap: wrap; margin-bottom: var(--space-6); }
.s-days__link {
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-pill);
  font-size: var(--text-body-s);
  text-decoration: none;
  color: var(--color-text);
}
.s-days__link:hover { border-color: var(--color-action); color: var(--color-action); }

.s-day__title { margin: 0 0 var(--space-4); }

.s-sessions { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-1); }

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

/* Cifre tabulare: orele se aliniază vertical, iar programul se citește pe
   coloană, nu cuvânt cu cuvânt. */
.s-session__time {
  margin: 0;
  font: 600 var(--text-body)/1.3 var(--font-mono);
  font-variant-numeric: tabular-nums;
  color: var(--color-text);
}
.s-session__until { display: block; font-weight: 400; color: var(--color-text-secondary); font-size: var(--text-caption); }

.s-session__title { margin: 0 0 var(--space-1); font: 600 var(--text-body-l)/1.35 var(--font-ui); }
.s-session__people { margin: 0 0 var(--space-2); font-size: var(--text-body-s); }
.s-session__meta {
  margin: 0; display: flex; gap: var(--space-3); align-items: center;
  font-size: var(--text-caption); color: var(--color-text-secondary);
  white-space: nowrap;
}
.s-session__room {
  padding: var(--space-1) var(--space-2);
  background: var(--color-bg-2);
  border-radius: var(--radius-1);
}

/* ── Tipuri de participare ───────────────────────────────────────────────── */

.s-tickets { border-top: 1px solid var(--color-border); padding-top: var(--space-6); }
.s-tickets__eyebrow { margin: 0 0 var(--space-4); }
.s-tickets__list { list-style: none; margin: 0 0 var(--space-6); padding: 0; }

.s-ticket {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: var(--space-5);
  padding: var(--space-4) 0;
  border-bottom: 1px solid var(--color-border);
}
.s-ticket__label { margin: 0; font: 600 var(--text-body)/1.3 var(--font-ui); }
.s-ticket__hint { margin: var(--space-1) 0 0; }
.s-ticket__price {
  margin: 0; display: flex; gap: var(--space-3); align-items: baseline;
  font: 600 var(--text-body-l)/1.2 var(--font-ui);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
/* „la cerere", „gratuit", „invitat" NU se scriu cu greutatea unui preț: nu
   sunt sume, iar tratarea lor la fel ar sugera că e ceva de comparat. */
.s-ticket__note { font: 400 var(--text-body)/1.3 var(--font-text); color: var(--color-text-secondary); }
.s-ticket--sold-out .s-ticket__label { color: var(--color-text-secondary); }

.s-tickets__cta { display: grid; gap: var(--space-3); justify-items: start; }

.s-early {
  margin-top: var(--space-6);
  padding: var(--space-4) var(--space-5);
  background: var(--color-warning-bg);
  border-left: 3px solid var(--color-data);
  border-radius: 0 var(--radius-2) var(--radius-2) 0;
}
.s-early__title { margin: 0 0 var(--space-1); font: 600 var(--text-body)/1.3 var(--font-ui); color: var(--color-text-on-yellow); }
.s-early p:last-child { margin: 0; color: var(--color-warning); }

/* ── Parteneri ───────────────────────────────────────────────────────────── */

/* auto-fit cu maxim: pagina arată bine și cu doi parteneri, nu doar cu
   doisprezece — se trimite ca dovadă în vânzări. */
.s-partners {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: var(--space-4);
  grid-template-columns: repeat(auto-fit, minmax(160px, 220px));
}
.s-partner {
  display: grid; gap: var(--space-2);
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-2);
  background: var(--color-bg-1);
  place-items: center;
  text-align: center;
}
.s-partner img { max-height: 48px; width: auto; object-fit: contain; }
.s-partner__name { font: 600 var(--text-body-s)/1.3 var(--font-ui); color: var(--color-text-secondary); }
.s-partner__desc { margin: 0; }
.s-partners--preview { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }

/* ── Participanți ────────────────────────────────────────────────────────── */

.s-count { margin: 0 0 var(--space-5); color: var(--color-text-secondary); font-size: var(--text-body-s); }
.s-attendees {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: var(--space-3);
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.s-attendee { padding: var(--space-3) 0; border-top: 1px solid var(--color-border); }
.s-attendee__name { margin: 0 0 2px; font: 600 var(--text-body)/1.3 var(--font-ui); }
.s-attendees__hidden { margin-top: var(--space-6); font-size: var(--text-body-s); }

/* ── Galerie ─────────────────────────────────────────────────────────────── */

.s-gallery {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: var(--space-3);
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}
.s-gallery img {
  width: 100%; height: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--radius-2);
  background: var(--color-bg-3);
}
.s-gallery__credit { margin: var(--space-1) 0 0; }

/* ── Locul ───────────────────────────────────────────────────────────────── */

.s-venue { border-top: 1px solid var(--color-border); padding-top: var(--space-6); }
.s-venue__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--space-6); align-items: start; }
.s-venue__name { margin: 0 0 var(--space-1); font: 600 var(--text-body-l)/1.3 var(--font-ui); }
.s-venue__cal { margin-top: var(--space-5); display: flex; gap: var(--space-3); align-items: center; }
.s-venue__map {
  min-height: 220px;
  border-radius: var(--radius-2);
  background: var(--color-bg-map);
  display: grid; place-items: center;
  padding: var(--space-5);
}
.s-venue__fallback { margin: 0; text-align: center; color: rgba(255, 255, 255, .8); font-size: var(--text-body-s); }
.s-venue__fallback a { display: block; margin-top: var(--space-2); color: var(--color-data); }

/* ── Arhiva ──────────────────────────────────────────────────────────────── */

/* Ediția curentă ocupă un card propriu, nu primul element al unei liste:
   ierarhia spune „prezentul întâi, arhiva după". */
.s-current {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: var(--space-6);
  align-items: center;
  padding: var(--space-6);
  margin-bottom: var(--space-8);
  border: 1px solid var(--color-border);
  border-top: 3px solid var(--color-action);
  border-radius: var(--radius-3);
  background: var(--color-bg-1);
  box-shadow: var(--shadow-1);
}
.s-current__flag {
  grid-column: 1 / -1;
  margin: 0;
  font: 600 var(--text-label)/1.2 var(--font-ui);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--color-action);
}
.s-current__year { margin: 0; color: var(--color-secondary); font-variant-numeric: tabular-nums; }
.s-current__title { margin: 0 0 var(--space-2); }
.s-current__title a { color: inherit; text-decoration: none; }
.s-current__title a:hover { color: var(--color-action); }
.s-current__facts { margin: 0 0 var(--space-3); color: var(--color-text-secondary); font-size: var(--text-body-s); }

.s-timeline { list-style: none; margin: 0; padding: 0; }
.s-timeline__row {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: var(--space-5);
  padding: var(--space-4) 0;
  border-top: 1px solid var(--color-border);
  align-items: center;
}
.s-timeline__row:last-child { border-bottom: 1px solid var(--color-border); }
.s-timeline__year { margin: 0; font: 900 var(--text-h3)/1 var(--font-display); font-variant-numeric: tabular-nums; }
.s-timeline__year a { color: var(--color-text); text-decoration: none; }
.s-timeline__year a:hover { color: var(--color-action); }
.s-timeline__facts { margin: 0 0 var(--space-2); color: var(--color-text-secondary); font-size: var(--text-body-s); }

/* Câte o poză pe ediție, de pe site-ul vechi (feedback client, 28.09.2026). */
.s-current__img { grid-column: 1 / -1; display: block; border-radius: var(--radius-2); overflow: hidden; }
.s-current__img img { display: block; width: 100%; height: auto; max-height: 420px; object-fit: cover; }
.s-timeline__row.has-image { grid-template-columns: 96px 208px minmax(0, 1fr); }
.s-timeline__img { display: block; border-radius: var(--radius-2); overflow: hidden; aspect-ratio: 16 / 9; background: var(--color-bg-3); }
.s-timeline__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.s-hero__banner { margin: 0 0 var(--space-6); max-width: 720px; }
.s-hero__banner img { display: block; width: 100%; height: auto; border-radius: var(--radius-3); }

/* ── Pastilele de completitudine ─────────────────────────────────────────── */

.s-pills { display: flex; gap: var(--space-1); list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
.s-pill {
  display: grid; place-items: center;
  min-width: 30px; height: 22px;
  padding-inline: var(--space-2);
  border-radius: var(--radius-1);
  font: 600 11px/1 var(--font-mono);
  letter-spacing: .04em;
  text-decoration: none;
}
/* Plin = există. Punctat = lipsește — se vede completitudinea arhivei fără
   să intri în niciun an. */
.s-pill--has { background: var(--color-secondary); color: #fff; }
.s-pill--has:hover { background: var(--color-secondary-hover); }
.s-pill--missing {
  border: 1px dashed var(--color-border-strong);
  color: var(--color-text-disabled);
  background: transparent;
}
.s-pill--missing:hover { border-color: var(--color-text-secondary); color: var(--color-text-secondary); }

/* ── Filtre și stări goale ───────────────────────────────────────────────── */

.s-filter { display: flex; gap: var(--space-2); align-items: center; }
.s-filter--wide { margin-bottom: var(--space-6); }

.s-empty { padding-block: var(--space-8); }
.s-empty__action { margin-top: var(--space-5); }
.s-empty__other { margin-top: var(--space-6); }

/* Blocul „Prezența la Summit" din profil trăiește în app.css, nu aici:
   apare pe FIECARE profil, iar o foaie de stil întreagă de Summit încărcată
   pentru două componente ar fi plătită de toate profilurile. */

/* ── Conținutul din site-ul vechi (26.09.2026) ─────────────────────────── */

/* Înscrierea externă: două variante, fiecare cu preț și ce include. */
.s-register { list-style: none; margin: var(--space-4) 0 0; padding: 0; display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.s-register__option { 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); }
.s-register__option h3 { margin: 0; }
.s-register__option .c-button { margin-top: auto; align-self: flex-start; }
.s-register__price { margin: 0; font: 900 var(--text-h3)/1.1 var(--font-display); color: var(--color-text); }

/* Filmările: linkuri, nu iframe-uri (fără autoplay, fără trackere pe pagină). */
.s-videos { list-style: none; margin: var(--space-4) 0 0; padding: 0; display: grid; gap: var(--space-3); grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.s-video { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: var(--space-4); background: var(--color-bg-1); border: 1px solid var(--color-border); border-radius: var(--radius-2); color: var(--color-text); text-decoration: none; }
.s-video:hover { border-color: var(--color-action); }
.s-video__title { font: 600 var(--text-body-s)/1.35 var(--font-ui); }

/* Mai multe locuri pe ediție (Cotroceni + Mamaia + Dobrogea). */
.s-places { list-style: none; margin: var(--space-3) 0 0; padding: 0; display: grid; gap: var(--space-4) var(--space-6); grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.s-places p { margin: 0 0 2px; }

.s-day__motto { font-weight: 400; color: var(--color-text-secondary); }
.s-day__place { margin: calc(var(--space-3) * -1) 0 var(--space-4); }
.s-session__sponsor { margin: 2px 0 var(--space-1); color: var(--color-text-secondary); }
.s-session__moderator { color: var(--color-text-secondary); }
.s-session--quiet .s-session__title { font-weight: 400; color: var(--color-text-secondary); font-size: var(--text-body); }
.s-session--quiet { padding-block: var(--space-2); }

.s-partners-level { padding-block: var(--space-4); }
.s-partners-level h2 { margin-bottom: var(--space-3); }

/* ── Mobil ───────────────────────────────────────────────────────────────── */

@media (max-width: 1023px) {
  .s-venue__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767px) {
  .s-hero { padding-block: var(--space-6) var(--space-5); }
  /* Data și locul trec pe rânduri separate; punctul dintre ele rămânea
     agățat la capătul primului rând. */
  .s-hero__when { flex-direction: column; gap: var(--space-1); }
  .s-hero__when > [aria-hidden="true"] { display: none; }
  .s-page { padding-block: var(--space-6) var(--space-7); }
  .s-figures { gap: var(--space-5); }
  .s-figure__value { font-size: var(--text-h3); }

  /* Sub-navigația derulează orizontal, iar selectorul coboară sub ea. */
  .s-subnav__inner { flex-direction: column; align-items: stretch; gap: 0; }
  .s-switch { padding-block: var(--space-3); border-top: 1px solid var(--color-border); }

  .s-session { grid-template-columns: 56px minmax(0, 1fr); }
  /* Sala poate avea nume lung („Sala mare, Palatul Parlamentului”): pe 390 px
     `.ics` ieșea cu 23 px din ecran (agenda 2020). */
  .s-session__meta { grid-column: 2; flex-wrap: wrap; white-space: normal; }

  /* Tipul de participare se așază pe două rânduri: pe 390 px, denumirea plus
     badge-ul de listă de așteptare plus două prețuri nu încap pe unul, iar
     `white-space: nowrap` împingea pagina în afara ecranului. */
  .s-ticket { display: grid; gap: var(--space-2); }
  .s-ticket__price { justify-content: flex-start; flex-wrap: wrap; white-space: normal; }

  .s-current { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .s-timeline__row { grid-template-columns: 64px minmax(0, 1fr); gap: var(--space-4); }
  .s-timeline__row.has-image { grid-template-columns: 56px 112px minmax(0, 1fr); gap: var(--space-3); }

  /* Pe telefon, pastilele de sub-pagini dispar: rămâne cardul de an. */
  .s-timeline__row .s-pills { display: none; }
}

/* ═══ Aplicare ═══════════════════════════════════════════════════════════ */

.a-page { padding-block: var(--space-6) var(--space-9); }
.a-page--narrow { max-width: 680px; }
.a-page__foot { margin-top: var(--space-7); }
.a-crumb { margin-bottom: var(--space-4); }
.a-lede { margin: var(--space-3) 0 var(--space-7); }

.a-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--space-8); align-items: start; }
.a-side { display: grid; gap: var(--space-6); position: sticky; top: var(--space-5); }

/* ── Alegerea rolului ────────────────────────────────────────────────────── */

.a-roles { display: grid; gap: 0; margin-bottom: var(--space-7); }

.a-role {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: var(--space-3) var(--space-4);
  align-items: baseline;
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  margin-top: -1px;
}
.a-role:first-of-type { border-radius: var(--radius-2) var(--radius-2) 0 0; margin-top: 0; }
.a-role:last-of-type { border-radius: 0 0 var(--radius-2) var(--radius-2); }

/* Rândul întreg e țintă de click, nu doar cercul de 16 px. */
.a-role label { display: grid; gap: 2px; cursor: pointer; }
/* Într-o celulă de grilă, un input rămâne centrat vertical pe rândul
   întreg. Cu două rânduri de text, cercul ajunge între ele. */
.a-role input[type="radio"] { align-self: start; margin-top: 5px; }
.a-role:has(input:checked) {
  border-color: var(--color-action);
  background: var(--color-action-subtle);
  position: relative;
  z-index: 1;
}
.a-role:has(input:focus-visible) { box-shadow: var(--shadow-focus); position: relative; z-index: 2; }

.a-role__label { font: 600 var(--text-body)/1.3 var(--font-ui); }
.a-role__hint { font-size: var(--text-body-s); color: var(--color-text-secondary); }
.a-role__price {
  display: grid; gap: var(--space-1); justify-items: end;
  font: 600 var(--text-body)/1.3 var(--font-ui);
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.a-role__note { font: 400 var(--text-body-s)/1.3 var(--font-text); color: var(--color-text-secondary); }
.a-role--sold-out .a-role__label { color: var(--color-text-secondary); }

/* ── Metoda de plată ─────────────────────────────────────────────────────── */

.a-methods { display: grid; gap: var(--space-3); margin-bottom: var(--space-6); }
.a-methods legend { margin-bottom: var(--space-3); }

.a-method {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-3);
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-2);
}
.a-method label { display: grid; gap: var(--space-2); cursor: pointer; }
.a-method input[type="radio"] { align-self: start; margin-top: 5px; }
.a-method:has(input:checked) { border-color: var(--color-action); background: var(--color-action-subtle); }
.a-method__note { color: var(--color-action-on-subtle); }

.c-input--narrow { max-width: 120px; }
.a-group { max-width: 480px; }

.a-form { margin-bottom: var(--space-8); }
.a-extra { padding-top: var(--space-5); border-top: 1px solid var(--color-border); margin-bottom: var(--space-6); }
.a-extra legend { margin-bottom: var(--space-3); }

.a-submit { display: grid; gap: var(--space-3); justify-items: start; padding-top: var(--space-5); border-top: 1px solid var(--color-border); }

.a-chosen {
  display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: baseline;
  margin: var(--space-3) 0 var(--space-6);
  padding: var(--space-3) var(--space-4);
  background: var(--color-bg-2);
  border-radius: var(--radius-2);
  font-size: var(--text-body-s);
}
.a-chosen__change { margin-left: auto; }

/* ── Traseul ─────────────────────────────────────────────────────────────── */

.a-steps { padding: var(--space-5); background: var(--color-bg-2); border-radius: var(--radius-2); }
.a-steps h2 { margin: 0 0 var(--space-4); }
.a-steps__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }

.a-step { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: var(--space-3); align-items: start; }
.a-step__n {
  display: grid; place-items: center;
  width: 24px; height: 24px;
  border-radius: 50%;
  background: var(--color-bg-3);
  color: var(--color-text-secondary);
  font: 600 var(--text-caption)/1 var(--font-mono);
}
.a-step--current .a-step__n { background: var(--color-action); color: #fff; }
.a-step__body { display: grid; gap: 2px; font-size: var(--text-body-s); }
.a-step__detail { color: var(--color-text-secondary); font-size: var(--text-caption); }

/* ── Politica de retur ───────────────────────────────────────────────────── */

.a-refund { padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-2); }
.a-refund h2 { margin: 0 0 var(--space-4); }
.a-refund__list { margin: 0; display: grid; gap: var(--space-3); }
.a-refund__row { display: grid; gap: 2px; }
.a-refund__row dt { font-size: var(--text-caption); color: var(--color-text-secondary); }
.a-refund__row dd { margin: 0; font-size: var(--text-body-s); font-weight: 600; }

/* ── Confirmare, respingere, listă ───────────────────────────────────────── */

.a-summary { display: grid; gap: var(--space-4); margin: var(--space-6) 0 var(--space-7); padding: var(--space-5); background: var(--color-bg-2); border-radius: var(--radius-2); }
.a-summary > div { display: grid; gap: 2px; }
.a-summary dt { font-size: var(--text-caption); color: var(--color-text-secondary); }
.a-summary dd { margin: 0; font: 600 var(--text-body)/1.3 var(--font-ui); }
.a-summary__code { font-family: var(--font-mono); letter-spacing: .04em; }

.a-exits { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-7); }

.a-position { display: flex; align-items: baseline; gap: var(--space-4); margin: var(--space-6) 0; }
.a-position__n { font: 900 var(--text-display-l)/1 var(--font-display); color: var(--color-secondary); font-variant-numeric: tabular-nums; }
.a-position__label { font-size: var(--text-body-l); color: var(--color-text-secondary); }

.a-rules { margin: var(--space-6) 0; padding-left: var(--space-5); display: grid; gap: var(--space-3); }
.a-rules li { font-size: var(--text-body); }

/* Retragerea nu e un buton distructiv roșu: e o alegere legitimă, nu o
   greșeală de care trebuie ferit cineva. */
.a-leave { font-size: var(--text-body-s); color: var(--color-text-secondary); text-decoration: underline; }
.a-leave:hover { color: var(--color-action); }

@media (max-width: 1023px) {
  .a-layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); }
  .a-side { position: static; }
}

@media (max-width: 767px) {
  .a-role { grid-template-columns: auto minmax(0, 1fr); }
  .a-role__price { grid-column: 2; justify-items: start; text-align: left; }
  .a-chosen__change { margin-left: 0; }
}

/* Pinul locului: aceeași formă ca pe harta mare, culoarea de acțiune. */
.s-venue__pin {
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--color-action);
  border: 3px solid #fff;
  box-shadow: var(--shadow-2);
}
.s-venue__map .maplibregl-canvas { border-radius: var(--radius-2); }

/* ═══ Comandă și pagini de retur ═════════════════════════════════════════ */

.o-status { margin: 0 0 var(--space-3); }

/* Bifa de succes e mare, dar NU e singurul semnal: titlul spune același
   lucru în cuvinte, pentru cine nu distinge culori sau folosește un cititor
   de ecran. */
.o-return__mark {
  display: grid; place-items: center;
  width: 56px; height: 56px;
  margin: 0 0 var(--space-5);
  border-radius: 50%;
  font-size: 28px; line-height: 1;
}
.o-return__mark--ok { background: var(--color-success-bg); color: var(--color-success); }

.o-action { display: grid; gap: var(--space-3); justify-items: start; margin: var(--space-6) 0; }

.o-hint {
  margin: var(--space-6) 0;
  padding: var(--space-4) var(--space-5);
  background: var(--color-bg-2);
  border-radius: var(--radius-2);
}
.o-hint h2 { margin: 0 0 var(--space-2); }
.o-hint p:last-child { margin-bottom: 0; }

.o-proforma { margin: var(--space-7) 0; padding-top: var(--space-5); border-top: 1px solid var(--color-border); }
.o-proforma h2 { margin: 0 0 var(--space-4); }

.o-invoice { margin: var(--space-6) 0; }
.o-invoice__number { margin: var(--space-2) 0; font: 600 var(--text-body-l)/1.2 var(--font-mono); letter-spacing: .04em; }

.o-tickets { margin: var(--space-7) 0; padding-top: var(--space-5); border-top: 1px solid var(--color-border); }
.o-tickets h2 { margin: 0 0 var(--space-4); }
.o-tickets__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }

.o-ticket {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: var(--space-4);
  align-items: center;
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-2);
}
.o-ticket__code { font: 600 var(--text-body-s)/1 var(--font-mono); letter-spacing: .06em; }
.o-ticket__name { font-size: var(--text-body-s); }

/* Anularea nu e un buton roșu distructiv: e o alegere legitimă, iar politica
   de retur stă deasupra ei, nu într-un link. */
.o-cancel { margin-top: var(--space-7); padding-top: var(--space-5); border-top: 1px solid var(--color-border); display: grid; gap: var(--space-3); justify-items: start; }

@media (max-width: 767px) {
  .o-ticket { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
}
