:root {
  --pruna: #891D5A;
  --pruna-inchis: #3A0F2B;
  --pruna-pal: #F5EAF0;
  --cerneala: #24161F;
  --text-secundar: #6A5A64;
  --linie: #E7DDE3;
  --hartie: #FBF8FA;
  --alb: #FFFFFF;
  --font-titlu: "Montserrat", "Segoe UI", Arial, sans-serif;
  --font-text: "Source Sans 3", "Segoe UI", Arial, sans-serif;
  --latime: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body {
  margin: 0;
  background: var(--hartie);
  color: var(--cerneala);
  font-family: var(--font-text);
  font-size: 18px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--font-titlu); letter-spacing: -0.015em; }
:focus-visible { outline: 3px solid var(--pruna); outline-offset: 3px; border-radius: 4px; }
.continut { max-width: var(--latime); margin: 0 auto; padding: 0 24px; }

/* Antet */
.antet {
  position: sticky; top: 0; z-index: 20;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--linie);
}
.antet .continut { display: flex; align-items: center; gap: 28px; height: 72px; }
.marca { display: flex; align-items: center; gap: 12px; text-decoration: none; flex: 0 0 auto; }
.marca img { height: 36px; width: auto; }
.marca span {
  font-family: var(--font-titlu); font-weight: 600; font-size: 0.95rem; color: var(--pruna);
  border-left: 1px solid var(--linie); padding-left: 12px; line-height: 36px;
}
.meniu { display: flex; gap: 24px; margin-left: auto; }
.meniu a { text-decoration: none; font-weight: 600; font-size: 0.95rem; color: var(--text-secundar); }
.meniu a:hover { color: var(--pruna); }
.selector-tara select {
  font: inherit; font-size: 0.92rem; color: var(--cerneala); background: var(--alb);
  border: 1px solid var(--linie); border-radius: 6px; padding: 6px 10px;
}
@media (max-width: 820px) {
  .meniu { display: none; }
  .selector-tara { margin-left: auto; }
}
@media (max-width: 480px) {
  .marca img { height: 28px; }
  .marca span { font-size: 0.85rem; padding-left: 10px; }
}

/* Butoane */
.buton, .buton-contur, .buton-deschis {
  display: inline-block; padding: 13px 24px; border-radius: 8px;
  font-family: var(--font-titlu); font-weight: 600; font-size: 0.95rem;
  text-decoration: none; border: 2px solid transparent; cursor: pointer;
}
.buton { background: var(--pruna); color: var(--alb); }
.buton:hover { background: var(--pruna-inchis); }
.buton-deschis { background: var(--alb); color: var(--pruna-inchis); }
.buton-deschis:hover { background: var(--pruna-pal); }
.buton-contur { border-color: rgba(255,255,255,0.5); color: var(--alb); }
.buton-contur:hover { border-color: var(--alb); }
.legatura-simpla { color: var(--pruna); font-weight: 600; text-decoration: none; }
.legatura-simpla:hover { text-decoration: underline; }
.actiuni { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* Prima secțiune */
.erou { background: var(--pruna-inchis); color: var(--alb); padding: 72px 0 80px; }
.erou-grila { display: grid; gap: 48px; align-items: center; }
@media (min-width: 960px) { .erou-grila { grid-template-columns: 1.25fr 1fr; gap: 72px; } }
.erou h1 {
  font-weight: 800; font-size: clamp(2.2rem, 4.8vw, 3.6rem); line-height: 1.08;
  margin: 0; letter-spacing: -0.025em; max-width: 15em;
}
.erou .intro { font-size: 1.15rem; color: rgba(255,255,255,0.82); max-width: 34em; margin: 24px 0 32px; }

.urmatorul {
  background: var(--alb); color: var(--cerneala); border-radius: 14px; padding: 28px;
  display: grid; grid-template-columns: 112px 1fr; gap: 8px 22px; align-items: center;
}
.urmatorul .titlu-mic { grid-column: 1 / -1; margin: 0 0 8px; font-weight: 600; color: var(--pruna); font-size: 0.95rem; }
.urmatorul img { width: 112px; animation: apasare 0.5s cubic-bezier(.2,.9,.3,1.3) 0.2s both; }
.urmatorul h2 { font-size: 1.3rem; line-height: 1.2; margin: 0; }
.urmatorul .cand { margin: 8px 0 0; font-weight: 600; }
.urmatorul .unde { margin: 0; color: var(--text-secundar); }
.urmatorul .actiuni { grid-column: 1 / -1; margin-top: 16px; }
@keyframes apasare { from { transform: scale(1.3) rotate(-8deg); opacity: 0; } to { transform: scale(1) rotate(-4deg); opacity: 1; } }

/* Secțiuni */
.sectiune { padding: 80px 0; }
.sectiune + .sectiune { border-top: 1px solid var(--linie); }
.sectiune > .continut > h2 { font-weight: 800; font-size: clamp(1.8rem, 3.4vw, 2.5rem); margin: 0 0 8px; }
.sectiune .explicatie { color: var(--text-secundar); margin: 0 0 40px; max-width: 38em; }

/* Calendar */
.calendar { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--cerneala); }
.calendar li { border-bottom: 1px solid var(--linie); }
.calendar a {
  display: grid; grid-template-columns: 76px 1fr; gap: 6px 24px; align-items: center;
  padding: 20px 0; text-decoration: none;
}
@media (min-width: 760px) { .calendar a { grid-template-columns: 96px 1fr 160px 110px; } }
.calendar .data { font-family: var(--font-titlu); line-height: 1; }
.calendar .zi { display: block; font-size: 2.3rem; font-weight: 800; color: var(--pruna); }
.calendar .luna { display: block; font-size: 0.85rem; font-weight: 600; color: var(--text-secundar); margin-top: 6px; }
.calendar h3 { font-size: 1.15rem; margin: 0; }
.calendar .detalii { margin: 2px 0 0; color: var(--text-secundar); font-size: 0.98rem; }
.calendar .oras { color: var(--text-secundar); grid-column: 2; }
.calendar .mai-mult { grid-column: 2; color: var(--pruna); font-weight: 600; font-size: 0.95rem; }
@media (min-width: 760px) {
  .calendar .oras, .calendar .mai-mult { grid-column: auto; }
  .calendar .mai-mult { text-align: right; }
}
.calendar a:hover h3 { color: var(--pruna); }
.gol { padding: 28px; background: var(--alb); border: 1px solid var(--linie); border-radius: 12px; max-width: 44em; }
.gol p { margin: 0; }

/* Evenimente pe categorii */
.categorie { display: grid; gap: 12px 48px; padding: 36px 0; border-top: 1px solid var(--linie); }
.categorie:first-of-type { border-top: 2px solid var(--cerneala); }
@media (min-width: 900px) { .categorie { grid-template-columns: 280px 1fr; } }
.categorie h3 { font-size: 1.25rem; margin: 0 0 6px; line-height: 1.25; }
.categorie header p { margin: 0; color: var(--text-secundar); font-size: 0.98rem; }
.lista { display: grid; gap: 16px; }
@media (min-width: 640px) { .lista { grid-template-columns: 1fr 1fr; } }
.eveniment {
  display: grid; grid-template-columns: 72px 1fr; gap: 16px; align-items: start;
  padding: 18px; background: var(--alb); border: 1px solid var(--linie); border-radius: 12px;
  text-decoration: none; transition: border-color 0.2s;
}
.eveniment:hover { border-color: var(--pruna); }
.eveniment img { width: 72px; }
.eveniment h4 { font-family: var(--font-titlu); font-size: 1.02rem; line-height: 1.25; margin: 2px 0 4px; }
.eveniment .slogan { margin: 0; color: var(--text-secundar); font-size: 0.96rem; line-height: 1.45; }
.eveniment .frecventa { margin: 8px 0 0; font-size: 0.88rem; font-weight: 600; color: var(--pruna); }

/* Parteneri */
.parteneri { background: var(--pruna); color: var(--alb); padding: 64px 0; }
.parteneri .continut { display: grid; gap: 24px 48px; align-items: center; }
@media (min-width: 900px) { .parteneri .continut { grid-template-columns: 1fr auto; } }
.parteneri h2 { font-weight: 800; font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 0 0 8px; }
.parteneri p { margin: 0; color: rgba(255,255,255,0.85); max-width: 40em; }

/* Grila partenerilor */
.grup-parteneri + .grup-parteneri { margin-top: 32px; }
.grup-parteneri h3 { font-size: 1rem; color: var(--text-secundar); font-weight: 600; margin: 0 0 14px; }
.parteneri-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
.parteneri-lista li > *, .parteneri-lista li > a {
  display: flex; align-items: center; justify-content: center; text-align: center;
  min-height: 96px; padding: 16px; background: var(--alb); border: 1px solid var(--linie); border-radius: 12px;
  font-family: var(--font-titlu); font-weight: 600; font-size: 0.92rem; line-height: 1.3; text-decoration: none;
}
.parteneri-lista a:hover { border-color: var(--pruna); }
.parteneri-lista img { max-height: 56px; width: auto; }
.parteneri-lista a img, .parteneri-lista a span { border: 0; padding: 0; min-height: 0; background: none; }

/* Pagina unui eveniment */
.fir { padding: 24px 0 0; font-size: 0.95rem; color: var(--text-secundar); }
.fir a { color: var(--text-secundar); text-decoration: none; }
.fir a:hover { color: var(--pruna); text-decoration: underline; }
.fisa { display: grid; gap: 32px 72px; padding: 32px 0 72px; align-items: start; }
@media (min-width: 900px) { .fisa { grid-template-columns: 340px 1fr; padding-top: 48px; } }
.fisa .logo-mare { width: min(100%, 340px); animation: apasare 0.5s cubic-bezier(.2,.9,.3,1.3) both; transform: rotate(-4deg); }
.fisa .categorie-mica { margin: 0 0 10px; font-weight: 600; color: var(--pruna); }
.fisa h1 { font-weight: 800; font-size: clamp(2.1rem, 4.6vw, 3.3rem); line-height: 1.05; margin: 0; letter-spacing: -0.025em; }
.fisa .subtitlu-mare { font-family: var(--font-titlu); font-weight: 500; font-size: 1.25rem; margin: 12px 0 0; }
.fisa blockquote {
  margin: 28px 0; padding: 4px 0 4px 20px; border-left: 4px solid var(--pruna);
  font-family: var(--font-titlu); font-weight: 600; font-size: clamp(1.25rem, 2.6vw, 1.6rem); line-height: 1.3;
}
.fisa .descriere { max-width: 36em; margin: 0 0 32px; font-size: 1.1rem; }
.date { max-width: 36em; margin: 0 0 32px; border-top: 2px solid var(--cerneala); }
.date div { display: flex; gap: 16px; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--linie); }
.date dt { color: var(--text-secundar); }
.date dd { margin: 0; font-weight: 600; text-align: right; }
.editii h2, .inscriere h2 { font-size: 1.35rem; margin: 0 0 16px; }
.editii { margin: 0 0 40px; max-width: 36em; }
.editii ul { list-style: none; margin: 0; padding: 0; }
.editii li { padding: 12px 0; border-bottom: 1px solid var(--linie); }
.editii strong { font-family: var(--font-titlu); }
.editii span { display: block; color: var(--text-secundar); font-size: 0.96rem; }
.nota { color: var(--text-secundar); margin: 0; }

.inscriere { background: var(--alb); border: 1px solid var(--linie); border-radius: 14px; padding: 28px; max-width: 40em; }
.inscriere p.explicatie { margin: 0 0 20px; color: var(--text-secundar); }
.campuri { display: grid; gap: 16px; }
@media (min-width: 640px) { .campuri { grid-template-columns: 1fr 1fr; } .campuri .lat { grid-column: 1 / -1; } }
.campuri label { display: grid; gap: 6px; font-weight: 600; font-size: 0.95rem; }
.campuri input, .campuri select, .campuri textarea {
  font: inherit; font-weight: 400; color: var(--cerneala); background: var(--hartie);
  border: 1px solid var(--linie); border-radius: 8px; padding: 11px 12px; width: 100%;
}
.campuri input:focus, .campuri select:focus, .campuri textarea:focus { outline: 2px solid var(--pruna); outline-offset: 0; border-color: var(--pruna); }
.inscriere .actiuni { margin-top: 20px; }
.inscriere .confirmare { margin: 16px 0 0; color: var(--pruna); font-weight: 600; }
.descarca { display: inline-block; margin-top: 24px; font-size: 0.95rem; }

/* Distribuire și rețele sociale */
.distribuie { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: -8px 0 28px; }
.distribuie span { color: var(--text-secundar); font-size: 0.92rem; margin-right: 4px; }
.distribuie a, .distribuie button {
  font: inherit; font-size: 0.88rem; font-weight: 600; color: var(--pruna); text-decoration: none;
  padding: 6px 12px; border: 1px solid var(--linie); border-radius: 999px; background: var(--alb); cursor: pointer;
}
.distribuie a:hover, .distribuie button:hover { border-color: var(--pruna); }
.retele { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 14px; margin-top: 10px; }
.subsol .retele a { font-weight: 600; }

/* Subsol */
.subsol { background: var(--alb); border-top: 1px solid var(--linie); padding: 40px 0 48px; color: var(--text-secundar); font-size: 0.95rem; }
.subsol .continut { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; }
.subsol img { height: 72px; width: auto; }
.subsol .contact { text-align: right; }
.subsol .contact a { color: var(--pruna); font-weight: 600; text-decoration: none; }

.aviz { margin: 0 0 24px; padding: 14px 18px; border-radius: 10px; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.3); max-width: 40em; }
.eroare { padding: 80px 0; max-width: 40em; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .urmatorul img, .fisa .logo-mare { animation: none; }
}
