/* ---------------------------------------------------------------------------
   Ajustari aplicate peste build-ul original.
   Acest site e un mirror static: bundle-ul e minificat si nu are sursa
   editabila, deci modificarile de aspect se fac aici, ca override.
   Incarcat DUPA /assets/index-*.css, deci castiga la specificitate egala.
   --------------------------------------------------------------------------- */

/* 1. Spatiu pentru diacritice ------------------------------------------------
   Originalul folosea line-height:1.04 pe titluri. La 5.9rem, circumflexul lui
   "Î" si virgulele de sub "ș/ț" ies din caseta de linie: se taie sus si se
   ating de randul urmator. 1.15 le da aer fara sa schimbe caracterul compact. */
.display {
  line-height: 1.15;
}

/* Ascenderele randului de sus pot depasi caseta; fara asta, un parinte cu
   overflow ascuns le retezeaza. */
h1.display,
h2.display {
  padding-top: 0.06em;
}

/* Textul curent primeste si el putin spatiu, cum s-a cerut. */
.course-intro .lead,
.contact-hero > .container > p:not(.eyebrow),
.section-heading > p {
  line-height: 1.68;
}

/* 2. Header lipit sus --------------------------------------------------------
   `.site-page` avea `overflow:clip`, pus ca sa taie orice depasire pe
   orizontala. Dar `position:sticky` nu functioneaza intr-un strameos cu
   overflow taiat: elementul se raporteaza la acel container, nu la fereastra,
   deci ar fi parut aplicat fara sa faca nimic.
   `overflow-x:clip` + `overflow-y:visible` pastreaza taierea pe orizontala si
   redau sticky-ul. (Combinatia e valida doar cu `clip`; cu `hidden` browserul
   ar forta cealalta axa la `auto`.) */
.site-page {
  overflow-x: clip;
  overflow-y: visible;
}

.site-header {
  position: sticky;
  top: 0;
  /* peste continut, dar sub panoul mega-meniului (z-index 40, descendent) */
  z-index: 30;
  transition: box-shadow 0.3s ease, height 0.3s ease;
}

/* Umbra apare doar dupa ce pagina a fost derulata, ca sa nu incarce antetul
   cand stai in capul paginii. Clasa e pusa de enhance.js. */
.site-header.is-stuck {
  box-shadow: 0 10px 30px #17233417;
}

/* Ancorele (#programe, #oferta, ...) ar ajunge sub antetul lipit. */
section[id],
div[id]:not(#root) {
  scroll-margin-top: 104px;
}

@media (max-width: 720px) {
  section[id],
  div[id]:not(#root) {
    scroll-margin-top: 86px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header { transition: none; }
}

/* 3. Semnatura din footer ----------------------------------------------------
   Injectata de /enhance.js in .footer-bottom. */
/* `.footer-bottom a` din build-ul original impune underline pe orice link;
   il anulam cu specificitate mai mare si pastram doar linia animata. */
.footer-bottom a.emence-credit,
.footer-bottom a.emence-credit:hover {
  text-decoration: none;
}

.emence-credit {
  /* ocupa un rand propriu sub textele legale, cu continutul aliniat la dreapta
     ca o semnatura. `justify-content` face alinierea, nu `margin-left:auto`,
     care n-ar avea efect pe un element ce oricum umple randul. */
  flex-basis: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: baseline;
  gap: 6px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid #ffffff12;
  font-size: 0.7rem;
  letter-spacing: 0.01em;
  color: #ffffff5c;

  /* intrarea: apare discret, o singura data */
  opacity: 0;
  transform: translateY(6px);
  animation: emence-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.35s forwards;
}

.emence-credit:hover,
.emence-credit:focus-visible {
  color: #ffffff8a;
}

.emence-credit__name {
  position: relative;
  font-weight: 700;
  color: #ffffff9e;
  transition: color 0.35s ease;
}

/* linia care creste de la stanga la dreapta */
.emence-credit__name::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 1px;
  background: linear-gradient(90deg, var(--signal, #d94d32), var(--mustard, #e8b84f));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.emence-credit:hover .emence-credit__name::after,
.emence-credit:focus-visible .emence-credit__name::after {
  transform: scaleX(1);
}

/* la hover, numele primeste o trecere calda de culoare */
.emence-credit:hover .emence-credit__name,
.emence-credit:focus-visible .emence-credit__name {
  color: var(--mustard, #e8b84f);
}

/* punct mic care pulseaza incet, ca un semn de viata */
.emence-credit__dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--signal, #d94d32);
  align-self: center;
  animation: emence-pulse 2.8s ease-in-out infinite;
}

.emence-credit:focus-visible {
  outline: 2px solid var(--mustard, #e8b84f);
  outline-offset: 4px;
  border-radius: 2px;
}

@keyframes emence-in {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes emence-pulse {
  0%, 100% { opacity: 0.45; transform: scale(1); }
  50%      { opacity: 1;    transform: scale(1.35); }
}

/* pe mobil footer-bottom devine display:block, deci semnatura sta la stanga */
@media (max-width: 720px) {
  .emence-credit {
    justify-content: flex-start;
    margin-top: 16px;
  }
}

/* Respecta setarea de sistem pentru miscare redusa. */
@media (prefers-reduced-motion: reduce) {
  .emence-credit {
    opacity: 1;
    transform: none;
    animation: none;
  }
  .emence-credit__dot { animation: none; opacity: 0.7; }
  .emence-credit__name::after { transition: none; }
}
