/* ============================================================================
   stil.css — SSER. Toate culorile și mărimile vin din ../tokens.css (§19).
   Ordinea: bază · tipografie · cadru · antet · butoane · stări (demo, acum) ·
   subsol · mișcare · Acasă · Congresul (line-up, program, hands-on, pachete) ·
   Lectori · Hands-on · Agenda · Membri · Cursuri · Societatea · Parteneri ·
   Contact · text lung · mișcare redusă.
   ========================================================================= */

/* ------------------------------------------------------------------ bază */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 6rem; }
body {
  margin: 0;
  background: var(--c-hartie);
  color: var(--c-cerneala);
  font-family: var(--f-sans);
  font-size: var(--step-0);
  line-height: var(--lh-text);
  font-stretch: var(--w-normal);
  font-weight: 400;
  font-feature-settings: "ss01" 0;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
img, svg, canvas { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
button { font: inherit; color: inherit; }
::selection { background: var(--c-rosu); color: var(--c-alb); }
:focus-visible { outline: 3px solid var(--c-rosu-actiune); outline-offset: 3px; border-radius: 2px; }
[data-tema="noapte"] :focus-visible { outline-color: var(--c-rosu-noapte); }
h1, h2, h3, h4 { margin: 0; font-weight: 700; line-height: var(--lh-titlu); letter-spacing: -0.015em; text-wrap: balance; }
p { margin: 0; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; }
table { border-collapse: collapse; }
[hidden] { display: none !important; }   /* atributul hidden câștigă mereu în fața display-ului unei clase */
.vizual-ascuns { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sari { position: absolute; left: var(--gutter); top: -4rem; z-index: 100; background: var(--c-cerneala); color: var(--c-lumina); padding: var(--s-3) var(--s-4); border-radius: var(--r-mic); }
.sari:focus { top: var(--s-3); }
html:not(.js) .doar-js { display: none !important; }
.doar-js[hidden] { display: none !important; }
.fara-js { }
.js .fara-js { display: none; }

/* @view-transition: dizolvare scurtă între pagini (CSS pur, §7) */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .32s; }

/* ------------------------------------------------------------- tipografie */
.eticheta {
  font-family: var(--f-mono);
  font-size: var(--step--1);
  font-weight: 500;
  letter-spacing: var(--track-eticheta);
  text-transform: uppercase;
  line-height: 1.35;
}
.eticheta--rosie { color: var(--c-rosu-sala); }
[data-tema="noapte"] .eticheta--rosie, .noapte .eticheta--rosie, .sala .eticheta--rosie, .recomandare .eticheta--rosie { color: var(--c-rosu-noapte); }
.t-teza {            /* îngust și subțire, ca S-urile din logo */
  font-stretch: var(--w-ingust);
  font-weight: 300;
  line-height: .9;
  letter-spacing: -0.025em;
}
.t-teza b, .t-teza strong { font-weight: 800; }
.t-afis {            /* numele de pe afiș */
  font-stretch: var(--w-ingust);
  font-weight: 800;
  text-transform: uppercase;
  line-height: var(--lh-afis);
  letter-spacing: var(--track-afis);
}
.t-cifra {           /* cifrele uriașe: lat și greu */
  font-stretch: var(--w-lat);
  font-weight: 900;
  font-variant-numeric: lining-nums;   /* fără tnum: în Mona Sans, zeroul tabular e tăiat (Ø) */
  line-height: .8;
  letter-spacing: -0.04em;
}
.tnum { font-variant-numeric: tabular-nums; }   /* doar pe Spline Sans Mono / text mic — nu pe cifrele mari */
.lead { font-size: var(--step-1); line-height: 1.45; max-width: 34em; }
.mic { font-size: var(--step--1); }
.secundar { color: var(--c-cerneala-2); }
[data-tema="noapte"] .secundar { color: var(--c-lumina-2); }
.rosu { color: var(--c-rosu); }
.tara {
  display: inline-block; font-family: var(--f-mono); font-size: var(--step--2); font-weight: 600;
  letter-spacing: .06em; padding: .1em .45em; border: 1px solid currentColor; border-radius: var(--r-mic);
  vertical-align: .15em; line-height: 1.2; opacity: .8;
}

/* ------------------------------------------------------------------ cadru */
.cadru { width: 100%; max-width: var(--latime); margin-inline: auto; padding-inline: var(--gutter); }
.sectiune { padding-block: var(--s-9); }
.sectiune--mic { padding-block: var(--s-8); }
.sectiune--adanc { background: var(--c-hartie-2); }
.sectiune-cap { display: grid; gap: var(--s-4); margin-bottom: var(--s-7); }
.sectiune-cap h2 { font-size: var(--step-5); }
.sectiune-cap .lead { color: var(--c-cerneala-2); }
@media (min-width: 900px) {
  .sectiune-cap--lat { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: end; column-gap: var(--s-8); }
}
.noapte { background: var(--c-negru); color: var(--c-lumina); }
.sala { background: var(--c-sala); color: var(--c-lumina); }
.linie-sus { border-top: 1px solid var(--c-linie-tare); }

/* ------------------------------------------------------------------ antet */
.antet {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  display: flex; align-items: center; gap: var(--s-5);
  padding: var(--s-3) var(--gutter);
  color: var(--c-cerneala);
  transition: background-color var(--t-scurt), color var(--t-scurt), box-shadow var(--t-scurt), transform .45s var(--e-iesire);
}
.antet--derulat { background: var(--c-hartie-sticla); backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px); box-shadow: 0 1px 0 var(--c-linie); }
.antet--noapte { color: var(--c-lumina); --logo-e: var(--c-rosu-noapte); }
/* până pornește site.js: pe paginile care încep pe fotografie închisă, antetul e deja deschis */
html:has(main > [data-tema="noapte"]:first-child) .antet:not(.antet--gata) { color: var(--c-lumina); --logo-e: var(--c-rosu-noapte); }
.antet--noapte.antet--derulat { background: var(--c-sala-sticla); box-shadow: 0 1px 0 var(--c-linie-noapte); }
.antet--ascuns { transform: translateY(-110%); }
.marca { display: flex; align-items: center; gap: var(--s-3); text-decoration: none; flex: none; }
.marca-logo { width: 4.7rem; height: auto; aspect-ratio: 600 / 392; }
.marca-text { font-stretch: var(--w-ingust); font-weight: 500; font-size: .8rem; line-height: 1.1; letter-spacing: .01em; display: none; }
@media (min-width: 1180px) { .marca-text { display: block; } }
.nav { display: none; gap: var(--s-5); margin-left: auto; }
.nav a { text-decoration: none; font-weight: 500; font-size: 1rem; position: relative; padding-block: var(--s-2); }
.nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 2px; background: var(--c-rosu); transition: right var(--t-scurt) var(--e-iesire); }
.nav a:hover::after, .nav a[aria-current="page"]::after { right: 0; }
.antet-agenda { margin-left: auto; text-decoration: none; font-size: .95rem; font-weight: 500; white-space: nowrap; }
.agenda-nr {
  display: inline-grid; place-items: center; min-width: 1.5em; height: 1.5em; padding-inline: .35em; margin-left: .2em;
  border-radius: var(--r-pastila); background: var(--c-cerneala); color: var(--c-lumina);
  font-family: var(--f-mono); font-size: .75rem; font-weight: 600; transition: transform .3s var(--e-iesire);
}
.antet--noapte .agenda-nr { background: var(--c-lumina); color: var(--c-cerneala); }
.agenda-nr.puls { transform: scale(1.35); background: var(--c-rosu-actiune); color: var(--c-alb); }
.antet .antet-inscrie { display: none; }
@media (min-width: 980px) {
  .nav { display: flex; }
  .antet-agenda { margin-left: var(--s-2); }
  .antet .antet-inscrie { display: inline-flex; }
}
/* meniul de pe telefon */
.meniu { margin-left: var(--s-3); }
.meniu summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: var(--s-2); font-weight: 600; padding: var(--s-2) 0; }
.meniu summary::-webkit-details-marker { display: none; }
.meniu-linii { width: 22px; height: 10px; position: relative; }
.meniu-linii::before, .meniu-linii::after { content: ""; position: absolute; left: 0; right: 0; height: 2px; background: currentColor; transition: transform var(--t-scurt); }
.meniu-linii::before { top: 0; } .meniu-linii::after { bottom: 0; }
.meniu[open] .meniu-linii::before { transform: translateY(4px) rotate(45deg); }
.meniu[open] .meniu-linii::after { transform: translateY(-4px) rotate(-45deg); }
.meniu-panou {
  position: fixed; inset: 0; z-index: -1; display: flex; flex-direction: column; justify-content: flex-start; gap: var(--s-2);
  /* începe sub antet (logo + „Meniu"); centrat doar cât încape — altfel lista s-ar revărsa în sus, peste logo */
  padding: calc(var(--antet-h, 4.5rem) + var(--s-5)) var(--gutter) var(--s-7); background: var(--c-negru); color: var(--c-lumina);
}
.meniu-panou > :first-child { margin-top: auto; }
.meniu-panou > :last-child { margin-bottom: auto; }
.meniu-panou a { font-stretch: var(--w-ingust); font-weight: 700; font-size: min(var(--step-4), 5.4svh); text-transform: uppercase; text-decoration: none; line-height: 1.05; }
.meniu-panou a:hover { color: var(--c-rosu-noapte); }
.meniu-panou .meniu-mic { font-family: var(--f-mono); font-size: var(--step--1); font-weight: 500; text-transform: none; margin-top: var(--s-5); }
.meniu[open] { color: var(--c-lumina); }
/* Cu meniul deschis, antetul nu mai are sticlă (backdrop-filter) și nu mai e mutat (transform):
   amândouă fac din antet „cutia" unui element position: fixed, iar panoul ar acoperi doar antetul,
   nu tot ecranul — exact ce se vedea când deschideai meniul mai jos pe pagină. */
.antet:has(.meniu[open]), .antet.antet--meniu { transform: none; backdrop-filter: none; -webkit-backdrop-filter: none; background: transparent; box-shadow: none; color: var(--c-lumina); --logo-e: var(--c-rosu-noapte); }
.meniu-panou { overflow-y: auto; overscroll-behavior: contain; }
.antet:has(.meniu[open]) .agenda-nr, .antet--meniu .agenda-nr { background: var(--c-lumina); color: var(--c-cerneala); }
html:has(.meniu[open]) .bara, html:has(.meniu[open]) .demo-stare, html:has(.meniu[open]) .acum-bara,
html.meniu-deschis .bara, html.meniu-deschis .demo-stare, html.meniu-deschis .acum-bara { display: none !important; }
@media (min-width: 980px) { .meniu { display: none; } }

/* ---------------------------------------------------------------- butoane */
.buton {
  display: inline-flex; align-items: center; gap: .6em; justify-content: center;
  padding: .95em 1.5em; border: 0; border-radius: var(--r-pastila);
  background: var(--c-rosu-actiune); color: var(--c-alb);
  font-weight: 650; font-size: 1rem; line-height: 1.1; text-decoration: none; cursor: pointer;
  box-shadow: var(--umbra-1);
  transition: transform var(--t-scurt) var(--e-iesire), background-color var(--t-scurt), box-shadow var(--t-scurt);
}
.buton:hover { transform: translateY(-2px); box-shadow: var(--umbra-2); text-decoration: none; }
.buton:active { transform: translateY(0); }
.buton--mic { padding: .7em 1.15em; font-size: .92rem; }
.buton--contur { background: transparent; color: inherit; box-shadow: inset 0 0 0 1.5px currentColor; }
.buton--contur:hover { background: var(--c-cerneala); color: var(--c-hartie); box-shadow: inset 0 0 0 1.5px var(--c-cerneala); }
[data-tema="noapte"] .buton--contur:hover, .noapte .buton--contur:hover, .sala .buton--contur:hover { background: var(--c-lumina); color: var(--c-cerneala); }
.buton--negru { background: var(--c-cerneala); color: var(--c-lumina); }
.sageata { display: inline-flex; align-items: center; gap: .5em; font-weight: 600; text-decoration: none; }
.sageata::after { content: "→"; transition: transform var(--t-scurt) var(--e-iesire); }
.sageata:hover::after { transform: translateX(.35em); }
.butoane { display: flex; flex-wrap: wrap; gap: var(--s-3); align-items: center; }

/* filtre ca pastile */
.filtre { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.filtru {
  border: 1px solid var(--c-linie-tare); background: transparent; border-radius: var(--r-pastila);
  padding: .5em 1em; font-size: .9rem; font-weight: 500; cursor: pointer; line-height: 1.2;
  transition: background-color var(--t-scurt), color var(--t-scurt), border-color var(--t-scurt);
}
.filtru:hover { border-color: var(--c-cerneala); }
.filtru[aria-pressed="true"] { background: var(--c-cerneala); color: var(--c-hartie); border-color: var(--c-cerneala); }
.filtru .nr { font-family: var(--f-mono); font-size: .75em; opacity: .7; margin-left: .35em; }

/* „În agenda mea" */
.adauga {
  display: inline-flex; align-items: center; gap: .5em; border: 0; background: none; padding: .35em 0; cursor: pointer;
  font-family: var(--f-mono); font-size: var(--step--2); font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
  color: var(--c-cerneala-2);
}
.adauga-semn { width: 1.35em; height: 1.35em; border-radius: 50%; border: 1.5px solid currentColor; position: relative; flex: none; transition: background-color var(--t-scurt), transform .3s var(--e-iesire); }
.adauga-semn::before, .adauga-semn::after { content: ""; position: absolute; left: 50%; top: 50%; width: 55%; height: 1.5px; background: currentColor; transform: translate(-50%, -50%); transition: transform .3s var(--e-iesire); }
.adauga-semn::after { transform: translate(-50%, -50%) rotate(90deg); }
.adauga:hover { color: var(--c-cerneala); }
.adauga[aria-pressed="true"] { color: var(--c-rosu-sala); }
.adauga[aria-pressed="true"] .adauga-semn { background: var(--c-rosu-actiune); border-color: var(--c-rosu-actiune); transform: rotate(-45deg); }
.adauga[aria-pressed="true"] .adauga-semn::before { background: var(--c-alb); width: 32%; transform: translate(-85%, 10%) rotate(45deg); }
.adauga[aria-pressed="true"] .adauga-semn::after { background: var(--c-alb); width: 55%; transform: translate(-30%, -40%) rotate(-45deg); }

/* ----------------------------------------------------- stările congresului
   html[data-stare] = inainte | live | dupa. În HTML stă „inainte" (fără JS, conținutul e complet).
   [data-doar="inainte live"] = se vede doar în stările date. */
html[data-stare="inainte"] [data-doar]:not([data-doar~="inainte"]),
html[data-stare="live"] [data-doar]:not([data-doar~="live"]),
html[data-stare="dupa"] [data-doar]:not([data-doar~="dupa"]) { display: none !important; }

.demo-stare {
  position: fixed; right: var(--s-3); bottom: var(--s-3); z-index: 60;
  display: flex; align-items: center; gap: 2px; padding: 4px; border-radius: var(--r-pastila);
  background: var(--c-negru-sticla); color: var(--c-lumina); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  font-family: var(--f-mono); font-size: .7rem; letter-spacing: .05em; text-transform: uppercase;
  box-shadow: var(--umbra-2);
}
.demo-stare-t { padding: 0 .7em 0 .8em; opacity: .6; }
.demo-stare button { border: 0; background: transparent; color: inherit; padding: .55em .8em; border-radius: var(--r-pastila); cursor: pointer; font: inherit; letter-spacing: inherit; text-transform: inherit; }
.demo-stare button[aria-pressed="true"] { background: var(--c-rosu-actiune); color: var(--c-alb); }
@media (max-width: 979px) {
  .demo-stare { bottom: 4.7rem; right: var(--s-2); font-size: .62rem; padding: 3px; }
  .demo-stare button { padding: .45em .6em; }
  .demo-stare-t { display: none; }
  .antet-agenda { font-size: 0; }
  .antet-agenda .agenda-nr { font-size: .75rem; }
  .antet-agenda::before { content: "Agenda"; font-size: .9rem; }
}

/* „Acum în Constanța Hall" — doar în timpul congresului */
.acum-bara {
  position: fixed; left: 0; right: 0; top: var(--antet-h, 4.25rem); z-index: 45; transition: top .45s var(--e-iesire);
  background: var(--c-rosu-actiune); color: var(--c-alb);
  display: flex; gap: var(--s-5); align-items: center; padding: .55rem var(--gutter); overflow: hidden;
  font-size: .9rem; line-height: 1.3;
}
.acum-bara[hidden] { display: none; }
.acum-bara .acum-puls { flex: none; display: inline-flex; align-items: center; gap: .5em; font-family: var(--f-mono); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: .75rem; }
.acum-puls::before { content: ""; width: .6em; height: .6em; border-radius: 50%; background: var(--c-alb); animation: puls 1.6s infinite; }
html.antet-ascuns .acum-bara { top: 0; }
@keyframes puls { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .35; transform: scale(.7); } }
.acum-sala { display: flex; gap: .5em; align-items: baseline; min-width: 0; text-decoration: none; }
.acum-sala b { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 600; flex: none; opacity: .85; }
.acum-sala span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.acum-sala--2 { display: none; }
@media (min-width: 900px) { .acum-sala--2 { display: flex; } }
.acum-ora { margin-left: auto; font-family: var(--f-mono); font-size: .8rem; flex: none; }
.acum-progres { position: absolute; left: 0; bottom: 0; height: 2px; background: var(--c-alb-voal); width: calc(var(--p, 0) * 100%); }

/* ------------------------------------------------------------------ subsol */
.subsol { position: relative; background: var(--c-negru); color: var(--c-lumina); padding-top: var(--s-9); overflow: hidden; --logo-e: var(--c-rosu); }
.subsol-ghilos { position: absolute; inset: 0; opacity: .5; pointer-events: none; }
.subsol-ghilos svg { width: 100%; height: 100%; }
.subsol > *:not(.subsol-ghilos) { position: relative; }
.subsol-sus { display: grid; gap: var(--s-6); padding-bottom: var(--s-8); }
.subsol-teza { font-size: var(--step-6); }
.subsol-act { display: flex; flex-wrap: wrap; gap: var(--s-4); align-items: center; }
.subsol-leg { font-weight: 600; }
.subsol-grila { display: grid; gap: var(--s-6); grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); padding-block: var(--s-7); border-top: 1px solid var(--c-linie-noapte); font-size: .98rem; }
.subsol-grila .eticheta { color: var(--c-lumina-2); margin-bottom: var(--s-3); }
.subsol-grila p + p { margin-top: var(--s-3); }
.subsol-grila ul { list-style: none; display: grid; gap: var(--s-2); }
.subsol-grila a { text-decoration-color: var(--c-linie-noapte); }
.subsol-logo { padding-block: var(--s-6) var(--s-4); color: var(--c-lumina); }
.subsol-logo svg { width: 100%; height: auto; aspect-ratio: 600 / 392; max-height: 46vh; }
.subsol-jos { display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-6); justify-content: space-between; padding-block: var(--s-5) calc(var(--s-6) + 4rem); font-size: var(--step--1); color: var(--c-lumina-2); border-top: 1px solid var(--c-linie-noapte); }
@media (min-width: 980px) { .subsol-jos { padding-bottom: var(--s-6); } }

/* bara de jos, pe telefon (§9) */
.bara {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 55;
  display: flex; align-items: center; gap: var(--s-3); padding: .6rem var(--gutter) calc(.6rem + env(safe-area-inset-bottom));
  background: var(--c-negru-sticla); color: var(--c-lumina); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  font-size: .9rem;
}
.bara-data { line-height: 1.2; }
.bara-data b { font-weight: 700; }
.bara-inscrie { margin-left: auto; background: var(--c-rosu-actiune); color: var(--c-alb); text-decoration: none; font-weight: 650; padding: .75em 1.3em; border-radius: var(--r-pastila); }
@media (min-width: 980px) { .bara { display: none; } }

/* ----------------------------------------------------------------- mișcare
   Clasele care ascund se pun doar din JS (html.js-miscare) — fără JS, totul se vede. */
.js-miscare .apare { opacity: 0; transform: translateY(28px); transition: opacity .7s var(--e-iesire) var(--intarziere, 0ms), transform .7s var(--e-iesire) var(--intarziere, 0ms); }
.js-miscare .apare.vazut { opacity: 1; transform: none; }
.rand-mask { padding-block: .16em .12em; margin-block: -.16em -.12em; }   /* accentele de pe Î Â Ă și virgulele de sub Ș Ț nu se taie */
.rand { padding-bottom: .04em; }
.nu-rupe { white-space: nowrap; }

/* ============================================================== ACASĂ */
.erou {
  position: relative; min-height: 100svh; display: grid; align-items: end; overflow: hidden;
  background: var(--c-sala); color: var(--c-lumina); isolation: isolate;
}
.erou-foto { position: absolute; inset: -6% 0 0 0; z-index: -2; }
.erou-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.erou::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--voal-erou); }
.erou-continut { padding-top: 8rem; padding-bottom: var(--s-8); display: grid; gap: var(--s-6); }
.erou-sus { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); color: var(--c-lumina-2); }
.erou h1 { font-size: var(--step-6); max-width: 11ch; }
.erou h1 .rosu { color: var(--c-rosu-noapte); }
.erou-jos { display: grid; gap: var(--s-5); align-items: end; }
.erou-meta { font-size: var(--step-1); line-height: 1.35; max-width: 30em; }
.erou-meta b { font-weight: 650; }
.erou-ed { display: flex; align-items: baseline; gap: var(--s-3); }
.erou-ed .t-cifra { font-size: clamp(4rem, 2rem + 9vw, 10rem); color: var(--c-rosu-noapte); }
.erou-ed span:last-child { font-stretch: var(--w-ingust); font-size: var(--step-2); line-height: 1; font-weight: 300; }
@media (min-width: 900px) {
  .erou-jos { grid-template-columns: minmax(0, 1fr) auto; }
  .erou-ed { justify-self: end; }
}

/* firul celor 23 de ediții */
.fir { padding-block: var(--s-9) var(--s-8); overflow: hidden; }
.fir-cap { display: grid; gap: var(--s-5); align-items: end; margin-bottom: var(--s-7); }
.fir-numar { font-size: var(--step-7); color: var(--c-rosu); display: flex; align-items: flex-start; gap: .08em; }
.fir-numar small { font-size: .22em; font-stretch: var(--w-ingust); font-weight: 600; letter-spacing: 0; margin-top: .25em; color: var(--c-cerneala); line-height: 1; }
.fir-titlu { font-size: var(--step-5); max-width: 12ch; }
@media (min-width: 900px) { .fir-cap { grid-template-columns: auto 1fr; column-gap: var(--s-8); } }
.fir-linie { position: relative; height: 5.5rem; }
.fir-linie svg { position: absolute; left: 0; right: 0; top: 1.1rem; width: 100%; height: 1.6rem; overflow: visible; }
.fir-pcte { position: absolute; left: 0; right: 0; top: 1.9rem; height: 0; }
.fir-pct { position: absolute; top: 0; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: var(--c-hartie); border: 1.5px solid var(--c-cerneala-2); transition: background-color .25s, border-color .25s, transform .3s var(--e-iesire); }
.fir-pct.mare { width: 18px; height: 18px; margin: -9px 0 0 -9px; border-width: 2px; }
.fir-pct.atins { background: var(--c-rosu); border-color: var(--c-rosu); }
.fir-ani { position: absolute; left: 1%; right: 1%; top: 3.3rem; display: flex; justify-content: space-between; font-family: var(--f-mono); font-size: .68rem; color: var(--c-cerneala-2); }
.fir-ani span { width: 0; display: flex; justify-content: center; white-space: nowrap; }
.fir-ani span:nth-child(even) { visibility: hidden; }
@media (min-width: 700px) { .fir-ani span:nth-child(even) { visibility: visible; } .fir-ani { font-size: .74rem; } }
.fir-trasa { fill: none; stroke: var(--c-rosu); stroke-width: 3; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.fir-baza { fill: none; stroke: var(--c-linie-tare); stroke-width: 1; vector-effect: non-scaling-stroke; }
.fir-note { display: grid; gap: var(--s-5); grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); margin-top: var(--s-6); }
.fir-nota { border-top: 2px solid var(--c-rosu); padding-top: var(--s-3); }
.fir-nota .eticheta { color: var(--c-rosu-sala); margin-bottom: var(--s-2); }
.fir-nota p:last-child { color: var(--c-cerneala-2); font-size: 1rem; line-height: 1.5; }

/* numele care curg */
.curg { padding-block: var(--s-8); overflow: hidden; border-block: 1px solid var(--c-linie); }
.curg-cap { display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-6); justify-content: space-between; align-items: end; margin-bottom: var(--s-6); }
.curg-cap h2 { font-size: var(--step-4); max-width: 18ch; }
.curg-rand { display: flex; width: max-content; }
.curg-pista { display: flex; flex: none; animation: curge var(--durata, 60s) linear infinite; animation-play-state: var(--stare, running); }
.curg-rand--2 .curg-pista { animation-direction: reverse; --durata: 80s; }
@keyframes curge { to { transform: translateX(-100%); } }
.curg-n { font-stretch: var(--w-ingust); text-transform: uppercase; white-space: nowrap; padding-right: .55em; line-height: 1; font-weight: 300; }
.curg-n b { font-weight: 800; }
.curg-n::after { content: "·"; color: var(--c-rosu); padding-left: .55em; font-weight: 800; }
.curg-rand--1 .curg-n { font-size: clamp(2.6rem, 1.4rem + 5vw, 6.5rem); }
.curg-rand--2 .curg-n { font-size: clamp(1.6rem, 1rem + 2.6vw, 3.4rem); color: var(--c-cerneala-2); margin-top: var(--s-3); }

/* index „ce face SSER în restul anului" — suprafața urcă la hover */
.index-sser { list-style: none; border-top: 1px solid var(--c-linie-tare); }
.index-sser li { border-bottom: 1px solid var(--c-linie-tare); }
.index-sser a {
  position: relative; display: grid; gap: var(--s-2) var(--s-6); grid-template-columns: 1fr auto; align-items: baseline;
  padding: var(--s-5) var(--s-3); text-decoration: none; isolation: isolate; overflow: hidden;
}
.index-sser a::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--c-cerneala); transform: translateY(101%); transition: transform .5s var(--e-iesire); }
.index-sser a:hover, .index-sser a:focus-visible { color: var(--c-lumina); }
.index-sser a:hover::before, .index-sser a:focus-visible::before { transform: none; }
.index-nume { font-stretch: var(--w-ingust); font-weight: 700; text-transform: uppercase; font-size: var(--step-4); line-height: .95; transition: transform .5s var(--e-iesire); }
.index-sser a:hover .index-nume { transform: translateX(.35em); }
.index-cand { font-family: var(--f-mono); font-size: var(--step--1); text-align: right; grid-row: 1; grid-column: 2; }
.index-desc { grid-column: 1 / -1; color: var(--c-cerneala-2); max-width: 44em; font-size: 1rem; }
.index-sser a:hover .index-desc { color: var(--c-lumina-2); }
@media (min-width: 900px) {
  .index-sser a { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) 9rem; padding-block: var(--s-6); }
  .index-desc { grid-column: auto; }
  .index-cand { grid-row: auto; grid-column: auto; }
}
.plutitor { position: fixed; left: 0; top: 0; z-index: 40; width: 18rem; aspect-ratio: 4 / 3; pointer-events: none; border-radius: var(--r-mediu); overflow: hidden; opacity: 0; transform: translate(-50%, -50%) scale(.85); transition: opacity .3s, transform .45s var(--e-iesire); box-shadow: var(--umbra-3); }
.plutitor.viu { opacity: 1; }
.plutitor img { width: 100%; height: 100%; object-fit: cover; }

/* fraza care se aprinde */
.aprinde-bloc { padding-block: var(--s-10); }
.aprinde { font-size: var(--step-5); max-width: 22ch; font-stretch: var(--w-ingust); font-weight: 600; line-height: 1.02; letter-spacing: -0.02em; }
.js-miscare .aprinde .cuv { color: var(--c-lumina-stinsa); transition: color .25s; }
.aprinde-sursa { margin-top: var(--s-6); color: var(--c-lumina-2); max-width: 34em; }

/* „membrii intră gratuit" — ecuație în cifre */
.ecuatie { display: grid; gap: var(--s-5); align-items: end; }
.ecuatie-t { font-size: clamp(4.2rem, 1rem + 10vw, 11.5rem); color: var(--c-rosu); }
.ecuatie-t small { font-size: .28em; font-stretch: var(--w-ingust); font-weight: 600; color: var(--c-cerneala); letter-spacing: 0; }
.ecuatie-semn { font-size: var(--step-5); font-weight: 300; font-stretch: var(--w-ingust); color: var(--c-cerneala-2); }
.ecuatie-taiat { position: relative; width: fit-content; color: var(--c-cerneala-2); }
.ecuatie-taiat::after { content: ""; position: absolute; left: -.04em; right: -.04em; top: 46%; height: .07em; background: var(--c-rosu); transform: rotate(-9deg); border-radius: 1px; }
.ecuatie-leg { font-size: var(--step--1); color: var(--c-cerneala-2); font-family: var(--f-mono); letter-spacing: .04em; margin-top: var(--s-2); }
@media (min-width: 1000px) { .ecuatie { grid-template-columns: auto auto auto auto auto; justify-content: start; column-gap: var(--s-6); } }

/* fâșia de fotografii (fixată, se derulează lateral) */
.fasie { position: relative; overflow: hidden; background: var(--c-negru); color: var(--c-lumina); }
.fasie-cap { padding-block: var(--s-8) var(--s-6); }
.fasie-cap h2 { font-size: var(--step-5); max-width: 16ch; }
.fasie-pista { display: flex; gap: var(--s-4); padding: 0 var(--gutter) var(--s-8); width: max-content; }
.fasie-foto { position: relative; flex: none; width: min(78vw, 34rem); aspect-ratio: 3 / 2; border-radius: var(--r-mediu); overflow: hidden; margin: 0; }
.fasie-foto:nth-child(3n+2) { width: min(60vw, 24rem); aspect-ratio: 4 / 5; }
.fasie-foto img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); }
.fasie-foto figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: var(--s-6) var(--s-4) var(--s-4); background: var(--voal-fasie); font-family: var(--f-mono); font-size: var(--step--2); letter-spacing: .06em; text-transform: uppercase; }
.fara-pin .fasie-pista { overflow-x: auto; width: auto; scroll-snap-type: x mandatory; }
.fara-pin .fasie-foto { scroll-snap-align: start; }

/* oamenii: consiliul */
.consiliu { list-style: none; display: grid; gap: var(--s-6) var(--s-4); grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); }
.persoana { display: grid; gap: var(--s-2); }
.persoana-foto { aspect-ratio: 1; border-radius: var(--r-mediu); overflow: hidden; background: var(--c-hartie-2); }
.persoana-foto img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); transition: filter .6s var(--e-iesire), transform .6s var(--e-iesire); }
.persoana:hover .persoana-foto img { filter: none; transform: scale(1.04); }
.persoana-nume { font-stretch: var(--w-ingust); font-weight: 700; font-size: var(--step-1); line-height: 1.05; text-transform: uppercase; margin-top: var(--s-2); }
.persoana-rol { font-family: var(--f-mono); font-size: var(--step--2); letter-spacing: .06em; text-transform: uppercase; color: var(--c-rosu-sala); }

/* partenerii: tipografic */
.expozanti { list-style: none; display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-6); font-stretch: var(--w-ingust); font-weight: 700; font-size: var(--step-3); text-transform: uppercase; line-height: 1.1; }
.expozanti li:not(:last-child)::after { content: "·"; color: var(--c-rosu); margin-left: var(--s-6); }

/* finalul pe negru (Acasă și congres) */
.final { padding-block: var(--s-10); text-align: left; }
.final-data { font-size: var(--step-7); color: var(--c-rosu-noapte); }
.final-data small { display: block; font-size: .2em; font-stretch: var(--w-ingust); font-weight: 400; color: var(--c-lumina); letter-spacing: .01em; margin-top: .6em; line-height: 1.2; }
.final .butoane { margin-top: var(--s-6); }

/* ========================================================= PAGINA-CAP (interioare) */
.pagina-cap { padding-top: 9rem; padding-bottom: var(--s-8); display: grid; gap: var(--s-5); }
.pagina-cap h1 { font-size: var(--step-6); max-width: 14ch; }
.pagina-cap .lead { color: var(--c-cerneala-2); }
.fir-urma { display: flex; flex-wrap: wrap; gap: .5em; font-family: var(--f-mono); font-size: var(--step--1); color: var(--c-cerneala-2); list-style: none; }
.fir-urma li:not(:last-child)::after { content: "/"; margin-left: .5em; opacity: .5; }
.fir-urma a { text-decoration: none; }
.fir-urma a:hover { text-decoration: underline; }

/* ============================================================== CONGRESUL */
.c-erou { position: relative; min-height: 100svh; display: grid; align-items: end; overflow: hidden; background: var(--c-sala); color: var(--c-lumina); isolation: isolate; }
.c-erou .erou-foto img { object-position: 50% 45%; }
.c-erou::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--voal-erou); }
.c-erou-continut { padding-top: 7.5rem; padding-bottom: var(--s-6); display: grid; gap: var(--s-4); }
.c-erou-ed { font-size: clamp(6rem, 1rem + 15vw, 17rem); color: var(--c-lumina); line-height: .74; margin-left: -.04em; position: relative; width: fit-content; padding-bottom: .1em; }
.c-erou-ed::after { content: ""; position: absolute; left: .04em; right: 0; bottom: 0; height: .06em; background: var(--c-rosu); }   /* roșul pe sala roșie n-are contrast (1,33:1 măsurat) — roșul rămâne bara, cifra e albă */
.c-erou-ed sup { font-size: .22em; font-stretch: var(--w-ingust); font-weight: 600; vertical-align: top; position: relative; top: .3em; margin-left: .05em; color: var(--c-lumina); letter-spacing: 0; }
.c-erou h1 { font-size: var(--step-5); max-width: 18ch; }
.c-erou-meta { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.insigna { display: inline-flex; align-items: center; gap: .45em; padding: .45em .9em; border-radius: var(--r-pastila); border: 1px solid var(--c-linie-noapte); background: var(--c-sala-voal); font-size: .9rem; line-height: 1.2; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.insigna b { font-weight: 700; }
.c-erou-jos { display: grid; gap: var(--s-5); align-items: end; }
.c-erou-numar { font-family: var(--f-mono); font-size: var(--step--1); letter-spacing: .06em; text-transform: uppercase; color: var(--c-lumina-2); }
.c-erou-numar b { font-family: var(--f-sans); font-stretch: var(--w-lat); font-weight: 900; font-size: var(--step-3); letter-spacing: -0.03em; color: var(--c-lumina); text-transform: none; margin-right: .2em; vertical-align: -.1em; }
@media (min-width: 900px) { .c-erou-jos { grid-template-columns: 1fr auto; } }
.c-acum-titlu { font-size: var(--step-5); max-width: 22ch; }
.c-acum-titlu span { display: block; font-size: .45em; font-stretch: var(--w-normal); font-weight: 400; color: var(--c-lumina-2); margin-top: .6em; line-height: 1.3; letter-spacing: 0; }

/* navigarea congresului */
.c-nav { position: sticky; top: var(--antet-h, 4.25rem); z-index: 30; transition: top .45s var(--e-iesire); background: var(--c-hartie-sticla-2); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--c-linie); }
.c-nav ul { list-style: none; display: flex; align-items: center; gap: var(--s-5); overflow-x: auto; scrollbar-width: none; height: 3.25rem; }
html.antet-ascuns .c-nav { top: 0; }
.c-nav ul::-webkit-scrollbar { display: none; }
.c-nav a { white-space: nowrap; text-decoration: none; font-family: var(--f-mono); font-size: var(--step--2); letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--c-cerneala-2); }
.c-nav a:hover, .c-nav a.activ { color: var(--c-rosu-sala); }

/* ---------------------------------------------------------- LINE-UP (semnătura) */
.lineup { position: relative; background: var(--c-hartie); }
.lineup-scena { position: relative; z-index: 31; background: var(--c-hartie); min-height: 100svh; padding: 6.2rem var(--gutter) var(--s-5); display: flex; flex-direction: column; overflow: hidden; }
@media (max-width: 979px) { .lineup-scena { padding-top: 5.6rem; padding-bottom: 5.5rem; } }
.lineup-sus { display: flex; justify-content: space-between; gap: var(--s-4); flex-wrap: wrap; font-family: var(--f-mono); font-size: var(--step--1); letter-spacing: .08em; text-transform: uppercase; }
.lineup-sus .rosu { color: var(--c-rosu-sala); }
.afis { flex: 1; display: grid; align-content: center; padding-block: var(--s-4); }
.afis-lista { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; text-align: center; column-gap: .35em; row-gap: .1em; }
.afis-nume { display: inline-flex; align-items: baseline; gap: .28em; font-stretch: var(--w-ingust); text-transform: uppercase; line-height: 1; }
.afis-pre { font-weight: 300; }
.afis-sn { display: inline-block; font-weight: 800; letter-spacing: var(--track-afis); line-height: 1; transform-origin: 0 0; white-space: nowrap; }
.afis-nume.n1 { flex-direction: column; align-items: center; gap: 0; font-size: clamp(2.6rem, min(.6rem + 8.4vw, 12.4svh), 9.4rem); margin-inline: .12em; }
.afis-nume.n1 .afis-pre { font-size: .2em; letter-spacing: .14em; margin-bottom: .1em; font-family: var(--f-mono); font-weight: 500; }
.afis-nume.n1 .afis-sn { color: var(--c-cerneala); }
.afis-nume.n1:nth-child(2) .afis-sn, .afis-nume.n1:nth-child(4) .afis-sn, .afis-nume.n1:nth-child(6) .afis-sn { color: var(--c-rosu); }
.afis-nume.n2 { font-size: clamp(1.15rem, min(.55rem + 2.4vw, 4.9svh), 3rem); }
.afis-nume.n3 { font-size: clamp(.85rem, min(.55rem + 1.05vw, 2.75svh), 1.55rem); color: var(--c-cerneala); }
.afis-nume.n2::after, .afis-nume.n3::after { content: "·"; color: var(--c-rosu); font-weight: 800; margin-left: .1em; opacity: var(--sep, 1); }
.afis-nume.ultim::after { content: none; }
.afis-lista .afis-rupe { flex-basis: 100%; height: .25em; }
.afis-jos { text-align: center; margin-top: var(--s-5); font-stretch: var(--w-ingust); font-weight: 600; text-transform: uppercase; font-size: clamp(.95rem, .55rem + 1.5vw, 1.9rem); letter-spacing: .02em; text-wrap: balance; }
.afis-jos span { color: var(--c-rosu); }

/* grila în care aterizează numele — doar cu JS și mișcare */
.grila { display: none; }
.lineup--viu .grila {
  display: grid; position: absolute; left: var(--gutter); right: var(--gutter); top: 9.6rem; bottom: 6.6rem;
  grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: clamp(.5rem, .2rem + 1.4vw, 1.6rem);
  pointer-events: none;
}
.grila-zi { display: flex; flex-direction: column; min-width: 0; }
.grila-zi-cap { font-stretch: var(--w-ingust); text-transform: uppercase; font-size: var(--step-2); line-height: 1; border-bottom: 2px solid var(--c-cerneala); padding-bottom: .3em; }
.grila-zi-cap b { font-weight: 800; }
.grila-sali { display: none; }
.grila-lista { list-style: none; display: flex; flex-direction: column; gap: .32rem; margin-top: .5rem; }
.g-it { display: flex; align-items: baseline; gap: .45em; order: var(--ord); min-width: 0; }
.g-it::before { content: ""; width: .42em; height: .42em; border-radius: 50%; background: var(--c-rosu); flex: none; align-self: center; opacity: var(--puncte, 1); }
.g-it[data-sala="cd"]::before { background: var(--c-cerneala); }
.g-ora { font-family: var(--f-mono); font-size: .62rem; color: var(--c-cerneala-2); flex: none; }
.g-sn { font-stretch: var(--w-ingust); font-weight: 800; text-transform: uppercase; letter-spacing: var(--track-afis); font-size: clamp(.72rem, .55rem + .55vw, 1.05rem); line-height: 1; white-space: nowrap; overflow: visible; }
.g-dez .g-sn { color: var(--c-rosu-sala); }
@media (min-width: 900px) {
  .grila-sali { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-top: .45rem; font-family: var(--f-mono); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; color: var(--c-cerneala-2); }
  .grila-lista { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: min-content; column-gap: .8rem; row-gap: .5rem; }
  .g-it { grid-column: var(--col); grid-row: var(--rand); order: 0; flex-direction: column; gap: .12em; }
  .g-it::before { display: none; }
  .g-sn { font-size: clamp(.8rem, .3rem + .7vw, 1.15rem); }
}
.ho-banda { display: none; }
.lineup--viu .ho-banda { display: block; position: absolute; left: var(--gutter); right: var(--gutter); bottom: var(--s-5); }
.ho-banda-t { font-stretch: var(--w-ingust); text-transform: uppercase; font-weight: 600; font-size: var(--step-1); margin-bottom: .5rem; }
.ho-banda-t b { font-weight: 900; color: var(--c-rosu); }
.ho-banda-t span { color: var(--c-cerneala-2); font-weight: 400; }
.ho-banda-l { list-style: none; display: grid; grid-template-columns: repeat(32, minmax(0, 1fr)); gap: 3px; }
.ho-p { font-family: var(--f-mono); font-size: .56rem; text-align: center; padding: .35em 0; border-radius: 2px; background: var(--c-hartie-2); color: var(--c-cerneala-2); transition: background-color .3s, color .3s; overflow: hidden; }
.ho-p.aprins { background: var(--c-cerneala); color: var(--c-lumina); }
.ho-p--taxa.aprins { background: var(--c-rosu-actiune); color: var(--c-alb); }
@media (max-width: 699px) { .ho-banda-l { grid-template-columns: repeat(16, minmax(0, 1fr)); } }
@media (max-width: 979px) {
  .lineup--viu .grila { top: 8rem; bottom: 9.6rem; }
  .lineup--viu .ho-banda { bottom: 5.4rem; }
  .grila-zi-cap { font-size: var(--step-0); }
  .grila-lista { gap: .14rem; margin-top: .4rem; }
  .g-sn { font-size: clamp(.64rem, .5rem + .5vw, .8rem); }
  .g-ora { font-size: .54rem; }
  .afis-nume.n1 { font-size: clamp(2.2rem, .4rem + 8vw, 4.5rem); }
}
/* fazele: elementele grilei apar din JS (stilurile inline), nu din CSS */
.lineup--viu .grila-zi-cap, .lineup--viu .grila-sali, .lineup--viu .g-ora, .lineup--viu .g-sn, .lineup--viu .ho-banda { opacity: 0; }
.lineup--viu .grila { --puncte: 0; }
.lineup-nota { position: absolute; right: var(--gutter); bottom: var(--s-5); font-family: var(--f-mono); font-size: var(--step--2); letter-spacing: .06em; text-transform: uppercase; color: var(--c-cerneala-2); display: none; }


.lineup-pasi { display: flex; gap: var(--s-4); }
@media (max-width: 699px) { .lineup-pasi { display: none; } }
.lineup-pas { color: var(--c-cerneala-2); opacity: .55; transition: opacity .3s, color .3s; }
.lineup-pas.activ { opacity: 1; color: var(--c-rosu-sala); }
.lineup--viu .lineup-nota { display: block; }
.c-erou-h1 { font-size: var(--step-5); }
.c-erou .fir-urma { color: var(--c-lumina-2); }

/* ---------------------------------------------------------- programul */
.program-unelte { display: grid; gap: var(--s-5); margin-bottom: var(--s-6); position: sticky; top: calc(var(--antet-h, 4.25rem) + 3.25rem); z-index: 20; background: var(--c-hartie); padding-block: var(--s-4); border-bottom: 1px solid var(--c-linie); transition: top .45s var(--e-iesire); }
html.antet-ascuns .program-unelte { top: 3.25rem; }
@media (max-width: 899px) {
  .program-unelte { gap: var(--s-4); margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
  .program-unelte .filtre { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
  .program-unelte .filtre::-webkit-scrollbar { display: none; }
  .program-unelte .filtru { flex: none; }
  .zi-buton { flex: 1; }
}
.program-zile { display: flex; gap: var(--s-2); }
.zi-buton { border: 0; background: var(--c-hartie-2); border-radius: var(--r-mediu); padding: .6em 1.1em; cursor: pointer; text-align: left; line-height: 1.1; }
.zi-buton b { display: block; font-stretch: var(--w-ingust); text-transform: uppercase; font-weight: 800; font-size: var(--step-2); }
.zi-buton span { font-family: var(--f-mono); font-size: .7rem; letter-spacing: .06em; color: var(--c-cerneala-2); }
.zi-buton[aria-pressed="true"] { background: var(--c-cerneala); color: var(--c-lumina); }
.zi-buton[aria-pressed="true"] span { color: var(--c-lumina-2); }
.program-zi { margin-bottom: var(--s-8); }
.js .program[data-o-zi] .program-zi { display: none; margin-bottom: 0; }
.js .program[data-o-zi] .program-zi.activ { display: block; }
.program-zi-t { font-size: var(--step-4); font-stretch: var(--w-ingust); text-transform: uppercase; font-weight: 800; margin-bottom: var(--s-5); }
.js .program[data-o-zi] .program-zi-t { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.program-sali { display: grid; gap: var(--s-7) var(--s-6); }
@media (min-width: 900px) { .program-sali { grid-template-columns: 1fr 1fr; } }
.program-sala-t { display: flex; align-items: center; gap: .55em; font-family: var(--f-mono); font-size: var(--step--1); letter-spacing: .08em; text-transform: uppercase; font-weight: 600; padding-bottom: var(--s-3); border-bottom: 2px solid var(--c-cerneala); }
.punct { width: .65em; height: .65em; border-radius: 50%; background: var(--c-rosu); }
.program-sala[data-sala="cd"] .punct { background: var(--c-cerneala); }
.program-lista { list-style: none; }
.ses { position: relative; display: grid; grid-template-columns: 6.4rem 1fr; column-gap: var(--s-4); row-gap: .25rem; padding: var(--s-4) 0; border-bottom: 1px solid var(--c-linie); transition: opacity .35s, background-color .35s; }
.ses > *:not(.ses-ora) { grid-column: 2; }
.ses-ora { grid-row: 1 / span 4; font-family: var(--f-mono); font-size: .85rem; padding-top: .2em; color: var(--c-cerneala-2); }
.ses-lector { font-weight: 650; font-size: 1.02rem; line-height: 1.3; }
.ses-lector a { text-decoration: none; }
.ses-lector a:hover { text-decoration: underline; }
.ses-titlu { font-size: 1rem; line-height: 1.42; color: var(--c-cerneala-2); }
.ses-dom { font-family: var(--f-mono); font-size: var(--step--2); letter-spacing: .05em; text-transform: uppercase; color: var(--c-cerneala-2); opacity: .85; }
.ses .adauga { justify-self: start; margin-top: .15rem; }
.ses--pauza { display: block; padding: var(--s-2) 0 var(--s-2) 7.4rem; font-size: .85rem; color: var(--c-cerneala-2); font-style: normal; background: repeating-linear-gradient(-45deg, transparent 0 6px, var(--c-rosu-voal) 6px 7px); }
.ses--pauza .ses-ora { font-size: .8rem; margin-right: .6em; }
.ses--dez .ses-eticheta { font-family: var(--f-mono); font-size: var(--step--2); letter-spacing: .08em; text-transform: uppercase; color: var(--c-rosu-sala); font-weight: 600; }
.ses--dez .ses-lector { font-weight: 500; font-size: .95rem; }
.ses--cer .ses-titlu { font-stretch: var(--w-ingust); text-transform: uppercase; font-weight: 700; color: var(--c-cerneala); }
.ses.ascuns-filtru { opacity: .18; }
.ses.acum { background: var(--c-rosu-voal); box-shadow: inset 3px 0 0 var(--c-rosu-actiune); padding-left: var(--s-3); margin-left: calc(var(--s-3) * -1); }
.ses.acum::after { content: "ACUM"; position: absolute; right: 0; top: var(--s-4); font-family: var(--f-mono); font-size: .66rem; font-weight: 700; letter-spacing: .1em; color: var(--c-alb); background: var(--c-rosu-actiune); padding: .2em .55em; border-radius: var(--r-mic); }
.ses.trecut { opacity: .45; }

/* hands-on pe scurt, pe zile */
.ho-zile { display: grid; gap: var(--s-6); }
@media (min-width: 900px) { .ho-zile { grid-template-columns: repeat(3, 1fr); } }
.ho-zi-t { font-stretch: var(--w-ingust); text-transform: uppercase; font-size: var(--step-2); padding-bottom: var(--s-2); border-bottom: 2px solid var(--c-cerneala); }
.ho-zi-t b { font-weight: 800; }
.ho-zi ul { list-style: none; }
.ho-zi a { display: grid; grid-template-columns: 2.6rem 3.4rem 1fr auto; gap: var(--s-2); align-items: baseline; padding: .6rem 0; border-bottom: 1px solid var(--c-linie); text-decoration: none; font-size: .95rem; transition: padding-left .35s var(--e-iesire), color .2s; }
.ho-zi a:hover { padding-left: .4rem; color: var(--c-rosu-sala); }
.ho-zi-cod { font-family: var(--f-mono); font-weight: 600; font-size: .8rem; }
.ho-zi-ora { font-family: var(--f-mono); font-size: .8rem; color: var(--c-cerneala-2); }
.ho-zi-cine { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ho-zi-dom { font-family: var(--f-mono); font-size: .66rem; letter-spacing: .05em; text-transform: uppercase; color: var(--c-cerneala-2); }

/* numărătoarea inversă */
.numaratoare { display: flex; gap: var(--s-5); align-items: flex-end; flex-wrap: wrap; }
.numaratoare div { display: grid; }
.numaratoare b { font-stretch: var(--w-lat); font-weight: 900; font-size: var(--step-5); line-height: .85; font-variant-numeric: lining-nums; letter-spacing: -0.04em; }
.numaratoare span { font-family: var(--f-mono); font-size: var(--step--2); letter-spacing: .08em; text-transform: uppercase; color: var(--c-cerneala-2); margin-top: .4em; }
[data-tema="noapte"] .numaratoare span, .sala .numaratoare span, .noapte .numaratoare span { color: var(--c-lumina-2); }

/* ---------------------------------------------------------- pachetele */
.alegator { display: grid; gap: var(--s-6); margin-bottom: var(--s-8); }
@media (min-width: 1000px) { .alegator { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: start; } }
.intrebari-pachet { display: grid; gap: var(--s-5); }
.intrebare { border: 0; padding: 0; margin: 0; }
.intrebare legend { font-weight: 650; font-size: var(--step-1); margin-bottom: var(--s-3); padding: 0; }
.intrebare legend span { font-family: var(--f-mono); font-size: var(--step--1); color: var(--c-rosu-sala); margin-right: .6em; }
.optiuni { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.optiune input { position: absolute; opacity: 0; pointer-events: none; }
.optiune span { display: inline-block; padding: .65em 1.2em; border-radius: var(--r-pastila); border: 1.5px solid var(--c-linie-tare); cursor: pointer; font-weight: 500; transition: background-color var(--t-scurt), border-color var(--t-scurt), color var(--t-scurt); }
.optiune input:checked + span { background: var(--c-cerneala); color: var(--c-hartie); border-color: var(--c-cerneala); }
.optiune input:focus-visible + span { outline: 3px solid var(--c-rosu-actiune); outline-offset: 2px; }
.recomandare { position: sticky; top: 8.5rem; background: var(--c-negru); color: var(--c-lumina); border-radius: var(--r-mediu); padding: var(--s-6); display: grid; gap: var(--s-4); box-shadow: var(--umbra-3); }
.recomandare-nume { font-stretch: var(--w-ingust); text-transform: uppercase; font-weight: 800; font-size: var(--step-5); line-height: .9; }
.recomandare-pret { font-stretch: var(--w-lat); font-weight: 900; font-size: var(--step-4); color: var(--c-rosu-noapte); line-height: 1; font-variant-numeric: lining-nums; }
.recomandare-pret small { font-size: .38em; font-stretch: var(--w-normal); font-weight: 500; color: var(--c-lumina-2); margin-left: .3em; }
.recomandare ul { list-style: none; display: grid; gap: .45rem; font-size: .98rem; }
.recomandare li { display: flex; gap: .6em; }
.recomandare li::before { content: ""; width: .5em; height: .5em; border-radius: 50%; background: var(--c-rosu-noapte); flex: none; margin-top: .5em; }
.recomandare-de-ce { color: var(--c-lumina-2); font-size: .95rem; }
.recomandare .buton { justify-self: start; }
.scara { margin-top: var(--s-6); }
.scara-trepte { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; margin-top: var(--s-3); }
.treapta { background: var(--c-hartie-2); border-radius: var(--r-mic); padding: .6rem .5rem; font-family: var(--f-mono); font-size: .72rem; line-height: 1.3; position: relative; overflow: hidden; }
.treapta b { display: block; font-family: var(--f-sans); font-stretch: var(--w-lat); font-weight: 900; font-size: clamp(.82rem, .5rem + 1.2vw, 1.15rem); letter-spacing: -0.03em; white-space: nowrap; }
.treapta.trecuta { opacity: .45; text-decoration: line-through; }
.treapta.acum { background: var(--c-cerneala); color: var(--c-lumina); }
.treapta.acum::after { content: ""; position: absolute; left: 0; bottom: 0; height: 4px; width: calc(var(--p, 0) * 100%); background: var(--c-rosu-noapte); }
.scara-text { margin-top: var(--s-3); font-size: .95rem; color: var(--c-cerneala-2); }
.scara-text b { color: var(--c-cerneala); }
.pachete-tabel { width: 100%; font-size: .98rem; }
.pachete-tabel caption { text-align: left; caption-side: bottom; padding-top: var(--s-4); font-size: var(--step--1); color: var(--c-cerneala-2); }
.pachete-tabel th, .pachete-tabel td { text-align: left; vertical-align: top; padding: var(--s-5) var(--s-4) var(--s-5) 0; border-bottom: 1px solid var(--c-linie-tare); }
.pachete-tabel thead th { font-family: var(--f-mono); font-size: var(--step--2); letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--c-cerneala-2); padding-block: var(--s-3); }
.pachete-tabel tbody th { font-stretch: var(--w-ingust); text-transform: uppercase; font-weight: 800; font-size: var(--step-2); line-height: 1; width: 26%; }
.pachet-cond { display: block; font-family: var(--f-mono); font-size: .7rem; letter-spacing: .03em; text-transform: none; font-weight: 500; color: var(--c-cerneala-2); margin-top: .6em; line-height: 1.35; }
.pachete-tabel td:nth-child(2) { white-space: nowrap; }
.pachete-tabel td:nth-child(2) b { font-stretch: var(--w-lat); font-weight: 900; font-size: var(--step-2); letter-spacing: -0.02em; }
.pachete-tabel td:nth-child(2) span { font-size: .85rem; color: var(--c-cerneala-2); }
.pachete-tabel ul { list-style: none; display: flex; flex-wrap: wrap; gap: .3rem .9rem; }
.pachete-tabel li::before { content: "·"; color: var(--c-rosu); font-weight: 800; margin-right: .4em; }
.pachet-regula { margin-top: .6rem; font-size: .85rem; color: var(--c-cerneala-2); }
.pachete-tabel tr.potrivit th, .pachete-tabel tr.potrivit td { background: var(--c-rosu-voal); }
@media (max-width: 760px) {
  .pachete-tabel, .pachete-tabel tbody, .pachete-tabel tr, .pachete-tabel th, .pachete-tabel td { display: block; width: 100%; }
  .pachete-tabel thead { display: none; }
  .pachete-tabel caption { display: block; width: auto; }
  .pachete-tabel tr { padding-block: var(--s-4); border-bottom: 1px solid var(--c-linie-tare); }
  .pachete-tabel th, .pachete-tabel td { border: 0; padding: .25rem 0; }
}

/* bloc roșu: frază mare */
.bloc-rosu { background: var(--c-rosu-actiune); color: var(--c-alb); }
.bloc-rosu .fraza { font-size: var(--step-6); max-width: 14ch; }
.bloc-rosu .lead { color: var(--c-alb); margin-top: var(--s-5); }
.bloc-rosu .buton { background: var(--c-alb); color: var(--c-rosu-sala); }
.bloc-rosu a:not(.buton) { color: var(--c-alb); }

/* locul: sălile */
.locul { display: grid; gap: var(--s-7); }
@media (min-width: 1000px) { .locul { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: start; } }
.locul-foto { border-radius: var(--r-mediu); overflow: hidden; aspect-ratio: 4 / 3; box-shadow: var(--umbra-2); }
.locul-foto img { width: 100%; height: 115%; object-fit: cover; }
.sali-tabla { display: grid; gap: 6px; grid-template-columns: repeat(6, 1fr); margin-top: var(--s-6); }
.sala-t { border-radius: var(--r-mic); padding: .7rem .6rem; background: var(--c-hartie-2); display: grid; gap: .2rem; align-content: start; min-height: 5.2rem; transition: transform .35s var(--e-iesire), background-color .3s; }
.sala-t:hover { transform: translateY(-3px); }
.sala-t b { font-stretch: var(--w-ingust); text-transform: uppercase; font-weight: 800; font-size: 1.05rem; line-height: 1; }
.sala-t span { font-family: var(--f-mono); font-size: .66rem; letter-spacing: .04em; color: var(--c-cerneala-2); line-height: 1.3; }
.sala-t--mare { grid-column: span 4; background: var(--c-cerneala); color: var(--c-lumina); min-height: 7rem; }
.sala-t--mare b { font-size: var(--step-3); }
.sala-t--mare span, .sala-t--medie span { color: var(--c-lumina-2); }
.sala-t--medie { grid-column: span 2; background: var(--c-negru); color: var(--c-lumina); min-height: 7rem; }
.sala-t--sser { grid-column: span 2; background: var(--c-rosu-actiune); color: var(--c-alb); }
.sala-t--sser span { color: var(--c-alb); }
.sala-t--ho { grid-column: span 2; }
@media (min-width: 700px) { .sala-t--ho { grid-column: span 1; } .sala-t--sser { grid-column: span 2; } }
.date-loc { display: grid; gap: var(--s-3); margin-top: var(--s-5); }
.date-loc div { display: flex; justify-content: space-between; gap: var(--s-4); border-bottom: 1px solid var(--c-linie); padding-bottom: var(--s-2); }
.date-loc dt { color: var(--c-cerneala-2); }
.date-loc dd { margin: 0; font-weight: 600; text-align: right; }

/* online */
.online { display: grid; gap: var(--s-6); }
@media (min-width: 900px) { .online { grid-template-columns: 1.2fr 1fr; align-items: center; } }
.ecran { position: relative; aspect-ratio: 16 / 9; border-radius: var(--r-mediu); overflow: hidden; background: var(--c-negru); box-shadow: var(--umbra-3); }
.ecran img { width: 100%; height: 100%; object-fit: cover; opacity: .82; }
.ecran-live { position: absolute; left: var(--s-4); top: var(--s-4); display: inline-flex; gap: .5em; align-items: center; background: var(--c-rosu-actiune); color: var(--c-alb); padding: .3em .7em; border-radius: var(--r-mic); font-family: var(--f-mono); font-size: .72rem; font-weight: 600; letter-spacing: .1em; }
.ecran-live::before { content: ""; width: .55em; height: .55em; border-radius: 50%; background: var(--c-alb); animation: puls 1.6s infinite; }
.ecran-sali { position: absolute; left: var(--s-4); right: var(--s-4); bottom: var(--s-4); display: flex; gap: var(--s-2); }
.ecran-sali span { background: var(--c-negru-voal); color: var(--c-lumina); padding: .4em .8em; border-radius: var(--r-pastila); font-size: .8rem; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.online-pret { display: flex; gap: var(--s-4); flex-wrap: wrap; margin-top: var(--s-5); }
.online-pret div { border-top: 2px solid var(--c-cerneala); padding-top: var(--s-2); min-width: 7rem; }
.online-pret b { display: block; font-stretch: var(--w-lat); font-weight: 900; font-size: var(--step-3); letter-spacing: -0.03em; line-height: 1; }
.online-pret span { font-size: .85rem; color: var(--c-cerneala-2); }

/* atmosfera: colaj cu planuri diferite */
.colaj { position: relative; display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--s-4); align-items: start; }
.colaj figure { margin: 0; border-radius: var(--r-mediu); overflow: hidden; box-shadow: var(--umbra-2); }
.colaj img { width: 100%; height: auto; object-fit: cover; }
.colaj-1 { grid-column: 1 / 8; } .colaj-1 img { aspect-ratio: 3 / 2; }
.colaj-2 { grid-column: 8 / 13; margin-top: var(--s-9) !important; } .colaj-2 img { aspect-ratio: 4 / 5; object-position: 30% 50%; }
.colaj-3 { grid-column: 3 / 10; margin-top: calc(var(--s-9) * -1) !important; z-index: 2; } .colaj-3 img { aspect-ratio: 16 / 9; }
.colaj figcaption { font-family: var(--f-mono); font-size: var(--step--2); letter-spacing: .06em; text-transform: uppercase; padding: var(--s-2) var(--s-3); background: var(--c-alb); }
@media (max-width: 760px) { .colaj-1, .colaj-2, .colaj-3 { grid-column: 1 / -1; margin-top: 0 !important; } }

/* întrebări */
.intrebari { border-top: 1px solid var(--c-linie-tare); max-width: 60rem; }
.intrebari details { border-bottom: 1px solid var(--c-linie-tare); }
.intrebari summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: var(--s-4); align-items: baseline; padding: var(--s-5) 0; font-weight: 650; font-size: var(--step-1); line-height: 1.3; }
.intrebari summary::-webkit-details-marker { display: none; }
.intrebari summary::after { content: "+"; font-weight: 300; font-size: 1.6em; line-height: .6; transition: transform .35s var(--e-iesire); color: var(--c-rosu-sala); }
.intrebari details[open] summary::after { transform: rotate(45deg); }
.intrebari details > div { padding-bottom: var(--s-5); max-width: 44em; color: var(--c-cerneala-2); display: grid; gap: var(--s-3); }

/* =================================================================== LECTORI */
.harta-lectori { position: relative; margin-bottom: var(--s-7); }
.harta-lectori svg { width: 100%; height: auto; overflow: visible; }
.harta-pct { fill: var(--c-cerneala); }
.harta-buc { fill: var(--c-rosu); }
.harta-arc { fill: none; stroke: var(--c-rosu); stroke-width: 1.2; stroke-linecap: round; opacity: .75; vector-effect: non-scaling-stroke; transition: stroke-width .3s, opacity .3s; }
.harta-arc.aprins { stroke-width: 3; opacity: 1; }
.harta-et { font-family: var(--f-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; fill: var(--c-cerneala-2); }
.harta-et b, .harta-nr { font-weight: 700; fill: var(--c-cerneala); }
.harta-grila { stroke: var(--c-linie); stroke-width: 1; vector-effect: non-scaling-stroke; }
.harta-tara { fill: var(--c-alb); stroke: var(--c-cerneala-2); stroke-width: .7; stroke-opacity: .55; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.harta-tara--lector { fill: var(--c-rosu-voal); stroke: var(--c-rosu-sala); stroke-opacity: .7; }
.harta-ro-tara { fill: var(--c-alb); stroke: var(--c-cerneala); stroke-width: 1.4; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.harta-ro-vecin { fill: none; stroke: var(--c-cerneala-2); stroke-width: .7; stroke-opacity: .5; stroke-dasharray: 3 3; vector-effect: non-scaling-stroke; }
.harta-ro-rau { fill: none; stroke: var(--c-cerneala-2); stroke-width: 1.2; stroke-opacity: .55; vector-effect: non-scaling-stroke; }
.harta-ro-et { font-family: var(--f-mono); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; fill: var(--c-cerneala-2); }
.filtre-bloc { display: grid; gap: var(--s-3); margin-bottom: var(--s-6); }
.filtre-bloc > p { font-family: var(--f-mono); font-size: var(--step--2); letter-spacing: .08em; text-transform: uppercase; color: var(--c-cerneala-2); }
.lectori { list-style: none; border-top: 1px solid var(--c-linie-tare); }
.lectori-litera { font-stretch: var(--w-lat); font-weight: 900; font-size: var(--step-3); color: var(--c-rosu); padding: var(--s-5) 0 var(--s-2); border-bottom: 1px solid var(--c-linie); line-height: 1; }
.lector { display: grid; grid-template-columns: 3.4rem 1fr; gap: var(--s-2) var(--s-4); padding: var(--s-5) 0; border-bottom: 1px solid var(--c-linie); align-items: start; scroll-margin-top: 9rem; transition: background-color .4s; }
.lector:target { background: var(--c-rosu-voal); }
.lector-mono { width: 3.4rem; aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center; background: var(--c-cerneala); color: var(--c-lumina); font-stretch: var(--w-ingust); font-weight: 800; font-size: 1.15rem; letter-spacing: .02em; grid-row: span 3; transition: background-color .3s, transform .4s var(--e-iesire); }
.lector[data-tara="RO"] .lector-mono { background: var(--c-rosu-actiune); color: var(--c-alb); }
.lector:hover .lector-mono { transform: rotate(-8deg) scale(1.06); }
.lector-nume { font-weight: 400; line-height: 1; }
.lector-pre { display: block; font-size: .95rem; color: var(--c-cerneala-2); margin-bottom: .2em; }
.lector-sn { font-stretch: var(--w-ingust); font-weight: 800; text-transform: uppercase; font-size: var(--step-4); line-height: .92; letter-spacing: -0.01em; }
.lector-tara { font-size: .9rem; color: var(--c-cerneala-2); }
.lector-ce { display: grid; gap: .5rem; grid-column: 2; }
.lector-ses, .lector-ho { font-size: .98rem; line-height: 1.4; }
.lector-ses a, .lector-ho a { font-family: var(--f-mono); font-size: .78rem; letter-spacing: .03em; font-weight: 600; margin-right: .5em; }
.lector-ses span, .lector-ho span { color: var(--c-cerneala-2); }
@media (min-width: 900px) {
  .lector { grid-template-columns: 4rem minmax(0, 1.05fr) minmax(0, 1fr); column-gap: var(--s-6); }
  .lector-mono { width: 4rem; grid-row: span 2; }
  .lector-ce { grid-column: 3; grid-row: 1 / span 2; }
}
.lector.ascuns-filtru { display: none; }
.lectori-dezbateri { margin-top: var(--s-6); color: var(--c-cerneala-2); max-width: 50em; }

/* ================================================================== HANDS-ON */
.ho-cap-bloc { display: grid; gap: var(--s-5); padding: var(--s-6); border-radius: var(--r-mediu); background: var(--c-negru); color: var(--c-lumina); margin-bottom: var(--s-7); }
@media (min-width: 900px) { .ho-cap-bloc { grid-template-columns: 1fr auto; align-items: end; } }
.ho-cap-bloc h2 { font-size: var(--step-3); max-width: 20ch; }
.ho-lista { list-style: none; border-top: 1px solid var(--c-linie-tare); }
.ho-r { display: grid; gap: .35rem var(--s-5); padding: var(--s-5) 0; border-bottom: 1px solid var(--c-linie); grid-template-columns: 5.2rem 1fr; scroll-margin-top: 9rem; }
.ho-r > *:not(.ho-cod) { grid-column: 2; }
.ho-r:target { background: var(--c-rosu-voal); }
.ho-cod { grid-row: 1 / span 6; font-family: var(--f-mono); font-weight: 600; font-size: .95rem; }
.ho-r--taxa .ho-cod { color: var(--c-rosu-sala); }
.ho-cand { font-family: var(--f-mono); font-size: .78rem; letter-spacing: .03em; color: var(--c-cerneala-2); }
.ho-titlu { font-size: var(--step-1); font-weight: 650; line-height: 1.25; letter-spacing: -0.01em; max-width: 40em; }
.ho-lector { font-weight: 500; }
.ho-dom { font-family: var(--f-mono); font-size: var(--step--2); text-transform: uppercase; letter-spacing: .06em; color: var(--c-cerneala-2); }
.ho-aduci { font-size: .95rem; }
.ho-aduci span { font-family: var(--f-mono); font-size: var(--step--2); text-transform: uppercase; letter-spacing: .06em; background: var(--c-cerneala); color: var(--c-lumina); padding: .15em .5em; border-radius: var(--r-mic); margin-right: .5em; }
.ho-pret b { font-weight: 700; }
.ho-locuri { font-size: .9rem; color: var(--c-cerneala-2); display: flex; align-items: center; gap: .7em; }
.ho-bara { width: 9rem; height: 6px; border-radius: 3px; background: var(--c-hartie-2); overflow: hidden; flex: none; }
.ho-bara i { display: block; height: 100%; width: calc(var(--p, 0) * 100%); background: var(--c-cerneala); }
.ho-act { display: flex; flex-wrap: wrap; gap: var(--s-4); align-items: center; margin-top: .3rem; }
.ho-rezerva { font-weight: 600; font-size: .95rem; }
.ho-r.ascuns-filtru { display: none; }
.ho-r.acum { box-shadow: inset 3px 0 0 var(--c-rosu-actiune); background: var(--c-rosu-voal); padding-left: var(--s-3); }
@media (min-width: 1000px) {
  .ho-r { grid-template-columns: 5.6rem minmax(0, 1.4fr) minmax(0, 1fr); }
  .ho-r > .ho-cand, .ho-r > .ho-titlu, .ho-r > .ho-lector, .ho-r > .ho-dom { grid-column: 2; }
  .ho-r > .ho-aduci, .ho-r > .ho-pret, .ho-r > .ho-locuri, .ho-r > .ho-act { grid-column: 3; }
  .ho-r > .ho-aduci { grid-row: 1; } .ho-r > .ho-pret { grid-row: 2; } .ho-r > .ho-locuri { grid-row: 3; } .ho-r > .ho-act { grid-row: 4; }
}

/* =================================================================== AGENDA */
.agenda-gol { padding: var(--s-7); border: 1.5px dashed var(--c-linie-tare); border-radius: var(--r-mediu); display: grid; gap: var(--s-4); justify-items: start; }
.agenda-gol p { max-width: 36em; }
.agenda { display: grid; gap: var(--s-8); }
@media (min-width: 1000px) { .agenda { grid-template-columns: minmax(0, 1fr) minmax(0, 26rem); align-items: start; } }
.agenda-zi { margin-bottom: var(--s-6); }
.agenda-zi h2, .agenda-zi h3 { font-stretch: var(--w-ingust); text-transform: uppercase; font-weight: 800; font-size: var(--step-3); border-bottom: 2px solid var(--c-cerneala); padding-bottom: var(--s-2); }
.agenda-it { display: grid; grid-template-columns: 6.4rem 1fr auto; gap: .2rem var(--s-4); padding: var(--s-4) 0; border-bottom: 1px solid var(--c-linie); align-items: start; }
.agenda-it .ses-ora { grid-row: span 2; }
.agenda-it-t { font-weight: 650; line-height: 1.3; }
.agenda-it-t a { text-decoration: none; }
.agenda-it-t a:hover { text-decoration: underline; }
.agenda-it-loc { font-size: .92rem; color: var(--c-cerneala-2); }
.agenda-it .sterge { grid-row: span 2; border: 0; background: none; cursor: pointer; font-family: var(--f-mono); font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; color: var(--c-cerneala-2); padding: .4em; }
.agenda-it .sterge:hover { color: var(--c-rosu-sala); }
.agenda-it.suprapus { background: var(--c-rosu-voal); }
.suprapunere { font-size: .85rem; color: var(--c-rosu-sala); font-weight: 600; grid-column: 2; }
.poster-bloc { position: sticky; top: 7.5rem; display: grid; gap: var(--s-4); }
.poster-bloc canvas { width: 100%; height: auto; aspect-ratio: 4 / 5; border-radius: var(--r-mediu); box-shadow: var(--umbra-3); background: var(--c-hartie-2); }

/* =================================================================== MEMBRI */
.calc { display: grid; gap: var(--s-6); background: var(--c-alb); border-radius: var(--r-mediu); padding: clamp(1.25rem, .6rem + 3vw, 3rem); box-shadow: var(--umbra-2); }
@media (min-width: 1000px) { .calc { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; } }
.calc-rezultat { display: grid; gap: var(--s-3); }
.calc-rand { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-4); border-bottom: 1px solid var(--c-linie); padding-bottom: var(--s-2); font-size: 1rem; }
.calc-rand b { font-stretch: var(--w-lat); font-weight: 800; font-variant-numeric: lining-nums; font-size: var(--step-2); letter-spacing: -0.02em; white-space: nowrap; }
.calc-economie { margin-top: var(--s-3); }
.calc-economie b { display: block; font-stretch: var(--w-lat); font-weight: 900; font-size: var(--step-6); line-height: .85; letter-spacing: -0.04em; color: var(--c-rosu); font-variant-numeric: lining-nums; }
.calc-economie span { font-size: var(--step-1); }
.calc-nota { font-size: var(--step--1); color: var(--c-cerneala-2); }
.categorii { list-style: none; border-top: 1px solid var(--c-linie-tare); }
.categorie { display: grid; gap: var(--s-2) var(--s-6); padding: var(--s-6) 0; border-bottom: 1px solid var(--c-linie-tare); }
@media (min-width: 900px) { .categorie { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) auto; align-items: baseline; } }
.categorie h3 { font-stretch: var(--w-ingust); text-transform: uppercase; font-weight: 800; font-size: var(--step-4); line-height: .92; }
.categorie p { color: var(--c-cerneala-2); }
.categorie-pret { font-stretch: var(--w-lat); font-weight: 900; font-size: var(--step-3); letter-spacing: -0.03em; white-space: nowrap; font-variant-numeric: lining-nums; }
.categorie-pret small { font-size: .45em; font-stretch: var(--w-normal); font-weight: 500; color: var(--c-cerneala-2); letter-spacing: 0; }
.pasi { list-style: none; counter-reset: pas; display: grid; gap: 0; border-top: 1px solid var(--c-linie-noapte); }
.pas { counter-increment: pas; display: grid; grid-template-columns: 4.2rem 1fr; gap: var(--s-2) var(--s-5); padding: var(--s-6) 0; border-bottom: 1px solid var(--c-linie-noapte); }
.pas::before { content: counter(pas, decimal-leading-zero); grid-row: span 3; font-stretch: var(--w-lat); font-weight: 900; font-size: var(--step-4); line-height: .8; color: var(--c-rosu-noapte); letter-spacing: -0.04em; }
.pas-cand { font-family: var(--f-mono); font-size: var(--step--1); letter-spacing: .06em; text-transform: uppercase; color: var(--c-lumina-2); }
.pas h3 { font-size: var(--step-2); font-weight: 650; }
.pas p:last-child { color: var(--c-lumina-2); max-width: 44em; }
@media (min-width: 900px) { .pas { grid-template-columns: 7rem minmax(0, 14rem) minmax(0, 1fr); align-items: baseline; } .pas::before { grid-row: auto; } .pas-cand { grid-column: 2; } .pas h3 { grid-column: 3; grid-row: 1; } .pas p:last-child { grid-column: 3; } }
.nume-liste { display: grid; gap: var(--s-7); }
@media (min-width: 900px) { .nume-liste { grid-template-columns: 1fr 1.4fr; } }
.nume-lista { list-style: none; columns: 2 12rem; column-gap: var(--s-6); }
.nume-lista li { break-inside: avoid; padding: .45rem 0; border-bottom: 1px solid var(--c-linie); }
.nume-lista li b { display: block; font-family: var(--f-mono); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; color: var(--c-rosu-sala); font-weight: 600; }
.iban { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3); padding: var(--s-5); background: var(--c-hartie-2); border-radius: var(--r-mediu); }
.iban code { font-family: var(--f-mono); font-size: var(--step-1); letter-spacing: .06em; font-weight: 600; word-break: break-all; }

/* =================================================================== CURSURI */
.curs { display: grid; gap: var(--s-5); padding-block: var(--s-7); border-top: 1px solid var(--c-linie-tare); }
@media (min-width: 1000px) { .curs { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); column-gap: var(--s-8); } }
.curs-foto { border-radius: var(--r-mediu); overflow: hidden; aspect-ratio: 3 / 2; }
.curs-foto img { width: 100%; height: 100%; object-fit: cover; }
.curs h2 { font-size: var(--step-4); }
.curs-fise { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: var(--s-3); margin-block: var(--s-4); }
.curs-fise div { border-top: 1px solid var(--c-linie-tare); padding-top: var(--s-2); }
.curs-fise dt { font-family: var(--f-mono); font-size: var(--step--2); letter-spacing: .06em; text-transform: uppercase; color: var(--c-cerneala-2); }
.curs-fise dd { margin: .2em 0 0; font-weight: 600; }
.stampila { display: inline-block; transform: rotate(-4deg); border: 2px solid var(--c-rosu-sala); color: var(--c-rosu-sala); font-family: var(--f-mono); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: .35em .8em; border-radius: var(--r-mic); font-size: .85rem; }
.program-curs { list-style: none; border-top: 1px solid var(--c-linie); }
.program-curs li { display: grid; grid-template-columns: 6.4rem 1fr; gap: var(--s-3); padding: var(--s-3) 0; border-bottom: 1px solid var(--c-linie); font-size: .98rem; }
.program-curs .ses-ora { grid-row: auto; }

/* ================================================================ SOCIETATEA */
.cronologie { list-style: none; position: relative; padding-left: 0; --cron-x: 6.2rem; }
@media (min-width: 900px) { .cronologie { --cron-x: 8rem; } }
.cronologie-fir { position: absolute; left: var(--cron-x); top: 0; bottom: 0; width: 3px; background: var(--c-hartie-2); }
.cronologie-fir i { position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: var(--c-rosu); transform-origin: 50% 0; }
.moment { position: relative; display: grid; grid-template-columns: var(--cron-x) 1fr; gap: var(--s-2) var(--s-5); padding: var(--s-6) 0; }
.moment::before { content: ""; position: absolute; left: calc(var(--cron-x) - 6px); top: calc(var(--s-6) + .4em); width: 15px; height: 15px; border-radius: 50%; background: var(--c-hartie); border: 3px solid var(--c-rosu); }
.moment-an { font-stretch: var(--w-lat); font-weight: 900; font-size: var(--step-2); letter-spacing: -0.03em; line-height: 1; padding-right: var(--s-4); }
.moment-c { padding-left: var(--s-3); display: grid; gap: var(--s-2); max-width: 42em; }
.moment h3 { font-size: var(--step-2); font-weight: 650; line-height: 1.15; }
.moment p { color: var(--c-cerneala-2); }
.moment-sursa { font-family: var(--f-mono); font-size: var(--step--2); letter-spacing: .04em; color: var(--c-cerneala-2); }
.citat-mare { font-size: var(--step-5); max-width: 18ch; }
.citat-sursa { margin-top: var(--s-5); color: var(--c-lumina-2); max-width: 36em; }
.harta-ro { position: relative; }
.harta-ro svg { width: 100%; height: auto; overflow: visible; }
.filiala-pct { fill: var(--c-cerneala); transition: r .3s; }
.filiala-pct--sediu { fill: var(--c-rosu); }
.filiala-et { font-stretch: 75%; font-weight: 800; text-transform: uppercase; font-size: 15px; fill: var(--c-cerneala); }
.filiala-et-mic { font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .05em; text-transform: uppercase; fill: var(--c-cerneala-2); }
.filiale { display: grid; gap: var(--s-7); }
@media (min-width: 1000px) { .filiale { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: center; } }
.filiale-lista { list-style: none; border-top: 1px solid var(--c-linie-tare); }
.filiale-lista li { padding: var(--s-4) 0; border-bottom: 1px solid var(--c-linie-tare); display: grid; gap: .25rem; }
.filiale-lista b { font-stretch: var(--w-ingust); text-transform: uppercase; font-weight: 800; font-size: var(--step-2); line-height: 1; }
.filiale-lista span { font-size: .92rem; color: var(--c-cerneala-2); }
.proiecte { display: grid; gap: var(--s-5); grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); }
.proiect { padding: var(--s-6); border-radius: var(--r-mediu); background: var(--c-alb); display: grid; gap: var(--s-3); align-content: start; box-shadow: var(--umbra-1); transition: transform .4s var(--e-iesire), box-shadow .4s; }
.proiect:hover { transform: translateY(-4px); box-shadow: var(--umbra-2); }
.proiect h3 { font-size: var(--step-2); }
.proiect p { color: var(--c-cerneala-2); font-size: 1rem; }
.proiect--negru { background: var(--c-negru); color: var(--c-lumina); }
.proiect--negru p { color: var(--c-lumina-2); }
.creion { display: inline-flex; align-items: center; gap: .5em; font-family: var(--f-mono); font-size: var(--step--2); letter-spacing: .08em; text-transform: uppercase; }
.creion::before { content: ""; width: 1.6em; height: .35em; background: linear-gradient(90deg, var(--c-hartie-2) 0 80%, var(--c-rosu) 80% 100%); border-radius: 1px; }
.documente { list-style: none; border-top: 1px solid var(--c-linie-tare); }
.documente a { display: flex; justify-content: space-between; gap: var(--s-4); padding: var(--s-4) 0; border-bottom: 1px solid var(--c-linie-tare); text-decoration: none; font-weight: 600; }
.documente a span { font-family: var(--f-mono); font-size: var(--step--2); letter-spacing: .06em; text-transform: uppercase; color: var(--c-cerneala-2); font-weight: 500; white-space: nowrap; }
.documente a:hover { color: var(--c-rosu-sala); }

/* =================================================================== PARTENERI */
.cifre-mari { list-style: none; display: grid; gap: var(--s-6) var(--s-5); grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
.cifre-mari li { border-top: 2px solid var(--c-cerneala); padding-top: var(--s-3); display: grid; gap: var(--s-2); }
.cifre-mari b { font-stretch: var(--w-lat); font-weight: 900; font-size: var(--step-6); line-height: .82; letter-spacing: -0.05em; font-variant-numeric: lining-nums; }
.cifre-mari li:nth-child(odd) b { color: var(--c-rosu); }
.cifre-mari li > span { color: var(--c-cerneala-2); font-size: 1rem; line-height: 1.35; }
.niveluri { list-style: none; display: grid; gap: 0; border-top: 1px solid var(--c-linie-tare); }
.nivel { display: grid; gap: var(--s-2) var(--s-6); padding: var(--s-5) 0; border-bottom: 1px solid var(--c-linie-tare); }
@media (min-width: 900px) { .nivel { grid-template-columns: 16rem 1fr; } }
.nivel h3 { font-stretch: var(--w-ingust); text-transform: uppercase; font-weight: 800; font-size: var(--step-3); line-height: 1; }
.nivel p { color: var(--c-cerneala-2); }

/* =================================================================== FORMULARE */
.formular { display: grid; gap: var(--s-4); max-width: 40rem; }
.camp { display: grid; gap: var(--s-2); }
.camp label { font-weight: 600; font-size: .98rem; }
.camp label span { font-weight: 400; color: var(--c-cerneala-2); }
.camp input, .camp select, .camp textarea { font: inherit; font-size: 1.05rem; padding: .85em 1em; border-radius: var(--r-mediu); border: 1.5px solid var(--c-linie-tare); background: var(--c-alb); color: var(--c-cerneala); width: 100%; }
.camp textarea { min-height: 8.5rem; resize: vertical; }
.camp input:focus, .camp select:focus, .camp textarea:focus { outline: 3px solid var(--c-rosu-actiune); outline-offset: 1px; border-color: var(--c-cerneala); }
.noapte .camp input, .noapte .camp select, .noapte .camp textarea { background: var(--c-negru-voal); color: var(--c-lumina); border-color: var(--c-linie-noapte); }
.noapte .acord, .noapte .camp label span { color: var(--c-lumina-2); }
[data-tema="noapte"] .sectiune-cap .lead, .noapte .sectiune-cap .lead { color: var(--c-lumina-2); }
.noapte .mesaj-formular { background: var(--c-lumina); color: var(--c-cerneala); }
.acord { display: flex; gap: var(--s-3); align-items: flex-start; font-size: .95rem; color: var(--c-cerneala-2); }
.acord input { width: 1.25rem; height: 1.25rem; margin-top: .2em; accent-color: var(--c-rosu-actiune); flex: none; }
.mesaj-formular { padding: var(--s-4); border-radius: var(--r-mediu); background: var(--c-cerneala); color: var(--c-lumina); }
.mesaj-formular[hidden] { display: none; }
.contact-grila { display: grid; gap: var(--s-8); }
@media (min-width: 1000px) { .contact-grila { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); } }
.contact-date { display: grid; gap: var(--s-6); align-content: start; }
.contact-date a.mare { font-stretch: var(--w-ingust); font-weight: 700; font-size: var(--step-3); text-decoration: none; line-height: 1.05; display: block; }
.contact-date a.mare:hover { color: var(--c-rosu-sala); }
.contact-date .eticheta { margin-bottom: var(--s-2); color: var(--c-cerneala-2); }

/* =================================================================== TEXT LUNG */
.text-lung { max-width: 44rem; display: grid; gap: var(--s-4); }
.text-lung h2 { font-size: var(--step-3); margin-top: var(--s-6); }
.text-lung ul { padding-left: 1.2em; display: grid; gap: var(--s-2); }
.text-lung table { width: 100%; font-size: .95rem; }
.text-lung th, .text-lung td { text-align: left; vertical-align: top; padding: var(--s-3) var(--s-3) var(--s-3) 0; border-bottom: 1px solid var(--c-linie); }
.text-lung th { font-weight: 650; }

/* ---------------------------------------------------- două coloane utile */
.doua { display: grid; gap: var(--s-7); }
@media (min-width: 1000px) { .doua { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; } }
.doua--sus { align-items: start; }
.lista-puncte { list-style: none; display: grid; gap: var(--s-3); }
.lista-puncte li { display: flex; gap: .7em; }
.lista-puncte li::before { content: ""; width: .55em; height: .55em; border-radius: 50%; background: var(--c-rosu); flex: none; margin-top: .55em; }
.foto-rotunjit { border-radius: var(--r-mediu); overflow: hidden; box-shadow: var(--umbra-2); }
.foto-rotunjit img { width: 100%; height: 100%; object-fit: cover; }

/* ============================================================== MIȘCARE REDUSĂ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .curg-pista { animation: none; }
  .curg-rand { width: auto; flex-wrap: wrap; }
  .curg-pista[aria-hidden="true"] { display: none; }
  @view-transition { navigation: none; }
}
