/* ============================================================
   CONTINUT SCRIS DE CLIENT
   ============================================================

   DE CE EXISTA ACEST FISIER:
   `base.css` reseteaza elementele pentru INTERFATA — `li { list-style: none }`
   pentru ca meniurile, grilele de produse si filtrele sunt toate liste, iar
   acolo bulinele n-au ce cauta. Reset-ul e corect, dar se aplica si textului pe
   care il scrie clientul: listele din politica de retur ramaneau fara buline si
   nealiniate, titlurile lipite de paragrafe, iar LINKURILE INVIZIBILE — negre,
   fara subliniere. Cineva care citeste politica de confidentialitate nu vedea
   ca „ANSPDCP" e link. Asta nu e doar urat, e problema de accesibilitate.

   ACELASI FISIER AJUNGE SI IN EDITOR. Vezi `ectheme_stiluri_editor()` din
   functions.php: prefixul de mai jos e inlocuit cu `body`, iar editorul
   inlocuieste el `body` cu containerul lui. De aceea fisierul e o singura sursa
   de adevar si nu se poate desincroniza — clientul vede la editare exact ce va
   vedea vizitatorul. (Inlocuirea trece si peste comentarii, deci aici nu se
   scrie numele clasei.)

   NU se aplica pe cos si checkout: acolo continutul e blocuri WooCommerce cu
   layout propriu, iar o latime de 68 de caractere ar strivi tabelul cosului.
   Clasa se pune din page.php doar unde continutul e text.

   DAR EXCLUDEREA DUPA TIP DE PAGINA NU E DE AJUNS, si asta m-a costat un bug:
   pagina /oferte/ e o pagina obisnuita — deci primeste clasa — si contine
   scurtatura `[sale_products]`. Grila de produse a ajuns strivita la 643px in
   loc de 1168, cardurile au primit buline, iar LINKURILE si BUTOANELE din ele
   au iesit rosii si subliniate.

   De aceea fiecare regula de mai jos poarta `:not(.products, .products *)`:
   se exclude dupa CE E continutul, nu dupa pe ce pagina se afla. E preferabila
   unui bloc de anulare la final — o regula care nu se aplica niciodata nu se
   poate desincroniza de una care o anuleaza. Garda 16 din tests/test-theme.sh
   verifica sa nu se uite la urmatoarea regula adaugata. */

/* Latimea se pune pe ELEMENTE, nu pe container: altfel s-ar ingusta si
   imaginile late sau blocurile pe toata latimea, pe care clientul le poate
   folosi. 68 de caractere e intervalul de lizibilitate masurat pentru text
   continuu; la 1168px ajungeam la 160. */
.site-prose :is(p, ul, ol, h2, h3, h4, blockquote, table, figcaption):not(.products, .products *) {
  max-width: 68ch;
}

.site-prose h2:not(.products, .products *) {
  margin: var(--s-6) 0 var(--s-3);
  font-size: var(--wp--preset--font-size--lg, 1.25rem);
}

.site-prose h3:not(.products, .products *) {
  margin: var(--s-5) 0 var(--s-2);
  font-size: var(--wp--preset--font-size--md, 1.0625rem);
}

/* Primul titlu al paginii vine imediat sub `h1`, deci nu are nevoie de spatiu
   deasupra. */
.site-prose > :first-child:not(.products, .products *) {
  margin-top: 0;
}

.site-prose p:not(.products, .products *) {
  margin: 0 0 var(--s-3);
  line-height: 1.65;
}

.site-prose ul:not(.products, .products *),
.site-prose ol:not(.products, .products *) {
  margin: 0 0 var(--s-4);
  padding-left: 1.35em;
}

.site-prose li:not(.products, .products *) {
  margin-bottom: var(--s-1);
  line-height: 1.6;
  list-style: disc;
}

.site-prose ol li:not(.products, .products *) {
  list-style: decimal;
}

/* Linkul din text trebuie sa se vada FARA culoare: la 8% dintre barbati culorile
   nu se disting, iar WCAG 1.4.1 cere sa nu fie culoarea singurul indiciu.
   Sublinierea decalata cu 2px nu taie coada literelor „g" si „y". */
.site-prose a:not(.products, .products *) {
  color: var(--c-action);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.site-prose a:not(.products, .products *):hover {
  color: var(--c-action-dark);
}

.site-prose strong:not(.products, .products *) {
  font-weight: 600;
}

.site-prose code:not(.products, .products *) {
  padding: 0.1em 0.35em;
  border-radius: var(--radius-sm);
  background: var(--c-surface);
  font-size: 0.9em;
}

.site-prose blockquote:not(.products, .products *) {
  margin: 0 0 var(--s-4);
  padding-left: var(--s-4);
  border-left: 3px solid var(--c-line);
}

.site-prose table:not(.products, .products *) {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: var(--s-4);
}

.site-prose :is(th, td):not(.products, .products *) {
  padding: var(--s-2) var(--s-3);
  border-bottom: 1px solid var(--c-line);
  text-align: left;
}

/* Imaginile puse de client in continut. `base.css` le da deja `display: block`,
   aici primesc doar aer si colturi. */
.site-prose :is(img, .wp-block-image):not(.products, .products *) {
  margin-bottom: var(--s-4);
  border-radius: var(--radius-sm);
}
