/* --------------------------------------------------------------------------
   SIRINA STUPCA U MREZI `columns`, PO SEKCIJI

   Mreza je svuda dijelila kontejner na jednake stupce (`repeat(N, 1fr)`), pa
   je sirina stupca bila posljedica kontejnera i broja stupaca. Dizajn je ne
   crta tako. Mjereno u PDF-ovima:

     01-landing-no-bone-implant sek3   stupci na x 167 i 599 (korak 432),
                                       tekst se lomi na 305 -> razmak 127
     02-...innesto-osseo sek7          179 i 828 (korak 649), lom na 496
     soluzioni-odontoiatria sek5       157 i 804 (korak 647), lom na 548
     soluzioni-odontoiatria sek7       589 i 1020 (korak 431), lom na 331

   Sajt je na prvoj od njih davao 380,7 px po stupcu, pa je tekst isao u pet
   redaka umjesto sest. Isti rod odstupanja na 27 mjesta kroz 20 stranica.

   Vrijednost je RAZLICITA od sekcije do sekcije (305 do 548), dakle podatak o
   sekciji a ne pravilo — isti zakljucak kao kod kadra slike, sirine uvoda i
   tamne plohe. Nosi je `--cols-item-w`, koji ispisuje `columns.php`.

   Zasto zaseban fajl a ne `sections.css`: pravilo mora nadjacati
   `grid-template-columns` iz `sections.css` i iz `layout-a.css`, a oba se
   ucitavaju prije ovoga. Specificnost je ista, pa odlucuje redoslijed.

   `justify-content: start` je tu jer stupci fiksne sirine ne popunjavaju
   kontejner: bez njega bi ih `grid` razvukao razmakom i pocetci se ne bi
   poklopili ni s cim.
   -------------------------------------------------------------------------- */

/* PRVI POKUSAJ JE BIO POGRESAN I MJERENJE GA JE OBORILO — vrijedi zapisati,
   jer je greska poucna. Pravilo je mijenjalo SAME STUPCE:

     grid-template-columns: repeat(N, var(--cols-item-w));
     justify-content: start;

   Prelom teksta je time bio tacan, ali su se stupci skupili ulijevo. Dizajn
   na `01-landing-no-bone-implant` sek 3 ima stupce na x 167 i 599 (korak 432)
   uz sirinu 305 — dakle razmak od 127 px, koji nije u mjeri sirine. S fiksnim
   trakama i razmakom iz CSS-a (40) drugi stupac je pao na 458 umjesto 599.
   Vjernost je zbog toga skocila 3236 -> 3454 na b623899, dakle 218 gore.

   Sirina stupca i POLOZAJ stupca su dvije mjere, a posijana je samo jedna.

   Zato pravilo sada dira samo SADRZAJ stavke, ne traku: trake ostaju `1fr`,
   pa se nijedan stupac ne pomjera, a tekst se lomi na sirini iz dizajna. Gdje
   je mjera iz dizajna SIRA od trake, `max-width` ne radi nista — takav slucaj
   trazi siru traku i ceka mjeru polozaja. */
/* Ogranicava se SAMO tekst, imenovano. `> *` je obuhvatalo i `.cols__img` i
   `.cols__icon`: stupac koji je u dizajnu fotografija (`cols__item--photo`,
   npr. „Cura canalare ed endodonzia" — 422 x 501 uz dvije kartice) bi se
   stegnuo na mjeru teksta, a mjera teksta na toj sekciji ne opisuje
   fotografiju. Ikone nose svoju velicinu iz `sections.css` (3rem) pa im
   granica ne bi nista ni radila, ali ni one nisu tekst. */
/* PRAVILO JE ISKLJUCENO, i to na osnovu cetiri mjerenja.

   Mjera `item_w` je ispravna i ostaje posijana — sporno je bilo sto s njom
   raditi. Cetiri pokusaja, svaki mjeren punim prolazom pod bravom, naspram
   osnove 3236 od 9860:

     fiksne trake mreze + justify-content: start    3454   (+218)
     max-width na SVU djecu stavke                  3248   (+12)
     max-width samo na tekst                        3238   (+2)
     isto, uz ispravljene mjere i sest brisanih     3277   (+41)

   Nijedan nije bio dobitak, i cetvrti je poslije razdvojen: isto stanje BEZ
   pravila mjeri 3218, dakle pravilo je kostalo 59, a tudje izmjene u temi iz
   istog mjerenja donijele 18. Ne ostaje nikakva sumnja kome pripada koji dio.

   Zasto se mjera ipak cuva: `dlin` mete koje je trebalo zatvoriti ih je svega
   27 od 2465 uparenih blokova, dakle najvise ~50 provjera od 9860 — a svako
   ogranicenje sirine pomjera i ink i y susjednih blokova, pa je sporedna
   steta vec na prvom mjerenju bila veca od moguceg dobitka. To je mjera koja
   ceka pravilo koje ne dira nista drugo, a ne mjera koju treba baciti.

   Ko ovo ponovo ukljucuje: obavezno izmjeri punim prolazom PRIJE i POSLIJE, u
   istom prolazu i na istom kodu, i ukljuci samo ako broj padne.
   -------------------------------------------------------------------------- */

/* Ispod 1024 px mreza pada na jedan stupac (`sections.css`, red 1576). Fiksna
   sirina bi tamo prezivjela i dala horizontalni skrol, pa se pravilo drzi pod
   istim upitom pod kojim mreza i postoji. Za 390 px nema PDF-a, pa se ni ne
   tvrdi da je mjera odande. */


/* --------------------------------------------------------------------------
   MJERE PO SEKCIJI I PO STAVCI (polja layouta `columns`, runda popravaka
   stranica 23. 9. 2026)

   Svako pravilo ispod radi SAMO kad sekcija ima upisanu mjeru (varijabla u
   inline stilu, `[style*="--…"]`). Prazno polje ne mijenja nista, pa
   sekcije koje nisu izmjerene ostaju kakve su bile.

   Zasto su potrebne: poredjenjem slikom, sekciju po sekciju na 21 stranici,
   dizajn crta kolone s razmacima koji se razlikuju od sekcije do sekcije
   (naslov -> uvod 6 do 55 px, zaglavlje -> mreza 30 do 99, razmak redova
   kartica 7 do 20, razmak naslov -> tekst 2 do 50), a na nekim mjestima i
   od kartice do kartice u istoj sekciji (prva plava kartica na Clinici i
   Prezzi ima tekst 35 px od ruba, ostale 23-30). Jedna vrijednost u CSS-u
   nije mogla biti tacna nigdje osim na stranici s koje je uzeta.
   -------------------------------------------------------------------------- */

/* Tekst uvoda od 14 px u dva odlomka: `smile_heading()` odlomke spaja s
   <br>, pa span vise ne obuhvata cijeli uvod i klasa velicine ne prelazi na
   <p>. Tada <p> zadrzi 20 px / 25 px i njegov prored dize korak redova na
   26 umjesto 22 (Prima visita i Pazienti italiani, „Il tuo tempo fa parte
   del piano"). */
.sec--columns .sec__lead:has(> .fs-14) { font-size: .875rem; line-height: 1.5714; }

/* Traka tima: stupci su bez okvira, naslov ostaje plav (boja je u spanu). */
.cols--band .cols__item { background: none; padding: 0; min-height: 0; }

@media (min-width: 1024px) {
  /* Zaglavlje sekcije -> mreza i naslov -> uvod. */
  .sec__inner[style*="--cols-intro-gap"] > .sec__title,
  .sec__inner[style*="--cols-intro-gap"] > .cols-aside__head > .sec__title { margin-bottom: var(--cols-intro-gap); }
  .sec__inner[style*="--cols-mt"] > :is(.sec__title, .sec__lead, .sec__head):has(+ .cols, + .cols-nad) { margin-bottom: 0; }
  .sec__inner[style*="--cols-mt"] > .cols,
  .sec__inner[style*="--cols-mt"] > .cols-nad { margin-top: var(--cols-mt); }
  .sec__inner[style*="--cols-mt"] > .cols-nad > .cols { margin-top: 0; }

  /* Razmaci mreze. Nula je valjana mjera (Innesto osseo: cetiri stupca bez
     razmaka, tekst ide do sljedeceg stupca). */
  .cols[style*="--cols-tpl"] { grid-template-columns: var(--cols-tpl); }
  .cols[style*="--cols-row-gap"] { row-gap: var(--cols-row-gap); }
  .cols[style*="--cols-col-gap"] { column-gap: var(--cols-col-gap); }

  /* Naslov stavke: zajednicka visina, da tekst u svim karticama reda pocne
     na istoj visini kao u dizajnu. */
  .cols[style*="--cols-title-h"] .cols__title { min-height: var(--cols-title-h); }

  /* Kolone BEZ kartice: naslov nema gornju marginu od 12 px kad pred njim
     nema ikone — ona je bila razmak ikona -> naslov, a bez ikone se samo
     dodavala na razmak redova i na gornji razmak sekcije. Razmak naslov ->
     tekst je polje sekcije ili stavke. */
  .cols:not(.cols--cards) > .cols__item > .cols__title:first-child { margin-top: 0; }
  .cols:not(.cols--cards) .cols__title { margin-bottom: var(--ci-gap, var(--cols-gap, .5rem)); }

  /* Stupac bez kartice s vlastitim bocnim razmakom (polje stavke): u
     dizajnu „Sette competenze" drugi red stavki nije centriran na istim
     osama kao prvi (598 i 913 umjesto 594 i 917). */
  .cols:not(.cols--cards) > .cols__item[style*="--ci-p"] {
    padding-left: var(--ci-pl, 0); padding-right: var(--ci-pr, 0);
  }

  /* Naslov uvucen vise od teksta iste kartice i obrnuto (polja stavke). */
  .cols__item[style*="--ci-tx:"] > .cols__title { padding-left: var(--ci-tx); }
  .cols__item[style*="--ci-txx"] > .cols__text { padding-left: var(--ci-txx); }
  .cols__item[style*="--ci-tw"] > .cols__text { max-width: var(--ci-tw); box-sizing: content-box; }

  /* Kartica s vlastitom visinom ne rasteze se na visinu reda (Estrazione:
     273 i 276 px u istom redu), a moze biti i spustena u redu. */
  .cols__item[style*="--ci-h"] { align-self: start; }
  .cols__item[style*="--ci-mt"] { margin-top: var(--ci-mt); }
  .cols__item[style*="--ci-col"] { grid-column: var(--ci-col); }

  /* Elipticni ugao plave kartice (15 x 12 u PDF-u). */
  .cols--cards.cols--r-desno[style*="--cols-rad-y"] .cols__item {
    border-radius: 0 var(--cols-rad) var(--cols-rad) 0 / 0 var(--cols-rad-y) var(--cols-rad-y) 0;
  }

  /* Ikone: visina iz dizajna, sirina slijedi sliku. */
  .cols[style*="--cols-icon"] .cols__icon { display: block; }
  .cols[style*="--cols-icon"] .cols__icon img { display: block; width: auto; height: var(--cols-icon); }
  .cols[style*="--cols-icon-gap"] .cols__icon { margin-bottom: var(--cols-icon-gap); }
  .cols[style*="--cols-icon-gap"] .cols__icon + .cols__title { margin-top: 0; }

  /* Traka pod svim stupcima: unutrasnji razmaci trake su razmaci sekcije. */
  .cols--band {
    min-height: var(--cols-card-h, 0);
    padding: var(--cols-pad-t, 2rem) var(--cols-pad-r, var(--cols-pad-x, 2rem)) var(--cols-pad-b, 2rem) var(--cols-pad-x, 2rem);
  }

  /* Uvod u glavi sa strane je ZADNJI red sekcije: u dizajnu (Estetica
     dentale, „Un sorriso armonioso") fotografija sljedece sekcije stoji
     2,7 px ispod njegovog zadnjeg reda, a margina od 16 px ju je spustala. */
  .cols-aside__head > .sec__lead:last-child { margin-bottom: 0; }

  /* Uvod u traci zaglavlja spusten u odnosu na naslov (polje sekcije). */
  .sec__inner[style*="--cols-intro-top"] > .sec__head > .sec__head-intro { padding-top: var(--cols-intro-top); }

  /* Glava sa strane: uvlaka i pomak nadolje iz dizajna (polja sekcije). */
  .cols-aside[style*="--cols-aside-pl"] > .cols-aside__head { padding-left: var(--cols-aside-pl); }
  .cols-aside[style*="--cols-aside-top"] > .cols-aside__head { margin-top: var(--cols-aside-top); }
  .cols-aside[style*="--cols-title-pl"] > .cols-aside__head > .sec__title { padding-left: var(--cols-title-pl); }
  /* Vodoravni pomak cijele glave bez promjene širine (polje `aside_dx`):
     All on 4/6 ima naslov i uvod na x 108, 5 px lijevo od kontejnera.
     Relativni pomak ne dira tok, pa stupci desno ostaju gdje jesu. */
  .cols-aside[style*="--cols-aside-dx"] > .cols-aside__head { position: relative; left: var(--cols-aside-dx); }

  /* Traka sa slikom iz PDF-a: preljev i ikone su u slici, stupci su zivi
     tekst preko nje. Slika pokriva traku tacno (1286 x 293 u dizajnu). */
  .cols--band[style*="--band-bg"] { background: var(--band-bg) center / 100% 100% no-repeat; }
  /* Ikone stupaca su na desktopu već u slici trake (na tačnim mjestima iz
     PDF-a); ikona stavke služi samo užem ekranu, gdje traka nema sliku. */
  .cols--band[style*="--band-bg"] .cols__icon { display: none; }
  /* Skrivena ikona ne smije natpisu uzeti ulogu prvog elementa: bez ovoga
     natpis dobije gornju marginu 12 px i pada ispod mjere iz PDF-a. */
  .cols--band[style*="--band-bg"] .cols__icon + .cols__title { margin-top: 0; }
  /* Prekidač „Mostra le icone delle colonne anche su desktop" (slika trake
     bez ucrtanih ikona). Klasa postoji samo kad je uključen. */
  .cols--band.cols--ikone-d[style*="--band-bg"] .cols__icon { display: block; margin-bottom: var(--cols-icon-gap, .75rem); }

  /* Pilula fiksne širine (polja `cta_w`, `cta_pad`): natpis na izmjerenoj
     uvlaci, krug uz desni rub, razmak natpis -> krug je ostatak — kao u
     dizajnu (Clinica „Tecnologia per pianificare": 318,9 px, natpis 35,9
     od ruba, krug 7 od desnog ruba). Isto pravilo kao `.text-band--cw`.
     Mjere su s desktop PDF-a; na telefonu pilula ostaje po natpisu. */
  .cols__cta[style*="--cols-cta-w"] > .btn.btn { width: var(--cols-cta-w); --btn-gap: 0px; }
  .cols__cta[style*="--cols-cta-pad"] > .btn.btn { padding-left: var(--cols-cta-pad); }

  /* Fotografija preko kartica (No Bone): polozaj u odnosu na mrezu. */
  .cols-nad { position: relative; }
  .cols__over {
    position: absolute; z-index: 1; margin: 0;
    left: var(--over-x, 0); top: var(--over-y, 0); width: var(--over-w, auto);
    pointer-events: none;
  }
  .cols__over-img { display: block; width: 100%; height: auto; }
}

/* Tracking naslova sekcije iz PDF-a (polje sekcije, px; Pazienti italiani
   „Un percorso chiaro, anche a distanza": -0,4 px po slovu). */
.sec__inner[style*="--cols-title-ls"] .sec__title { letter-spacing: var(--cols-title-ls); }

/* Poravnanje teksta stavki i dugmeta. */
.cols--al-center > .cols__item { text-align: center; }
.cols--al-center .cols__icon img { margin-inline: auto; }
.cols--ic-center .cols__icon { display: block; }
.cols--ic-center .cols__icon img { display: block; margin-inline: auto; }
.cols__cta { display: flex; margin-top: var(--sec-cta-gap, 0); }
.cols__cta--center { justify-content: center; }
@media (max-width: 1023px) {
  /* Ručni prelomi naslova su iz desktop širine stupca; u užem stupcu bi
     ostavljali red od jedne riječi („Quando la polpa richiede / un /
     trattamento"). Razmak ispred <br> dodaje predložak. */
  .sec--columns .sec__title br,
  .sec--columns .cols__title br { display: none; }
  /* Traka tima bez slike: ikona iznad natpisa svakog stupca, u veličini iz
     PDF-a (zajednički okvir 110 px visine, pa ikone zadrže međusobni odnos). */
  .cols--band .cols__icon { display: block; margin-bottom: .75rem; }
  .cols--band .cols__icon img { display: block; width: auto; height: 6.875rem; object-fit: contain; }
  .cols--band .cols__icon + .cols__title { margin-top: 0; }
  /* Ikone s visinom iz dizajna (Odontoiatria generale, „Igiene orale
     professionale": 115 px, 21 px do naslova). Mobilnog PDF-a nema; bez
     ovoga je ikona pala na 3rem iz `sections.css`, a tinta naslova je
     stajala 5–6 px ispod nje. Ikona 72 px (tinta 71) i 13 px tinte do
     naslova drže odnos iz PDF-a (21 / 115 = 13 / 71 ≈ 0,18); margina je
     7 px jer prored naslova dodaje još 6 px iznad tinte. */
  .cols[style*="--cols-icon"] .cols__icon { display: block; margin-bottom: .4375rem; }
  .cols[style*="--cols-icon"] .cols__icon img { display: block; width: auto; height: 4.5rem; }
  .cols[style*="--cols-icon"] .cols__icon + .cols__title { margin-top: 0; }
  .cols__over { margin: 1rem 0 0; }
  .cols__over-img { display: block; width: 100%; max-width: 30rem; height: auto; }
}

/* ==========================================================================
   NAJMANJI RAZMAK TEKSTA IZMEĐU SUSJEDNIH STUPACA (≥ 1024 px)

   Pragma, 1. 10. 2026 (Innesto osseo, „I materiali utilizzati
   nell'innesto"): „The paragraphs are too close together … please check
   this throughout the rest of the website as well". NAMJERNO ODSTUPANJE OD
   PDF-a koje traži autor dizajna: PDF-ovi slažu stupce s razmakom mreže
   10 px (Innesto osseo 0) i puštaju tekst do ruba trake, pa je kraj reda
   lijevog stupca 3–20 px od početka reda desnog — na Innestu manje od
   razmaka između dvije riječi.

   Pravilo: TEKST stupca koji u istom redu ima desnog susjeda dobije
   padding-inline-end = max(0, prag − razmak mreže − vlastiti desni
   razmak). Prag: --kol-min (24) za tekst, --kol-min-naslov (20) za
   naslove stupaca (tokens.css). Trake mreže, x lijevih rubova i polja ACF-a
   ostaju; prelama se samo red koji bi završio bliže od praga (pohlepni
   prelom ne mijenja redove koji i dalje staju). U rem, pa se na 1024–1511
   skalira s rasporedom. Ispod 1024 nema ničega.

   Tekst (ne naslov) koji dobije uvlaku dobije i text-wrap: --kol-prelom
   (pretty). Uži stupac je na 11 mjesta ostavljao jednu riječ samu u redu
   („osseo.", „proteggere." ispred ručnog <br>, centrirano „naturale.");
   pretty je pomjera u red s još jednom riječi. Isto radi i s 10 takvih
   riječi koje su same u redu već u PDF-u, u istim stupcima („protesico.",
   „vigenti."...). Red se time samo skraćuje unutar iste kutije, pa prag
   ostaje. U Chromiumu (117+) pretty gleda zadnja četiri reda i nije
   promijenio nijednu visinu; Safari 26+ ujednačava cijeli odlomak (redovi
   mogu pasti drukčije nego u Chromiumu — pogledati na Macu); stariji
   preglednici ostaju na običnom prelomu.

   Ne dira: zadnji stupac u redu; kartice i plohe s vlastitom uvlakom
   (cols--cards, cols--band, scards s podlogom, two-col--kartica, info,
   trust, recenzije, cijene, compare); media_text „preko slike", cols_card i
   harmoniku. Povratak na PDF: oba praga na 0rem (svaki max() daje 0;
   bezjedinična 0 bi calc() učinila nevaljanim) i --kol-prelom na wrap.
   ========================================================================== */
@media (min-width: 1024px) {

  /* --- columns bez podloge, lijevo poravnate --------------------------------
     Razmak mreže: polje `col_gap` (--cols-col-gap, inline na <ul>; Innesto
     osseo 0) ili 10 px iz layout-a.css. Polje stavke `pad_r` (--ci-pr) je
     već razmak. `text_w` (--ci-tw, content-box) se zbraja s uvlakom, pa
     sužava samo kad traka nema mjesta (Innesto stupac 3 ostaje 302). */
  .cols--2:not(.cols--cards, .cols--band, .cols--al-center) > .cols__item:not(.cols__item--photo, :nth-child(2n)) > .cols__text,
  .cols--3:not(.cols--cards, .cols--band, .cols--al-center) > .cols__item:not(.cols__item--photo, :nth-child(3n)) > .cols__text,
  .cols--4:not(.cols--cards, .cols--band, .cols--al-center) > .cols__item:not(.cols__item--photo, :nth-child(4n)) > .cols__text {
    padding-inline-end: max(0px, var(--kol-min) - var(--cols-col-gap, .625rem) - var(--ci-pr, 0rem));
    text-wrap: var(--kol-prelom);
  }
  .cols--2:not(.cols--cards, .cols--band, .cols--al-center) > .cols__item:not(.cols__item--photo, :nth-child(2n)) > .cols__title,
  .cols--3:not(.cols--cards, .cols--band, .cols--al-center) > .cols__item:not(.cols__item--photo, :nth-child(3n)) > .cols__title,
  .cols--4:not(.cols--cards, .cols--band, .cols--al-center) > .cols__item:not(.cols__item--photo, :nth-child(4n)) > .cols__title {
    padding-inline-end: max(0px, var(--kol-min-naslov) - var(--cols-col-gap, .625rem) - var(--ci-pr, 0rem));
  }

  /* --- columns centrirane (polje item_align = center; Clinica, „Sette
     competenze"): pola dodatka sa SVAKE strane — središte reda ostaje, a
     susjedni centrirani redovi su opet najmanje --kol-min. Polje stavke
     `text_x` (--ci-txx) se zbraja s lijevom polovinom, da se ne izgubi
     (ovo pravilo je jače od `[style*="--ci-txx"]` gore). */
  .cols--al-center:is(.cols--2, .cols--3, .cols--4):not(.cols--cards, .cols--band) > .cols__item:not(.cols__item--photo) > .cols__text {
    padding-inline-start: calc(var(--ci-txx, 0rem) + max(0px, var(--kol-min) - var(--cols-col-gap, .625rem)) / 2);
    padding-inline-end: calc(max(0px, var(--kol-min) - var(--cols-col-gap, .625rem)) / 2);
    text-wrap: var(--kol-prelom);
  }

  /* --- columns s uvodom SA STRANE (title_side = left), stavke bez podloge
     desno (Prima visita, Turismo dentale: razmak glave 12 px, uvod 19,6 px od
     teksta stavke). Uz kartice desno ploha dijeli sama. */
  .cols-aside:has(> .cols:not(.cols--cards, .cols--band)) > .cols-aside__head > .sec__lead {
    padding-inline-end: max(0px, var(--kol-min) - var(--cols-aside-gap, 5rem));
    text-wrap: var(--kol-prelom);
  }

  /* --- steps -----------------------------------------------------------------
     Razmak mreže 10 px (sections.css), u kontejneru 1170 115,5 px
     (layout-b.css). --kol-traka je širina trake u px dizajna (1286: 2 × 638,
     3 × 422, 4 × 314; 1170: 3 × 313). Korak s poljem `width` (--k-w,
     border-box, smije biti i šira od trake) i `inset` (--k-inset, margina)
     ima rezervu do ruba trake = traka − uvlaka − širina: Corone 422 + 3 −
     427 = −2 (prelazi u razmak), Sbiancamento 638 − 632 = 6. */
  .steps { --kol-gap: .625rem; }
  :is(.sec--v-light_2, .sec--v-dark_2) .steps { --kol-traka: 638; }
  :is(.sec--v-light_3x2, .sec--v-dark_3) .steps { --kol-traka: 422; }
  :is(.sec--v-light_4, .sec--v-dark_4) .steps { --kol-traka: 314; }
  .sec--steps .sec__inner--1170 .steps { --kol-gap: 7.21875rem; --kol-traka: 313; }
  .steps__item--mjera[style*="--k-w"] {
    --kol-rez: calc((var(--kol-traka, 9999) - var(--k-inset, 0) - var(--k-w)) * .0625rem);
  }
  :is(.sec--v-light_2, .sec--v-dark_2) .steps > .steps__item:not(:nth-child(2n)) > .steps__text,
  :is(.sec--v-light_3x2, .sec--v-dark_3) .steps > .steps__item:not(:nth-child(3n)) > .steps__text,
  :is(.sec--v-light_4, .sec--v-dark_4) .steps > .steps__item:not(:nth-child(4n)) > .steps__text {
    padding-inline-end: max(0px, var(--kol-min) - var(--kol-gap) - var(--kol-rez, 0px));
    text-wrap: var(--kol-prelom);
  }
  :is(.sec--v-light_2, .sec--v-dark_2) .steps > .steps__item:not(:nth-child(2n)) > .steps__title,
  :is(.sec--v-light_3x2, .sec--v-dark_3) .steps > .steps__item:not(:nth-child(3n)) > .steps__title,
  :is(.sec--v-light_4, .sec--v-dark_4) .steps > .steps__item:not(:nth-child(4n)) > .steps__title {
    padding-inline-end: max(0px, var(--kol-min-naslov) - var(--kol-gap) - var(--kol-rez, 0px));
  }

  /* --- two_col_text (lijevi stupac; tamna kartica ima svoju uvlaku) --------
     Razmak: polje `cols_gap` (--tc-gap; Straumann i Laboratorio 0, Clinica
     18) ili 10 px (layout-b.css). */
  .two-col:not(.two-col--kartica) > .two-col__item:first-child > .two-col__text {
    padding-inline-end: max(0px, var(--kol-min) - var(--tc-gap, .625rem));
    text-wrap: var(--kol-prelom);
  }
  .two-col:not(.two-col--kartica) > .two-col__item:first-child > .two-col__title {
    padding-inline-end: max(0px, var(--kol-min-naslov) - var(--tc-gap, .625rem));
  }

  /* --- solution_cards BEZ podloge (uvijek jedan red) -------------------------
     Razmak 10 px; dva stupca u 1070 su 5 px, u 880 17 px (sections.css). */
  .scards--plain { --kol-gap: .625rem; }
  .sec__inner--1070 > .scards--2.scards--plain { --kol-gap: .3125rem; }
  .sec__inner--880 > .scards--2.scards--plain { --kol-gap: 1.0625rem; }
  .scards--plain > .scards__item:not(:last-child) .scards__text {
    padding-inline-end: max(0px, var(--kol-min) - var(--kol-gap));
    text-wrap: var(--kol-prelom);
  }

  /* --- media_text: kolone ispod slike i teksta (moduli Diagnosi 3D,
     Straumann V2), razmak 10 px. „Preko slike", cols_card i harmonika
     (`media-text__acc`) slažu stavke jednu ispod druge — susjeda nema. */
  .sec:not(.sec--v-cols_card) .media-text:not(.media-text--over) > .media-text__cols > .media-text__col:not(:nth-child(3n), :last-child) > p {
    padding-inline-end: max(0px, var(--kol-min) - .625rem);
    text-wrap: var(--kol-prelom);
  }

  /* --- payments: dva stupca načina plaćanja (pay--kolone), razmak 10 px --- */
  .pay--kolone > .pay__col:first-child :is(.pay__text, .pay__iban--uz) {
    padding-inline-end: max(0px, var(--kol-min) - .625rem);
    text-wrap: var(--kol-prelom);
  }

  /* --- kartice bloga (razmak 10 px): naslov i uvod idu do ruba kartice.
     Naslovi nemaju ručnih preloma ni zajedničkog reda, pa i oni nose prag
     TEKSTA; uvod (16 px Light) je odlomak kao svaki drugi — danas su
     uvodi kratki, ali pravi članci idu do ruba. */
  .blog__grid--3 > .blog__item:not(:nth-child(3n)) :is(.blog__title, .blog__excerpt),
  .blog__grid--2 > .blog__item:not(:nth-child(2n)) :is(.blog__title, .blog__excerpt) {
    padding-inline-end: max(0px, var(--kol-min) - .625rem);
  }
  .blog__grid--3 > .blog__item:not(:nth-child(3n)) .blog__excerpt,
  .blog__grid--2 > .blog__item:not(:nth-child(2n)) .blog__excerpt {
    text-wrap: var(--kol-prelom);
  }
}
