/* ==========================================================================
   BAZA — reset si tipografie
   Resetul e transpus din blocul <style> al fisierelor de referinta.
   ========================================================================== */

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

body {
  margin: 0;
  background: var(--ivory);
  color: var(--carbune);
  font-family: var(--font-text);
  /* Fara font-size si fara line-height pe body: in referinta cascada porneste
     de la valorile implicite ale browserului, iar secțiunea 2 atribuie
     clamp(15.5px,1.3vw,17px) / 1.65 explicit paragrafului. Puse pe body,
     ar fi mostenite de butoane si de navigatie si le-ar schimba geometria.
     Fara line-height pe body: in referinta cascada porneste de la `normal`,
     iar 1.65 este atribuit explicit paragrafelor (sectiunea 2). Daca il punem
     aici, il mostenesc butoanele si cresc cu ~4px fata de referinta. */
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--verde-profund); text-decoration: none; }

/* Campurile de formular mostenesc fontul si dimensiunea, ca in referinta
   (corectie primita dupa Etapa 3: regula lipsea din fisierele generate). */
input, select, textarea, button { font-family: inherit; font-size: inherit; }

img, svg { display: block; max-width: 100%; }

/* Acordeonul FAQ foloseste <details>/<summary> — vezi blocul faq */
summary { list-style: none; cursor: pointer; min-width: 0; }
summary::-webkit-details-marker { display: none; }
details[open] .om-faq-plus { transform: rotate(45deg); }

/* Slot de imagine, pana la incarcarea fotografiilor reale */
.img-placeholder {
  display: flex; align-items: center; justify-content: center; text-align: center;
  background: #E4E2DC; border: 1px dashed var(--auriu); color: var(--text-secundar);
  font-size: 12.5px; line-height: 1.5; padding: 18px;
}

/* --- Titluri ---------------------------------------------------------- */
h1, h2, h3, h4 { margin: 0; font-family: var(--font-titlu); text-wrap: pretty; }

h1 {
  font-weight: 300;
  font-size: var(--fs-h1);
  line-height: 1.08;
  letter-spacing: var(--ls-h1);
  color: var(--verde-profund);
}
.is-homepage h1 { font-size: var(--fs-h1-homepage); }

h2 {
  font-weight: 300;
  font-size: var(--fs-h2);
  line-height: 1.16;
  letter-spacing: var(--ls-h2);
  color: var(--verde-profund);
}
/* Variantele de H2 din referinta. Baza = clamp(27px,3.3vw,39px) din sectiunea 2. */
.h2--mare { font-size: clamp(28px, 3.5vw, 42px); line-height: 1.15; }   /* varianta dominanta pe homepage */
.h2--xl   { font-size: clamp(29px, 3.7vw, 44px); line-height: 1.13; letter-spacing: -0.018em; }
.h2--mic  { font-size: clamp(26px, 3.1vw, 36px); line-height: 1.16; }

/* Cuvintele evidentiate din titluri: doar italic, fara alta schimbare
   de culoare sau greutate. */
h1 em, h2 em, h3 em { font-style: italic; font-weight: inherit; color: inherit; }

/* H3 de card (Newsreader 400) vs H3 de lista (Manrope 600) */
.h3-card  { font-family: var(--font-titlu); font-weight: 400; font-size: var(--fs-h3-card); color: var(--verde-profund); }
.h3-lista { font-family: var(--font-text);  font-weight: 600; font-size: var(--fs-h3-lista); color: var(--carbune); }

/* --- Text ------------------------------------------------------------- */
p { margin: 0; line-height: var(--lh-paragraf); }
.paragraf { font-size: var(--fs-paragraf); line-height: var(--lh-paragraf); color: var(--text-mediu); }
.nota     { font-size: var(--fs-nota); line-height: 1.55; color: var(--text-secundar); }

/* Eticheta de sectiune. Baza = varianta cea mai frecventa din referinta
   (10.5px / 0.3em / --auriu-eticheta). Variantele suprascriu doar ce difera. */
.eticheta {
  --et-fs: var(--fs-eticheta);
  --et-ls: var(--ls-eticheta);
  --et-col: var(--auriu-eticheta);
  font-family: var(--font-text);
  font-weight: 700;
  font-size: var(--et-fs);
  letter-spacing: var(--et-ls);
  text-transform: uppercase;
  color: var(--et-col);
}
.eticheta--ls18   { --et-ls: 0.18em; --et-col: var(--auriu); }
.eticheta--ls20   { --et-ls: 0.2em; }
.eticheta--ls22   { --et-fs: 10px; --et-ls: 0.22em; --et-col: var(--auriu-pe-verde); }
.eticheta--ls24   { --et-ls: 0.24em; }
.eticheta--ls26   { --et-ls: 0.26em; }
.eticheta--mica   { --et-fs: 10px;  --et-ls: 0.2em; }
.eticheta--11     { --et-fs: 11px;  --et-ls: 0.2em; --et-col: var(--auriu); }
.eticheta--pe-verde { --et-col: var(--auriu-pe-verde); }

/* Eticheta precedata de o linie scurta aurie */
.eticheta-linie { display: flex; align-items: center; gap: 13px; flex-wrap: wrap; }
.eticheta-linie::before {
  content: ''; width: 30px; height: 1px; background: var(--auriu); flex-shrink: 0;
}

/* --- Layout ----------------------------------------------------------- */
.container { max-width: var(--container); margin: 0 auto; padding: 0 clamp(20px, 4.5vw, 40px); }
.sectiune  { padding: var(--pad-sectiune); }

/* Grilele sunt fluide, fara breakpoint-uri rigide. */
.grid-fluid { display: grid; gap: clamp(16px, 2vw, 28px); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--col, 300px)), 1fr)); }
/* Coloanele fixe au nevoie de minmax(0,…) + min-width:0, altfel imaginile ies din coloana. */
.col-fix { min-width: 0; }

/* --- Accesibilitate --------------------------------------------------- */
:focus-visible { outline: 2px solid var(--auriu); outline-offset: 3px; }
/* Campurile de formular au offsetul lor, mai mic — valoarea din referinta. */
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--auriu); outline-offset: 2px;
}
.sr-only {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px,1px,1px,1px); white-space: nowrap;
}

/* --- Miscare redusa ----------------------------------------------------
   Cine cere din sistem mai putina miscare primeste continutul instant.
   Nimic din site nu depinde de animatie pentru a fi inteles sau folosit —
   vezi sectiunea 13 din homepage.css. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
