/* ==========================================================================
   Tipografija i boje, mjerene iz PDF-a.

   Zaseban fajl iz istog razloga kao `razmaci.css`: paralelan rad bez sudara.

   RED UCITAVANJA (functions.php, smile_assets):
       tokens, fonts, components, main, header, footer, form,
       sections, razmaci, TIPOGRAFIJA, layout-a, layout-b

   Dakle POSLIJE `sections.css`, ali PRIJE `layout-a.css` i `layout-b.css`.
   Kod jednake specificnosti ovaj fajl tuce `sections.css` a GUBI od layouta.
   Prije svakog pravila ovdje treba provjeriti dira li isti selektor neki
   layout: ako dira, pravilo ovdje nece nista promijeniti. Klasa se tada
   udvaja (`.x.x`), kao sto je vec radeno za `.fw-*` u `sections.css`.

   Ovdje ide samo velicina i debljina pisma, prored unutar bloka, i boja
   teksta ili plohe. Raspored i razmaci ne pripadaju ovdje.

   ---------------------------------------------------------------------------
   KAKO JE PROROD IZMJEREN

   `pdf-json` ne nosi popis redaka nego `lines`, `y`, `bottom` i `size`. Na
   2054 jednoredna bloka kroz svih 45 PDF-ova vrijedi tocno

       height = 1.4 x size

   dakle `height` je okvir SLOGA, ne okvir retka. Za blok od N redaka onda je

       korak = (height - 1.4 x size) / (N - 1)

   i taj korak je razmak od osnovne crte do osnovne crte — tocno ono sto CSS
   zove `line-height` u pikselima.

   ZAMKA: korak NIJE `height / lines`. Kod naslova od 51 px u cetiri retka ta
   racunica daje 58 px previse — vise od cijelog jednog retka. Alat je
   `deploy/qa/tipo_skala.py`; `--provjeri` ponovo izmjeri odnos 1,4.

   IZMJERENA SKALA DIZAJNA (najcesci korak po velicini, broj uzoraka):
       8 -> 14 (37)    14 -> 22 (673)   22 -> 28 (43)    38 -> 36 (85)
      13 -> 13 (3)     16 -> 20 (154)   24 -> 30 (71)    40 -> raspršen
      20 -> 25 (14)    25 -> 26 (50)    51 -> 54 (1)

   Kod 16 px dizajn NEMA jedan korak nego tri, po ULOZI teksta:
       Light / Medium, obicno       -> 20   (85 uzoraka)
       SemiBold                     -> 21   (14 uzoraka)
       Bold, i Light u boji naglaska-> 22   (29 uzoraka)
   Zato `sections.css` s jedinstvenih 20 pogada 85 a promasuje 43 bloka, i
   zato su ovdje dodana pravila uvjetovana tezinom i bojom, a ne velicinom.

   ---------------------------------------------------------------------------
   STO OVDJE NAMJERNO NIJE

   * Prored od 40 px. Dizajn ga ima 35, 36, 38, 39, 45 i 48 na raznim
     stranicama; jedne vrijednosti nema. Nagadanje bi pomaklo 15 blokova bez
     osnova, pa ostaje kako je.
   * Velicina koju nosi oznaka iz sadrzaja (`fs-16`). Od 136 spanova s
     `fs-16` dizajn ih 76 zaista ima na 16 px a 44 na 14. Pravilo koje bi
     `.fs-16` spustilo popravilo bi 44 a pokvarilo 76 — to je greska SIJACA
     i popravljena je u `deploy/seed/**` (`deploy/qa/tipo_oznake.py`).
   * Tjelesni prored 1,571. Na 14 px daje tocno 22, koliko dizajn i trazi, i
     tako je ispravan na 442 izmjerena bloka. Ne dira se.
   ========================================================================== */

/* --------------------------------------------------------------------------
   PODEBLJANO U TEKSTU = Poppins Bold (700)

   Preglednik za `<strong>`/`<b>` daje `font-weight: bolder`, a „bolder" od
   Light (300) je 400 — dakle obično slovo, ne podebljano. Izmjereno kroz
   svih 33 PDF-a: u blokovima Light teksta istaknuti dijelovi iste veličine
   su Poppins-Bold na 31 mjestu (npr. „Smile utilizza esclusivamente impianti
   Straumann", „Competenza riconosciuta:", „IMPIANTI NO BONE"), SemiBold
   samo u danima u podnožju (koje ima svoju klasu `is-days`), a Medium samo
   u uvodu kartice povjerenja (klasa `fw-500`). Klase `.fw-*` su jače od
   ovog pravila elementa, pa one i dalje vrijede.
   -------------------------------------------------------------------------- */
strong,
b { font-weight: var(--fw-bold); }

/* --------------------------------------------------------------------------
   1. BOJA TAMNOG TEKSTA

   `.c-dark` je davao `var(--c-bg)` = #0b0a0a, boju POZADINE STRANICE. To je
   289 blokova na 30 stranica, i nijedan nije tocan: #0b0a0a se ni jednom ne
   pojavljuje kao boja teksta ni u jednom od 45 PDF-ova. Dizajn tamni tekst
   ima na #000000, 360 puta.

   Nije geometrija, pa nije pod @media.

   Ista greska, ali izvan klase iz sadrzaja: `var(--c-bg)` se koristi i kao
   "tamni tekst na svijetloj plohi" na pet mjesta u `sections.css`. To je 187
   blokova koji ne nose nikakvu oznaku boje — dolaze iz teme sekcije ili iz
   bijele kartice, pa ih `.c-dark` ne moze dohvatiti.

   Pozadina stranice i tamni tekst NISU ista boja i ne smiju dijeliti token:
   pozadina je #0b0a0a, tekst je #000000. Dok su dijelili token, svaka
   svijetla sekcija je nosila tekst u boji koje u dizajnu nema.
   -------------------------------------------------------------------------- */
.sec--light,
.sec--light .sec__title,
.sec--light .sec__lead,
.sec--light .sec__text,
.sec .trust__card,
.trust__card { color: #000; }

/* --------------------------------------------------------------------------
   1b. OZNAKA BOJE IZ SADRZAJA TUCE TEMU SEKCIJE

   Ovo je popravak MOJE greske iz `e2a5d85`, i mjeri se na 34 bloka.

   `sections.css` ima oba pravila: `.sec--light .sec__title` (red 40) i
   `.c-accent.c-accent` (red 1524). Oba su specificnosti 0-2-0, pa je kod
   jednake tezine odlucivao REDOSLIJED — a oznaka iz sadrzaja stoji NIZE i
   time je pobjedivala. Naslov s `c-accent` u svijetloj sekciji bio je
   #009dc9, tocno kako dizajn trazi.

   Kad je pravilo `.sec--light …` gore prepisano u OVAJ fajl, koji se ucitava
   poslije `sections.css`, ista specificnost je odjednom padala na moju
   stranu i svaki takav naslov je postao #000000. Mjerenje na kodu a4606cc:
   34 bloka na 24 stranice, sva s klasom `c-accent`, svugdje #000000 umjesto
   #009dc9. Popravak jedne skupine (289 blokova `.c-dark`) je time otvorio
   drugu — greska se ne vidi iz samog fajla, nego tek iz reda ucitavanja.

   Zato oznake boje iz sadrzaja dolaze OVDJE, ispod `.sec--light`. Tema
   sekcije je zadana vrijednost; oznaka u sadrzaju je izricita namjera
   urednika i mora je tuci, bez obzira na to koji fajl dodje zadnji.

   `.c-dark` je ovdje iz istog razloga (bio je zaseban red iznad, pa ga je
   `.sec--light` tukao — nije se vidjelo jer obje daju #000).
   -------------------------------------------------------------------------- */
.c-accent.c-accent { color: var(--c-accent); }
.c-white.c-white   { color: var(--c-white); }
.c-dark.c-dark     { color: #000; }
/* Zelena iz menija „Stili" je do sada postojala samo u `sections.css`, pa ju
   je `.sec--light …` iznad (ista specificnost, kasniji fajl) tukao: na
   svijetloj sekciji zeleni naslov je ostajao crn. Sadržaj je danas nigdje ne
   koristi, pa se ništa postojeće ne pomjera. */
.c-green.c-green   { color: var(--c-green); }
/* Debljine 800/900 iz menija „Stili". Klasa se ne pojavljuje ni u jednom
   postojećem sadržaju; pismo ima rez 900 (fonts.css), 800 pada na njega. */
.fw-800.fw-800 { font-weight: 800; }
.fw-900.fw-900 { font-weight: 900; }

@media (min-width: 1024px) {

  /* ------------------------------------------------------------------------
     2. NASLOVI KOJI SU NASLIJEDILI TJELESNI PROROD

     Element bez vlastitog `line-height` uzima 1,571 s <body>. To je omjer
     TIJELA TEKSTA i na 14 px je tocan, ali na svakoj drugoj velicini je
     prelabav:

         16 px -> 25,1   dizajn 20-22   (129 blokova)
         22 px -> 34,6   dizajn 28      ( 16 blokova)
         24 px -> 37,7   dizajn 30      (  3 bloka)

     Naslov je pritom najgore mjesto za gresku u proredu: svaki visak se
     mnozi s brojem redaka i onda pomjera SVE ispod njega.

     1,25 pogada 16 -> 20 i 24 -> 30 tocno, a 22 -> 27,5 uz dizajnerskih 28,
     dakle unutar tolerancije od 1 px. Imenovani naslovi ispod imaju svoje
     tocne vrijednosti i tuku ovo pravilo specificnoscu.
     ------------------------------------------------------------------------ */
  /* Rezerva vrijedi za SVE nivoe osim prvog, ne samo za `h3`.
     Nivo naslova vise ne odreduje dizajn nego struktura dokumenta:
     `smile_popravi_nivoe()` poravnava preskoke na gotovom ispisu, pa isti
     naslov moze biti `h2` na jednoj a `h3` na drugoj stranici. Dok je rezerva
     stajala samo na `h3`, takva zamjena je mijenjala IZGLED — sedma smjena
     nezavisne kontrole je izmjerila „Poliklinika Smile" na `/contatto/`:
     isti element i iste klase, a prored 25,136 px kao `h2` naspram 20 kao
     `h3`. Time je i tvrdnja „izgled se ne mijenja, velicina dolazi iz klasa"
     bila netacna za prored.

     Ista zamjena je vec ranije napravila razliku od 7,06 px na
     `two-col__title` (prvi naslov `h2` 34,562, sestrinski `h3` 27,5) — dakle
     kvar je postojao i prije poravnavanja nivoa, samo se nije imenovao.
     `h1` ostaje izvan: heroji imaju svoja pravila. */
  h2, h3, h4, h5, h6 { line-height: 1.25; }
  dt { line-height: 1.25; }

  /* ------------------------------------------------------------------------
     3. IMENOVANI NASLOVI S POZNATOM VELICINOM

     Ovdje se velicina ne moze procitati iz selektora, pa svaki nosi svoj
     izmjereni omjer.
     ------------------------------------------------------------------------ */

  /* 38 px. `sections.css` daje 1,15 = 43,7 px; dizajn ima 36 na svih 85
     izmjerenih uzoraka, bez ijednog izuzetka. Naslov u cetiri retka je
     zbog toga bio 23 px previsok. */
  .hero-card__title { line-height: 0.9474; }

  /* 16 px, Light, u boji naglaska (`sections.css` red 488). Dizajn na
     16 px u boji naglaska ima 22, na svih 23 uzorka. */
  .media-text__col-title { line-height: 1.375; }

  /* `.cols__title` ima tri velicine i svaka svoj korak:
       16 px verzalom, Bold, u boji naglaska -> 22
       22 px (`.cols--t22`)                  -> 28
       25 px (`.cols--t24`)                  -> 26, to vec radi `layout-a.css`
     Zato su navedene dvije, a treca se namjerno ne dira. */
  .cols__title { line-height: 1.375; }
  .cols--t22 .cols__title { line-height: 1.2727; }

  /* `.two-col__title` je bila JEDINA klasa naslova bez vlastitog omjera, pa
     joj je prored ovisio o tome sta je sijac upisao u sadrzaj: 27,5 px kad
     naslov nema klasu velicine (rezerva `h2..h6` gore, 22 x 1,25), a 27,999
     kad nosi `.fs-22`. Izmjereno na `/digital-smile-design-per-il-sorriso-
     perfetto/` (27,5) naspram `/innesto-osseo-dentale-rialzo-del-seno-
     mascellare/` (27,9994) — isti naslov u dizajnu, dvije razlicite visine
     retka na sajtu. Nasla osma smjena nezavisne kontrole.

     Prored NIJE izveden iz velicine pisma nego IZMJEREN iz PDF-ova: za
     blokove od 22 px s vise redaka korak je (visina - visina jednorednog
     bloka iste velicine) / (redaka - 1). Kroz svih 46 PDF-ova to daje 28,00
     px na 37 blokova, bez ijednog izuzetka. Preostalih 6 blokova od 22 px
     ima korak 24 i to su podnaslovi heroja — vec imenovani nize kao
     `.hero__subtitle.fs-22`.

     Ovaj naslov u dizajnu dolazi i na 24 px (`01-clinica-clinica` sek2,
     `04-clinica-straumann` sek4) i na 16 px (`02-…-ponti-dentali` sek2,
     `03-clinica-laboratorio…` sek4). To NIJE drugo pravilo za isti naslov
     nego druga velicina iz sadrzaja: takav naslov nosi `.fs-24` odnosno
     `.fs-16`, a te klase su udvojene (0-2-0) i tuku ovo pravilo (0-1-0).
     Njihov prored je zasebno izmjeren i vec tacan — 24 px ima korak 30,00
     na svih 71 viserednom bloku, koliko daje `.fs-24` s 1,25. Zato ovdje
     stoji samo mjera za 22 px i polje po sekciji nije potrebno. */
  .two-col__title { line-height: 1.2727; }   /* 28 px, 37 uzoraka */

  /* ------------------------------------------------------------------------
     4. OZNAKE IZ SADRZAJA, UVJETOVANE ULOGOM

     `sections.css` svakoj `.fs-NN` daje jedan prored. Na 16 px dizajn ih ima
     tri, pa ovdje dolaze dva izuzetka. Klase su udvojene iz istog razloga
     kao tamo — da imaju specificnost dvije klase; kod jednake specificnosti
     odlucuje redoslijed, a ovaj fajl se ucitava poslije.
     ------------------------------------------------------------------------ */
  .fs-16.fw-600 { line-height: 1.3125; }   /* 21 px, 14 uzoraka */
  .fs-16.fw-700 { line-height: 1.375; }    /* 22 px,  6 uzoraka */
  .fs-16.c-accent { line-height: 1.375; }  /* 22 px, 23 uzorka  */

  /* ------------------------------------------------------------------------
     5. NASLOV CIJU VELICINU ODREDUJE OZNAKA IZ SADRZAJA

     Ovo je zamka koja se ne vidi iz `getComputedStyle`. Naslov `.sec__title`
     je 40 px s proredom 1,125, dakle njegov STRUT je 45 px. Kad u njemu
     stoji `<span class="fs-38">`, span dobije svoju velicinu i svoj prored
     (38 / 36) — i `getComputedStyle(span).lineHeight` posteno javlja 36. Ali
     visina retka je NAJVECA od struta bloka i okvira svih umetaka u njemu,
     pa redak i dalje bude 45 px visok. Izmjeren korak je 45, a procitani
     `line-height` 36; vjeruje se izmjerenom.

     Lijek je da naslov uzme velicinu i prored one oznake koju nosi — tocno
     ono sto `smile_heading()` radi kad span obuhvata cijeli tekst, a ovdje
     ga ne radi. Vrijednosti su iste kao u `sections.css` za te klase.
     ------------------------------------------------------------------------ */
  .sec__title:has(> span.fs-35) { font-size: 2.1875rem; line-height: 1.2857; }
  .sec__title:has(> span.fs-38) { font-size: 2.375rem;  line-height: 0.9474; }
  .sec__title:has(> span.fs-40) { font-size: 2.5rem;    line-height: 1.1250; }
  .sec__title:has(> span.fs-51) { font-size: 3.1875rem; line-height: 1.0588; }

  /* ------------------------------------------------------------------------
     5b. UVOD OD 14 PX UVUCEN U NASLOV OD 38 PX

     Isti strut iz odjeljka 5, samo obrnuto: tamo je strut naslijeden i
     premalen za umetak, ovdje ga pravilo IZNAD postavlja i prevelik je.

     `h2.sec__title` na pet mjesta nosi i krupni naslov i sitni uvod:

         <span class="fs-38 …">Naslov</span><br><span class="fs-14 …">Uvod…</span>

     Pravilo iznad daje h2 velicinu 38 i prored 36. Umetak od 14 px ima svoj
     `line-height` 22 (`.fs-14.fs-14` u `sections.css`) i `getComputedStyle`
     posteno javlja 22 — ali redak je NAJVECI od struta bloka i okvira
     umetka, pa je IZMJERENI korak uvoda 38. Dizajn trazi 22, na svih pet.
     Jedna recenica se zato cita kao dva odlomka.

     Ovdje ne pomaze nista sto se radi NAD UMETKOM: prored umetka je vec
     tacan, a strut se ne da nadjacati odozdo. Mjereno je sest vrijednosti
     proreda na samom h2 (`landing-pazienti-italiani`, tri naslova):

         bez izmjene -> uvod 38    naslov 36
         1.2         -> uvod 45,6  naslov 45,6   (i naslov se pokvari)
         1.0         -> uvod 39    naslov 38
         0.8         -> uvod 35    naslov 36
         0.5         -> uvod 30    naslov 36
         0.3         -> uvod 26    naslov 36
         0           -> uvod 22    naslov 36

     Samo `0` pogada dizajn, i to bez ijedne posljedice po naslov: cim strut
     ne doprinosi nista, svaki umetak odlucuje sam svojim proredom — 36 za
     naslov, 22 za uvod. Visina h2 padne sa 148 na 116 px, sto je tocno
     2x36 + 2x22, dakle ono sto dizajn i ima.

     PROVJERENO da je `0` sigurno: u `.sec__title` s umetkom od 14 px nema
     nigdje golog teksta izvan spanova (izmjereno na svih 32 stranice), pa
     nema sadrzaja koji bi ostao bez proreda.

     SELEKTOR NAMJERNO TRAZI I `fs-38`. Postoji sesti takav naslov, na
     `03-prezzi-1`, ali je tamo uvod JEDNOREDAN — prored mu se ne mjeri ni
     na jednoj strani i taj blok danas nema nijedno odstupanje. `line-height: 0`
     bi mu ipak srezao visinu h2 sa 90 na 52 px i pomjerio sve ispod njega,
     dakle promijenio bi geometriju koju niko nije izmjerio. Popravlja se
     ono sto je izmjereno.

     Samo pravilo NIJE ovdje nego ispod, izvan `@media` — vidi odjeljak 5c.
     ------------------------------------------------------------------------ */

  /* ------------------------------------------------------------------------
     6. TEKST PRIVOLE U FORMI

     8 px, 37 blokova na 28 stranica. Contact Form 7 svoju oznaku ne stilizira
     pa je ostajala na 12 px proreda; dizajn ima 14 (omjer 1,75 — najsiri u
     cijelom dizajnu, jer je slog najsitniji).
     ------------------------------------------------------------------------ */
  .wpcf7-list-item-label { line-height: 1.75; }

  /* ------------------------------------------------------------------------
     7. ZAGLAVLJE RETKA U TABELI USPOREDBE

     `layout-b.css` postavlja `thead th`; zaglavlje RETKA je u `tbody` i
     ostalo je na tjelesnih 14 px / 300 / 22. Dizajn ga ima verzalom,
     SemiBold, s korakom 16.
     ------------------------------------------------------------------------ */
  .compare__table tbody th { font-weight: 600; line-height: 1.1429; }

  /* ------------------------------------------------------------------------
     10. ODLOMAK KOJI NOSI SAMO JEDAN UMETAK S OZNAKOM

     Ista zamka kao kod `.sec__title` u odjeljku 5, samo nizom: `<p>` nema
     vlastitu velicinu, pa nasljeduje 14 px i tjelesni prored 1,571 — strut
     od 22 px. U njemu stoji `<span class="fs-16">`, koji ima svojih 16 px i
     svoj prored 20 (`sections.css`). Visina retka je NAJVECA od struta i
     okvira umetaka, pa redak ostane 22 px visok iako `getComputedStyle`
     spana posteno javlja 20. Izmjereni korak je 22 (ili 24 u sirim
     blokovima), dizajn trazi 20. To je 27 blokova.

     Lijek je spustiti strut ODLOMKA ispod onoga sto umetak donosi: 14 x 1,25
     = 17,5, pa redak odlucuje umetak sa svojih 20. Velicina odlomka se NE
     dira — samo prored — da tekst koji bi se nasao izvan spana ne naraste.

     `:only-child` nije ukras: u sijacu su sva 21 takva odlomka ciste
     (`<p><span class="fs-16 …">…</span></p>`), a odlomak koji bi uz span
     imao i vlastiti tekst od 14 px dobio bi prored 17,5 i to bi bilo krivo.
     ------------------------------------------------------------------------ */
  p:has(> span.fs-16:only-child) { line-height: 1.25; }

  /* ------------------------------------------------------------------------
     11. PODNASLOV HEROJA NA 22 PX

     `smile_heading()` prenosi oznaku sa spana na sam element, pa podnaslov
     nosi `.hero__subtitle.fs-22`. `.fs-22` daje prored 28, koliko dizajn
     ima na 22 px NA VECINI mjesta (43 uzorka) — ali ne ovdje: svih SEST
     podnaslova heroja u dizajnu (0_Estetica, 00_Riabilitazione,
     03_Impianti, 04_Denti fissi, 04_Prima visita, Landing pazienti) je
     22 px Regular s korakom 24,0, bez ijednog izuzetka.

     Zato pravilo ide po ULOZI, a ne po velicini — isto obrazlozenje kao kod
     tri izuzetka na 16 px u odjeljku 4.

     Klasa je UDVOJENA. Prvi pokusaj s jednom (`.hero__subtitle.fs-22`,
     dakle 0-2-0) nije promijenio nista: `sections.css` red 272 ima
     `.hero--foto p.hero__subtitle`, sto je 0-2-1 i tuce ga bez obzira na
     redoslijed ucitavanja. Mjerenje je i poslije isporuke javljalo istih
     28 px. Udvojena klasa daje 0-3-0 i nadjacava.
     ------------------------------------------------------------------------ */
  .hero__subtitle.hero__subtitle.fs-22 { line-height: 1.0909; }  /* 24 px, 6 uzoraka */

  /* ------------------------------------------------------------------------
     8. NATPIS PODRUCJA U TIMU

     `.team__area` je jedini naslov koji nosi naziv taksonomije, pa mu
     velicina ne dolazi ni iz oznake u sadrzaju ni iz layouta — samo iz
     `sections.css`, gdje je pogodena 16 px Bold verzalom. Dizajn
     (05_Clinica Dott Darko e team) ima sva tri natpisa — ODONTOIATRIA,
     PROTESI E RIABILITAZIONE, ASSISTENZA CLINICA — na 22 px Regular u boji
     naglaska, bez izuzetka.

     Velicina je ovdje GEOMETRIJA (natpis naraste 6 px i pomjeri mrezu
     ispod sebe), pa stoji pod @media, uz tezinu koja ide s njom. Sekcija
     `team` s podrucjima postoji samo na toj stranici: homepage koristi
     varijantu `cards`, koja natpis uopce ne ispisuje.
     ------------------------------------------------------------------------ */
  .team__area { font-size: 1.375rem; font-weight: var(--team-area-fw, 400); }
}

/* --------------------------------------------------------------------------
   9. TEZINA PISMA PO ULOZI

   Nije geometrija (slovo ne mijenja okvir), pa nije pod @media — isti
   razlog kao kod boje u odjeljku 1.

   ZASTO OVDJE, A NE U SADRZAJU: `tipo_tezina.py` je odluku o tezini
   ODLOMAKA vratio u sijac, jer na 14 px dizajn koristi i Light (457 blokova)
   i Regular (300) i nijedan selektor ih ne razdvaja. Naslovi ispod su druga
   prica: njima tezinu daje ISKLJUCIVO pravilo teme, sadrzaj na njih nema
   uticaja, pa popravak pripada CSS-u.

   IZMJERENA RASPODJELA TEZINA PO VELICINI (svi PDF-ovi, `tipo_skala.py`):

       px      300     400     500     600     700
       14      457     300       2      91      95
       16      493      18      24      31     177
       20       50       0       0       0       0
       22        0     146       0       1       2
       24        0     358       0       0       2

   Medium (500) se u cijelom dizajnu pojavljuje 26 puta, i to samo na 16 px
   (24 puta) i 14 px (2 puta). Na 20, 22, 24 px i vise ga NEMA NIJEDNOM.
   `sections.css` ga ipak stavlja na vise naslova te velicine — otud sva
   odstupanja „sajt 500, dizajn 400" u mjerenju.
   -------------------------------------------------------------------------- */

/* 22 px (layout-b spusta s 24 na 22). Dizajn: „Prima visita gratuita" 6x
   Regular 22, „La cura non termina quando torni a casa" 2x Regular 22. */
.prima__card-title { font-weight: 400; }

/* 22 px. Isto: na toj velicini dizajn ima samo Regular (146 uzoraka). */
.two-col__title { font-weight: 400; }

/* 16 px verzalom, u boji naglaska. `sections.css` daje Bold; dizajn
   (07_Contatti) ima IN AUTO i IN AEREO na 16 px Light. Sekcija `distances`
   postoji samo na toj stranici. */
.dist__title { font-weight: 300; }

/* --------------------------------------------------------------------------
   5c. PRAVILO IZ ODJELJKA 5b — I NA UZIM EKRANIMA

   Ovo JESTE geometrija, a ipak nije pod `@media`, suprotno ostatku fajla.
   Razlog je izmjeren: dok je pravilo stajalo pod `min-width: 1024px`,
   provjera na 390 px je javljala korak uvoda 33,7 px na svih pet mjesta —
   dakle isti kvar zbog kojeg je pravilo i napisano, samo na telefonu.

   Zasto je sigurno i tamo: `line-height: 0` ne postavlja nikakvu vrijednost
   nego SKLANJA strut bloka, pa svaki umetak odlucuje sam. Na uzem ekranu
   `.fs-38.fs-38` padne na 1,75rem (`sections.css` red 1547) ali zadrzi svoj
   omjer 0,9474, dakle 26,5 px; umetak od 14 px zadrzi svojih 22. Pravilo
   time ne nosi nijedan broj koji bi vrijedio samo na jednoj sirini.

   Za 390 px nema PDF-a, pa se ne tvrdi da je 22 „izmjereno iz dizajna" —
   tvrdi se samo da svaki umetak dobija prored koji mu je vec dodijeljen,
   umjesto tudjeg.
   -------------------------------------------------------------------------- */
.sec__title:has(> span.fs-38):has(> span.fs-14) { line-height: 0; }

/* --------------------------------------------------------------------------
   12. NATPIS BOCNOG STUPCA BLOGA

   „Categorie" je jedini `.blog__side-title` na cijelom sajtu: natpis ne
   dolazi iz sadrzaja nego ga ispisuje sam sablon, pa mu boju ne moze dati
   oznaka u sijacu. `sections.css` red 1094 daje bijelu, dizajn (06_Blog)
   ima boju naglaska.

   Uzorak je JEDAN, jer je i mjesto jedno — to nije vecina nad manjinom nego
   jedina pojava, pa se uzima kako dizajn kaze.
   -------------------------------------------------------------------------- */
.blog__side-title { color: var(--c-accent); }

/* ==========================================================================
   13. POJEDINACNE MJERE IZ DIZAJNA — NE SAZIMATI U OPCE PRAVILO

   Sve ispod je jedno mjesto na sajtu, izmjereno iz jednog PDF-a. Uz svaku
   vrijednost stoji broj iz dizajna i stranica na kojoj je uzet.

   OVO NIJE SKALA i ne smije se saziimati. Ako nekome zasmeta sto su pravila
   pojedinacna, lijek je izbrisati ono cija mjera vise ne vrijedi, a ne
   zamijeniti ih jednim pravilom koje "pokriva slicne slucajeve" — svako od
   njih ima uz sebe vecinu koja trazi DRUGU vrijednost, pa bi opce pravilo
   popravilo jedno a pokvarilo desetine.

   Prije nego se ovdje doda red: izmjeri raspodjelu te mjere kroz SVE
   PDF-ove. Ako dizajn nije jednoglasan, popravak ne pripada ovdje nego
   oznaci u sadrzaju (`deploy/seed/**`). U cetvrtoj smjeni je od sest
   kandidata za ovaj odjeljak pet zavrsilo kao oznaka u sijacu upravo tako.
   ========================================================================== */

/* Dugme u stupcu karte, `07_Contatti`: „Apri indicazioni" i „Apri il
   parcheggio", dizajn 16 px na oba.

   `.btn` u `components.css` red 24 vec daje tocnih 16 (`--fs-label`), ali
   `.map__col-text` (`sections.css` red 1161) ima 15 px i — pri jednakoj
   tezini 0-1-0 — pobjeduje redoslijedom, jer se `sections.css` ucitava
   poslije `components.css`. Velicina dugmeta zato nije pogresno POSTAVLJENA
   nego PRELIVENA iz okolnog stupca.

   Pravilo ne uvodi nijedan novi broj: vraca dugmetu njegov vlastiti token. */
.map__col-text .btn { font-size: var(--fs-label); }

/* ==========================================================================
   14. PORAVNANJE, RAZMAK I PROROD IZ UREĐIVAČA (U1, korisnik, 30. 9. 2026)

   Urednici traže „kompletan WYSIWYG": poravnanje lijevo / centar / desno i
   prazan prostor iznad ili ispod dijela teksta. Poravnanje je inline
   `text-align` (dugmad trake); razmak i prored su klase iz menija „Formati"
   na ODLOMKU (`<p class="sp-t-24">`). U tekstovima (`smile_rich()`) klasa
   ostaje na `<p>`; u naslovima je `smile_heading()` prenosi na sam naslov, a
   u kratkim tekstovima `smile_inline()` na omotač `.smile-blok` (redove
   `.smile-red` kad se odlomci razlikuju) — vidi `smile_odlomci_blok()`.

   Razmak je izuzetno ovdje, a ne u `razmaci.css`: to su klase iz sadržaja,
   ista porodica kao `fs-*`, `fw-*` i `c-*` iz istog menija, i zajedno se
   mijenjaju s trakom uređivača (smile-core `editor.php`).

   `!important` je namjeran: klasa je izričit izbor urednika i mora tući mjeru
   iz rasporeda bez obzira na specifičnost (tema nigdje nema `!important` na
   `margin`, `line-height` ni `text-align` — provjereno 30. 9.). Klasa je
   udvojena da bi i među `!important` pravilima imala 0-2-0. „Cancella
   formattazione" skida klasu i vraća dizajn.

   Mjere su u rem: tema na 1024–1511 px skalira rem (tokens.css), pa razmak
   ostaje u razmjeru sa stranicom; na telefonu je isti kao na desktopu (zaseban
   mobilni razmak nije tražen).

   Prored važi i za umetke s klasom veličine (`fs-*` iz „Formati"): oni nose
   svoj `line-height` (sections.css), a red je VIŠI od struta bloka i okvira
   umetaka (odjeljak 5), pa bi izbor na samom odlomku bez njih ostao bez
   učinka. Omjer je bez jedinice, pa svaki umetak računa po svojoj veličini.

   Nijedan postojeći sadržaj ne nosi ove klase ni omotače (baza, 30. 9.), pa
   odjeljak ne pomjera ništa dok ih urednik ne izabere.
   ========================================================================== */
.smile-blok,
.smile-red { display: block; }
/* Mreža sigurnosti: u dugmetu, sažetku harmonike i čipu omotač ne smije
   postati blok (lomio bi flex). Pozivi na takvim mjestima šalju `false`
   (`smile_inline( …, false )`), pa ovo hvata samo propušteno mjesto. */
:is(button, summary, .btn, .chip) .smile-blok { display: contents; }

.sp-t-0.sp-t-0   { margin-top: 0 !important; }
.sp-t-8.sp-t-8   { margin-top: .5rem !important; }
.sp-t-16.sp-t-16 { margin-top: 1rem !important; }
.sp-t-24.sp-t-24 { margin-top: 1.5rem !important; }
.sp-t-32.sp-t-32 { margin-top: 2rem !important; }
.sp-t-48.sp-t-48 { margin-top: 3rem !important; }
.sp-t-64.sp-t-64 { margin-top: 4rem !important; }

.sp-b-0.sp-b-0   { margin-bottom: 0 !important; }
.sp-b-8.sp-b-8   { margin-bottom: .5rem !important; }
.sp-b-16.sp-b-16 { margin-bottom: 1rem !important; }
.sp-b-24.sp-b-24 { margin-bottom: 1.5rem !important; }
.sp-b-32.sp-b-32 { margin-bottom: 2rem !important; }
.sp-b-48.sp-b-48 { margin-bottom: 3rem !important; }
.sp-b-64.sp-b-64 { margin-bottom: 4rem !important; }

.lh-100.lh-100, .lh-100 :is([class^="fs-"], [class*=" fs-"]) { line-height: 1 !important; }
.lh-120.lh-120, .lh-120 :is([class^="fs-"], [class*=" fs-"]) { line-height: 1.2 !important; }
.lh-140.lh-140, .lh-140 :is([class^="fs-"], [class*=" fs-"]) { line-height: 1.4 !important; }
.lh-160.lh-160, .lh-160 :is([class^="fs-"], [class*=" fs-"]) { line-height: 1.6 !important; }
.lh-180.lh-180, .lh-180 :is([class^="fs-"], [class*=" fs-"]) { line-height: 1.8 !important; }
